]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/CCode/Source/Pccts/support/genmk/genmk_old.c
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / Tools / CCode / Source / Pccts / support / genmk / genmk_old.c
diff --git a/Tools/CCode/Source/Pccts/support/genmk/genmk_old.c b/Tools/CCode/Source/Pccts/support/genmk/genmk_old.c
deleted file mode 100644 (file)
index 2cf9fad..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-/*\r
- * genmk -- a program to make makefiles for PCCTS\r
- *\r
- * ANTLR 1.33MR10\r
- * Terence John Parr 1989 - 1998\r
- * Purdue University\r
- * U of MN\r
- */\r
-\r
-#include <stdio.h>\r
-#include "pcctscfg.h" /* be sensitive to what ANTLR/DLG call the files */\r
-\r
-#ifdef VAXC\r
-#define DIE            return 0;\r
-#define DONE   return 1;\r
-#else\r
-#define DIE            return 1;\r
-#define DONE   return 0;\r
-#endif\r
-\r
-#ifndef require\r
-#define require(expr, err) {if ( !(expr) ) fatal(err);}\r
-#endif\r
-\r
-#define MAX_FILES      50\r
-#define MAX_CLASSES    50\r
-\r
-char *RENAME_OBJ_FLAG="-o",\r
-     *RENAME_EXE_FLAG="-o";\r
-\r
-char *dlg = "parser.dlg";\r
-char *err = "err.c";\r
-char *hdr = "stdpccts.h";\r
-char *tok = "tokens.h";\r
-char *mode = "mode.h";\r
-char *scan = "scan";\r
-\r
-char ATOKENBUFFER_O[100];\r
-char APARSER_O[100];\r
-char ASTBASE_O[100];\r
-char PCCTSAST_O[100];\r
-char LIST_O[100];\r
-char DLEXERBASE_O[100];\r
-\r
-/* Option flags */\r
-static char *project="t", *files[MAX_FILES], *classes[MAX_CLASSES];\r
-static int     num_files = 0;\r
-static int     num_classes = 0;\r
-static int     user_lexer = 0;\r
-static char    *user_token_types = NULL;\r
-static int     gen_CPP = 0;\r
-static char *outdir=".";\r
-static char *dlg_class = "DLGLexer";\r
-static int     gen_trees = 0;\r
-static int  gen_hoist = 0;\r
-static char cfiles[1600]="";\r
-static char *compilerCCC="CC";\r
-static char *compilerCC="cc";\r
-static char *pccts_path="/usr/local/pccts";\r
-\r
-void help();\r
-void mk();\r
-void pfiles();\r
-void pclasses();\r
-void fatal();\r
-void warn();\r
-\r
-typedef struct _Opt {\r
-                       char *option;\r
-                       int  arg;\r
-#ifdef __cplusplus\r
-                       void (*process)(...);\r
-#else\r
-                       void (*process)();\r
-#endif\r
-                       char *descr;\r
-               } Opt;\r
-\r
-#ifdef __STDC__\r
-static void ProcessArgs(int, char **, Opt *);\r
-#else\r
-static void ProcessArgs();\r
-#endif\r
-\r
-static void\r
-pProj( s, t )\r
-char *s;\r
-char *t;\r
-{\r
-       project = t;\r
-}\r
-\r
-static void\r
-pUL( s )\r
-char *s;\r
-{\r
-       user_lexer = 1;\r
-}\r
-\r
-static void\r
-pCPP( s )\r
-char *s;\r
-{\r
-       gen_CPP = 1;\r
-}\r
-\r
-static void\r
-pUT( s, t )\r
-char *s;\r
-char *t;\r
-{\r
-       user_token_types = t;\r
-}\r
-\r
-static void\r
-pTrees( s )\r
-char *s;\r
-{\r
-       gen_trees = 1;\r
-}\r
-\r
-static void\r
-pHoist( s )\r
-char *s;\r
-{\r
-       gen_hoist = 1;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pFile( char *s )\r
-#else\r
-pFile( s )\r
-char *s;\r
-#endif\r
-{\r
-       if ( *s=='-' )\r
-       {\r
-               fprintf(stderr, "invalid option: '%s'; ignored...",s);\r
-               return;\r
-       }\r
-\r
-       require(num_files<MAX_FILES, "exceeded max # of input files");\r
-       files[num_files++] = s;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pClass( char *s, char *t )\r
-#else\r
-pClass( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-       require(num_classes<MAX_CLASSES, "exceeded max # of grammar classes");\r
-       classes[num_classes++] = t;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pDLGClass( char *s, char *t )\r
-#else\r
-pDLGClass( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-       if ( !gen_CPP ) {\r
-               fprintf(stderr, "-dlg-class makes no sense without C++ mode; ignored...");\r
-       }\r
-       else dlg_class = t;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pOdir( char *s, char *t )\r
-#else\r
-pOdir( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-       outdir = t;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pHdr( char *s, char *t )\r
-#else\r
-pHdr( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-       hdr = t;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pCFiles( char *s, char *t )\r
-#else\r
-pCFiles( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-       strcat(strcat(cfiles," "), t);\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-pCompiler( char *s, char *t )\r
-#else\r
-pCompiler( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-        compilerCCC = t;\r
-       compilerCC = t;\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-ppccts_path( char *s, char *t )\r
-#else\r
-ppccts_path( s, t )\r
-char *s;\r
-char *t;\r
-#endif\r
-{\r
-        pccts_path = t;\r
-}\r
-\r
-Opt options[] = {\r
-    { "-CC", 0,        pCPP,                   "Generate C++ output"},\r
-    { "-class", 1,     pClass,         "Name of a grammar class defined in grammar (if C++)"},\r
-    { "-dlg-class", 1,pDLGClass,"Name of DLG lexer class (default=DLGLexer) (if C++)"},\r
-    { "-header", 1,pHdr,               "Name of ANTLR standard header info (default=no file)"},\r
-    { "-o", 1, pOdir,                  "Directory where output files should go (default=\".\")"},\r
-    { "-project", 1,   pProj,  "Name of executable to create (default=t)"},\r
-    { "-token-types", 1, pUT,  "Token types are in this file (don't use tokens.h)"},\r
-    { "-trees", 0, pTrees,             "Generate ASTs"},\r
-    { "-user-lexer", 0,        pUL,    "Do not create a DLG-based scanner"},\r
-    { "-mrhoist",0,pHoist,      "Maintenance release style hoisting"},\r
-    { "-cfiles",1,pCFiles,      "Additional files in C or C++ to compile"},\r
-    { "-pccts_path",1,ppccts_path,\r
-              "Path for $PCCTS directory (default is /usr/local/pccts)"},\r
-    { "-compiler",1,pCompiler,\r
-              "Default compiler (default is CC/cc)"},\r
-    { "*", 0,pFile,            "" },   /* anything else is a file */\r
-       { NULL, 0, NULL, NULL }\r
-};\r
-\r
-extern char *DIR();\r
-\r
-int main(argc, argv)\r
-int argc;\r
-char **argv;\r
-{\r
-       if ( argc == 1 ) { help(); DIE; }\r
-       ProcessArgs(argc-1, &(argv[1]), options);\r
-\r
-       strcpy(ATOKENBUFFER_O, ATOKENBUFFER_C);\r
-       ATOKENBUFFER_O[strlen(ATOKENBUFFER_C)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(ATOKENBUFFER_O, OBJ_FILE_SUFFIX);\r
-       strcpy(APARSER_O, APARSER_C);\r
-       APARSER_O[strlen(APARSER_O)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(APARSER_O, OBJ_FILE_SUFFIX);\r
-\r
-       strcpy(ASTBASE_O, ASTBASE_C);\r
-       ASTBASE_O[strlen(ASTBASE_C)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(ASTBASE_O, OBJ_FILE_SUFFIX);\r
-\r
-       strcpy(PCCTSAST_O, PCCTSAST_C);\r
-       PCCTSAST_O[strlen(PCCTSAST_C)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(PCCTSAST_O, OBJ_FILE_SUFFIX);\r
-\r
-       strcpy(LIST_O, LIST_C);\r
-       LIST_O[strlen(LIST_C)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(LIST_O, OBJ_FILE_SUFFIX);\r
-\r
-       strcpy(DLEXERBASE_O, DLEXERBASE_C);\r
-       DLEXERBASE_O[strlen(DLEXERBASE_C)-strlen(CPP_FILE_SUFFIX)] = '\0';\r
-       strcat(DLEXERBASE_O, OBJ_FILE_SUFFIX);\r
-\r
-       if ( num_files == 0 ) fatal("no grammar files specified; exiting...");\r
-       if ( !gen_CPP && num_classes>0 ) {\r
-               warn("can't define classes w/o C++ mode; turning on C++ mode...\n");\r
-               gen_CPP=1;\r
-       }\r
-       if ( gen_CPP && num_classes==0 ) {\r
-               fatal("must define classes >0 grammar classes in C++ mode\n");\r
-       }\r
-\r
-       mk(project, files, num_files, argc, argv);\r
-       DONE;\r
-}\r
-\r
-void help()\r
-{\r
-       Opt *p = options;\r
-       static char buf[1000+1];\r
-\r
-       fprintf(stderr, "genmk [options] f1.g ... fn.g\n");\r
-       while ( p->option!=NULL && *(p->option) != '*' )\r
-       {\r
-               buf[0]='\0';\r
-               if ( p->arg ) sprintf(buf, "%s ___", p->option);\r
-               else strcpy(buf, p->option);\r
-               fprintf(stderr, "\t%-16s   %s\n", buf, p->descr);\r
-               p++;\r
-       }\r
-}\r
-\r
-void mk(project, files, n, argc, argv)\r
-char *project;\r
-char **files;\r
-int n;\r
-int argc;\r
-char **argv;\r
-{\r
-       int i;\r
-\r
-       printf("#\n");\r
-       printf("# PCCTS makefile for: ");\r
-       pfiles(files, n, NULL);\r
-       printf("\n");\r
-       printf("#\n");\r
-       printf("# Created from:");\r
-       for (i=0; i<argc; i++) printf(" %s", argv[i]);\r
-       printf("\n");\r
-       printf("#\n");\r
-       printf("# PCCTS release 1.33MR21\n");\r
-       printf("# Project: %s\n", project);\r
-       if ( gen_CPP ) printf("# C++ output\n");\r
-       else printf("# C output\n");\r
-       if ( user_lexer ) printf("# User-defined scanner\n");\r
-       else printf("# DLG scanner\n");\r
-       if ( user_token_types!=NULL ) printf("# User-defined token types in '%s'\n", user_token_types);\r
-       else printf("# ANTLR-defined token types\n");\r
-       printf("#\n");\r
-       printf(".SUFFIXES:\n.SUFFIXES:      .o .cpp .c .h .g .i .dlg\n"); \r
-       if ( user_token_types!=NULL ) {\r
-               printf("# Make sure #tokdefs directive in ANTLR grammar lists this file:\n");\r
-               printf("TOKENS = %s", user_token_types);\r
-       }\r
-       else printf("TOKENS = %stokens.h", DIR());\r
-       printf("\n");\r
-       printf("#\n");\r
-       printf("# The following filenames must be consistent with ANTLR/DLG flags\n");\r
-       printf("DLG_FILE = %s%s\n", DIR(), dlg);\r
-       printf("ERR = %serr\n", DIR());\r
-       if ( strcmp(hdr,"stdpccts.h")!=0 ) printf("HDR_FILE = %s%s\n", DIR(), hdr);\r
-       else printf("HDR_FILE =\n");\r
-       if ( !gen_CPP ) printf("MOD_FILE = %s%s\n", DIR(), mode);\r
-       if ( !gen_CPP ) printf("SCAN = %s\n", scan);\r
-       else printf("SCAN = %s%s\n", DIR(), dlg_class);\r
-\r
-       printf("PCCTS = %s\n",pccts_path);\r
-       printf("ANTLR_H = $(PCCTS)%sh\n", DirectorySymbol);\r
-       printf("BIN = $(PCCTS)%sbin\n", DirectorySymbol);\r
-       printf("ANTLR = $(BIN)%santlr\n", DirectorySymbol);\r
-       printf("DLG = $(BIN)%sdlg\n", DirectorySymbol);\r
-       printf("CFLAGS = -I. -I$(ANTLR_H)");\r
-       if ( strcmp(outdir, ".")!=0 ) printf(" -I%s", outdir);\r
-    printf(" $(COTHER)");\r
-       printf("\n");\r
-       printf("AFLAGS =");\r
-       if ( strcmp(outdir,".")!=0 ) printf(" -o %s", outdir);\r
-       if ( user_lexer ) printf(" -gx");\r
-       if ( gen_CPP ) printf(" -CC");\r
-       if ( strcmp(hdr,"stdpccts.h")!=0 ) printf(" -gh %s", hdr);\r
-       if ( gen_trees ) printf(" -gt");\r
-    if ( gen_hoist ) {\r
-      printf(" -mrhoist on") ;\r
-    } else {\r
-      printf(" -mrhoist off");\r
-    };\r
-    printf(" $(AOTHER)");\r
-       printf("\n");\r
-       printf("DFLAGS = -C2 -i");\r
-       if ( gen_CPP ) printf(" -CC");\r
-       if ( strcmp(dlg_class,"DLGLexer")!=0 ) printf(" -cl %s", dlg_class);\r
-       if ( strcmp(outdir,".")!=0 ) printf(" -o %s", outdir);\r
-    printf(" $(DOTHER)");\r
-       printf("\n");\r
-       printf("GRM = ");\r
-       pfiles(files, n, NULL);\r
-       printf("\n");\r
-       printf("MYFILES = %s\n",cfiles);\r
-       printf("SRC = ");\r
-       if ( gen_CPP ) pfiles(files, n, CPP_FILE_SUFFIX_NO_DOT);\r
-       else pfiles(files, n, "c");\r
-       if ( gen_CPP ) {\r
-               printf(" \\\n     ");\r
-               printf(" ");\r
-               pclasses(classes, num_classes, CPP_FILE_SUFFIX_NO_DOT);\r
-               printf(" \\\n      ");\r
-               printf("$(ANTLR_H)%s%s", DirectorySymbol, APARSER_C);\r
-               if ( !user_lexer ) printf(" $(ANTLR_H)%s%s", DirectorySymbol, DLEXERBASE_C);\r
-               if ( gen_trees ) {\r
-                       printf(" \\\n      ");\r
-                       printf("$(ANTLR_H)%s%s", DirectorySymbol, ASTBASE_C);\r
-                       printf(" $(ANTLR_H)%s%s", DirectorySymbol, PCCTSAST_C);\r
-/*                     printf(" $(ANTLR_H)%s%s", DirectorySymbol, LIST_C); */\r
-                       printf(" \\\n      ");\r
-               }\r
-               printf(" $(ANTLR_H)%s%s", DirectorySymbol, ATOKENBUFFER_C);\r
-       }\r
-       if ( !user_lexer ) {\r
-               if ( gen_CPP ) printf(" $(SCAN)%s", CPP_FILE_SUFFIX);\r
-               else printf(" %s$(SCAN).c", DIR());\r
-       }\r
-       if ( !gen_CPP ) printf(" $(ERR).c");\r
-       printf("\\\n    $(MYFILES)\n");\r
-       printf("OBJ = ");\r
-       pfiles(files, n, "o");\r
-       if ( gen_CPP ) {\r
-               printf(" \\\n     ");\r
-               printf(" ");\r
-               pclasses(classes, num_classes, "o");\r
-               printf(" \\\n      ");\r
-               printf(" %s%s", DIR(), APARSER_O);\r
-               if ( !user_lexer ) {\r
-                       printf(" %s%s", DIR(), DLEXERBASE_O);\r
-               }\r
-               if ( gen_trees ) {\r
-                       printf(" \\\n      ");\r
-                       printf("%s%s", DIR(), ASTBASE_O);\r
-                       printf(" %s%s", DIR(), PCCTSAST_O);\r
-/*                     printf(" %s%s", DIR(), LIST_O); */\r
-                       printf(" \\\n      ");\r
-               }\r
-               printf(" %s%s", DIR(), ATOKENBUFFER_O);\r
-       }\r
-       if ( !user_lexer ) {\r
-               if ( gen_CPP ) printf(" $(SCAN)%s", OBJ_FILE_SUFFIX);\r
-               else printf(" %s$(SCAN)%s", DIR(), OBJ_FILE_SUFFIX);\r
-       }\r
-       if ( !gen_CPP ) printf(" $(ERR)%s", OBJ_FILE_SUFFIX);\r
-       printf("\\\n    $(MYFILES:.cpp=.o)\n");\r
-\r
-       printf("ANTLR_SPAWN = ");\r
-       if ( gen_CPP ) pfiles(files, n, CPP_FILE_SUFFIX_NO_DOT);\r
-       else pfiles(files, n, "c");\r
-       if ( gen_CPP ) {\r
-               printf(" ");\r
-               pclasses(classes, num_classes, CPP_FILE_SUFFIX_NO_DOT);\r
-               printf(" \\\n              ");\r
-               pclasses(classes, num_classes, "h");\r
-               if ( strcmp(hdr,"stdpccts.h")!=0 ) {\r
-                       printf(" \\\n              ");\r
-                       printf("$(HDR_FILE) stdpccts.h");\r
-               }\r
-       }\r
-       if ( user_lexer ) {\r
-               if ( !user_token_types ) printf(" $(TOKENS)");\r
-       }\r
-       else {\r
-               printf(" $(DLG_FILE)");\r
-               if ( !user_token_types ) printf(" $(TOKENS)");\r
-       }\r
-       if ( !gen_CPP ) printf(" $(ERR).c");\r
-       printf("\n");\r
-\r
-       if ( !user_lexer ) {\r
-               if ( gen_CPP ) printf("DLG_SPAWN = $(SCAN)%s", CPP_FILE_SUFFIX);\r
-               else printf("DLG_SPAWN = %s$(SCAN).c", DIR());\r
-               if ( gen_CPP ) printf(" $(SCAN).h");\r
-               if ( !gen_CPP ) printf(" $(MOD_FILE)");\r
-               printf("\n");\r
-       }\r
-\r
-       if ( gen_CPP ) {\r
-               printf("CCC = %s\n",compilerCCC);\r
-       }\r
-       else printf("CC = %s\n",compilerCC);\r
-\r
-       /* set up dependencies */\r
-       printf("\n%s : $(OBJ) $(SRC)\n", project);\r
-       printf("        %s %s %s $(CFLAGS) $(OBJ)\n",\r
-                  gen_CPP?"$(CCC)":"$(CC)",\r
-                  RENAME_EXE_FLAG,\r
-                  project);\r
-       printf("\n");\r
-\r
-       /* implicit rules */\r
-\r
-       if(gen_CPP)\r
-               printf("%%.o : %%.cpp\n\t$(CCC) -c $(CFLAGS) $<\n\n");\r
-\r
-       printf("%%.o : %%.c\n\t%s -c $(CFLAGS) $<\n\n",\r
-                       gen_CPP?"$(CCC)":"$(CC)");\r
-\r
-       /* how to compile parser files */\r
-\r
-       for (i=0; i<num_files; i++)\r
-       {\r
-               pfiles(&files[i], 1, "o");\r
-               if ( user_lexer ) {\r
-                       printf(" : $(TOKENS)");\r
-               }\r
-               else {\r
-                       if ( gen_CPP ) printf(" : $(TOKENS) $(SCAN).h");\r
-                       else printf(" : $(MOD_FILE) $(TOKENS)");\r
-               }\r
-               printf(" ");\r
-               if ( gen_CPP ) pfiles(&files[i], 1, CPP_FILE_SUFFIX_NO_DOT);\r
-               else pfiles(&files[i], 1, "c");\r
-               if ( gen_CPP && strcmp(hdr,"stdpccts.h")!=0 ) printf(" $(HDR_FILE)");\r
-               printf("\n");\r
-               printf("        %s -c $(CFLAGS) %s ",\r
-                      gen_CPP?"$(CCC)":"$(CC)",RENAME_OBJ_FLAG);\r
-               pfiles(&files[i], 1, "o");\r
-               printf(" ");\r
-               if ( gen_CPP ) pfiles(&files[i], 1, CPP_FILE_SUFFIX_NO_DOT);\r
-               else pfiles(&files[i], 1, "c");\r
-               printf("\n\n");\r
-       }\r
-\r
-       /* how to compile err.c */\r
-       if ( !gen_CPP ) {\r
-               printf("$(ERR)%s : $(ERR).c", OBJ_FILE_SUFFIX);\r
-               if ( !user_lexer ) printf(" $(TOKENS)");\r
-               printf("\n");\r
-               printf("        %s -c $(CFLAGS) %s $(ERR)%s $(ERR).c",\r
-                          gen_CPP?"$(CCC)":"$(CC)",\r
-                          RENAME_OBJ_FLAG,\r
-                          OBJ_FILE_SUFFIX);\r
-               printf("\n\n");\r
-       }\r
-\r
-       /* how to compile Class.c */\r
-       for (i=0; i<num_classes; i++)\r
-       {\r
-               pclasses(&classes[i], 1, "o");\r
-               if ( user_lexer ) {\r
-                       printf(" : $(TOKENS)");\r
-               }\r
-               else {\r
-                       printf(" : $(TOKENS) $(SCAN).h");\r
-               }\r
-               printf(" ");\r
-               pclasses(&classes[i], 1, CPP_FILE_SUFFIX_NO_DOT);\r
-               printf(" ");\r
-               pclasses(&classes[i], 1, "h");\r
-               if ( gen_CPP && strcmp(hdr,"stdpccts.h")!=0 ) printf(" $(HDR_FILE)");\r
-               printf("\n");\r
-               printf("        %s -c $(CFLAGS) %s ",\r
-                          gen_CPP?"$(CCC)":"$(CC)",\r
-                          RENAME_OBJ_FLAG);\r
-               pclasses(&classes[i], 1, "o");\r
-               printf(" ");\r
-               pclasses(&classes[i], 1, CPP_FILE_SUFFIX_NO_DOT);\r
-               printf("\n\n");\r
-       }\r
-\r
-       /* how to compile scan.c */\r
-       if ( !user_lexer ) {\r
-               if ( gen_CPP ) printf("$(SCAN)%s : $(SCAN)%s", OBJ_FILE_SUFFIX, CPP_FILE_SUFFIX);\r
-               else printf("%s$(SCAN)%s : %s$(SCAN).c", DIR(), OBJ_FILE_SUFFIX, DIR());\r
-               if ( !user_lexer ) printf(" $(TOKENS)");\r
-               printf("\n");\r
-               if ( gen_CPP ) printf(" $(CCC) -c $(CFLAGS) %s $(SCAN)%s $(SCAN)%s",\r
-                                                         RENAME_OBJ_FLAG,\r
-                                                         OBJ_FILE_SUFFIX,\r
-                                                         CPP_FILE_SUFFIX);\r
-               else printf("   $(CC) -c $(CFLAGS) %s %s$(SCAN)%s %s$(SCAN).c",\r
-                                       RENAME_OBJ_FLAG,\r
-                                       DIR(),\r
-                                       OBJ_FILE_SUFFIX,\r
-                                       DIR());\r
-               printf("\n\n");\r
-       }\r
-\r
-       printf("$(ANTLR_SPAWN) : $(GRM)\n");\r
-       printf("        $(ANTLR) $(AFLAGS) $(GRM)\n");\r
-\r
-       if ( !user_lexer )\r
-       {\r
-               printf("\n");\r
-               printf("$(DLG_SPAWN) : $(DLG_FILE)\n");\r
-               if ( gen_CPP ) printf(" $(DLG) $(DFLAGS) $(DLG_FILE)\n");\r
-               else printf("   $(DLG) $(DFLAGS) $(DLG_FILE) $(SCAN).c\n");\r
-       }\r
-\r
-       /* do the makes for ANTLR/DLG support */\r
-       if ( gen_CPP ) {\r
-               printf("\n");\r
-               printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), APARSER_O, DirectorySymbol, APARSER_C);\r
-               printf("        %s -c $(CFLAGS) %s ",\r
-                          gen_CPP?"$(CCC)":"$(CC)",\r
-                          RENAME_OBJ_FLAG);\r
-               printf("%s%s $(ANTLR_H)%s%s\n", DIR(), APARSER_O, DirectorySymbol, APARSER_C);\r
-               printf("\n");\r
-               printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), ATOKENBUFFER_O, DirectorySymbol, ATOKENBUFFER_C);\r
-               printf("        %s -c $(CFLAGS) %s ",\r
-                          gen_CPP?"$(CCC)":"$(CC)",\r
-                          RENAME_OBJ_FLAG);\r
-               printf("%s%s $(ANTLR_H)%s%s\n", DIR(), ATOKENBUFFER_O, DirectorySymbol, ATOKENBUFFER_C);\r
-               if ( !user_lexer ) {\r
-                       printf("\n");\r
-                       printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), DLEXERBASE_O, DirectorySymbol, DLEXERBASE_C);\r
-                       printf("        %s -c $(CFLAGS) %s ",\r
-                                  gen_CPP?"$(CCC)":"$(CC)",\r
-                                  RENAME_OBJ_FLAG);\r
-                       printf("%s%s $(ANTLR_H)%s%s\n", DIR(), DLEXERBASE_O, DirectorySymbol, DLEXERBASE_C);\r
-               }\r
-               if ( gen_trees ) {\r
-                       printf("\n");\r
-                       printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), ASTBASE_O, DirectorySymbol, ASTBASE_C);\r
-                       printf("        %s -c $(CFLAGS) %s ",\r
-                                  gen_CPP?"$(CCC)":"$(CC)",\r
-                                  RENAME_OBJ_FLAG);\r
-                       printf("%s%s $(ANTLR_H)%s%s\n", DIR(), ASTBASE_O, DirectorySymbol, ASTBASE_C);\r
-                       printf("\n");\r
-                       printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), PCCTSAST_O, DirectorySymbol, PCCTSAST_C);\r
-                       printf("        %s -c $(CFLAGS) %s ",\r
-                                  gen_CPP?"$(CCC)":"$(CC)",\r
-                                  RENAME_OBJ_FLAG);\r
-                       printf("%s%s $(ANTLR_H)%s%s\n", DIR(), PCCTSAST_O, DirectorySymbol, PCCTSAST_C);\r
-                       printf("\n");\r
-/*\r
-                       printf("%s%s : $(ANTLR_H)%s%s\n", DIR(), LIST_O, DirectorySymbol, LIST_C);\r
-                       printf("        %s -c $(CFLAGS) %s ",\r
-                              gen_CPP?"$(CCC)":"$(CC)",RENAME_OBJ_FLAG);\r
-                       printf("%s%s $(ANTLR_H)%s%s\n", DIR(), LIST_O, DirectorySymbol, LIST_C);\r
-*/\r
-               }\r
-       }\r
-\r
-       /* clean and scrub targets */\r
-\r
-       printf("\nclean:\n");\r
-       printf("        rm -f *%s core %s", OBJ_FILE_SUFFIX, project);\r
-       if ( strcmp(outdir, ".")!=0 ) printf(" %s*%s", DIR(), OBJ_FILE_SUFFIX);\r
-       printf("\n");\r
-\r
-       printf("\nscrub:\n");\r
-       printf("        rm -f *%s core %s", OBJ_FILE_SUFFIX, project);\r
-       if ( strcmp(outdir, ".")!=0 ) printf(" %s*%s", DIR(), OBJ_FILE_SUFFIX);\r
-       printf(" $(ANTLR_SPAWN)");\r
-       if ( !user_lexer ) printf(" $(DLG_SPAWN)");\r
-       printf("\n");\r
-}\r
-\r
-void pfiles(files, n, suffix)\r
-char **files;\r
-int n;\r
-char *suffix;\r
-{\r
-       int first=1;\r
-\r
-       while ( n>0 )\r
-       {\r
-               char *p = &(*files)[strlen(*files)-1];\r
-               if ( !first ) putchar(' ');\r
-               first=0;\r
-               while ( p > *files && *p != '.' ) --p;\r
-               if ( p == *files )\r
-               {\r
-                       fprintf(stderr,\r
-                                       "genmk: filenames must be file.suffix format: %s\n",\r
-                                       *files);\r
-                       exit(-1);\r
-               }\r
-               if ( suffix == NULL ) printf("%s", *files);\r
-               else\r
-               {\r
-                       *p = '\0';\r
-                       printf("%s", DIR());\r
-                       if ( strcmp(suffix, "o")==0 ) printf("%s%s", *files, OBJ_FILE_SUFFIX);\r
-                       else printf("%s.%s", *files, suffix);\r
-                       *p = '.';\r
-               }\r
-               files++;\r
-               --n;\r
-       }\r
-}\r
-\r
-void pclasses(classes, n, suffix)\r
-char **classes;\r
-int n;\r
-char *suffix;\r
-{\r
-       int first=1;\r
-\r
-       while ( n>0 )\r
-       {\r
-               if ( !first ) putchar(' ');\r
-               first=0;\r
-               if ( suffix == NULL ) printf("%s", *classes);\r
-               else {\r
-                       printf("%s", DIR());\r
-                       if ( strcmp(suffix, "o")==0 ) printf("%s%s", *classes, OBJ_FILE_SUFFIX);\r
-                       else printf("%s.%s", *classes, suffix);\r
-               }\r
-               classes++;\r
-               --n;\r
-       }\r
-}\r
-\r
-static void\r
-#ifdef __STDC__\r
-ProcessArgs( int argc, char **argv, Opt *options )\r
-#else\r
-ProcessArgs( argc, argv, options )\r
-int argc;\r
-char **argv;\r
-Opt *options;\r
-#endif\r
-{\r
-       Opt *p;\r
-       require(argv!=NULL, "ProcessArgs: command line NULL");\r
-\r
-       while ( argc-- > 0 )\r
-       {\r
-               p = options;\r
-               while ( p->option != NULL )\r
-               {\r
-                       if ( strcmp(p->option, "*") == 0 ||\r
-                                strcmp(p->option, *argv) == 0 )\r
-                       {\r
-                               if ( p->arg )\r
-                               {\r
-                                       (*p->process)( *argv, *(argv+1) );\r
-                                       argv++;\r
-                                       argc--;\r
-                               }\r
-                               else\r
-                                       (*p->process)( *argv );\r
-                               break;\r
-                       }\r
-                       p++;\r
-               }\r
-               argv++;\r
-       }\r
-}\r
-\r
-void fatal( err_)\r
-char *err_;\r
-{\r
-    fprintf(stderr, "genmk: %s\n", err_);\r
-    exit(1);\r
-}\r
-\r
-void warn( err_)\r
-char *err_;\r
-{\r
-    fprintf(stderr, "genmk: %s\n", err_);\r
-}\r
-\r
-char *DIR()\r
-{\r
-       static char buf[200+1];\r
-       \r
-       if ( strcmp(outdir,TopDirectory)==0 ) return "";\r
-       sprintf(buf, "%s%s", outdir, DirectorySymbol);\r
-       return buf;\r
-}\r