1# $Id: Makefile.in,v 1.28 2021/08/08 22:39:34 tom Exp $ 2# @(#) @Header: /home/daffy/u0/vern/flex/RCS/Makefile.in,v 1.45 96/09/10 16:59:04 vern Exp @ (LBL) 3 4@SET_MAKE@ 5 6# Possible values for DEFS: 7# 8# By default, flex generates 8-bit scanners when using table compression, 9# and 7-bit scanners when using uncompressed tables (-f or -F options). 10# For flex to always generate 8-bit scanners, add "-DDEFAULT_CSIZE=256" 11# to DEFS. 12# 13# For Vax/VMS, add "-DVMS" to DEFS. 14# 15# For MS-DOS, add "-DMS_DOS" to DEFS. See the directory MISC/MSDOS for 16# additional info. 17 18CFLAGS = @CFLAGS@ 19DEFS = @DEFS@ 20LDFLAGS = @LDFLAGS@ 21LIBS = @LIBS@ 22 23o = .@OBJEXT@ 24x = @EXEEXT@ 25 26# Installation targeting. Files will be installed under the tree 27# rooted at prefix. flex will be installed in bindir, libfl.a in 28# libdir, FlexLexer.h will be installed in includedir, and the manual 29# pages will be installed in mandir with extension manext. 30# 31# Raw, unformatted troff source will be installed if INSTALLMAN=man, 32# nroff preformatted versions will be installed if INSTALLMAN=cat. 33 34prefix = @prefix@ 35exec_prefix = @exec_prefix@ 36bindir = @bindir@ 37libdir = @libdir@ 38includedir = @includedir@ 39datarootdir = @datarootdir@ 40mandir = @mandir@ 41 42BINDIR = $(DESTDIR)$(bindir) 43LIBDIR = $(DESTDIR)$(libdir) 44INCLUDEDIR = $(DESTDIR)$(includedir) 45MANDIR = $(DESTDIR)$(mandir) 46 47manext = 1 48mansubdir = $(MANDIR)/man$(manext) 49 50transform = @program_transform_name@ 51 52# You can define these to be "lex" and "l" if you want to replace 53# lex at your site. 54PROGRAM_ROOT = flex 55LIBRARY_ROOT = fl 56 57FLEX = $(PROGRAM_ROOT)$x 58FLEXLIB = lib$(LIBRARY_ROOT).a 59 60actual_PROGRAM = `echo $(PROGRAM_ROOT)| sed '$(transform)'` 61actual_LIBROOT = `echo $(LIBRARY_ROOT)| sed '$(transform)'` 62actual_HEADER = `echo FlexLexer|sed '$(transform)'`.h 63 64actual_LIBNAME = lib$(actual_LIBROOT).a 65 66INSTALLMAN = man 67 68SHELL = /bin/sh 69srcdir = @srcdir@ 70VPATH = @srcdir@ 71 72LN_S = @LN_S@ 73YACC = @YACC@ 74CC = @CC@ 75AR = @AR@ 76ARFLAGS = @ARFLAGS@ 77RANLIB = @RANLIB@ 78INSTALL = @INSTALL@ 79INSTALL_DATA = @INSTALL_DATA@ 80INSTALL_PROGRAM = @INSTALL_PROGRAM@ 81 82CTAGS = @CTAGS@ 83ETAGS = @ETAGS@ 84LINT = @LINT@ 85LINT_OPTS = @LINT_OPTS@ 86 87EXTRA_CFLAGS = @EXTRA_CFLAGS@ 88 89# You normally do not need to modify anything below this point. 90# ------------------------------------------------------------ 91 92CPPFLAGS = -I. -I$(srcdir) \ 93 $(DEFS) @CPPFLAGS@ \ 94 -DFLEXLEXER_HDR=\"$(actual_HEADER)\" 95 96.c$o: 97 @RULE_CC@ 98 @ECHO_CC@$(CC) -c $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) $< 99 100HEADERS = flexdef.h version.h 101 102SOURCES = ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.y \ 103 scan.l skel.c sym.c tblcmp.c yylex.c 104OBJECTS = ccl$o dfa$o ecs$o gen$o main$o misc$o nfa$o parse$o \ 105 scan$o skel$o sym$o tblcmp$o yylex$o @ALLOCA@ 106 107LIBSRCS = libmain.c libyywrap.c 108LIBOBJS = libmain$o libyywrap$o 109 110LINTSRCS = ccl.c dfa.c ecs.c gen.c main.c misc.c nfa.c parse.c \ 111 scan.c skel.c sym.c tblcmp.c yylex.c 112 113DISTFILES = README NEWS COPYING INSTALL FlexLexer.h \ 114 configure.in conf.in Makefile.in mkskel.sh flex.skl \ 115 $(HEADERS) $(SOURCES) $(LIBSRCS) MISC \ 116 flex.1 scan.c install-sh configure 117 118DIST_NAME = flex 119 120# which "flex" to use to generate scan.c from scan.l 121FLEX_EXEC = ./$(FLEX) 122FLEX_FLAGS = -t $(PERF_REPORT) 123COMPRESSION = 124PERF_REPORT = -p 125 126 127all: $(FLEX) 128 129$(FLEX): .bootstrap $(OBJECTS) $(FLEXLIB) 130 @ECHO_LD@$(CC) $(CFLAGS) -o $(FLEX) $(LDFLAGS) $(OBJECTS) $(FLEXLIB) $(LIBS) 131 132.bootstrap: initscan.c 133 @rm -f scan.c 134 cp $(srcdir)/initscan.c scan.c 135 touch .bootstrap 136 137parse.c: parse.y 138 $(YACC) -d $(srcdir)/parse.y 139 @sed '/extern char.*malloc/d' <y.tab.c >parse.tmp 140 @mv parse.tmp parse.c 141 @mv y.tab.h parse.h 142 @rm -f y.tab.c 143 144parse.h: parse.c 145 146scan.c: scan.l 147 $(SHELL) $(srcdir)/mkscan.sh $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) $(srcdir)/scan.l >scan.c 148 149scan$o: scan.c parse.h flexdef.h config.h 150yylex$o: yylex.c parse.h flexdef.h config.h 151 152skel.c: flex.skl mkskel.sh 153 $(SHELL) $(srcdir)/mkskel.sh $(srcdir)/flex.skl >skel.c 154 155main$o: main.c flexdef.h config.h version.h 156ccl$o: ccl.c flexdef.h config.h 157dfa$o: dfa.c flexdef.h config.h 158ecs$o: ecs.c flexdef.h config.h 159gen$o: gen.c flexdef.h config.h 160misc$o: misc.c flexdef.h config.h 161nfa$o: nfa.c flexdef.h config.h 162parse$o: parse.c flexdef.h config.h 163skel$o: skel.c flexdef.h config.h 164sym$o: sym.c flexdef.h config.h 165tblcmp$o: tblcmp.c flexdef.h config.h 166 167alloca$o: alloca.c 168 @SHOW_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c -Dxmalloc=yy_flex_xmalloc alloca.c 169 170alloca.c: $(srcdir)/MISC/alloca.c 171 @rm -f alloca.c 172 cp $(srcdir)/MISC/alloca.c . 173 174test: check 175check: $(FLEX) 176 $(SHELL) $(srcdir)/mkscan.sh $(FLEX_EXEC) $(FLEX_FLAGS) $(COMPRESSION) $(srcdir)/scan.l \ 177 | diff scan.c - 178 @echo "Check successful, using COMPRESSION=\"$(COMPRESSION)\"" 179 180bigcheck: 181 rm -f scan.c ; $(MAKE) COMPRESSION="-C" check 182 rm -f scan.c ; $(MAKE) COMPRESSION="-Ce" check 183 rm -f scan.c ; $(MAKE) COMPRESSION="-Cm" check 184 rm -f scan.c ; $(MAKE) COMPRESSION="-f" check 185 rm -f scan.c ; $(MAKE) COMPRESSION="-Cfea" check 186 rm -f scan.c ; $(MAKE) COMPRESSION="-CFer" check 187 rm -f scan.c ; $(MAKE) COMPRESSION="-l" PERF_REPORT="" check 188 rm -f scan.c ; $(MAKE) 189 @echo "All checks successful" 190 191$(FLEXLIB): $(LIBOBJS) 192 $(AR) $(ARFLAGS) $(FLEXLIB) $(LIBOBJS) 193 -$(RANLIB) $(FLEXLIB) 194 195$(FLEX).man: flex.1 196 cd $(srcdir) && nroff -man flex.1 >$(FLEX).man 197 198install: $(FLEX) $(FLEXLIB) installdirs install.$(INSTALLMAN) 199 $(INSTALL_PROGRAM) $(FLEX) $(BINDIR)/$(actual_PROGRAM) 200 @rm -f $(BINDIR)/$(actual_PROGRAM)++ 201 cd $(BINDIR) && $(LN_S) $(actual_PROGRAM) $(actual_PROGRAM)++ 202 $(INSTALL_DATA) $(FLEXLIB) $(LIBDIR)/$(actual_LIBNAME) 203 -cd $(LIBDIR) && $(RANLIB) $(actual_LIBNAME) 204 $(SHELL) $(srcdir)/rename.sh \ 205 $(srcdir)/FlexLexer.h \ 206 $(INCLUDEDIR)/$(actual_HEADER) \ 207 $(actual_PROGRAM) \ 208 $(actual_HEADER) \ 209 $(actual_LIBROOT) \ 210 $(INSTALL_DATA) 211 212install.man: flex.1 213 $(SHELL) $(srcdir)/rename.sh \ 214 $(srcdir)/flex.1 \ 215 $(mansubdir)/$(actual_PROGRAM).$(manext) \ 216 $(actual_PROGRAM) \ 217 $(actual_HEADER) \ 218 $(actual_LIBROOT) \ 219 $(INSTALL_DATA) 220 $(SHELL) -c "cd $(mansubdir) && $(LN_S) -f $(actual_PROGRAM).$(manext).gz $(actual_PROGRAM)++.$(manext).gz" 221 222install.cat: $(FLEX).man 223 $(SHELL) $(srcdir)/rename.sh \ 224 $(srcdir)/flex.man \ 225 $(mansubdir)/$(actual_PROGRAM).$(manext) \ 226 $(actual_PROGRAM) \ 227 $(actual_HEADER) \ 228 $(actual_LIBROOT) \ 229 $(INSTALL_DATA) 230 231$(BINDIR) : ; mkdir -p $@ 232$(LIBDIR) : ; mkdir -p $@ 233$(INCLUDEDIR) : ; mkdir -p $@ 234$(mansubdir) : ; mkdir -p $@ 235 236installdirs: $(BINDIR) $(LIBDIR) $(INCLUDEDIR) $(mansubdir) 237 238uninstall: 239 rm -f $(BINDIR)/$(actual_PROGRAM) 240 rm -f $(BINDIR)/$(actual_PROGRAM)++ 241 rm -f $(LIBDIR)/$(actual_LIBNAME) 242 rm -f $(INCLUDEDIR)/$(actual_HEADER) 243 rm -f $(mansubdir)/$(actual_PROGRAM).$(manext) 244 245tags: $(SOURCES) 246 $(CTAGS) $(SOURCES) 247 248@MAKE_UPPER_TAGS@TAGS: $(SOURCES) 249@MAKE_UPPER_TAGS@ $(ETAGS) $(SOURCES) 250 251lint: $(LINTSRCS) 252 $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(LINTSRCS) 253 254mostlyclean :: 255 rm -f a.out *.bak core errs scan.tmp 256 257clean :: mostlyclean 258 rm -f flex parse.c parse.h *$o alloca.c lex.yy.c lex.yy.cc \ 259 $(FLEXLIB) config.log config.cache 260 261distclean :: clean 262 rm -f .bootstrap $(FLEX) scan.c tags TAGS Makefile man2html.tmp \ 263 config.status config.h stamp-h config.log config.cache 264 265maintainer-clean: distclean 266 @echo "This command is intended for maintainers to use;" 267 @echo "it deletes files that may require special tools to rebuild." 268 rm -f $(FLEX).man skel.c flex*.tar.gz flex*.tar.Z 269 270dist: $(FLEX) $(DISTFILES) parse.c parse.h $(srcdir)/$(FLEX).man 271 $(MAKE) DIST_NAME=flex-`sed <version.h 's/[^"]*"//' | sed 's/"//'` dist2 272 273dist2: 274 @rm -rf $(DIST_NAME) 275 @rm -f $(DIST_NAME).tar $(DIST_NAME).tar.Z $(DIST_NAME).tar.gz 276 @mkdir $(DIST_NAME) 277 tar cf - $(DISTFILES) | (cd $(DIST_NAME) && tar xfB -) 278 @mv $(DIST_NAME)/scan.c $(DIST_NAME)/initscan.c 279 @chmod 444 $(DIST_NAME)/initscan.c 280 @chmod +w $(DIST_NAME)/Makefile.in 281 @cp parse.c parse.h $(DIST_NAME)/MISC 282 @col -b <$(srcdir)/$(FLEX).man >$(DIST_NAME)/MISC/flex.man 283 tar chf $(DIST_NAME).tar $(DIST_NAME) 284 compress <$(DIST_NAME).tar >$(DIST_NAME).tar.Z 285 gzip <$(DIST_NAME).tar >$(DIST_NAME).tar.gz 286 @rm $(DIST_NAME).tar 287 288# For an explanation of the following Makefile rules, see node 289# `Automatic Remaking' in GNU Autoconf documentation. 290Makefile: $(srcdir)/Makefile.in config.status 291 CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status 292config.status: configure 293 ./config.status --recheck 294config.h: stamp-h 295stamp-h: conf.in config.status 296 CONFIG_FILES= CONFIG_HEADERS=config.h:conf.in ./config.status 297 echo timestamp >stamp-h 298# conf.in: stamp-h.in 299# stamp-h.in: configure.in acconfig.h 300# cd $(srcdir) && autoheader 301# config.h.in conf.in 302# cho timestamp > $(srcdir)/stamp-h.in 303 304# Tell versions [3.59,3.63) of GNU make not to export all variables. 305# Otherwise a system limit (for SysV at least) may be exceeded. 306.NOEXPORT: 307