84307 packages online


No screenshot available
Short:GNU make including parallel compile
Author:Roland McGrath
Uploader:Steven Solie <ssolie telus net>
Download: - View contents

This is a self-contained port of GNU make for AmigaOS.

For maximum compatibility two different executables are produced
from the same sources: make and gmake.

The make executable defaults to using AmigaShell to execute commands.
This is the version to use for more Amiga-specific projects.

The gmake executable defaults to using abc-shell to execute commands.
This is the version to use for porting applications.

Both executables behave more correctly and more consistently than
previous make ports. POSIX compliance has been chosen over Amiga-only
features. Be sure to review the NEWS file as well as the make 3.81
baseline has had many changes and old broken makefiles may no
longer work.

Parallel execution is supported via the -j or --jobs option.
There is no limit on the number of parallel processes.

Please review the following short article before jumping to any
conclusions about parallel make being "broken":

As a special debugging feature the --debug=j option will not delete
any temporary files. This is very helpful when you are trying to
determine if GNU make or abc-shell or the command itself is at fault.

You may choose which shell to execute a command with using the SHELL
make variable as documented in the GNU make manual. Note the shell path
is always a POSIX-style path.

3.81-1      - merged with final 3.81 make sources
            - updated AmigaOS file copyright notices
            - disabled DOS requesters
            - changed default variables: CC, C++, CXX, CXXLD, LEX to
              standard SDK tools (thanks Henning Nielsen Lund)

3.81rc2-6   - fixed readme typo (thanks David Rey)
            - fixed error stream synchronization issue
              (thanks Thomas Hoffmann)

3.81rc2-5   - compiled with SDK 51.22
            - updated to clib2 1.200
            - stderr stream is utilized again when executing commands
              (thanks Thomas Hoffmann)

3.81rc2-4   - fixed make path conversion in AmigaShell version which
              makes it possible to specify make's file path
            - updated copyright banners in Amiga-specific files
            - re-implemented the '@ at ' token in the AmigaShell version
              which enables you to execute multi-line commands, e.g.
                if exists make @ at 
                  list make @ at 

3.81rc2-3   - recomplied with beta SDK 51.20
            - fixed bug which was not translating make's path correctly
              which broke the "cd dir && make" idiom

3.81rc2-2   - removed child process limit by switching to using
              death notification messages
            - fixed a memory leak in amiga_execvp
            - further improved error handling

3.81rc2-1   - merged with official 3.81rc2 code base
            - removes backslash newlines when executing commands with
              AmigaShell (POSIX requirement)
            - now uses ProcessScan() for breaking child processes

3.81beta4-3 - compiled with clib2 1.199
            - fixed bug which was stripping double-quotes in shell commands,
              they are not supposed to be stripped away
              (bug introduced in 3.81beta3-1)
            - fixed problem with deleting files during the child
              process exit routine; now done by the parent process instead

3.81beta4-2 - compiled with beta SDK 51.17
            - added UNUSED definition check to make.h
            - split into two executables: make (AmigaShell default) and
              gmake (abc-shell default)
            - removed AmigaShell support from gmake

3.81beta4-1 - merged with official 3.81beta4 code base
            - now filters out env vars containing ".cfg" sub-string
            - changed wait() to avoid infinite looping
            - compiled with GCC 4.0.2 and clib2 1.198
            - removed job launch delay
            - now uses new dos.library features to eliminate spawning
              extra processes and environment fiddling
            - return code is now left untouched; this may break some
              Amiga-only makefiles but it will ensure correct behaviour
              for all UN*X makefiles so I think it is worth it
            - fixed Makefile.AmigaOS to enable parallel make
            - added automatic dependency generation to Makefile.AmigaOS
            - added archive support (e.g. foolib(hack.o))
            - requires at least AmigaOS 4.0 update 4 to work correctly

3.81beta3-2 - added code to open CONSOLE: when executing commands
              which fixes problems with ctrl-c breaking
              (thanks Jeff Gilpin)
            - fixed problem with wait() returning SIGINT which
              caused problems cleaning up during parallel make
            - added back in special handling of targets so that it
              is possible to have Amiga-style paths in target names
              as may be output by the gcc tools (thanks Andy Broad)
            - now names SystemTags() process as make.executor
            - added debug feature to keep temp files if level is 'j'
            - fixed possible memory leak in function execution
            - updated to use clib2 from CVS dated 2005-10-26

3.81beta3-1 - merged with official 3.81beta3 code base
            - re-applied .ALIAS patch under conditional compile which
              is only required for compiling AWeb
            - added parallel execution (-j) support
            - fixed ctrl-c interrupt support
            - BSD style error code (1) is passed through untouched
              (thanks Alan Broad)
            - removed support for the MAKESHELL variable (obsolete)
            - added support for the SHELL variable (thanks Alan Broad)
            - set SHELL to the shell to use to execute commands
            - note SHELL is never set from the environment (see make docs)
            - don't set SHELL or set SHELL to nothing to use AmigaShell
            - if you use a path for SHELL it must be a Un*x-style path
            - when SHELL is defined the backslash-newline-tab sequence
              is handled according to POSIX
            - MAKE & MAKE_COMMAND is set to a Un*x-style path and
              converted to an Amiga-style path at execution time when
              required (thanks Alan Broad)
            - don't forget to escape your quotes with backslash or
              make will parse them away now
            - added slight delay when launching parallel jobs to help
              avoid flooding the system
            - compiled with clib2 1.196
            - added version suffix to help with package labelling
            - added SIGINT handler
            - now filters out env vars containing ".prefs" sub-string

27/09/2005 - added variable export support
           - command environment is now properly controlled which may
             slow down execution
           - removed broken MAKELEVEL global environment variable setting;
             let me know if it breaks anything
           - added MAKESHELL support so the user can choose which
             shell will be used to execute commands
           - leave MAKESHELL unset to use the default AmigaOS shell
           - set MAKESHELL to SDK:Local/C/sh to use bourne shell
           - fixed the $(shell) function to have consistent behaviour
           - updated to clib2 1.195 + tmpnam fix
           - compiled with SDK 51.15
           - filters out env vars that are not plain ASCII

17/07/2005 - adjusted config.amigaos file for newest clib2
           - merged in .ALIAS support for compiling AWeb
           - enabled floating point support
           - added help target with target explanations

19/02/2005 - fixed char eating bug reported by Steen Lund Nielsen
             fixed more pathing issues
             executes each shell command one at a time now
             added more memory allocation failure checks
             default paths were not set correctly
             command path is converted to AmigaOS path before execution
             adjusted AmigaOS makefiles to use UNIX paths

11/02/2005 - removed the AmigaOS enhancements
             moved to UNIX paths

06/02/2005 - applied env import fix from Sebastian Bauer

05/02/2005 - fixed removal of temporary files
             fixed another bug in $(shell) function

03/02/2005 - fixed crashing with wrong $(shell) command
             improved memory handling
             removed debug code during compile
             increased size of internal buffers
             updated config.h to use new clib2 features

24/06/2004 - make included with OS4 SDK 51.5

??/??/???? - unknown changes

Original SAS/C Amiga port for 68k AmigaOS by Aaron "Optimizer" Digulla

Initial AmigaOS 4.0 port by Hans-Jörg Frieden
 (Hans-JoergF at

Further modifications for AmigaOS 4.0 by Steven Solie
 (ssolie at

Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
Foundation, Inc.
This file is part of GNU Make.

GNU Make is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2, or (at your option) any later version.

GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
GNU Make; see the file COPYING.  If not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Contents of dev/c/make-bin.lha
---------- ----------- ------- ------- ------ ---------- ------------ -------------
[generic]                 1407    2810  50.1% -lh5- 6683 Mar 19 19:36 make-bin/AUTHORS
[generic]                 7020   18043  38.9% -lh5- 1000 Dec 10  1996 make-bin/COPYING
[generic]               165426  356624  46.4% -lh5- 4b22 Aug 10 20:43 make-bin/gmake
[generic]               165914  357520  46.4% -lh5- 1e68 Aug 10 20:43 make-bin/make
[generic]                16514   42881  38.5% -lh5- 1327 Mar 31 23:36 make-bin/NEWS
[generic]                 3136    7195  43.6% -lh5- 51fb Mar 31 23:42 make-bin/README
[generic]                 3877    9954  38.9% -lh5- e972 Aug 10 20:36 make-bin/README.AmigaOS
---------- ----------- ------- ------- ------ ---------- ------------ -------------
 Total         7 files  363294  795027  45.7%            Aug 11 14:56

Aminet © 1992-2023 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>