mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-12-29 08:09:02 +00:00
e99a3aca7e
* GNUmakefile (globfiles): Add AmigaDOS support files. (distfiles): Add $(amigafiles). (amigafiles): New variable. Thu Nov 7 10:18:16 1995 Aaron Digulla <digulla@fh-konstanz.de> * Added Amiga support in commands.c, dir.c, function.c, job.c, main.c, make.h, read.c, remake.c * commands.c: Amiga has neither SIGHUP nor SIGQUIT * dir.c: Amiga has filenames with Upper- and Lowercase, but "FileName" is the same as "filename". Added strieq() which is use to compare filenames. This is like streq() on all other systems. Also there is no such thing as "." under AmigaDOS. * function.c: On Amiga, the environment is not passed as envp, there are no pipes and Amiga can't fork. Use my own function to create a new child. * job.c: default_shell is "" (The system automatically chooses a shell for me). Have to use the same workaround as MSDOS for running batch commands. Added HAVE_SYS_PARAM_H. NOFILE isn't known on Amiga. Cloned code to run children from MSDOS. Own version of sh_chars[] and sh_cmds[]. No dup2() or dup() on Amiga. * main.c: Force stack to 20000 bytes. Read environment from ENV: device. On Amiga, exec_command() does return, so I exit() afterwards. * make.h: Added strieq() to compare filenames. * read.c: Amiga needs special extension to have passwd. Only one include-dir. "Makefile" and "makefile" are the same. Added "SMakefile". Added special code to handle device names (xxx:) and "./" in rules. * remake.c: Only one lib-dir. Amiga link-libs are named "%s.lib" instead of "lib%s.a". * main.c, rule.c, variable.c: Avoid floats at all costs. * vpath.c: Get rid of as many alloca()s as possible.
62 lines
1.8 KiB
Text
62 lines
1.8 KiB
Text
Short: Port of GNU make with SAS/C (no ixemul.library required)
|
|
Author: GNU, Amiga port by Aaron "Optimizer" Digulla
|
|
Uploader: Aaron "Optimizer" Digulla (digulla@fh-konstanz.de)
|
|
Type: dev/c
|
|
|
|
This is a pure Amiga port of GNU make 3.74. It needs no extra libraries or
|
|
anything. It has the following features (in addition to any features of
|
|
GNU make):
|
|
|
|
- Runs Amiga-Commands with SystemTags() (Execute)
|
|
- Can run multi-line statements
|
|
- Allows to use Device-Names in targets:
|
|
|
|
c:make : make.o
|
|
|
|
is ok. To distinguish between device-names and target : or ::, MAKE
|
|
looks for spaces. If there are any around :, it's taken as a target
|
|
delimiter, if there are none, it's taken as the name of a device. Note
|
|
that "make:make.o" tries to create "make.o" on the device "make:".
|
|
- Replaces @@ by a newline in any command line:
|
|
|
|
if exists make @@\
|
|
delete make.bak quiet @@\
|
|
rename make make.bak @@\
|
|
endif @@\
|
|
$(CC) Link Make.o To make
|
|
|
|
works. Note that the @@ must stand alone (ie. "make@@\" is illegal).
|
|
Also be carefull that there is a space after the "\" (ie, at the
|
|
beginning of the next line).
|
|
- Can be made resident to save space and time
|
|
- To use "#?" as a wildcard, you must enclose it in "":
|
|
|
|
delete "#?.o"
|
|
|
|
BUGS:
|
|
- The line
|
|
|
|
dummy.h : src/*.c
|
|
|
|
tries to make dummy.h from "src/*.c" (ie. no wildcard-expansion takes
|
|
place). You have to use "$(wildcard src/*.c)" instead.
|
|
|
|
COMPILING FROM SCRATCH
|
|
|
|
To recompile, you need SAS/C 6.51. make itself is not neccessary, there
|
|
is an smakefile.
|
|
|
|
1. Copy config.ami to config.h
|
|
2. If you use make to compie, copy Makefile.ami to Makefile and
|
|
glob/Makefile.ami to glob/Makefile. Copy make into the current
|
|
directory.
|
|
|
|
3. Run smake/make
|
|
|
|
INSTALLATION
|
|
|
|
Copy make somewhere in your search path (eg. sc:c or sc:bin).
|
|
If you plan to use recursive makes, install make resident:
|
|
|
|
Resident make Add
|
|
|