167 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
	
		
			4.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# $Header$
 | 
						|
 | 
						|
#PARAMS		do not remove this line!
 | 
						|
 | 
						|
SRC_DIR = $(SRC_HOME)/util/flex
 | 
						|
 | 
						|
# make file for "flex" tool
 | 
						|
 | 
						|
# Porting considerations:
 | 
						|
#
 | 
						|
#    For System V Unix machines, add -DUSG to CFLAGS (if it's not
 | 
						|
#         automatically defined)
 | 
						|
#    For Vax/VMS, add "-DVMS -DUSG" to CFLAGS.
 | 
						|
#    For MS-DOS, add "-DMS_DOS -DUSG" to CFLAGS.  Create \tmp if not present.
 | 
						|
#         You will also want to rename flex.skel to something with a three
 | 
						|
#         character extension, change SKELETON_FILE below appropriately,
 | 
						|
#	  See MSDOS.notes for more info.
 | 
						|
#    For Amiga, add "-DAMIGA -DUSG" to CFLAGS.
 | 
						|
#    For SCO Unix, add "-DSCO_UNIX" to CFLAGS.
 | 
						|
#
 | 
						|
#    For C compilers which don't know about "void", add -Dvoid=int to CFLAGS.
 | 
						|
#
 | 
						|
#    If your C compiler is ANSI standard but does not include the <stdlib.h>
 | 
						|
#    header file (some installations of gcc have this problem), then add
 | 
						|
#    -DDONT_HAVE_STDLIB_H to CFLAGS.
 | 
						|
#
 | 
						|
# By default, flex will be configured to generate 8-bit scanners only
 | 
						|
# if the -8 flag is given.  If you want it to always generate 8-bit
 | 
						|
# scanners, add "-DDEFAULT_CSIZE=256" to CFLAGS.  Note that doing
 | 
						|
# so will double the size of all uncompressed scanners.
 | 
						|
# 
 | 
						|
# If on your system you have trouble building flex due to 8-bit
 | 
						|
# character problems, remove the -8 from FLEX_FLAGS and the
 | 
						|
# "#define FLEX_8_BIT_CHARS" from the beginning of flexdef.h.
 | 
						|
 | 
						|
 | 
						|
# the first time around use "make first_flex"
 | 
						|
 | 
						|
 | 
						|
# Installation targeting.  Files will be installed under the tree rooted
 | 
						|
# at DESTDIR.  User commands will be installed in BINDIR, library files
 | 
						|
# in LIBDIR (which will be created if necessary), auxiliary files in
 | 
						|
# AUXDIR, manual pages will be installed in MANDIR with extension MANEXT.
 | 
						|
# Raw, unformatted troff source will be installed if INSTALLMAN=man, nroff
 | 
						|
# preformatted versions will be installed if INSTALLMAN=cat.
 | 
						|
DESTDIR =
 | 
						|
BINDIR = $(TARGET_HOME)/bin
 | 
						|
AUXDIR = $(TARGET_HOME)/lib/flex
 | 
						|
MANDIR = $(TARGET_HOME)/man
 | 
						|
MANEXT = 1
 | 
						|
INSTALLMAN = man
 | 
						|
 | 
						|
# MAKE = make
 | 
						|
 | 
						|
SKELETON_FILE = \"$(AUXDIR)/flex.skel\"
 | 
						|
SKELFLAGS = -DDEFAULT_SKELETON_FILE=$(SKELETON_FILE)
 | 
						|
INCLUDES = -I$(SRC_DIR) -I.
 | 
						|
CFLAGS = $(COPTIONS) -DACK_MOD $(INCLUDES)
 | 
						|
LDFLAGS = $(LDOPTIONS)
 | 
						|
 | 
						|
COMPRESSION =
 | 
						|
FLEX_FLAGS = -ist8 -Sflex.skel
 | 
						|
# which "flex" to use to generate scan.c from scan.l
 | 
						|
FLEX = flex
 | 
						|
 | 
						|
FLEXOBJS = \
 | 
						|
	ccl.$(SUF) \
 | 
						|
	dfa.$(SUF) \
 | 
						|
	ecs.$(SUF) \
 | 
						|
	gen.$(SUF) \
 | 
						|
	main.$(SUF) \
 | 
						|
	misc.$(SUF) \
 | 
						|
	nfa.$(SUF) \
 | 
						|
	parse.$(SUF) \
 | 
						|
	scan.$(SUF) \
 | 
						|
	sym.$(SUF) \
 | 
						|
	tblcmp.$(SUF) \
 | 
						|
	yylex.$(SUF)
 | 
						|
 | 
						|
FLEX_C_SOURCES = \
 | 
						|
	$(SRC_DIR)/ccl.c \
 | 
						|
	$(SRC_DIR)/dfa.c \
 | 
						|
	$(SRC_DIR)/ecs.c \
 | 
						|
	$(SRC_DIR)/gen.c \
 | 
						|
	$(SRC_DIR)/main.c \
 | 
						|
	$(SRC_DIR)/misc.c \
 | 
						|
	$(SRC_DIR)/nfa.c \
 | 
						|
	$(SRC_DIR)/parse.c \
 | 
						|
	$(SRC_DIR)/scan.c \
 | 
						|
	$(SRC_DIR)/sym.c \
 | 
						|
	$(SRC_DIR)/tblcmp.c \
 | 
						|
	$(SRC_DIR)/yylex.c
 | 
						|
 | 
						|
 | 
						|
all : flex
 | 
						|
 | 
						|
flex : $(FLEXOBJS)
 | 
						|
	$(CC) -o flex $(LDFLAGS) $(FLEXOBJS)
 | 
						|
 | 
						|
first_flex:
 | 
						|
	cp $(SRC_DIR)/initscan.c scan.c
 | 
						|
	make $(MFLAGS) flex
 | 
						|
 | 
						|
parse.h parse.c : $(SRC_DIR)/parse.y
 | 
						|
	yacc -d $(SRC_DIR)/parse.y
 | 
						|
	@mv y.tab.c parse.c
 | 
						|
	@mv y.tab.h parse.h
 | 
						|
 | 
						|
scan.c : $(SRC_DIR)/scan.l
 | 
						|
	$(FLEX) $(FLEX_FLAGS) $(COMPRESSION) $(SRC_DIR)/scan.l >scan.c
 | 
						|
 | 
						|
scan.$(SUF) : scan.c parse.h $(SRC_DIR)/flexdef.h
 | 
						|
 | 
						|
main.$(SUF) : $(SRC_DIR)/main.c $(SRC_DIR)/flexdef.h
 | 
						|
	-mkdir $(AUXDIR)
 | 
						|
	$(CC) $(CFLAGS) -c $(SKELFLAGS) $(SRC_DIR)/main.c
 | 
						|
 | 
						|
ccl.$(SUF) : $(SRC_DIR)/ccl.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/ccl.c
 | 
						|
dfa.$(SUF) : $(SRC_DIR)/dfa.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/dfa.c
 | 
						|
ecs.$(SUF) : $(SRC_DIR)/ecs.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/ecs.c
 | 
						|
gen.$(SUF) : $(SRC_DIR)/gen.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/gen.c
 | 
						|
misc.$(SUF) : $(SRC_DIR)/misc.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/misc.c
 | 
						|
nfa.$(SUF) : $(SRC_DIR)/nfa.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/nfa.c
 | 
						|
parse.$(SUF) : parse.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c parse.c
 | 
						|
sym.$(SUF) : $(SRC_DIR)/sym.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/sym.c
 | 
						|
tblcmp.$(SUF) : $(SRC_DIR)/tblcmp.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/tblcmp.c
 | 
						|
yylex.$(SUF) : $(SRC_DIR)/yylex.c $(SRC_DIR)/flexdef.h
 | 
						|
	$(CC) $(CFLAGS) -c $(SRC_DIR)/yylex.c
 | 
						|
 | 
						|
LINTFLAGS = $(LINTOPTIONS) $(INCLUDES)
 | 
						|
lint : $(FLEX_C_SOURCES)
 | 
						|
	$(LINT) $(LINTFLAGS) $(FLEX_C_SOURCES)
 | 
						|
 | 
						|
install: first_flex $(SRC_DIR)/flex.skel
 | 
						|
	rm -f $(BINDIR)/flex
 | 
						|
	cp flex $(BINDIR)/flex
 | 
						|
	cp $(SRC_DIR)/flex.skel $(AUXDIR)/flex.skel
 | 
						|
	cp $(SRC_DIR)/flex.1 $(MANDIR)/flex.1
 | 
						|
	cp $(SRC_DIR)/flexdoc.1 $(MANDIR)/flexdoc.1
 | 
						|
	
 | 
						|
clean :
 | 
						|
	rm -f core errs flex *.$(SUF) parse.c *.lint parse.h tags
 | 
						|
 | 
						|
tags :
 | 
						|
	ctags $(FLEX_C_SOURCES)
 | 
						|
 | 
						|
test : flex
 | 
						|
	./flex $(FLEX_FLAGS) $(COMPRESSION) scan.l | diff scan.c -
 | 
						|
 | 
						|
bigtest :
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-C" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-Ce" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-Cm" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-Cfe" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-CFe" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-Cf" test
 | 
						|
	rm -f scan.c ; $(MAKE) COMPRESSION="-CF" test
 | 
						|
	rm -f scan.c ; $(MAKE)
 |