diff options
Diffstat (limited to 'dmake/readme/public/srcorg.txt')
-rw-r--r-- | dmake/readme/public/srcorg.txt | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/dmake/readme/public/srcorg.txt b/dmake/readme/public/srcorg.txt new file mode 100644 index 000000000000..89ff914eec4b --- /dev/null +++ b/dmake/readme/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 |