Pristine Ack-5.5
[Ack-5.5.git] / util / ceg / util / make_ceg
1 # $Id: make_ceg,v 1.5 1994/06/24 10:55:15 ceriel Exp $
2
3 #PARAMS         do not remove this line!
4
5 #requires definitions for OBJ and SRC_DIR; not to be called directly
6
7 CEG = $(TARGET_HOME)/lib.bin/ceg
8
9 Em   = $(CEG)/EM_parser/$(OBJ)_EM_pars
10 ASMAIN = $(CEG)/assemble/$(OBJ)_assemble
11 AS   = $(CEG)/as_parser
12 EVAL = $(CEG)/as_parser/eval
13 DEF = $(CEG)/defaults
14
15 IFILES  = -I. -I$(SRC_DIR) -I.. -I$(AS) -I$(Em) -I$(TARGET_HOME)/h -I$(TARGET_HOME)/modules/h -I../back
16
17 CFLAGS = $(COPTIONS) $(IFILES) -DNDEBUG
18 LDFLAGS = $(LDOPTIONS)
19
20 CEG_LIBS = $(TARGET_HOME)/modules/lib/liballoc.$(LIBSUF)\
21            $(TARGET_HOME)/modules/lib/libprint.$(LIBSUF)\
22            $(TARGET_HOME)/modules/lib/libstring.$(LIBSUF)\
23            $(TARGET_HOME)/modules/lib/libsystem.$(LIBSUF)
24
25 all:    ceg/ceg
26
27 obj_list:       ceg/as_lib.$(LIBSUF) ceg/as_instr.$(SUF) ceg/eval_as.$(SUF)
28                 echo 'ceg/as_instr.$(SUF) ceg/eval_as.$(SUF) ceg/as_lib.$(LIBSUF)' > ceg/list
29
30 as_list:        ceg/as_lib.$(LIBSUF)
31                 echo 'ceg/as_lib.$(LIBSUF)' > ceg/list
32
33 ceg/list:               $(OBJ)_list
34
35 ceg/ceg:        ceg/list
36                 $(CC) $(LDFLAGS) -o ceg/ceg $(Em)/*.$(SUF) `cat ceg/list` $(CEG_LIBS)
37
38 ceg/as_lib.$(LIBSUF):
39         -mkdir ceg
40         cp $(CEG)/util/make_ceg ceg/Makefile
41         cd ceg ; cp $(ASMAIN)/* . ; $(CC) -c $(CFLAGS) *.c; $(AR) r as_lib.$(LIBSUF) *.$(SUF) ; cd ..
42         $(RANLIB) ceg/as_lib.$(LIBSUF)
43
44 ceg/eval_as.$(SUF) : ceg/eval_as.c $(SRC_DIR)/as.h # $(AS)/as_parser.h $(Em)/arg_type.h
45         cd ceg ; $(CC) -c $(CFLAGS) eval_as.c ; cd ..
46
47 ceg/eval_as.c : $(SRC_DIR)/as.c # $(EVAL)/eval
48         cd ceg ; $(EVAL)/eval < $(SRC_DIR)/as.c > eval_as.c ; cd ..
49
50 ceg/as_instr.$(SUF) : $(SRC_DIR)/as.h ceg/as_lib.$(LIBSUF) ceg/as_instr.c
51         cd ceg ; $(CC) -c $(CFLAGS) as_instr.c ; cd ..
52
53 ceg/as_instr.c : $(SRC_DIR)/as_table # $(AS)/as_parser
54         cd ceg ; $(TARGET_HOME)/lib.bin/cpp -P $(SRC_DIR)/as_table | $(AS)/as_parser > as_instr.c ; cd ..