| ############################################################################### |
| # Makefile for flex 2.5.0.6 (beta) with Borland C/C++ version 4.02 |
| # |
| # This will probably need to be adjusted for your existing lexer/parser |
| # generators. See definitions for FLEX and YACC near the bottom of the |
| # makefile. |
| # |
| # This makefile builds initflex.exe and flex.exe by default. It |
| # removes initflex.exe after making flex.exe. After that, you may |
| # choose to try alternate compression options for your everyday flex |
| # executable. |
| # |
| # This will build flex with the large model. Don't use huge, but if you |
| # feel like experimenting with other models, post your success stories to |
| # comp.compilers, OK? |
| # |
| # This makefile does *not* implement the big testing found in "makefile.in". |
| # |
| # I also assume the availability of sed and the gnu file utilities on the |
| # system - they're readily available, so if you don't have them, why not? |
| # <grin> |
| # |
| # The resulting generated lexer (the real goal, right?) will compile |
| # (and run nicely, too) as a .c file, as well as being included such as |
| # extern "C" { #include "lexyyc" } in a .cplusplus file. |
| # |
| ############################################################################### |
| |
| DEBUG = 1 |
| |
| .autodepend |
| |
| all: initflex.exe flex.exe |
| rm initflex.exe initflex.map |
| |
| ############################################################################### |
| # |
| # standard utilitities? ha. |
| # |
| |
| CC = bcc |
| CPP = bcc |
| |
| ############################################################################### |
| # |
| |
| MODEL = l |
| |
| !if $(DEBUG) == 1 |
| !message Building with debug. |
| debugCompile = -v |
| debugLink = /v |
| !else |
| !message Building without debug. |
| debugCompile = |
| debugLink = |
| !endif |
| |
| LOADER = c0$(MODEL).obj |
| LIBS = c$(MODEL).lib |
| LINKFLAGS = $(debugLink) |
| |
| DATASEG = -dc -Ff |
| SizeOPT = -Os -G- |
| Defines = |
| |
| COMMON = -A -c -m$(MODEL) $(SizeOPT) $(DATASEG) $(Defines) $(debugCompile) |
| CFLAGS = -o$@ $(COMMON) |
| CCFLAGS = -o$@ $(COMMON) -Pcc |
| |
| ############################################################################### |
| |
| .SUFFIXES: .cc |
| |
| .cc.obj: |
| $(CPP) $(CCFLAGS) $< |
| |
| .c.obj: |
| $(CPP) $(CFLAGS) $< |
| |
| ############################################################################### |
| # |
| # source & object files |
| # |
| |
| BASESRC = ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.c \ |
| sym.c tblcmp.c yylex.c skel.c |
| |
| INITSRC = $(BASESRC) initscan.c |
| |
| INITOBJS = $(INITSRC:.c=.obj) |
| |
| SRC = $(BASESRC) scan.c |
| |
| OBJS = $(SRC:.c=.obj) |
| |
| objects: $(OBJS) |
| @echo $(OBJS) |
| |
| ############################################################################### |
| # |
| # Executable |
| # |
| |
| initflex.exe: $(INITOBJS) |
| tlink $(LINKFLAGS) @&&! |
| $(LOADER) $** |
| $&.exe |
| |
| $(LIBS) |
| ! |
| |
| flex.exe: $(OBJS) |
| tlink $(LINKFLAGS) @&&! |
| $(LOADER) $** |
| $&.exe |
| |
| $(LIBS) |
| ! |
| |
| # |
| ############################################################################### |
| # |
| # Lex files |
| # |
| |
| FLEX = .\initflex |
| FLEX_FLAGS = -ist |
| |
| scan.c: scan.l |
| $(FLEX) $(FLEX_FLAGS) scan.l >scan.tmp |
| sed s,\"$(srcdir)/scan.l\",\"scan.l\", <scan.tmp >scan.c |
| @rm scan.tmp |
| |
| ############################################################################### |
| # |
| # YACC files |
| # |
| |
| YACC = .\bison |
| YFLAGS = -vdyl |
| |
| parse.c: parse.y |
| $(YACC) -ydl parse.y |
| @sed "/extern char.*malloc/d" <y_tab.c >parse.c |
| @rm -f y_tab.c |
| @mv y_tab.h parse.h |
| |
| ############################################################################### |
| # |
| # cleanup |
| # |
| |
| clean: |
| -rm *.obj *.map initflex.exe |
| |
| realclean: clean |
| -rm flex.exe |
| |
| # |
| # end Makefile |
| # |
| ############################################################################### |