|Logo by McFly |
(anonymous IP: 188.8.131.52,2073)
Total files: 4310
Full index file
Recent index file
Support the site
SUMMARY ------- 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 Amiga-specific projects. The gmake executable defaults to using abc-shell to execute commands. This is the version to use for maximum portability and porting applications from other platforms. 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. PATH CONVERSION FUNCTIONS ------------------------- Two additional make functions have been made available to convert to and from POSIX-style paths. $(amigapath from) Performs a conversion from the supplied POSIX-style path to the returned AmigaOS-style path. $(posixpath from) Performs a conversion from the supplied AmigaOS-style path to the returned POSIX-style path. PARALLEL MAKE ------------- 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": http://developers.sun.com/solaris/articles/parallel_make.html DEBUGGING --------- 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. SHELL ----- 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. HISTORY ------- 53.3 - updated to GNU make 3.82 baseline - many new features and enhancements; see NEWS file 53.2 - compiled with SDK 53.30 - compiled with GCC 5.4.0 and binutils 2.32.2 - now requires AmigaOS 4.1 or higher 53.1 - compiled with GCC 4.2.4 and clib2 1.204 which fixes infrequent floating point alignment issues 52.1 - changed to new versioning scheme - now requires dos.library 52.5 or greater for alias support - fixed problem with sending CTRL-C to all child processes of the launching shell - fixed output of text when redirected to a file which used to get all jumbled up 3.81-7 - fixed problem with command_execute returning with an exit code of 127 even when it succeeded (thanks Andy Broad) - fixed problem with lost output text when using command_execute (thanks Andy Broad) - removed extra line feed in sh command lines 3.81-6 - compiled with latest beta SDK - fixed problem with lost aliases when using AmigaShell (thanks Daniel Allsopp) - added new amigapath and posixpath make functions to convert from one path style to the other 3.81-5 - now uses case-sensitive comparisons no matter what the underlying file system is capable of for maximum compatibility during porting (thanks Henning Nielsen Lund) - removed workaround for shell 51.x - removed support for AmigaOS device names; it is just impossible to parse out targets from device names (thanks Thore Böckelmann) - now uses getopt() from clib2 - cleaned up Makefile.AmigaOS 3.81-4 - fixed environ building to exclude all subdirectories (thanks Tony Wyatt) - added exclusion of .xml variables from environ - compiled with clib2 CVS dated 2006-11-18 3.81-3 - fixed pattern substitution rules to work correctly when you have patterns like "$(LIBOBJECTS):%.o:%.c importinc" (thanks Thore Böckelmann) 3.81-2 - changed exit code to EXIT_FAILURE on fatal signal - fixed break processing so the parent signals the child processes now (thanks Colin Wenzel) - added custom __check_abort() to signal child processes from clib2 function calls - added extra code to cleanup stray child processes at exit just in case 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 '()()' token in the AmigaShell version which enables you to execute multi-line commands, e.g. if exists make ()()\ list make ()()\ endif 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 CREDITS ------- Original SAS/C Amiga port for 68k AmigaOS by Aaron "Optimizer" Digulla Initial AmigaOS 4.0 port by Hans-Jörg Frieden (Hans-JoergF()hyperion-entertainment.com) Further modifications for AmigaOS 4.x by Steven Solie (steven()solie.ca) ------------------------------------------------------------------------------- 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.
|Copyright © 2004-2023 by Björn Hagström All Rights Reserved |