home *** CD-ROM | disk | FTP | other *** search
- dmake Version 3.8
- =================
-
- FULL RELEASE OF DMAKE, REPLACES VERSION 3.7
-
- Nature: This release is an attempt at addressing all of the little obscure
- ------- bugs and "features" that still remained in dmake and often caused
- spurious or incorrect behaviour. As such there is no major new
- functionality but several small enhancements to make life a little
- more interesting.
-
- This distribution advances dmake to Version 3.8, patch level 0.
-
-
- Availability:
- -------------
- dmake is available via anonymous ftp from watmsg.uwaterloo.ca
- (129.97.141.9) as:
-
- pub/dmake/dmake38.tar.Z - compressed tar archive
- pub/dmake/dmake38.zoo - zoo archive
- pub/dmake/dmake38-msdos-exe.zoo - MSDOS executable zoo archive
- pub/dmake/dmake38-msdos-exe.zip - MSDOS executable zip archive
- pub/dmake/dmake38.shar01 - xx part shar archive
- ... (get all parts)
- pub/dmake/dmake38.sharxx
-
- and comes in several archive formats. Choose the one that best
- suits your needs.
-
- Acknowledgements:
- -----------------
- Thanks to all who submitted code for new features, suggestions for
- improvements, and bug fixes. I have tried to make sure no gotchas
- remain, if you encounter problems installing or running dmake please
- let me know. As always, I am always happy to receive e-mail.
-
-
- DETAILS OF ENHANCEMENTS/TWEAKS:
- ===============================
- - Added the following functionality:
-
- #! command
-
- is scanned for and recognized if it is the first line of your makefile.
- The command string is expanded and executed.
- The command is restricted in that it cannot be a command requiring a shell
- for it's execution. The values of the command line macros have been set
- and are available for execution purposes. This is not as general as one
- would like but it is not bad for bootstrapping different non dmake
- makefiles. If the command result code is zero, then dmake continues parsing
- its input and processes the makefile. If the result is non-zero dmake
- exits. (suggested by Paul Sander, paul@hal.com)
-
- - Allowed the inclusion of white space inside quoted prerequisites.
- i.e. you can now say:
-
- foo : "some stuff"
-
- and have "some stuff" treated as a single prerequisite. The mod is
- necessary to allow for prerequisites that contain $(shell ... ) expansion
- scripts and other simillar function macros.
-
- - Changed the following piece of code to be more in line with dmake
- philosophy. That is, $(macname:str=sub) now expands 'sub' prior to
- performing the substitution, however if '-A' or '.AUGMAKE := yes' are
- specified then the expansion is suppressed.
-
- - Added _POSIX_NAME_MAX to the source, on any stat if the basename of a file
- is larger than the value of _POSIX_NAME_MAX then it returns 0. You must
- define _POSIX_NAME_MAX in a lower level config if you want it to override
- the default in {unix,msdos,mac,os2,atari}/config.h.
-
- - Disallowed export of macros whose names contain the characters "+=:*"
- as these are valid macro assignment operators and we don't want to cause
- trouble when we go to reparse the environment again. Perhaps the fix
- could be a little bit less drastic, but for now it seems reasonable.
-
- - Tweaked the output of -v to more accurately show which of a set of ::
- targets is getting made. The info was there so I might as well use it.
-
- - Added a seperate directory substructure for XENIX since I was having trouble
- linking properly in the generic SYSVR3 environment. Looks as if you pretty
- much need 'make xenixpwd' since XENIX uses popen to call getcwd.
- If you use 'make xenix' and your implementation of xenix uses popen this
- causes dmake to get confused about child processes and occationally
- complain that it lost one.
-
- - Cleaned up OS/2 building scripts, and made sure that OS2 define is checked
- where needed.
-
-
- DETAILS OF BUG FIXES:
- =====================
- - Fixed the handling of :: targets if they appear first in the makefile.
- This was incorrectly handled by the internal DAG construction code, ugly!.
-
- - Fixed an output statement in dump.c so that macro values containing %
- signs are correctly printed (guess where that broke, blush).
-
- - Fixed a bug in dealing with .SETDIR=a targets and multiprocessing. Too
- obscure to describe but annoying if you stumble onto it.
-
- - Fixed DIRSEPSTR macro to be user modifiable (as the manpage claims :-)
- so that people can change it in startup.mk depending on shell/OS
- (mostly effects DOS and/or OS/2 implementations).
-
- - Fixed a bug dealing with complex .IF/.ELIF/.ELSE/.END expressions.
- It now correctly selects only a single matching instance in a complex
- .IF/.ELIF/.ELSE/.END expr.
-