summaryrefslogtreecommitdiff
path: root/dmake/doc
diff options
context:
space:
mode:
Diffstat (limited to 'dmake/doc')
-rw-r--r--dmake/doc/intro.txt40
-rw-r--r--dmake/doc/license.txt248
-rw-r--r--dmake/doc/public/install.txt203
-rw-r--r--dmake/doc/public/mac.txt43
-rw-r--r--dmake/doc/public/msdos.txt124
-rw-r--r--dmake/doc/public/os2.txt76
-rw-r--r--dmake/doc/public/qssl-qnx.txt5
-rw-r--r--dmake/doc/public/srcorg.txt74
-rw-r--r--dmake/doc/public/tos.txt31
-rw-r--r--dmake/doc/public/unix.txt171
-rw-r--r--dmake/doc/read1st.txt58
-rw-r--r--dmake/doc/release.txt196
12 files changed, 0 insertions, 1269 deletions
diff --git a/dmake/doc/intro.txt b/dmake/doc/intro.txt
deleted file mode 100644
index 8e25f9523b5b..000000000000
--- a/dmake/doc/intro.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-DMAKE
------
-
-The original sources of dmake were available on http://dmake.wticorp.com.
-This site has not been reachable for some time and the source is hosted
-in the OpenOffice.org http://www.openoffice.org/ cvs now. You can view
-the source at: http://tools.openoffice.org/source/browse/tools/dmake.
-
-dmake is different from other versions of Make in that it supports significant
-enhancements. A short summary of the more important features follows:
-
- . support for portable makefiles
- . portable accross many platforms
- . significantly enhanced macro facilities
- . sophisticated inference algorithm supporting transitive closure
- over the inference graph
- . support for traversing the file sytem both during making of targets
- and during inference
- . %-meta rules for specifying rules to be used for inferring
- prerequisites
- . conditional macros
- . local rule macro variables
- . proper support for libraries
- . parallel making of targets on architectures that support it
- . attributed targets
- . text diversions
- . group recipes
- . swapping itself to DISK under MSDOS
- . supports MKS extended argument passing convention
- . directory caching
- . highly configurable
-
-Current release notes can be found in the file:
-
- NEWS
-
-Release notes for older dmake versions (4.1 and before) can be found in
-the file:
-
- readme/release.txt
diff --git a/dmake/doc/license.txt b/dmake/doc/license.txt
deleted file mode 100644
index 3c68f02bb420..000000000000
--- a/dmake/doc/license.txt
+++ /dev/null
@@ -1,248 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 1, February 1989
-
- Copyright (C) 1989 Free Software Foundation, Inc.
- 675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The license agreements of most software companies try to keep users
-at the mercy of those companies. By contrast, our General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. The
-General Public License applies to the Free Software Foundation's
-software and to any other program whose authors commit to using it.
-You can use it for your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Specifically, the General Public License is designed to make
-sure that you have the freedom to give away or sell copies of free
-software, that you receive source code or can get it if you want it,
-that you can change the software or use pieces of it in new free
-programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of a such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must tell them their rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any program or other work which
-contains a notice placed by the copyright holder saying it may be
-distributed under the terms of this General Public License. The
-"Program", below, refers to any such program or work, and a "work based
-on the Program" means either the Program or any work containing the
-Program or a portion of it, either verbatim or with modifications. Each
-licensee is addressed as "you".
-
- 1. You may copy and distribute verbatim copies of the Program's source
-code as you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this
-General Public License and to the absence of any warranty; and give any
-other recipients of the Program a copy of this General Public License
-along with the Program. You may charge a fee for the physical act of
-transferring a copy.
-
- 2. You may modify your copy or copies of the Program or any portion of
-it, and copy and distribute such modifications under the terms of Paragraph
-1 above, provided that you also do the following:
-
- a) cause the modified files to carry prominent notices stating that
- you changed the files and the date of any change; and
-
- b) cause the whole of any work that you distribute or publish, that
- in whole or in part contains the Program or any part thereof, either
- with or without modifications, to be licensed at no charge to all
- third parties under the terms of this General Public License (except
- that you may choose to grant warranty protection to some or all
- third parties, at your option).
-
- c) If the modified program normally reads commands interactively when
- run, you must cause it, when started running for such interactive use
- in the simplest and most usual way, to print or display an
- announcement including an appropriate copyright notice and a notice
- that there is no warranty (or else, saying that you provide a
- warranty) and that users may redistribute the program under these
- conditions, and telling the user how to view a copy of this General
- Public License.
-
- d) You may charge a fee for the physical act of transferring a
- copy, and you may at your option offer warranty protection in
- exchange for a fee.
-
-Mere aggregation of another independent work with the Program (or its
-derivative) on a volume of a storage or distribution medium does not bring
-the other work under the scope of these terms.
-
- 3. You may copy and distribute the Program (or a portion or derivative of
-it, under Paragraph 2) in object code or executable form under the terms of
-Paragraphs 1 and 2 above provided that you also do one of the following:
-
- a) accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- b) accompany it with a written offer, valid for at least three
- years, to give any third party free (except for a nominal charge
- for the cost of distribution) a complete machine-readable copy of the
- corresponding source code, to be distributed under the terms of
- Paragraphs 1 and 2 above; or,
-
- c) accompany it with the information you received as to where the
- corresponding source code may be obtained. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form alone.)
-
-Source code for a work means the preferred form of the work for making
-modifications to it. For an executable file, complete source code means
-all the source code for all modules it contains; but, as a special
-exception, it need not include source code for modules which are standard
-libraries that accompany the operating system on which the executable
-file runs, or for standard header files or definitions files that
-accompany that operating system.
-
- 4. You may not copy, modify, sublicense, distribute or transfer the
-Program except as expressly provided under this General Public License.
-Any attempt otherwise to copy, modify, sublicense, distribute or transfer
-the Program is void, and will automatically terminate your rights to use
-the Program under this License. However, parties who have received
-copies, or rights to use copies, from you under this General Public
-License will not have their licenses terminated so long as such parties
-remain in full compliance.
-
- 5. By copying, distributing or modifying the Program (or any work based
-on the Program) you indicate your acceptance of this license to do so,
-and all its terms and conditions.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the original
-licensor to copy, distribute or modify the Program subject to these
-terms and conditions. You may not impose any further restrictions on the
-recipients' exercise of the rights granted herein.
-
- 7. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of the license which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-the license, you may choose any version ever published by the Free Software
-Foundation.
-
- 8. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- Appendix: How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to humanity, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest to
-attach them to the start of each source file to most effectively convey
-the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19xx name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- program `Gnomovision' (a program to direct compilers to make passes
- at assemblers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/dmake/doc/public/install.txt b/dmake/doc/public/install.txt
deleted file mode 100644
index a5ee339d2730..000000000000
--- a/dmake/doc/public/install.txt
+++ /dev/null
@@ -1,203 +0,0 @@
- DMAKE UNPACKING AND INSTALLATION INSTRUCTIONS
-
-
-We attempt to keep the information presented here accurate. However, the
-defacto location of the most up to date information is the dmake WWW site
-found at:
-
- http://dmake.wticorp.com/
-
-DMAKE is available in several formats: a compressed tar src archive,
-a pkzip src archive, a variety of executable archives. Refer to the
-appropriate section below for unpacking instructions.
-
-
-1. UNPACKING THE DISTRIBUTION FILES
-
- OPTION 'A' (compressed tar src archive):
- --------------------------------------
- Assumption: The current directory contains the latest version of dmake in
- the file 'dm41src.tgz'.
-
- This file is a standard GNU zip compressed tar archive. To unpack the file
- issue the following command. gunzip is available for most UNIX platforms
- as well as DOS.
-
- gunzip -c dm41src.tgz | tar xf -
-
-
- OPTION 'B' (src zip archive):
- -----------------------------
- Assumption: The current directory contains the latest version of DMAKE in
- the file dm41src.zip.
-
- To unpack the full zip distribution simply use pkunzip with the
- following command:
-
- pkunzip dm41src.zip
- or
- unzip dm41src.zip
-
-
- Instructions for unpacking executable only versions are given on the
- dmake WWW site.
-
-
-2. BUILDING THE EXECUTABLE
-
- Skip this step if you have purchased a prebuilt binary distribution.
-
- The only supported method for building a new executable from a fresh or
- patched distribution is to use the self building scripts rather than DMAKE
- itself. This is necessary in order to allow for the use of new DMAKE
- features and functionality in the DMAKE 'makefile' itself. Once built
- the DMAKE executable can be used to rebuild DMAKE.
-
- To determine the set of supported environments issue the following
- commands:
-
- cd src
- make
-
- The output of this command will be a set of arguments representing the
- supported environments that DMAKE can be compiled in. Choose the one
- that most closely represents your environment and issue the command:
-
- make environ_tag
-
- where 'environ_tag' is from the previous list, for example on a Solaris
- System the option is Solaris, so you would issue the command 'make Solaris'.
-
- The script runs the appropriate set of commands; upon completion the file
- 'dmake' or 'dmake.exe' is found in the current directory.
- This is the binary executable.
-
- Note: before issuing the build command please read Section 3 and decide
- if you need or want to modify the pre-compiled value of MAKESTARTUP.
-
- During the build it is safe to ignore any warnings that may
- be generated by your build. If you get errors from the build then
- it is probably the case that you have chosen a build target that is
- not compatible with your environment.
-
-
-3. INSTALLING AND CONFIGURING THE EXECUTABLE
-
- To install the dmake executable place the executable into the
- location where your system normally finds executables. That is
- place dmake into a subdirectory that is or will be in your
- executable search PATH.
-
- You can now issue the command 'dmake -V'; the output will be
- similar to:
-
- dmake - Copyright (c) 1990,...,1996 by Dennis Vadura, Version 4.10, PL 0
-
- Default Configuration:
- MAXPROCESSLIMIT := 10
- MAXLINELENGTH := 8190
- .IMPORT .IGNORE: ROOTDIR
- .MAKEFILES : makefile.mk Makefile makefile
- .SOURCE : .NULL
- MAKESTARTUP := $(ROOTDIR)/usr/local/lib/dmake/startup/startup.mk
-
- Please read the file readme/release for the latest release notes.
-
-
- Take note of the line defining the value of MAKESTARTUP; to configure
- the executable you must perform two steps:
-
- 1. Copy the <dmake-distdir>/startup subtree to a suitable location,
- 2. Tell dmake where you put it,
-
-
- Step 1:
- -------
- The above example build of dmake assumes that the directory path (assuming
- ROOTDIR is NULL)
-
- /usr/local/lib/dmake/
-
- is a directory which contains a copy of the "<dmake-distdir>/startup"
- subtree. Thus to properly configure dmake so that the precompiled
- defaults would be used you would have to perform the following:
-
- cd <dmake-distdir>
- mkdir /usr/local/lib/dmake
- cp -r startup /usr/local/lib/dmake
-
- or if you are in the MSDOS or Windows-95/NT world:
-
- cd <dmake-distdir>
- md \usr\local\lib\dmake
- xcopy startup \usr\local\lib\dmake
-
- and you are done Step 1.
-
-
- Step 2:
- -------
- You must tell dmake where it is that you placed the "startup" subtree. If
- the location is the directory that is pre-compiled into dmake then you
- are done. If the directory where you copied the dmake subtree is not the
- precompiled value you must either set the global environment variable
- MAKESTARTUP to point at the new location of "startup/startup.mk" or you
- must rebuild dmake with a new precompiled value of MAKESTARTUP. To do the
- latter create the file:
-
- src/startup.h
-
- and make sure that it contains an entry similar to the following:
-
- /* This file contains the default value of the MAKESTARTUP variable.
- * You must set the quoted string below to the default path to the startup
- * variable, so that it gets compiled in. LEAVE ROOTDIR at the front of
- * the path. This allows the user to customize his environment for dmake
- * by setting up a new ROOTDIR environment variable. */
-
- "MAKESTARTUP := $(ROOTDIR)/usr/local/lib/dmake/startup/startup.mk",
-
- (See src/msdos/startup.h for an example). Once set properly rerun your
- previous build. In the rare instance that your compiler has broken
- #include search rules, the shipped "startup.h" files are located in
- architecture specific subdirectories as described in the file
- "readme/srcorg".
-
-
-4. DMAKE SPECIFIC ENVIRONMENT VARIABLES
-
- Once you have built dmake, the dmake startup directory contains the file
- "config.mk". This file contains definitions corresponding to your installed
- target environment for the variables:
-
- OS - Specifies the flavour of operating system.
- OSRELEASE - Specifies the particular version of the operating
- system.
- OSENVIRONMENT - An optional configuration parameter for the operating
- system release.
-
- Appropriate values for these variables are found in the
-
- <install-dir>/startup/templates/<OS>/<OSRELEASE>/<OSENVIRONMENT>/template.mk
-
- file. Select the OS, OSRELEASE, and OSENVIRONMENT that best suits your
- setup (check readme.1st) for hints on selecting the most appropriate
- settings.
-
- These three variables are used to determine the correct dmake configuration
- when dmake starts up, and loads its builtin definitions from the startup
- subtree hierarchy. The only time you should have a need to change these
- values or the contents of the startup subtree is when you wish to supply
- your own customized default environment or you are building dmake for a
- new as yet unsupported target environment.
-
-
-5. LOCALE SPECIFIC CONFIGURATION
-
- Locale specific macro definitions that are not part of the predefined macro
- set should be placed into the file "startup/local.mk". This ensures that
- future dmake releases will not overwrite your prior definitions. We
- guarantee that the file "startup/local.mk" will never be part of any future
- dmake distribution.
-
-
diff --git a/dmake/doc/public/mac.txt b/dmake/doc/public/mac.txt
deleted file mode 100644
index 34a2dca5f820..000000000000
--- a/dmake/doc/public/mac.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-MAC specific information for dmake. This information is provided in the
-hope that it makes it easier to install and recompile dmake in a MAC
-environment.
-
-
-1. ENVIRONMENT VARIABLE SETTINGS
-
-Only a single set of settings is available for the macintosh. There are no
-sub-selections for specific OS release and/or environment.
-
- OS - mac
- OSRELEASE - NULL
- OSENVIRONMENT - NULL
-
-
-2. IMPLEMENTATION NOTES
-
-This port for the Macintosh is specifically designed to be run
-under MPW.
-
-I had to make a couple of changes to dmake in order to get it to work
-on the Mac. First, MPW provides no documented way to run a
-subprocess, so when you use dmake, you MUST use the -n option and
-execute the output. Typically, you will probably want to write a
-simple script file to do these operations for you.
-
-I added some code so that the Macintosh version of dmake can
-use UNIX-style directories to specify include paths and target
-and dependency file names. I.e., if you specify a file "/dir/file",
-dmake will look at the file "dir:file". However, Mac dmake does not
-do any translation from files specified by UNIX-style directories
-in the recipe line that gets executed. If you need to translate,
-you can use substitution commands. (For example,
-":$(RELATIVEUNIXFILE:s,/,:,)".) This code was added so one could
-execute dmake's makefile, and also so one would have an easier time
-porting other UNIX makefiles. I would suggest you stick with
-Macintosh-style directories for all other makefiles.
-
-In order to run dmake, you must set (and export) the environmental
-variable "OS" to "mac".
-
-Micah Doyle
-micah@leland.Stanford.EDU
diff --git a/dmake/doc/public/msdos.txt b/dmake/doc/public/msdos.txt
deleted file mode 100644
index 72664843a644..000000000000
--- a/dmake/doc/public/msdos.txt
+++ /dev/null
@@ -1,124 +0,0 @@
-MSDOS specific information for dmake. This information is provided in the
-hope that it makes it easier to install and recompile dmake under MSDOS.
-I will be happy to hear of erroneous information and will make every effort
-to correct it.
-
-NOTE: If you are seeking information for Win32 compiles please refer to
- the file "readme/winnt".
-
-
-1. ENVIRONMENT VARIABLE SETTINGS
-
-There are many environment variable settings available for MSDOS. Each
-option is described below.
-
- OS - msdos
-
- OSRELEASE - borland # Borland compilers
- - microsft # Microsoft compilers
- - zortech # zortech compilers (unsupported)
-
- OSENVIRONMENT - tcc20 # Borland Turbo C 2.0
- - bcc30 # Borland C++ V3.0 MSDOS compile
- - bcc40 # Borland C++ V4.0 MSDOS compile
- - bcc45 # Borland C++ V4.5 MSDOS compile
- - bcc50 # Borland C++ V5.0 MSDOS compile
-
- - msc51 # Microsoft 5.1 Compiler MSDOS compile
- - msc60 # Microsoft 6.0 Compiler MSDOS compile
-
- MSC_VER - 5.1 # Microsoft Compiler version
- - 6.0 # Microsoft Compiler version
-
-
-2. IMPLEMENTATION NOTES
-
-Bootstrapping the binary:
--------------------------
- A make.bat file is provided to bootstrap the binary. The file contains
- several targets for bootstrapping. Invoking the batch file with no
- arguments lists the possibilities shown below.
-
- INDEX: You must specify one of:
- tccswp - Turbo C 2.0 compile of swapping dmake.
- bcc30swp - Borland C++ 3.0 compile of swapping dmake.
- bcc40swp - Borland C++ 4.0 compile of swapping dmake.
- bcc45swp - Borland C++ 4.5 compile of swapping dmake.
- bcc50swp - Borland C++ 5.0 compile of swapping dmake.
-
- msc51 - Microsoft C 5.1 compile.
- msc51swp - Microsoft C 5.1, MASM 5.1 compile of swapping dmake.
- msc60 - Microsoft C 6.0 compile.
- msc60swp - Microsoft C 6.0, MASM 5.1 compile of swapping dmake.
-
- Based on the compiler you have installed and whether or not you
- want the swapping version of dmake, you should select the appropriate
- target and issue 'make.bat target'.
-
- The batch file runs a second batch script that comes with the distribution
- which compiles the sources using the appropriate compiler and flags. The
- MSC Versions of the batch files should not require any further user
- intervention during the build. The Borland versions, as a final step,
- invoke tlink with two response files. The second of these response files,
- named in msdos/borland/{bcc*,tcc20}/mk*.bat, contains absolute path names to
- Borland's libraries. You likely need to edit these before getting a
- successful binary linked. The reason for this is that not all of us
- install the Borland compiler in the same place.
-
- Note that the file msdos/exec.uue is a uuencoded version of a BCC++
- compiled exec.obj (from exec.asm). If you do not have an assembler
- either microsoft MASM or Borland TASM (or some other), you can uudecode
- this file and put it into src/objects/exec.obj. The build will then
- link against it to build your binary.
-
-
-Using dmake to Make itself:
----------------------------
- See the file "readme/install" for information on building dmake by using
- dmake itself. Once successfully built using the presupplied scripts it
- should be straight forward to rebuild dmake.
-
-
-Memory Requirements and Swapping:
----------------------------------
- The swapping code currently only swaps to DISK, there are hooks
- in the code to accomodate XMS and EMS, but have not been used (and
- probably never will).
-
- It appears that a ramdisk seems to work just fine. If anyone
- wishes to fill in the hooks please do so and send us the differences.
-
-
-^C and stopping a make:
------------------------
- Thanks to the efforts of Len Reed, appears to now work. I have been unable
- to hang my machine if it's swapped out and I hit ^C a couple thousand times.
-
-
-Other notes:
-------------
- dmake does not care if you are running command.com or some other command
- interpretter, you must however specify the proper values of the environment
- variables SHELL, SHELLFLAGS, GROUPSHELL, and GROUPFLAGS in order for things
- to work correctly. Read the man page FIRST, if you still have trouble
- then send email.
-
- Group recipes under DOS that use command.com as the command interpretter
- require you to set the GROUPSUFFIX macro.
-
- As shipped the startup.mk files for the DOS version try to figure out what
- command interpretter you are using and set things up appropriately.
- Two command interpretters are supported in the shipped startup.mk file,
- command.com, and the MKS Korn shell.
-
- The dos version of dmake contains one builtin command. noop which
- simply ignores the remainder of the line and always retuns success,
-
- dmake supports the MKS argument passing conventions. The facility is
- enabled by setting .MKSARGS:=1. It is set by default in the startup.mk file
- if an MKS Korn shell is detected as being the active command interpretter.
-
- At this time there are no plans to support the other popular UNIX like
- argument passing conventions available under DOS. We recommend you get
- a copy of the MKS Toolkit from Mortice Kern Systems in Waterloo, Ontario,
- Canada [http://www.mks.com/].
diff --git a/dmake/doc/public/os2.txt b/dmake/doc/public/os2.txt
deleted file mode 100644
index 5acf4cc6ab0a..000000000000
--- a/dmake/doc/public/os2.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-OS/2 specific information for dmake. This information is provided in the
-hope that it makes it easier to install and recompile dmake in a OS/2
-environment.
-
-Notes on the OS/2 implementation of dmake:
-==========================================
-
-As shipped the DOS versions of dmake will run under OS/2 protected mode.
-However, support for a full OS/2 version is also provided. The OS/2 version
-will run in parallel under OS/2.
-
-Bootstrapping the binary:
--------------------------
- A make.cmd file is provided to bootstrap the binary. The file contains
- several targets for bootstrapping. Invoking the batch file with no
- arguments lists the possibilities shown below.
-
- INDEX: You must specify one of:
- ibm - IBM C2 compile.
-
- The only supported compiler under OS/2 is the Visual Age ICC compiler.
- I have tested the build using this compiler. The resulting binary
- performs proper directory caching and file-name case mapping for cached
- directories and is capable of parallel target builds. The only known
- limitation of the OS/2 implementation is the treatment of library time
- stamps. Libraries do not have time stamps on members and the timestamp
- of the library is used instead.
-
-
-OS/2 Specifics
---------------
-
- There is a small number of OS/2 specific features that need to be
- stated.
-
- 1. The environment variables TMP as well as TMPDIR are checked for the
- location of the directory where dmake should place any temporary files.
- TMPDIR is checked before TMP.
-
- 2. Appropriate limits are setup for MAXPROCESSES and buffer sizes etc.
- See output of 'dmake -V'.
-
- 3. By default dmake will look for the startup.mk file in the path:
-
- $(ROOTDIR)/dmake/startup/startup.mk
-
- This is more in keeping with OS/2 philosophy. You may still rename
- and put it anywhere else you like by defining the MAKESTARTUP
- environment variable.
-
- 4. Swapping the dmake binary to disk is not supported under OS/2.
-
-
-Other notes:
-------------
- dmake does not care if you are running cmd.exe or some other command
- interpretter, you must however specify the proper values of the environment
- variables SHELL, SHELLFLAGS, GROUPSHELL, and GROUPFLAGS in order for things
- to work correctly. Read the man page first.
-
- Group recipes under OS/2 that use cmd.exe as the command interpretter
- require you to set the GROUPSUFFIX macro.
-
- As shipped the startup.mk files try to figure out what
- command interpretter you are using and set things up appropriately.
- Two command interpretters are supported in the shipped startup.mk file,
- cmd.exe (via COMSPEC), and the MKS Korn shell.
-
- dmake does not contain any builtin commands. It gets all commands it
- executes from an external file system. It is therefore most useful if it
- is used in conjunction with an environment similar to that provided by
- the MKS Tool kit, or equivalent.
-
- dmake now supports the MKS argument passing conventions. The facility is
- enabled by setting .MKSARGS:=1 and is set by default in the startup.mk file
- if an MKS Korn shell is detected as being the active command interpretter.
diff --git a/dmake/doc/public/qssl-qnx.txt b/dmake/doc/public/qssl-qnx.txt
deleted file mode 100644
index 80fc8b56aa4d..000000000000
--- a/dmake/doc/public/qssl-qnx.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-QNX differs from UNIX only in that the library format is that of MSDOS and
-as such the normal stating of library members does not work. QNX versions of
-dmake stat the library instead of the members (as does the MSDOS
-implementation). Otherwise see the readme/unix file for further unix related
-information.
diff --git a/dmake/doc/public/srcorg.txt b/dmake/doc/public/srcorg.txt
deleted file mode 100644
index 89ff914eec4b..000000000000
--- a/dmake/doc/public/srcorg.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-SOURCE CODE ORGANIZATION:
--------------------------
-The source code is organized as follows:
-
- dmake [source for all common functions]
- |
- |
- ----------------------------
- | | | | |
- unix tos qnx os2 msdos [source for OS specific functions]
- | | |
- -------------------- | -------------------
- | | | | | | |
-386ix bsd43 sysvr[134] | tccdos bccdos mscdos [source for OSRELEASE
- | | | specific functions]
- | --------- ------------------
- | | | | | |
- | ibm mscdos bcc30 bcc32 bcc40
- |
- |
- |
- --------
- | |
- uw vf [source for OSENVIRONMENT specific functions]
-
-
-Each of the directories (eg. bsd43, mscdos, tccdos, and sysvr3) contain source
-that is specific to that release of the OS (and possibly C-library)
-
-
-CREATING A NEW VERSION:
------------------------
-To create yet another version of dmake you should follow the following steps.
-
-The sysvr3 version as sent is the base version, all dmake versions must provide
-the equivalent of the functions defined in the sysvr3 directory, and MUST
-provide the same semantics (MSDOS archive lib searches are an exception since
-we cannot search libraries for timestamps in MSDOS, Actually the MKS version
-of dmake does this, I don't have the inclination to add this code though).
-
-1. Create a new directory for the version you will be making at the level
- that is appropriate. If it is a new OS then add the dir at the top level,
- if it is a new version of UNIX then add it below the unix directory.
-
-2. Copy the files from the unix and unix/sysvr3 directories to the new dir.
- (Or from any other directory sub-tree that is more appropriate)
-
-3. Not all OS/OSRELEASE combinations are compatible so in order to make
- dmake on each, the particular directory may contain C-source for functions
- present in the SVID SysV R3 distribution which are used by dmake but are
- not supplied by the C-library in the target system. For example the bsd43
- directory contains source for tempnam.c since it is not provided with
- the BSD C-library. Before writing a new version of the source file
- check the other directories to see if one already exists.
-
-4. Under some systems the standard include files may be missing or incorrect.
- eg. under BSD stdarg.h and string.h. If this is the case
- you should create the proper .h file in the proper directory.
- This works as expected as the compile line includes the flag -Idir
- where dir is the configuration dir, (bsd43 for example) and any
- standard include files will be searched for in dir before the compiler
- looks in the normal places (if you have a sane compiler :-).
-
-5. Modify dmake.sh to contain the appropriate C compiler flags and link command
- and to include any specific C files that you have had to add for this
- version of dmake, and run the result through the shell.
- (make the same changes to config.mk so that once you have a working copy of
- dmake you can use it to bring itself up to date)
-
-6. Send me the changes :-) so that I can incorporate them into future
- distributions.
-
-7. This should be all that you require to create a new version of dmake.
- If you have any questions send e-mail to dvadura@plg.uwaterloo.ca
diff --git a/dmake/doc/public/tos.txt b/dmake/doc/public/tos.txt
deleted file mode 100644
index ddcc43104483..000000000000
--- a/dmake/doc/public/tos.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Atari TOS specific information for dmake. This information is provided in the
-hope that it makes it easier to install and recompile dmake in a TOS
-environment. I do not own an ST. As a result I rely on others to insure that
-this version of dmake works as advertized. If you have any problems with it
-please fix them and send me the differences so that I can incorporate them
-into future releases and patches.
-
-
-1. ENVIRONMENT VARIABLE SETTINGS
-
-Only a single set of settings is available for Atari TOS. There are no
-sub-selections for specific OS release and/or environment.
-
- OS - tos
- OSRELEASE - NULL
- OSENVIRONMENT - NULL
-
-
-2. IMPLEMENTATION NOTES
-
-The code to compile on an Atari-ST using GCC was supplied by Edgar Roeder
-(roeder@cs.uni-sb.de). I do not have an ST on which to verify the
-distribution sources but I have no reason to believe them to not work.
-If there are any problems please let Edgar or myself know.
-
-I know of no bugs or limitation to the Atari-ST implementation. Note that
-it is similar to the DOS version but it does not swap itself out. This does
-not appear to be as much of a problem on the Atari as it is on MSDOS boxes :-).
-See the msdos specific info file for further information.
-
--dennis
diff --git a/dmake/doc/public/unix.txt b/dmake/doc/public/unix.txt
deleted file mode 100644
index b50ab9afad1c..000000000000
--- a/dmake/doc/public/unix.txt
+++ /dev/null
@@ -1,171 +0,0 @@
-UNIX specific information for dmake. This information is provided in the
-hope that it makes it easier to install and recompile dmake under UNIX.
-I will be happy to hear of erroneous information and will make every effort
-to correct it.
-
-
-1. ENVIRONMENT VARIABLE SETTINGS
-
-There are many environment variable settings available for UNIX. Each
-option is described below.
-
- OS - unix
-
- OSRELEASE - bsd43 # generic BSD 4.3
- - solaris # Solaris environments
- - sysvr1 # System V R1
- - sysvr3 # System V R3
- - sysvr4 # System V R4
- - xenix # Xenix
- - 386ix # Sun IPX 386 boxen
- - coherent # Coherent...
- - qnx # QNX
-
- OSENVIRONMENT - uw # U of Waterloo mfcf environment for BSD4.3
- - vf # for environments needing vfprintf
- - pwd # for environments needing new pwd
- - gcc # for GCC compiles with Solaris2.3 and greater
- - verxx # for specific OS versions.
-
-
-The table below lists valid combinations for settings of OS, OSRELEASE, and
-OSENVIRONMENT.
-
- OS OSRELEASE OSENVIRONMENT
- -- --------- -------------
- unix bsd43
- unix bsd43 uw
- unix bsd43 vf
- unix solaris
- unix solaris gcc
- unix sysvr1
- unix sysvr3
- unix sysvr3 pwd
- unix sysvr4
- unix xenix
- unix xenix pwd
- unix 386ix
- unix coherent ver40
- unix coherent ver42
-
-You must set OS and OSRELEASE, OSENVIRONMENT to correspond to one of the
-configurations in the above table.
-
-
-2. IMPLEMENTATION NOTES
-
-Bootstrapping the binary:
--------------------------
- A 'makefile' file is provided to bootstrap the binary. The file contains
- many targets for bootstrapping. Issuing 'make' will provide the list of
- possible targets that can be built. A restricted sample is shown below:
-
- INDEX: You must specify 'make target' where target is one of:
- -------------
- make bsd43 - Generic BSD 4.3 System
- make bsd43uw - Generic BSD 4.3 at U of Waterloo
- make bsd43vf - Generic BSD 4.3 that needs vfprintf
- make sysvr4 - Generic SysV R4 UNIX System
- make sysvr3 - Generic SysV R3 UNIX System
- make sysvr3pwd - Generic SysV R3 UNIX System, our PWD
- make sysvr1 - Generic SysV R1 UNIX System
- make dynix - Sequent DYNIX System
- make linux - Linux
- make ultrix - Ultrix 3.0 System
- make mips - Any MIPS System
- make coherent40 - Any Coherent Version 4.0 System
- make coherent42 - Any Coherent Version 4.2 or greater System
- make hpux - HP Unix
- make 386ix - 386/ix (SysV R3) System
- make xenix - 386 Xenix System
- make xenixpwd - 386 Xenix System, our PWD
- make aix - IBM RS6000/AIX System
- make Solaris - SUN Solaris 1.0 to 2.0
- make Solaris2.1 - SUN Solaris 2.1 or greater
- make gccSolaris2.1 - SUN Solaris 2.1 or greater with gcc
-
- The above shows only the possible builds for UNIX like operating systems.
- Choose the one that best suits your needs and issue the command
-
- 'make target'
-
-
-Using dmake to Make itself:
----------------------------
- If you use dmake to make itself you must first set a number of makefile
- control variables, either through the environment or on the command line.
-
- The following variables must be set:
-
- OS - defines operating system (must be set)
- OSRELEASE - particular version of it.
- OSENVIRNOMENT - more customization
-
- These three variables should be defined in your environment. Valid values
- for UNIX are listed above in Section 1. You must chose one a setting from
- the table that best matches your system.
-
- Once set simply issue the command: 'dmake' and the sources will be
- automatically rebuilt. You do not need to specify a target when you
- use dmake and the environment variables are correctly set.
-
-
-.NAMEMAX and length of file names:
-----------------------------------
-dmake assumes that no file name component has a name longer than .NAMEMAX
-(a user-settable variable, see the man page). Files whose basename is
-longer than .NAMEMAX return a timestamp of 0 when statted. The reason for
-this test is to handle broken versions of stat that return non-zero times
-for stating files that are longer than the legal file name length but for
-which a file whose name is the legal maximum file name length and is a prefix
-of the longer name exists. This used to cause infinite loops in the inference
-engine.
-
-As a result the value of .NAMEMAX is important. dmake attempts to determine
-it at from your system header files when compiled however sometimes even these
-may be erroneous thus as a result as of dmake 4.0 users may set the value of
-.NAMEMAX to any value they wish.
-
-
-Library Name Length:
---------------------
-By default the maximum length of library member names is defined in the the
-ar.h header file and is usually 14. Elf libraries allow for a arbitrarily
-long member names, if your archiver supports the elf archiver extension for
-long member names then edit the file unix/arlib.c and set the CHECKELF define
-to indicate that the Elf archiver extension is to be checked for.
-
-If Elf is not supported and your archiver truncates member names you should
-set (in unix/arlib.c) the macro AR_TRUNCATE_MEMBER_NAMES. dmake will then
-also truncate member names and perform a length limitted comparison when
-scanning the library for matching member names.
-
-
-UNIX Sysv R3 and getcwd:
-------------------------
-Some versions of UNIX SysV R3 and Xenix use the popen call to capture the
-output of pwd when invoking the C library function getcwd(). These versions
-of the function cause dmake to terminate with the "lost a child" message
-due to the fact that the parent dmake process may catch the pwd and not
-recognize it as a child. For systems that have this problem use the version
-of dmake that supplies its own getcwd function. The settings are:
-
- OS = unix
- OSRELEASE = sysvr3
- OSENVIRONMENT = pwd
-
-It is directly available through the 'makefile' by typing one of:
-
- make sysvr3pwd
- make xenixpwd
-
-both include the getcwd code but the xenixpwd target compiles for a Xenix
-system.
-
-
-UNIX and "limits.h":
---------------------
-Some compilers do not yet provide the "limits.h" file, if yours is one of
-these then simply copy the file "namemax.h" in the source root directory to
-"limits.h". Make sure the length of a file name is correctly set in
-"limits.h" as it is processed prior to "namemax.h".
diff --git a/dmake/doc/read1st.txt b/dmake/doc/read1st.txt
deleted file mode 100644
index 34b5424cd482..000000000000
--- a/dmake/doc/read1st.txt
+++ /dev/null
@@ -1,58 +0,0 @@
-DMAKE 4.12
-==========
-
-This directory tree contains a number of files. Here is a short
-description of what each file contains so that you do not need to
-search as much. There is also a recommended order for reading them.
-
- read1st.txt - This file; generic information.
- intro.txt - Short note describing what 'dmake' is and where to
- get it from.
- release.txt - Changes of previous releases, and release specific
- notes. (Not longer continued.)
- ../NEWS - Changes from previous release. (Continuation of
- release.txt.)
- ../man/ - directory containing DMAKE manual page.
-
- public/ - Old build and installation instructions
- for the Dmake 4.1 public release. As of Dmake 4.2
- dmake switched to an autotools based build system
- and these instructions are not longer valid for
- operating systems that are supported by the autotools
- system.
- If you are on a system that is not supported you
- might still find some useful information there.
-
-Building Dmake
-==============
-
-With autotools
---------------
-Building dmake on systems that are supported by the autotools build system
-only requires the usual "./configure && make && make install" command.
-The configure command will notify you when your platform is not supported.
-
-With Microsoft C++ compiler
----------------------------
-For MS Visual C++ 6 and up run "make.bat win95-vpp40" in a command shell.
-This should create a dmake.exe in the top-level directory.
-
-It is possible to rename this to, say, dmake0.exe, delete the objects/
-sub-directory and then simply run "dmake0.exe" to build a new dmake.exe.
-Note that it is not necessary to have dmake rebuild itself in this way,
-but it is a nice test that your new dmake is working to see that it can.
-
-To install dmake, simply copy dmake.exe and the startup/ sub-directory to
-a directory of your choice. You may also want to copy the man/
-sub-directory for future access to the manual page.
-
-
-All other systems might look in the public/ directory for useful hints.
-
-
-The original sources of dmake were available on http://dmake.wticorp.com.
-This site has not been reachable for some time and the source is hosted
-in the OpenOffice.org http://www.openoffice.org/ cvs now. You can view
-the source at: http://tools.openoffice.org/source/browse/tools/dmake.
-Please send questions regarding dmake to the tools project mailing list
-at dev@tools.openoffice.org.
diff --git a/dmake/doc/release.txt b/dmake/doc/release.txt
deleted file mode 100644
index 42f2d9d61592..000000000000
--- a/dmake/doc/release.txt
+++ /dev/null
@@ -1,196 +0,0 @@
-This file is superseded/continued by the toplevel NEWS file.
-
-DMAKE Version 4.1
-=================
-FINAL FREE RELEASE OF DMAKE, REPLACES VERSION 4.0
-
-Nature: This distribution advances dmake to Version 4.1, patch level 0.
-------- This release adds significant functionality and eliminates
- bugs that were introduced with release 4.0.
-
-
-DETAILS OF ENHANCEMENTS/TWEAKS:
-===============================
-
-BUG FIXES:
-----------
-
-1. General clean up all over to fix small incompatibilities and obvious
- typos.
-
-2. Fixed bug in getinp.c where buffer was being erroneously overwritten,
- this caused the invalidation of the return address on the stack on
- DOS systems.
-
-3. Fixed a bug that caused the "<target> is up to date" message to be
- suppressed.
-
-4. Fixed a bug involving the value of $@ in conjunction with dynamic
- prerequisites.
-
-5. Relegated the warning associated with duplicate entries in prerequisite
- lists to a non-essential warning. Added an option flag -Vw to display
- it if you wish to check your makefile for duplicate entries. Either way
- the parser ignores duplicates.
-
-6. Better default action on checking out RCS targets. If an RCS target has
- no directory prefix of its own it is checked out into the directory
- which contains the RCS subdirectory, otherwise it ends up in its directory
- qualified location.
-
-7. Improved the speed of lookups in the directory cache; handle mixed case
- file name entries on OS/2 and Win95/NT.
-
-8. Improved prerequisite list generation for long prerequisite lists.
-
-9. Rearanged startup macro files to form an architectural hierarchy.
- This greatly simplifies the maintenance of the startup files. They
- might even be right at some point in the future. Please let me know if
- you encounter difficulties, as I don't have access to all possible
- platforms, this sub-hierarchy is bound to have ommisions at this release
- and hence is intended to be evolutionary over time.
-
-10. A build that only touches targets (-t) uses the same algorithm to decide
- valid names as a normal build.
-
-11. Conditional macro assignments fixed, and now work for builtin macro
- variables as well.
-
-
-NEW FEATURES:
--------------
-
-0. Complete reorganization of Dmake STARTUP scripts. Please refer to the
- installation notes for details. THIS ONE IS IMPORTANT!!!
-
-1. Support for long archive member names if Elf is available, plus better
- support for archivers that truncate member names (see comments in
- unix/arlib.c for details).
-
-2. Added variable MAKEVERSION which contains a string indicating the current
- version of dmake.
-
-3. Added the .EXECUTE attribute, see man page for details.
-
-4. Added the .ERRREMOVE attribute, see man page for details.
-
-5. Added support for gmake style if/else/endif, but only if not part of
- a Group recipe.
-
-6. Added initial build target for Coherent version 4.2 UNIX
- and for Windows-NT/Windows-95 32-bit app using Borland C++ 4.0,4.5, 5.0,
- and Microsoft Visual C++ 4.0.
-
-7. MSDOS version now supports two builtin runtime commands, noop, and echo.
-
-8. Added new macro $(uniq list) which returns a sorted version of the
- white space separated tokens in list such that there are no repetitions.
-
-9. Added the function macro $(echo list) which simply returns list.
- This is most useful in conjunction with the new $(foreach ...)
- function macro.
-
-10. Added gmake style function macro
-
- $(foreach,var,list data)
-
- where var and list are expanded, and the result is the concatenation of
- expanding data with var being set to each white space separated token in
- list in turn. For example:
-
- list = a b c
- all :
- echo [$(foreach,i,$(list) [$i])]
-
- will output
-
- [[a] [b] [c]]
-
- The iterator variable is defined as a local variable to this foreach
- instance. The following expression illustrates this:
-
- $(foreach,i,$(foreach,i,$(sort c a b) root/$i) [$i/f.h])
-
- when evaluated the result is:
-
- [root/a/f.h] [root/b/f.h] [root/c/f.h]
-
- The specification of list must be a valid macro expression, such as:
-
- $($(assign list=a b c))
- $(sort d a b c)
- $(echo a b c)
-
- and cannot just be the list itself. That is, the following foreach
- expression:
-
- $(foreach,i,a b c [$i])
-
- yields:
-
- "b c [a]"
-
- when evaluated.
-
-11. Added the macro $(and list).
-
-12. Added the macro $(or list).
-
-13. Added the macro $(not term).
-
-14. Added the .NOINFER attribute to the .INCLUDE directive. When specified
- any prerequisite of the .INCLUDE directive which cannot be found in
- the .INCLUDEDIRS search list is not automatically made.
-
-15. Improved the handling of internal macros for proper functioning of the *=
- and *:= assignment constructs. Macros that are internally initially
- defined are considered to be undefined for the purpose of *= and *:=
- assignment until they are the target of an explicit assignment operation.
-
-16. Improved the caching of file names, and their matching on case insensitive
- file systems. Two control macros help to manage the functionality:
-
- .DIRCACHE := yes
-
- Implies that the directory cache will be used. This is on by default for
- systems that support the reading of directories. Setting the value of this
- macro to 'no' is equivalent to supplying the '-d' command line switch.
-
- .DIRCACHERESPCASE := yes
-
- Causes dmake to respect the case of the directory entries when the cache
- is enabled, thereby treating directory entries in a case sensitive manner.
- Setting this to 'no' disables the matching of case. This macro has effect
- only if .DIRCACHE := yes. Otherwise the facilities provided by the native
- OS are used to match file names using 'stat'.
-
-17. Added parameterized user defined function macros. Yes it's true
- you may now define your own parametized function macros. Here is
- how it works. Any macro that is not a predefined function macro and
- is invoked with parameters is looked up as a user defined function
- macro. A new macro scope is created. The n'th argument to the
- macro is then assigned to the value of the macro $n where n is 0
- for the first argument, 1 for the second argument and so on. The
- argument is expanded before it is assigned. The original macro is
- then expanded. For example:
-
- FOO = a $0 b $1 c $2 d
- echo :; $(FOO x y z)
-
- Will produce the result string "a z b y c z d". The
- expansion of $(FOO) on it's own behaves as expected and returns the
- string "a b c d" (assuming that each of $0, $1, $2
- are undefined). The only restriction when specifying function
- macro arguments is as before: they cannot contain spaces
- themselves.
-
-
-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.
-
- Many have contributed suggestions and bug fixes that make this
- release possible. The NET thanks you.