Category : C Source Code
Archive   : DMAKE38A.ZIP
Filename : RELEASE

 
Output of file : RELEASE contained in archive : DMAKE38A.ZIP
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, [email protected])

- 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.


  3 Responses to “Category : C Source Code
Archive   : DMAKE38A.ZIP
Filename : RELEASE

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/