Documention for MAKE.RCP, distributed as MAKE.ZRL for NZCOM. (C) COPYRIGHT 1987, 1988 Non-Linear Thinkers. Released for non-profit use only. Contact: Ron Bardarson @ Z-Node Central 408-432-0821 MAKE is one of the most powerful programmers RCP's around. MAKE is an extension of the FINDERR/ZEX technique for submitting assembler/compiler (translation) scripts and trapping translation errors, thus closely resembling Unix's make. MAKE may be considered as a super-alias with error checking. Concisely: MAKE reduces programmer overhead on complex programs composed of multiple files by automatically scheduling modified files for translation, and linking the relocatables. What this means is that you may wander among the executable program's files, adding or deleting code, and MAKE will ensure that the latest executable version is produced without ANY extra effort on your part. If you believe in modular programming, you can now keep separate modules in separate files, and only need to invoke MAKE to create the executable. Separating functional portions of a program into separate files has several major advantages: Faster editor useage with the smaller program segments in separate files. This also helps create library routines. Faster program creation, since only the changed portions are compiled not the entire program. Update propagation - if you change a library/public file used by several programs, all of them can be updated automatically - I create a new sized or featured Z-System in under 2 hours after only changing the Z3BASE.LIB and memeory map files, everything else is handled by MAKE. With only a single function in a file, a programmer can concentrate on it and not be distracted by other code sections. MAKE automatically aborts when errors are detected, allowing the user to leave the system unattended while MAKE is running, if you get to the last line in the makefile, then no compilation errors were detected. MAKE was written to support the development of a chess playing program and an advanced ham radio controller program. It can be used for any program ( I use it for everything ), but it's real power lies in supporting complex program creation. The command line is MAKE MAKEFILE ( type is assumed as .MKE), with MAKEFILE having the following structure: ( See MKE.LBR for examples) Of course the MAKE.RCP must be loaded. SOURCE1.MAC | TRANSLATION STRING SOURCE2.PLI | TRANSLATION STRING SOURCE3.MOD | TRANSLATION STRING . . . SOURCEn.FLE | TRANSLATION STRING # LINKER_STRING SOURCE1,SOURCE2,SOURCE3,...SOURCEn ------------------------------------------------------------------------------ Notes and warnings: DO NOT CHANGE RCP's WHILE RUNNING MAKE, or your system will crash. MAKE changes the BIOS CONOUT vector and needs to complete to change it back. If an error handler is invoked, then note the error and continue with the remaining commands in the CLB. SOURCE.FIL is FILENAME.TYP, all files are disk&user LOCAL or PUBLIC. All TYP's MUST be 3 letters or blank filled. The OPTIONAL separator/delimiter on source lines is |, any blank or tab will also work. TRANSLATION STRING is free form to End-Of-Line and is composed of the commands you would normally issue when translating SOURCE.FIL. See the examples in the library. End of SOURCE/TRANSLATION lines is indicated by #, on a separate line. LINKER_STRING is free form to EOL (126 characters) and is composed of whatever you use to link the final executable. No error checking is performed for the LINKER_STRING and it does not need to be a link command (your free choice). END LINKER WITH CR/LF! See MKE.LBR for makefile examples. ------------- Copy of an early MAKE.MKE ---------------- MAKE.RCP /PUBON Z3BASE.LIB TUCH MAKE.MAC MAKE.MAC M80 =MAKE/M/L # L80 /P:DFD0,MAKE/N,MAKE/X/U/Y/E;MLOAD MAKE.RCP=MAKE;LDR MAKE:MAKE.RCP;/PUBOFF makefile area after linker string is available for comments Line up FileTypes to check for 3 chars in type. TUCH clears the makebit attribute, this will cause the MAKE.MAC line to be executed. TUCH is an MAKE.RCP command to update the makebit without disturbing the other file attribute bits but can only be used with a single file. For multiple files, use TOUCH FILE1.EXT,FILE2.EXT,..... PUBON/OFF turn on/off public directories, since a new MAKE.RCP is always created the first line is always executed. This will enable ZRDOS public directories. It's not often recognized that ZRDOS has a better solution to public files. The poking of a few bits enables/disables public files, the alternative technique of setting a filename bit CANNOT be easily disabled. Different public directories can be available depending on the current needs.