home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / gnumake / readme < prev   
Encoding:
Text File  |  1992-03-23  |  3.0 KB  |  60 lines

  1. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= README Release 1 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  2.  
  3. This distribution contains release 2 of a copy of the 3.62 test release of 
  4. GNU Make which has been modified to run under the emx 32-bit environment under 
  5. MS-DOS or OS/2 2.0.  (See the README.GNU file in either of the zoo files for 
  6. more information about GNU Make.)
  7.  
  8. GNU Make is free software.  See the file COPYING for copying conditions.  This
  9. program is provided with absolutely NO WARRANTY of any kind.
  10.  
  11. The documentation for GNU make is provided in the from of .info files which
  12. have been created from the .texinfo files supplied in the original GNU
  13. release.  To browse these files you will need a copy of GNU info which is
  14. probably available from the same source where you obtained this file.  
  15. The documentation is compressed in the info.zoo file.
  16.  
  17. The source code for this port of GNU make is also included in the source.zoo
  18. file.
  19.  
  20. In porting GNU make I have taken a mostly slash and burn approach.  GNU Make
  21. relies very heavily on the un*x fork function which is resource intensive.
  22. I have made massive changes in the job.c file so that this release does not
  23. use the fork function.  This makes for a smaller executable and hopefully a 
  24. program which is a little more robust in the emx environment.
  25.  
  26. I have also changed the handling of commands within make.  To illustrate the
  27. changes, imaging that make wants to issue a command:
  28.     gcc -c test.c
  29. First, it examines the command name (in this case "gcc").  If the name ends
  30. with a .bat, .cmd, or .com extension, make uses the emx system() function to
  31. ask either command.com or cmd.exe to execute the command.  If the name does
  32. not end with a .bat, .cmd, or .com extension, make adds a ".exe" extension
  33. and looks for the command using the PATH environment variable.  If it finds
  34. the command, it executes it directly via a spawnve() function call without 
  35. loading command.com or cmd.exe.  If the command contains any pipes (|) or
  36. output or input re-routing (<, >>, >) the system() function will be used to
  37. make sure that the operating system is allowed to handle these functions.
  38.  
  39. This is done mostly to circumvent weaknesses in the emx environment under 
  40. MS-DOS.  Notably, when forced to use the system() function to under MS-DOS,
  41. make is unable to obtain the return code from the command and instead must
  42. assume that the command was completed successfully.
  43.  
  44. Also, If a command line is more than ~100 characters long, this port of make
  45. will create a temporary response file and call the command with the response
  46. file, thus, creating a shorter command line.  This could cause trouble if
  47. you try to call a program which does not understand how to handle response
  48. files with a large command line.
  49.  
  50. I will gladly accept any question, comments, or insults for poor porting.
  51. Send email to:
  52.     gchunt@mail.physics.utah.edu
  53. Or, to the emx-list mailing list:
  54.     emx-list@mail.physics.utah.edu
  55. To subscribe to the emx-list mailing list, send email to:
  56.     emx-list-request@mail.physics.utah.edu
  57.  
  58. galen c. hunt
  59. 23/March/92
  60.