make_ceg 1.7 KB

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