/*ident	"@(#)cls4:tools/pt/pt.h	1.4" */
/************************* CUSTOMIZATION SECTION *************************/

#if mips				/* path of nm */
#define NMPATH "/usr/bin/nm -B"		/* specify whatever options are */
#endif					/* needed to produce BSD or SysV */
#if hpux				/* output formats */
#define NMPATH "/bin/nm -p"
#endif
#ifndef NMPATH
#define NMPATH "/bin/nm"
#endif

#if sun || tahoe			/* if have fast fork() */
#define fork vfork
#endif

#define LSPATH "/bin/ls"		/* ls path and options */

#define SRC_EXT ".c"			/* extension of C++ source files */
#define INC_EXT ".h"			/* extension of C++ header files */
#define OBJ_EXT ".o"			/* extension of object files */
#define ARC_EXT ".a"			/* extension of archive libraries */
#define DDC_EXT "..c"			/* extension of ..c files */

#if sun || tahoe			/* if filesystem supports file */
#define LONG_NAMES			/* names more than 14 characters */
#endif

/*#define SLOW_SYSTEM*/			/* to use standard versions of */
					/* system() and popen() if */
					/* optimized versions not suitable */

/*#define NO_LOCK*/			/* to disable locking or do your own */

#define LOCK_FCNTL			/* which style of locking */
/*#define LOCK_FLOCK*/
/*#define LOCK_LOCKF*/

#define LOCK_MAX 360			/* maximum iterations to get lock */
#define LOCK_SLEEP 10			/* sleep interval between lock tries */

/*#define NO_SIGNAL*/			/* to not use signals (in ptcomp.c) */
#ifndef NO_SIGNAL			/* to disable interrupts when */
#include <signal.h>			/* the default map file is rewritten */
#else
#define SIG_IGN 0
#endif

/*#define CHECKSUM*/			/* to get back old checksum scheme */

/************************* END CUSTOMIZATION *************************/

/********** NO CHANGES SHOULD BE REQUIRED BELOW THIS POINT **********/

#define MAXLINE 1024			/* general buffer use */
#define MAXPATH 1024			/* max pathname length */
#define MAXCBUF 4096			/* max command buffer */

#define LISTSTART 16			/* starting size of string lists */

#define SYMTSIZE 2003			/* symbol table size (a prime) */
#define TFTABSIZE 997			/* file mapping table (prime) */
#define MAXMAPL 16384			/* max size of a map file line */
#define MAXCPP 16384			/* max length of cpp output line */
#define CS_EXT ".cs"			/* checksum extension */
#define HC_EXT ".hc"			/* used for short filenames */
#define HE_EXT ".he"			/* used for header caches */
#define FTSIZE 97			/* size of file name list (prime) */
#define DISIZE 97			/* size of dir inst table (prime) */

#define FTSIZE2 4001			/* size of filename table (prime) */
#define TFTABSIZE2 4001			/* type -> file map table (prime) */
#define BNSIZE 997			/* basename table (prime) */

#define STRCMP(s, t) ((s)[0] != (t)[0] || strcmp((s), (t)) != 0)
					/* fast strcmp() */

#ifdef SLOW_SYSTEM
#define fast_system system
#define fast_popen popen
#define fast_pclose pclose
#endif

char* gs();				/* function declarations */
char* copy();
char* basename();
unsigned long timestamp();
unsigned long hash();
FILE* fast_popen();
char* malloc();
long time();
void exit();

typedef struct Slist Slist;		/* string lists */
struct Slist {
	int n;
	int max;
	char** ptrs;
};
