diff -r -u bcc/Makefile bcc.new/Makefile --- bcc/Makefile Tue Nov 7 00:06:11 1995 +++ bcc.new/Makefile Sat Feb 10 12:48:55 1996 @@ -2,6 +2,8 @@ LDFLAGS = CC = gcc +%.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< bcc: bcc.c $(CC) $(CFLAGS) $(LDFLAGS) $@.c -o $@ @@ -16,8 +18,13 @@ loadexp.c longop.c output.c preproc.c preserve.c scan.c softop.c \ state.c table.c type.c assign.c -bcc-cc1: $(SOURCES) - $(CC) $(CFLAGS) $(LDFLAGS) $(SOURCES) -o bcc-cc1 +OBJS = bcc-cc1.o codefrag.o debug.o declare.o express.o exptree.o floatop.o \ + function.o gencode.o genloads.o glogcode.o hardop.o input.o label.o \ + loadexp.o longop.o output.o preproc.o preserve.o scan.o softop.o \ + state.o table.o type.o assign.o + +bcc-cc1: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) -o bcc-cc1 clean: rm -f bcc bcc09 ccc Only in bcc: bcc Binary files bcc/bcc-cc1 and bcc.new/bcc-cc1 differ diff -r -u bcc/bcc.c bcc.new/bcc.c --- bcc/bcc.c Tue Nov 7 00:05:59 1995 +++ bcc.new/bcc.c Sun Jan 21 17:54:28 1996 @@ -58,6 +58,8 @@ #undef BCC86 #undef CRT0 #undef GCC +#undef CC1 +#define CC1 "bcc09-cc1" #undef STANDARD_CRT0_0_PREFIX #undef STANDARD_CRT0_3_PREFIX #undef STANDARD_EXEC_PREFIX @@ -370,7 +372,9 @@ ccargs.prog = fixpath(ccargs.prog, &exec_prefix, X_OK); asargs.prog = fixpath(asargs.prog, &exec_prefix, X_OK); ldargs.prog = fixpath(ldargs.prog, &exec_prefix, X_OK); +#ifdef BAS86 ldrargs.prog = fixpath(ldrargs.prog, &exec_prefix, X_OK); +#endif if (tmpdir == NULL && (tmpdir = getenv("TMPDIR")) == NULL) tmpdir = "/tmp"; diff -r -u bcc/scan.h bcc.new/scan.h --- bcc/scan.h Sat Nov 14 16:12:34 1992 +++ bcc.new/scan.h Sat Feb 10 12:37:48 1996 @@ -148,6 +148,7 @@ STATICDECL, TYPEDEFDECL, + ASMSYM, BREAKSYM, CASESYM, CONTSYM, diff -r -u bcc/state.c bcc.new/state.c --- bcc/state.c Sat Nov 14 16:50:07 1992 +++ bcc.new/state.c Sat Feb 10 14:27:44 1996 @@ -73,6 +73,7 @@ FORWARD void dowhile P((void)); FORWARD void jumptocases P((void)); FORWARD void statement P((void)); +FORWARD void doasm P((void)); /* --- utility routines --- */ @@ -231,6 +232,20 @@ rbrace(); } +PRIVATE void doasm() +{ + lparen(); + if (sym!=STRINGCONST) + error("string const expected"); + else { + nextsym(); + constant.value.s[charptr-constant.value.s]='\0'; + outnstr(constant.value.s); + rparen(); + semicolon(); + } +} + PRIVATE void dobreak() { offset_t spmark; @@ -747,6 +762,10 @@ case SEMICOLON: nextsym(); return; + case ASMSYM: + nextsym(); + doasm(); + break; case IDENT: case TYPEDEFNAME: blanks(); /* cannot afford nextsym() */ diff -r -u bcc/table.c bcc.new/table.c --- bcc/table.c Sat Nov 14 16:12:38 1992 +++ bcc.new/table.c Sat Feb 10 12:37:07 1996 @@ -27,7 +27,7 @@ #define MARKER ((unsigned) 0x18C396A5L) /* lint everywhere it is used */ #define MAXEXPR 500 #define MAXLOCAL 100 -#define NKEYWORDS 34 +#define NKEYWORDS 35 #define NSCALTYPES 12 #define STACKSPACE 256 /* punt for normal recursions - switch extra */ @@ -92,6 +92,7 @@ { "typedef", TYPEDEFDECL, }, + { "asm", ASMSYM, }, { "break", BREAKSYM, }, { "case", CASESYM, }, { "continue", CONTSYM, },