From 9b7e871fa8839e698953ec27c1f9d5f24791a1b5 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Tue, 6 Mar 2012 17:59:41 +0200 Subject: Some file systems are case-insensitive --- dmake/doc/intro.txt | 40 +++++++ dmake/doc/license.txt | 248 +++++++++++++++++++++++++++++++++++++++ dmake/doc/public/install.txt | 203 ++++++++++++++++++++++++++++++++ dmake/doc/public/mac.txt | 43 +++++++ dmake/doc/public/msdos.txt | 124 ++++++++++++++++++++ dmake/doc/public/os2.txt | 76 ++++++++++++ dmake/doc/public/qssl-qnx.txt | 5 + dmake/doc/public/srcorg.txt | 74 ++++++++++++ dmake/doc/public/tos.txt | 31 +++++ dmake/doc/public/unix.txt | 171 +++++++++++++++++++++++++++ dmake/doc/read1st.txt | 58 +++++++++ dmake/doc/release.txt | 196 +++++++++++++++++++++++++++++++ dmake/makefile.mk | 4 +- dmake/readme/intro.txt | 40 ------- dmake/readme/license.txt | 248 --------------------------------------- dmake/readme/public/install.txt | 203 -------------------------------- dmake/readme/public/mac.txt | 43 ------- dmake/readme/public/msdos.txt | 124 -------------------- dmake/readme/public/os2.txt | 76 ------------ dmake/readme/public/qssl-qnx.txt | 5 - dmake/readme/public/srcorg.txt | 74 ------------ dmake/readme/public/tos.txt | 31 ----- dmake/readme/public/unix.txt | 171 --------------------------- dmake/readme/read1st.txt | 58 --------- dmake/readme/release.txt | 196 ------------------------------- 25 files changed, 1271 insertions(+), 1271 deletions(-) create mode 100644 dmake/doc/intro.txt create mode 100644 dmake/doc/license.txt create mode 100644 dmake/doc/public/install.txt create mode 100644 dmake/doc/public/mac.txt create mode 100644 dmake/doc/public/msdos.txt create mode 100644 dmake/doc/public/os2.txt create mode 100644 dmake/doc/public/qssl-qnx.txt create mode 100644 dmake/doc/public/srcorg.txt create mode 100644 dmake/doc/public/tos.txt create mode 100644 dmake/doc/public/unix.txt create mode 100644 dmake/doc/read1st.txt create mode 100644 dmake/doc/release.txt delete mode 100644 dmake/readme/intro.txt delete mode 100644 dmake/readme/license.txt delete mode 100644 dmake/readme/public/install.txt delete mode 100644 dmake/readme/public/mac.txt delete mode 100644 dmake/readme/public/msdos.txt delete mode 100644 dmake/readme/public/os2.txt delete mode 100644 dmake/readme/public/qssl-qnx.txt delete mode 100644 dmake/readme/public/srcorg.txt delete mode 100644 dmake/readme/public/tos.txt delete mode 100644 dmake/readme/public/unix.txt delete mode 100644 dmake/readme/read1st.txt delete mode 100644 dmake/readme/release.txt (limited to 'dmake') diff --git a/dmake/doc/intro.txt b/dmake/doc/intro.txt new file mode 100644 index 000000000000..8e25f9523b5b --- /dev/null +++ b/dmake/doc/intro.txt @@ -0,0 +1,40 @@ +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 new file mode 100644 index 000000000000..3c68f02bb420 --- /dev/null +++ b/dmake/doc/license.txt @@ -0,0 +1,248 @@ + 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. + + + Copyright (C) 19yy + + 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. + + , 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 new file mode 100644 index 000000000000..a5ee339d2730 --- /dev/null +++ b/dmake/doc/public/install.txt @@ -0,0 +1,203 @@ + 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 /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 "/startup" + subtree. Thus to properly configure dmake so that the precompiled + defaults would be used you would have to perform the following: + + cd + 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 + 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 + + /startup/templates////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 new file mode 100644 index 000000000000..34a2dca5f820 --- /dev/null +++ b/dmake/doc/public/mac.txt @@ -0,0 +1,43 @@ +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 new file mode 100644 index 000000000000..72664843a644 --- /dev/null +++ b/dmake/doc/public/msdos.txt @@ -0,0 +1,124 @@ +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 new file mode 100644 index 000000000000..5acf4cc6ab0a --- /dev/null +++ b/dmake/doc/public/os2.txt @@ -0,0 +1,76 @@ +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 new file mode 100644 index 000000000000..80fc8b56aa4d --- /dev/null +++ b/dmake/doc/public/qssl-qnx.txt @@ -0,0 +1,5 @@ +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 new file mode 100644 index 000000000000..89ff914eec4b --- /dev/null +++ b/dmake/doc/public/srcorg.txt @@ -0,0 +1,74 @@ +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 new file mode 100644 index 000000000000..ddcc43104483 --- /dev/null +++ b/dmake/doc/public/tos.txt @@ -0,0 +1,31 @@ +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 new file mode 100644 index 000000000000..b50ab9afad1c --- /dev/null +++ b/dmake/doc/public/unix.txt @@ -0,0 +1,171 @@ +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 new file mode 100644 index 000000000000..1ff1229e6b32 --- /dev/null +++ b/dmake/doc/read1st.txt @@ -0,0 +1,58 @@ +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 usefull 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 new file mode 100644 index 000000000000..41b95097679c --- /dev/null +++ b/dmake/doc/release.txt @@ -0,0 +1,196 @@ +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 " 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 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. diff --git a/dmake/makefile.mk b/dmake/makefile.mk index 528a79f7c021..32c706c0cb60 100644 --- a/dmake/makefile.mk +++ b/dmake/makefile.mk @@ -7,7 +7,7 @@ # OSENVIRONMENT - optionally specifies the environment under which the # OS and OSENVIRONMENT are running. # -# For valid values for the above macros consult the readme/* files or type +# For valid values for the above macros consult the doc/* files or type # 'make' by itself to get a summary of what is available. # First target in the makefile, do this so that targets declared in the @@ -164,7 +164,7 @@ src-list : clean grep -v tst | grep -v $@ | grep -v license |\ grep -v CVS | grep -v RCS |\ grep -v '\.zip' | grep -v '\.tar'| grep -v '\.shar' >> $@ - echo ' readme/license.txt' >> $@ + echo ' doc/license.txt' >> $@ #-------------------------------------------------------------------------- # This section can be used to make the necessary script files so that dmake diff --git a/dmake/readme/intro.txt b/dmake/readme/intro.txt deleted file mode 100644 index 8e25f9523b5b..000000000000 --- a/dmake/readme/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/readme/license.txt b/dmake/readme/license.txt deleted file mode 100644 index 3c68f02bb420..000000000000 --- a/dmake/readme/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. - - - Copyright (C) 19yy - - 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. - - , 1 April 1989 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/dmake/readme/public/install.txt b/dmake/readme/public/install.txt deleted file mode 100644 index a5ee339d2730..000000000000 --- a/dmake/readme/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 /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 "/startup" - subtree. Thus to properly configure dmake so that the precompiled - defaults would be used you would have to perform the following: - - cd - 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 - 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 - - /startup/templates////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/readme/public/mac.txt b/dmake/readme/public/mac.txt deleted file mode 100644 index 34a2dca5f820..000000000000 --- a/dmake/readme/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/readme/public/msdos.txt b/dmake/readme/public/msdos.txt deleted file mode 100644 index 72664843a644..000000000000 --- a/dmake/readme/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/readme/public/os2.txt b/dmake/readme/public/os2.txt deleted file mode 100644 index 5acf4cc6ab0a..000000000000 --- a/dmake/readme/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/readme/public/qssl-qnx.txt b/dmake/readme/public/qssl-qnx.txt deleted file mode 100644 index 80fc8b56aa4d..000000000000 --- a/dmake/readme/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/readme/public/srcorg.txt b/dmake/readme/public/srcorg.txt deleted file mode 100644 index 89ff914eec4b..000000000000 --- a/dmake/readme/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/readme/public/tos.txt b/dmake/readme/public/tos.txt deleted file mode 100644 index ddcc43104483..000000000000 --- a/dmake/readme/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/readme/public/unix.txt b/dmake/readme/public/unix.txt deleted file mode 100644 index b50ab9afad1c..000000000000 --- a/dmake/readme/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/readme/read1st.txt b/dmake/readme/read1st.txt deleted file mode 100644 index 1ff1229e6b32..000000000000 --- a/dmake/readme/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 usefull 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/readme/release.txt b/dmake/readme/release.txt deleted file mode 100644 index 41b95097679c..000000000000 --- a/dmake/readme/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 " 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 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. -- cgit