home *** CD-ROM | disk | FTP | other *** search
- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= README Release 1 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
- This distribution contains release 2 of a copy of the 3.62 test release of
- GNU Make which has been modified to run under the emx 32-bit environment under
- MS-DOS or OS/2 2.0. (See the README.GNU file in either of the zoo files for
- more information about GNU Make.)
-
- GNU Make is free software. See the file COPYING for copying conditions. This
- program is provided with absolutely NO WARRANTY of any kind.
-
- The documentation for GNU make is provided in the from of .info files which
- have been created from the .texinfo files supplied in the original GNU
- release. To browse these files you will need a copy of GNU info which is
- probably available from the same source where you obtained this file.
- The documentation is compressed in the info.zoo file.
-
- The source code for this port of GNU make is also included in the source.zoo
- file.
-
- In porting GNU make I have taken a mostly slash and burn approach. GNU Make
- relies very heavily on the un*x fork function which is resource intensive.
- I have made massive changes in the job.c file so that this release does not
- use the fork function. This makes for a smaller executable and hopefully a
- program which is a little more robust in the emx environment.
-
- I have also changed the handling of commands within make. To illustrate the
- changes, imaging that make wants to issue a command:
- gcc -c test.c
- First, it examines the command name (in this case "gcc"). If the name ends
- with a .bat, .cmd, or .com extension, make uses the emx system() function to
- ask either command.com or cmd.exe to execute the command. If the name does
- not end with a .bat, .cmd, or .com extension, make adds a ".exe" extension
- and looks for the command using the PATH environment variable. If it finds
- the command, it executes it directly via a spawnve() function call without
- loading command.com or cmd.exe. If the command contains any pipes (|) or
- output or input re-routing (<, >>, >) the system() function will be used to
- make sure that the operating system is allowed to handle these functions.
-
- This is done mostly to circumvent weaknesses in the emx environment under
- MS-DOS. Notably, when forced to use the system() function to under MS-DOS,
- make is unable to obtain the return code from the command and instead must
- assume that the command was completed successfully.
-
- Also, If a command line is more than ~100 characters long, this port of make
- will create a temporary response file and call the command with the response
- file, thus, creating a shorter command line. This could cause trouble if
- you try to call a program which does not understand how to handle response
- files with a large command line.
-
- I will gladly accept any question, comments, or insults for poor porting.
- Send email to:
- gchunt@mail.physics.utah.edu
- Or, to the emx-list mailing list:
- emx-list@mail.physics.utah.edu
- To subscribe to the emx-list mailing list, send email to:
- emx-list-request@mail.physics.utah.edu
-
- galen c. hunt
- 23/March/92
-