123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- # $Id$
- #PARAMS do not remove this line!
- SRC_DIR = $(SRC_HOME)/modules/src/em_opt
- MOD_DIR = $(TARGET_HOME)/modules
- # set HOWMUCH to head -20 to limit number of patterns used
- #HOWMUCH = head -20
- HOWMUCH = cat
- INCLUDES = -I$(TARGET_HOME)/h -I$(MOD_DIR)/h \
- -I$(MOD_DIR)/pkg -I$(SRC_DIR) -I.
- UINCLUDES = -I$(UTIL_HOME)/h -I$(UTIL_HOME)/modules/h \
- -I$(UTIL_HOME)/modules/pkg -I$(SRC_DIR) -I.
- PREFLAGS = $(INCLUDES) -DPRIVATE=static# -DDEBUG
- UPREFLAGS = $(UINCLUDES) -DPRIVATE=static# -DDEBUG
- # Enable the next line to produce a version that output's the line number
- # from the patterns file each time an optimization is performed.
- #PREFLAGS = $(PREFLAGS) -DSTATS
- CFLAGS = $(PREFLAGS) $(COPTIONS)
- LINTFLAGS = $(PREFLAGS) -DNORCSID
- LDFLAGS = $(LDOPTIONS)
- UCFLAGS = $(UPREFLAGS) $(UCOPTIONS)
- ULDFLAGS = $(ULDOPTIONS)
- LLOPT =
- CMD = '$(CC) -c $(CFLAGS)'
- LIBOPT = libemopt.$(LIBSUF)
- LIBCEOPT = libCEopt.$(LIBSUF)
- .SUFFIXES: .d .r
- .r.d: ; CMD=$(CMD); export CMD; awk -f $(SRC_DIR)/makefuns.awk prototypes=/dev/null $*.r | sh -x
- touch $@
- .SUFFIXES: .$(SUF)
- .c.$(SUF):
- $(CC) -c $(CFLAGS) $*.c
- CSRC = $(SRC_DIR)/main.c $(SRC_DIR)/nopt.c $(SRC_DIR)/mkstrct.c \
- $(SRC_DIR)/aux.c $(SRC_DIR)/outputdfa.c $(SRC_DIR)/outcalls.c\
- $(SRC_DIR)/findworst.c $(SRC_DIR)/initlex.c
- SRCS = $(SRC_DIR)/proto.make $(SRC_DIR)/nopt.h $(SRC_DIR)/parser.h \
- $(SRC_DIR)/parser.g $(SRC_DIR)/syntax.l $(SRC_DIR)/pseudo.r\
- $(SRC_DIR)/patterns $(CSRC)
- NOFILES = nopt.$(SUF) dfa.$(SUF) trans.$(SUF) aux.$(SUF) mkstrct.$(SUF)
- POFILES = parser.$(USUF) syntax.$(USUF) outputdfa.$(USUF) outcalls.$(USUF)\
- findworst.$(USUF) initlex.$(USUF) Lpars.$(USUF)
- GENFILES = Lpars.h Lpars.c parserdummy parser.c syntax.c \
- dfa.c dfa.c.new trans.c trans.c.new\
- incalls.d incalls.r incalls.r.new pseudo.d pseudo.r
- all: em_nopt $(LIBOPT) $(LIBCEOPT) prototypes
- install: all
- -mkdir $(MOD_DIR)/lib
- -mkdir $(MOD_DIR)/h
- cp $(LIBOPT) $(MOD_DIR)/lib/$(LIBOPT)
- $(RANLIB) $(MOD_DIR)/lib/$(LIBOPT)
- cp $(LIBCEOPT) $(MOD_DIR)/lib/$(LIBCEOPT)
- $(RANLIB) $(MOD_DIR)/lib/$(LIBCEOPT)
- cp em_nopt $(TARGET_HOME)/lib.bin/em_nopt
- cp prototypes $(MOD_DIR)/h/em_codeO.h
- if [ $(DO_MACHINE_INDEP) = y ] ; \
- then mk_manpage $(SRC_DIR)/em_opt.3 $(TARGET_HOME) ; \
- mk_manpage $(SRC_DIR)/em_nopt.6 $(TARGET_HOME) ; \
- fi
- cmp: all
- -cmp $(LIBOPT) $(MOD_DIR)/lib/$(LIBOPT)
- -cmp $(LIBCEOPT) $(MOD_DIR)/lib/$(LIBCEOPT)
- -cmp em_nopt $(TARGET_HOME)/lib.bin/em_nopt
- -cmp prototypes $(MOD_DIR)/h/em_codeO.h
- pr:
- @pr $(SRCS)
- opr:
- make pr | opr
- lint: lintparser lintnopt
- clean:
- rm -f O_*.$(SUF)
- rm -f O_*.c
- rm -f $(NOFILES) main.$(SUF) $(POFILES) prototypes
- rm -f $(GENFILES) parser em_nopt $(LIBOPT) $(LIBCEOPT)
- # How to build stand alone version of the optimizer
- NOPTLIB = $(MOD_DIR)/lib/libread_emk.$(LIBSUF)\
- $(MOD_DIR)/lib/libemk.$(LIBSUF)\
- $(MOD_DIR)/lib/liballoc.$(LIBSUF)\
- $(MOD_DIR)/lib/malloc.$(SUF)\
- $(MOD_DIR)/lib/libprint.$(LIBSUF)\
- $(MOD_DIR)/lib/libstring.$(LIBSUF)\
- $(MOD_DIR)/lib/libsystem.$(LIBSUF)\
- $(TARGET_HOME)/lib.bin/em_data.$(LIBSUF)
- em_nopt: incalls.r main.$(SUF) $(NOFILES)
- $(CC) $(LDFLAGS) -o em_nopt main.$(SUF) $(NOFILES) $(NOPTLIB)
- OLINT = $(SRC_DIR)/main.c $(SRC_DIR)/mkstrct.c $(SRC_DIR)/nopt.c $(SRC_DIR)/aux.c dfa.c trans.c
- OLINTLIB = $(UTIL_HOME)/modules/lib/$(LINTPREF)read_emkV.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)emk.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)system.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)alloc.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)print.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)string.$(LINTSUF)
- lintnopt: incalls.r $(OLINT)
- $(LINT) $(LINTFLAGS) $(OLINT) $(OLINTLIB)
- # How to build the library version of the optimizer
- $(LIBOPT): $(NOFILES) pseudo.d incalls.d
- rm -f $(LIBOPT)
- $(AR) r $(LIBOPT) O_*.$(SUF) $(NOFILES)
- $(RANLIB) $(LIBOPT)
- $(LIBCEOPT): incalls.r
- rm -f O_*.$(SUF) $(NOFILES) pseudo.d incalls.d
- -mv $(LIBOPT) $(LIBOPT).saved
- make PREFLAGS='$(INCLUDES) -DPRIVATE=static -DCODE_EXPANDER' $(LIBOPT)
- mv $(LIBOPT) $(LIBCEOPT)
- -mv $(LIBOPT).saved $(LIBOPT)
- rm -f O_*.$(SUF) $(NOFILES)
- prototypes: pseudo.r incalls.r
- cp $(SRC_DIR)/em_codeO.h prototypes
- echo >> prototypes
- awk -f $(SRC_DIR)/makefuns.awk pseudo.r incalls.r > /dev/null
- incalls.r: $(SRC_DIR)/patterns parser
- -$(UTIL_HOME)/lib.bin/cpp $(SRC_DIR)/patterns | $(HOWMUCH) >/tmp/patts
- parser </tmp/patts
- -rm /tmp/patts
- # How to build the lint library for the optimizer
- LLINT = $(SRC_DIR)/nopt.c $(SRC_DIR)/mkstrct.c $(SRC_DIR)/aux.c dfa.c trans.c
- lintlib: incalls.r $(LLINT)
- $(MK_LINT_LIB) emopt $(MOD_DIR)/lib $(LLINT)
- # How to build program to parse patterns table and build c files.
- PARSERLIB = $(UTIL_HOME)/lib.bin/em_data.$(ULIBSUF)\
- $(UTIL_HOME)/modules/lib/liballoc.$(ULIBSUF)\
- $(UTIL_HOME)/modules/lib/libstring.$(ULIBSUF)\
- $(UTIL_HOME)/modules/lib/libsystem.$(ULIBSUF)
- parser: parserdummy $(POFILES) $(PARSERLIB)
- $(UCC) -o parser $(ULDFLAGS) $(POFILES) $(PARSERLIB)
- syntax.c: $(SRC_DIR)/syntax.l
- flex -ts $(SRC_DIR)/syntax.l > syntax.c
- parserdummy: $(SRC_DIR)/parser.g
- LLgen $(LLOPT) $(SRC_DIR)/parser.g
- touch parserdummy
- PLINT = parser.c syntax.c $(SRC_DIR)/outputdfa.c $(SRC_DIR)/outcalls.c\
- $(SRC_DIR)/findworst.c $(SRC_DIR)/initlex.c Lpars.c
- PLINTLIB = $(UTIL_HOME)/modules/lib/$(LINTPREF)alloc.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)string.$(LINTSUF)\
- $(UTIL_HOME)/modules/lib/$(LINTPREF)system.$(LINTSUF)
- LINTFLAGS = $(LINTOPTIONS)
- lintparser: parserdummy $(PLINT)
- $(LINT) $(LINTFLAGS) $(PLINT) $(PLINTLIB)
- # Dependancies
- main.$(SUF): $(SRC_DIR)/main.c
- $(CC) -c $(CFLAGS) $(SRC_DIR)/main.c
- main.$(SUF): $(SRC_DIR)/nopt.h
- nopt.$(SUF): $(SRC_DIR)/nopt.c
- $(CC) -c $(CFLAGS) $(SRC_DIR)/nopt.c
- nopt.$(SUF): $(SRC_DIR)/nopt.h
- mkstrct.$(SUF): $(SRC_DIR)/mkstrct.c
- $(CC) -c $(CFLAGS) $(SRC_DIR)/mkstrct.c
- mkstrct.$(SUF): $(SRC_DIR)/nopt.h
- aux.$(SUF): $(SRC_DIR)/aux.c
- $(CC) -c $(CFLAGS) $(SRC_DIR)/aux.c
- aux.$(SUF): $(SRC_DIR)/nopt.h
- dfa.$(SUF): dfa.c
- $(CC) -c $(CFLAGS) dfa.c
- dfa.$(SUF): $(SRC_DIR)/nopt.h
- trans.$(SUF): trans.c
- $(CC) -c $(CFLAGS) trans.c
- trans.$(SUF): $(SRC_DIR)/nopt.h
- incalls.d: $(SRC_DIR)/nopt.h $(SRC_DIR)/makefuns.awk
- pseudo.d: $(SRC_DIR)/nopt.h $(SRC_DIR)/makefuns.awk
- pseudo.r: $(SRC_DIR)/pseudo.r
- cp $(SRC_DIR)/pseudo.r pseudo.r
- parser.$(USUF): parser.c
- $(UCC) -c $(UCFLAGS) parser.c
- parser.$(USUF): Lpars.h $(SRC_DIR)/parser.h
- Lpars.$(USUF): Lpars.c
- $(UCC) -c $(UCFLAGS) Lpars.c
- Lpars.$(USUF): Lpars.h
- syntax.$(USUF): syntax.c
- $(UCC) -c $(UCFLAGS) syntax.c
- sybtax.$(USUF): $(SRC_DIR)/parser.h Lpars.h
- outputdfa.$(USUF): $(SRC_DIR)/outputdfa.c
- $(UCC) -c $(UCFLAGS) $(SRC_DIR)/outputdfa.c
- outputdfa.$(USUF): $(SRC_DIR)/parser.h Lpars.h
- outcalls.$(USUF): $(SRC_DIR)/outcalls.c
- $(UCC) -c $(UCFLAGS) $(SRC_DIR)/outcalls.c
- outcalls.$(USUF): $(SRC_DIR)/parser.h
- findworst.$(USUF): $(SRC_DIR)/findworst.c
- $(UCC) -c $(UCFLAGS) $(SRC_DIR)/findworst.c
- findworst.$(USUF): $(SRC_DIR)/parser.h
- initlex.$(USUF): $(SRC_DIR)/initlex.c
- $(UCC) -c $(UCFLAGS) $(SRC_DIR)/initlex.c
- initlex.$(USUF): $(SRC_DIR)/parser.h
|