  B Decus CPP is a public-domain implementation of the C preprocessor.? It runs on VMS native (Vax C), VMS compatibilty mode (Decus C), @ RSX-11M, RSTS/E, P/OS, and RT11, as well as on several varieties? of Unix, including Ultrix.  These notes describe how to extract > the cpp source files, configure it for your needs, and mention> a few design decisions that may be of interest to maintainers.   			Installation   : Because the primary development of cpp was not on Unix, it? is distributed using the Decus C archive program (quite similar = to the archiver published in Kernighan and Plauger's Software @ Tools).  To extract the files from the net.sources distribution,= save this message as cpp1.arc (and the other two distribution C files as cpp2.arc and cpp3.arc).  Then, using your favorite editor, B locate the archx.c program, just following the line beginning with0 "-h- archx.c" -- the format of the tape is just:       -h- archx.c        ... archx.c program      -h- archc.c        ... archc.c program   < Compile archx.c -- it shouldn't require any special editing. Then run it as follows:        archx cpp1.arc     archx cpp2.arc     archx cpp3.arc  ? You do not need to remove mail headers from the saved messages.   ? You should then read through cppdef.h to make sure the HOST and > TARGET (and other implementation-specific) definitions are set3 correctly for your machine, editing them as needed.   @ You may then copy makefile.txt to Makefile, editing it as needed< for your particular system.  On Unix, cpp should be compiled@ by make without further difficulty.  On other operating systems,C you should compile the three source modules, linking them together.e@ Note that, on Decus C based systems, you must extend the default< stack allocation.  The Decus C build utility will create the appropriate command file.t   			Support Notes  @ The distribution kit was designed to keep all submissions around
 50,000 bytes:   	 cpp1.arc:n 	readme.txt	This filet( 	cpp.mem		Documentation page (see below)$ 	archx.c		Archive extraction program& 	archc.c		Archive construction program( 	cpp.rno		Source for cpp.mem (see below)/ 	makefile.txt	Unix makefile -- copy to Makefile/6 	cpp.h		Main header file (structure def's and globals): 	cppdef.h	Configuration file (host and target definitions)  	 cpp2.arc:l4 	cpp1.c		Mainline code, documentation master sources! 	cpp2.c		most #control processinge0 	cpp3.c		filename stuff and command line parsing	 cpp3.arc:x 	cpp4.c		#define processor 	cpp5.c		#if <expr> processoro5 	cpp6.c		Support code (symbol table and I/O routines)i 	n? cpp intentionally does not rely on the presence of a full-scale E macro preprocessor, it does require the simple parameter substitution < preprocessor capabilities of Unix V6 and Decus C.  If your CC language lacks full preprocessing, you should make sure "nomacargs"aB is #define'd in cpp.h.  (This is done automatically by the Decus C
 compiler.)  > The documentation (manual page) for cpp is included as cpp.memA and cpp.rno.  Cpp.rno is in Dec Runoff format, built by a Decus CtB utility (getrno) from original source which is embedded in cpp1.c.< To my knowledge, there is no equivalent program that creates& the nroff source appropriate for Unix.  @ I would be happy to receive fixes to any problems you encounter.= As I do not maintain distribution kit base-levels, bare-bonesi< diff listings without sufficien context are not very useful.: It is unlikely that I can find time to help you with other
 difficulties.Z   			Acknowledgements^  B I received a great deal of help from many people in debugging cpp.@ Alan Feuer and Sam Kendall used "state of the art" run-time codeA checkers to locate several errors.  Ed Keiser found problems wheng> cpp was used on machines with different int and pointer sizes.. Dave Conroy helped with the initial debugging.   Martin Minow decvax!minow   l8 From:	RHEA::DECWRL::"decvax!minow"    8-JAN-1985 00:38   To:	decwrl!rhea!rex!minow  Subj:	new cpp:readme.txt  E Received: from DECWRL by DEC-RHEA with SMTP; Mon,  7 Jan 85 21:39-PSTd) Received: by decwrl.ARPA (4.22.01/4.7.34)Z' 	id AA07935; Mon, 7 Jan 85 21:38:18 pst0# Received: by decvax.UUCP (4.12/1.0) ' 	id AA07664; Mon, 7 Jan 85 23:59:31 estx  Date: Mon, 7 Jan 85 23:59:31 est Return-Path: <decvax!minow>e, Message-Id: <8501080459.AA07664@decvax.UUCP>      B Decus cpp is a public-domain implementation of the C preprocessor.? It runs on VMS native (Vax C), VMS compatibilty mode (Decus C),n@ RSX-11M, RSTS/E, P/OS, and RT11, as well as on several varietiesD of Unix, including Ultrix.  Decus cpp attempts to implement featuresC in the Draft ANSI Standard for the C language.  It should be noted,eE however, that this standard is under active development:  the currentrC draft of the standard explicitly states that "readers are requested	A not to specify or claim conformance to this draft."  Thus readers @ and users of Decus cpp should not assume that it conforms to the@ draft standard, or that it will conform to the actual C language	 standard.P  F These notes describe how to extract the cpp source files, configure itJ for your needs, and mention a few design decisions that may be of interest to maintainers.B   			Installation   : Because the primary development of cpp was not on Unix, it? is distributed using the Decus C archive program (quite similar = to the archiver published in Kernighan and Plauger's Softwaref@ Tools).  To extract the files from the net.sources distribution,< save this message as cpp1.arc and the other two distributionB files as cpp2.arc and cpp3.arc.  Then, using your favorite editor,B locate the archx.c program, just following the line beginning with8 "-h- archx.c" -- the format of the distribution is just:       -h- readme.txt       ... this filei     -h- cpp.memZ       ... description of cpp     -h- archx.c	.       ... archx.c program -- extracts archives     -h- archc.c"-       ... archc.c program -- creates archives"  < Compile archx.c -- it shouldn't require any special editing. Then run it as follows:d       archx *.arco  ? You do not need to remove mail headers from the saved messages.f  ? You should then read through cppdef.h to make sure the HOST and > TARGET (and other implementation-specific) definitions are set3 correctly for your machine, editing them as needed.   @ You may then copy makefile.txt to Makefile, editing it as needed< for your particular system.  On Unix, cpp should be compiled@ by make without further difficulty.  On other operating systems,A you should compile the six source modules, linking them together. @ Note that, on Decus C based systems, you must extend the default< stack allocation.  The Decus C build utility will create the appropriate command file.p   			Support Notes  G The USENET distribution kit was designed to keep all submissions around.
 50,000 bytes:   	 cpp1.arc:  	readme.txt	This file ( 	cpp.mem		Documentation page (see below)$ 	archx.c		Archive extraction program& 	archc.c		Archive construction program( 	cpp.rno		Source for cpp.mem (see below)/ 	makefile.txt	Unix makefile -- copy to Makefile 6 	cpp.h		Main header file (structure def's and globals): 	cppdef.h	Configuration file (host and target definitions)  	 cpp2.arc:,4 	cpp1.c		Mainline code, documentation master sources! 	cpp2.c		most #control processing-0 	cpp3.c		filename stuff and command line parsing	 cpp3.arc:r 	cpp4.c		#define processor 	cpp5.c		#if <expr> processorm5 	cpp6.c		Support code (symbol table and I/O routines)e 	r? Cpp intentionally does not rely on the presence of a full-scale,E macro preprocessor, it does require the simple parameter substitution < preprocessor capabilities of Unix V6 and Decus C.  If your CC language lacks full preprocessing, you should make sure "nomacargs" B is #define'd in cpp.h.  (This is done automatically by the Decus C
 compiler.)  > The documentation (manual page) for cpp is included as cpp.memA and cpp.rno.  Cpp.rno is in Dec Runoff format, built by a Decus C B utility (getrno) from original source which is embedded in cpp1.c.< To my knowledge, there is no equivalent program that creates& the nroff source appropriate for Unix.  @ I would be happy to receive fixes to any problems you encounter.= As I do not maintain distribution kit base-levels, bare-bones = diff listings without sufficient context are not very useful. : It is unlikely that I can find time to help you with other
 difficulties.    			Acknowledgements   B I received a great deal of help from many people in debugging cpp.@ Alan Feuer and Sam Kendall used "state of the art" run-time codeA checkers to locate several errors.  Ed Keiser found problems when > cpp was used on machines with different int and pointer sizes.A Dave Conroy helped with the initial debugging, while Arthur Olson ? and George Rosenberg found (and solved) several problems in the  first USENET release.    Martin Minow decvax!minow  