ack/util/ceg/util/make_ceg
1994-06-24 11:31:16 +00:00

55 lines
1.7 KiB
Plaintext

# $Id$
#PARAMS do not remove this line!
#requires definitions for OBJ and SRC_DIR; not to be called directly
CEG = $(TARGET_HOME)/lib.bin/ceg
Em = $(CEG)/EM_parser/$(OBJ)_EM_pars
ASMAIN = $(CEG)/assemble/$(OBJ)_assemble
AS = $(CEG)/as_parser
EVAL = $(CEG)/as_parser/eval
DEF = $(CEG)/defaults
IFILES = -I. -I$(SRC_DIR) -I.. -I$(AS) -I$(Em) -I$(TARGET_HOME)/h -I$(TARGET_HOME)/modules/h -I../back
CFLAGS = $(COPTIONS) $(IFILES) -DNDEBUG
LDFLAGS = $(LDOPTIONS)
CEG_LIBS = $(TARGET_HOME)/modules/lib/liballoc.$(LIBSUF)\
$(TARGET_HOME)/modules/lib/libprint.$(LIBSUF)\
$(TARGET_HOME)/modules/lib/libstring.$(LIBSUF)\
$(TARGET_HOME)/modules/lib/libsystem.$(LIBSUF)
all: ceg/ceg
obj_list: ceg/as_lib.$(LIBSUF) ceg/as_instr.$(SUF) ceg/eval_as.$(SUF)
echo 'ceg/as_instr.$(SUF) ceg/eval_as.$(SUF) ceg/as_lib.$(LIBSUF)' > ceg/list
as_list: ceg/as_lib.$(LIBSUF)
echo 'ceg/as_lib.$(LIBSUF)' > ceg/list
ceg/list: $(OBJ)_list
ceg/ceg: ceg/list
$(CC) $(LDFLAGS) -o ceg/ceg $(Em)/*.$(SUF) `cat ceg/list` $(CEG_LIBS)
ceg/as_lib.$(LIBSUF):
-mkdir ceg
cp $(CEG)/util/make_ceg ceg/Makefile
cd ceg ; cp $(ASMAIN)/* . ; $(CC) -c $(CFLAGS) *.c; $(AR) r as_lib.$(LIBSUF) *.$(SUF) ; cd ..
$(RANLIB) ceg/as_lib.$(LIBSUF)
ceg/eval_as.$(SUF) : ceg/eval_as.c $(SRC_DIR)/as.h # $(AS)/as_parser.h $(Em)/arg_type.h
cd ceg ; $(CC) -c $(CFLAGS) eval_as.c ; cd ..
ceg/eval_as.c : $(SRC_DIR)/as.c # $(EVAL)/eval
cd ceg ; $(EVAL)/eval < $(SRC_DIR)/as.c > eval_as.c ; cd ..
ceg/as_instr.$(SUF) : $(SRC_DIR)/as.h ceg/as_lib.$(LIBSUF) ceg/as_instr.c
cd ceg ; $(CC) -c $(CFLAGS) as_instr.c ; cd ..
ceg/as_instr.c : $(SRC_DIR)/as_table # $(AS)/as_parser
cd ceg ; $(TARGET_HOME)/lib.bin/cpp -P $(SRC_DIR)/as_table | $(AS)/as_parser > as_instr.c ; cd ..