/* $Header:pphc.h 12.0$ */
/* $ACIS:pphc.h 12.0$ */
/* $Source: /ibm/acis/usr/src/bin/RCS/pphc.h,v $ */

#if !defined(lint) && !defined(LOCORE)  && defined(RCS_HDRS)
static char *rcsidpphc_ca = "$Header:pphc.h 12.0$";
#endif

/*
 * This file is used to tailor the hc.c and pp.c source modules.
 *
 * The symbols PPCOM and HCCOM define the path name of the Professional Pascal
 * and High C compilers. If these symbols are not defined, default path names
 * will be used that are derived from COMDIR (defined below) and the
 * name by which this program was invoked (e.g., pp, hc).
 *
 */
/*#define iAPX286 	-- if 286 unix having multiple memory models. */ 
/*#define SYS5 1   -- must define if hosted on System 5. BSD assumed otherwise*/
#define IBM_HOST 1
/*#define MC68020 1   --Must be defined to recognize "-f68881","-fsoft", "-ffpa"*/

#define PPCOM "/usr/lib/ppcom"   /*Name of PP compiler */
#define HCCOM "/usr/lib/hccom"   /*Name of High C compiler */

#define COMDIR "/usr/lib/"  /*Directory where compiler(s) are*/
			    /*Applicable if PPCOM and/or HCCOM not defined*/
/*
 * Define pathnames of ANSI parse and scan tables
 */
#define HCANSIST "/usr/lib/pp/hcansi.st"	/*ANSI C Scan tables*/
#define HCANSIPT "/usr/lib/pp/hcansi.pt" 	/*ANSI C Parse tables*/
#define HCANSIPPT "/usr/lib/pp/hcansip.pt" 	/*ANSI C preprocessor tables*/

#define PPANSIST "/usr/lib/pp/ppansi.st"	/*ANSI Pascal Scan tables*/
#define PPANSIPT "/usr/lib/pp/ppansi.pt" 	/*ANSI Pascal Parse tables*/
/*
 * We provide two "standard" places for the High C compiler to
 * search in processing includes.  INCLUDE_DIR2 references the standard
 * include directory of cc (usually /u/include). INCLUDE_DIR1 is set
 * to a directory of includes that contain "prototype" definitions. The latter
 * defines such files as "stdio.h", "malloc.h", etc. and are meant to
 * override the non-prototyped versions in /u/include.
 *
 * INCLUDE_DIR2 must always be defined, INCLUDE_DIR1 need not be defined 
 * if there is only a single "standard" place for include processing.
 *
 * Many cross compiler have a different set of include files than those
 * in /u/include.  INCLUDE_DIR2 should be set appropriately
 */
/*#define INCLUDE_DIR1 "/usr/local/include"*/
#define INCLUDE_DIR2 "/usr/include"	/*Standard include directory*/
/*
 * The following five symbols pertain to Professional Pascal
 */
#define PP_INCLUDE "/usr/lib/pp/include"  /*Location of "standard" includes*/
#define CHEAP "/usr/lib/pp/cheap.o"   /* If "-cheap" specified*/
#define PHEAP "/usr/lib/pp/pheap.o"   /*Intercepts calls to _malloc*/
#define PPLIB "/usr/lib/pp/libpp.a"    /*Name of Pascal RTE library*/
/*
 * In some implementations, the code generator (which is common for
 * Professional Pascal and High C) will emit calls to various routines
 * to perform, say, floating point operations. Such routines are placed
 * in a library called libmw.a.  For systems that don't have a need for
 * such a library, comment out the next line.
 */
/*#define MWLIB "/usr/local/pp/libmw.a"	/ *Common library*/
/*
 * If you have Professional Pascal but not High C, then set the following
 * symbol to 0. This will cause "cc" to be invoked to compile ".c" files.
 */
#define HIGH_C 1
#define CC "/bin/cc"		/* Name of host "standard" C compiler*/
/*
 * The High C and Professional Pascal compilers have an "inboard" preprocessor.
 * However, there are certain "features"
 * inherent in cpp that the High-C preprocessor does not follow. If cpp is
 * the preprocessor of choice for High C,
 * set USE_CPP_FOR_HC_BY_DEFAULT to 1; otherwise 0.
 * Likewise for Pascal:
 * set USE_CPP_FOR_PP_BY_DEFAULT to 1; otherwise 0.
 * The -cpp option will cause cpp to be invoked regardless.
 * -nocpp will suppress invoking cpp.
 *
 * By setting CPP_ONLY to 1 then cpp will always be invoked and code
 * to handle the above mentioned cases will be commented out. This should
 * not be done for Pascal in that #if expressions have different syntax.
 */
#define CPP_ONLY 0	/*If 1 then cpp is unconditionally used*/
#if !CPP_ONLY
#define USE_CPP_FOR_HC_BY_DEFAULT 1 	/*Do we invoke cpp for C programs? */
#define USE_CPP_FOR_PP_BY_DEFAULT 0 	/*Do we invoke cpp for PP programs? */
#endif
#define CPP "/lib/cpp"		/*Name of outboard preprocessor*/
/*
 * The proposed ANSI C standard allows floating point operations to be
 * done in single precision if operands are in single precision.
 * If you want all floating point operations to be done in double
 * precision, then set the following constant to "1".
 */
#define FLOATING_POINT_OPERATIONS_DONE_IN_DOUBLE_BY_DEFAULT 1
/*
 * The following are reasonably standard across all implementations.
 */
#define LD "/bin/ld"		/*Pathname of linker */
#define AS "/bin/as"		/*Pathname of assembler */
#define OBJ_SUFFIX "o"	        /*Suffix of object modules*/
#define CLIB "-lc"		/*Pathname of C library (as specified to ld)*/
#define CLIB_P "-lc_p"	        /*Pathname of profiled C library(if available)*/
#ifdef ibm032
#define FPLIB_P "-lfp_p"	/*Name of profiled fp library (if available)*/
#endif
#define CSTART "/lib/crt0.o"    /*Pathname of C startup routine*/
#define GPROFSTART "/usr/lib/gcrt0.o"	/*Startup routine for -pg (BSD only) */
#define PROFSTART "/lib/mcrt0.o"  /*Startup routine for -p */
