Documention for MAKE.RCP (C) COPYRIGHT 1985, 1986, 1987 Non-Linear Thinkers. Released for non-profit use only. Contact: Ron Bardarson 259 El Bosque St. San Jose, CA 95134 408-432-0821, 408-738-2888x5634 via Z-Node Central, PRACSA, Sage Microsystems East MAKE is one of the most powerful programmers RCP's around. MAKE is an extension of the FINDERR technique for trapping assembler/compiler errors, and closely resembles 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/compilation/assembly, 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. 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. 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. 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 linker, 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) 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 ( Unix's Make also cannot be aborted ). NO SIZE CHECKING PERFORMED WHEN THE TRANSLATION STRING IS STUFFED INTO THE Z3CL. CAPITAL LETTERS MUST BE USED!! IN THE MAKEFILE. SOURCE.FILE 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. END OF SOURCE/TRANSLATION LINES IS INDICATED BY #, ON A SEPARATE LINE. LINKER STRING IS FREE FORM TO EOL (126 CHARACTERS). END LINKER WITH CR/LF See MKE.LBR for makefile examples. ------------- Copy of MAKE.MKE ---------------- MAKE.RCP /PUBON Z3BASE.LIB PROTECT 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, but will use up valuable space in ring buffer. Line up FileTypes to check for 3 chars in type. PROTECT clears all file attributes, this will cause the MAKE.MAC line to be executed. PUBON/OFF turn on/off public directories, since a new MAKE.RCP is always created, 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.