diff options
Diffstat (limited to 'src/Makefile.am')
-rw-r--r-- | src/Makefile.am | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..e379692 --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,168 @@ +AM_YFLAGS = -d +AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" +LIBS = @LIBS@ + +m4 = @M4@ + +bin_PROGRAMS = flex +if ENABLE_BOOTSTRAP +noinst_PROGRAMS = stage1flex +endif + +if ENABLE_LIBFL +lib_LTLIBRARIES = libfl.la +endif +libfl_la_SOURCES = \ + libmain.c \ + libyywrap.c +libfl_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ + +stage1flex_SOURCES = \ + scan.l \ + $(COMMON_SOURCES) + +if CROSS +stage1flex_LDADD = +stage1flex_SOURCES += \ + ../lib/malloc.c \ + ../lib/realloc.c +stage1flex_LINK = $(LIBTOOL) --tag=CC --mode=link $(CC_FOR_BUILD) \ + $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ + +$(stage1flex_OBJECTS): CC=$(CC_FOR_BUILD) +$(stage1flex_OBJECTS): CFLAGS=$(CFLAGS_FOR_BUILD) +$(stage1flex_OBJECTS): CPP=$(CPP_FOR_BUILD) +$(stage1flex_OBJECTS): CPPFLAGS=$(CPPFLAGS_FOR_BUILD) +$(stage1flex_OBJECTS): LDFLAGS=$(LDFLAGS_FOR_BUILD) +else +stage1flex_LDADD = $(LDADD) +stage1flex_LINK = $(LINK) +stage1flex_CFLAGS = $(AM_CFLAGS) +endif + +flex_SOURCES = \ + $(COMMON_SOURCES) + +nodist_flex_SOURCES = \ + stage1scan.c + +flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS) + +COMMON_SOURCES = \ + buf.c \ + ccl.c \ + dfa.c \ + ecs.c \ + filter.c \ + flexdef.h \ + flexint.h \ + gen.c \ + main.c \ + misc.c \ + nfa.c \ + options.c \ + options.h \ + parse.y \ + regex.c \ + scanflags.c \ + scanopt.c \ + scanopt.h \ + skel.c \ + sym.c \ + tables.c \ + tables.h \ + tables_shared.c \ + tables_shared.h \ + tblcmp.c \ + version.h \ + yylex.c + +LDADD = $(LIBOBJS) @LIBINTL@ + +include_HEADERS = \ + FlexLexer.h + +EXTRA_DIST = \ + flex.skl \ + mkskel.sh \ + gettext.h + +CLEANFILES = stage1scan.c stage1flex$(EXEEXT) + +MAINTAINERCLEANFILES = skel.c + +skel.c: flex.skl mkskel.sh flexint.h tables_shared.h tables_shared.c + $(SHELL) $(srcdir)/mkskel.sh $(srcdir) $(m4) $(VERSION) > $@.tmp + mv $@.tmp $@ + +if ENABLE_BOOTSTRAP +stage1scan.c: scan.l stage1flex$(EXEEXT) + ./stage1flex$(EXEEXT) $(AM_LFLAGS) $(LFLAGS) -o $@ $(srcdir)/scan.l +else +stage1scan.c: scan.c + sed 's|^\(#line .*\)"'`printf %s $< | sed 's|[][\\\\.*]|\\\\&|g'`'"|\1"$@"|g' $< > $@ +endif + +dist-hook: scan.l flex$(EXEEXT) + chmod u+w $(distdir)/scan.c && \ + ./flex$(EXEEXT) -o scan.c $< && \ + mv scan.c $(distdir) + +# make needs to be told to make parse.h so that parallelized runs will +# not fail. + +stage1flex-main.$(OBJEXT): parse.h +flex-main.$(OBJEXT): parse.h + +stage1flex-yylex.$(OBJEXT): parse.h +flex-yylex.$(OBJEXT): parse.h + +stage1flex-scan.$(OBJEXT): parse.h +flex-stage1scan.$(OBJEXT): parse.h + +# Run GNU indent on sources. Don't run this unless all the sources compile cleanly. +# +# Whole idea: +# 1. Check for .indent.pro, otherwise indent will use unknown +# settings, or worse, the GNU defaults.) +# 2. Check that this is GNU indent. +# 3. Make sure to process only the NON-generated .c and .h files. +# 4. Run indent twice per file. The first time is a test. +# Otherwise, indent overwrites your file even if it fails! +indentfiles = \ + buf.c \ + ccl.c \ + dfa.c \ + ecs.c \ + scanflags.c \ + filter.c \ + flexdef.h \ + gen.c \ + libmain.c \ + libyywrap.c \ + main.c \ + misc.c \ + nfa.c \ + options.c \ + options.h \ + regex.c \ + scanopt.c \ + scanopt.h \ + sym.c \ + tables.c \ + tables.h \ + tables_shared.c \ + tables_shared.h \ + tblcmp.c + +indent: $(top_srcdir)/.indent.pro + cd $(top_srcdir) && \ + for f in $(indentfiles); do \ + f=src/$$f; \ + echo indenting $$f; \ + INDENT_PROFILE=.indent.pro $(INDENT) <$$f >/dev/null && \ + INDENT_PROFILE=.indent.pro $(INDENT) $$f || \ + echo $$f FAILED to indent; \ + done; + +.PHONY: indent |