diff --git a/build/autotools/common.am b/build/autotools/common.am index 55f33708..4db12d1b 100644 --- a/build/autotools/common.am +++ b/build/autotools/common.am @@ -1,19 +1,46 @@ -bench: bench-recursive -bench-recursive: +lol_recursive_rule = \ @if test -n "$(SUBDIRS)"; then for subdir in $(SUBDIRS); do \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) bench) || exit 1; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $(patsubst %-recursive, %, $@)) || exit 1; \ done; \ fi +bench: bench-recursive +bench-recursive: + $(lol_recursive_rule) + lolcheck: lolcheck-recursive lolcheck-recursive: - @if test -n "$(SUBDIRS)"; then for subdir in $(SUBDIRS); do \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) lolcheck) || exit 1; \ + $(lol_recursive_rule) + + +# +# Flex and Bison files build rule +# + +generated: generated-recursive +generated-recursive: + $(lol_recursive_rule) + @if test -n "$(filter %-scanner.l, $(EXTRA_DIST))"; then \ + echo $(MKDIR_P) generated; \ + $(MKDIR_P) generated; \ + rm -f generated/[a-zA-Z]*; \ + for scanner in $(patsubst %-scanner.l, %, $(filter %-scanner.l, $(EXTRA_DIST))); do \ + b="`basename $$scanner`"; \ + echo flex -o "generated/$$b-scanner.cpp" "$$scanner-scanner.l"; \ + flex -o "generated/$$b-scanner.cpp" "$$scanner-scanner.l"; \ + done; \ + for parser in $(patsubst %-parser.y, %, $(filter %-parser.y, $(EXTRA_DIST))); do \ + b="`basename $$parser`"; \ + echo bison -o "generated/$$b-parser.cpp" --defines="generated/$$b-parser.h" -d -b "generated/$$b" "$$parser-parser.y"; \ + bison -o "generated/$$b-parser.cpp" --defines="generated/$$b-parser.h" -d -b "generated/$$b" "$$parser-parser.y"; \ done; \ fi -.PHONY: lolcheck bench + +# +# .lolfx build rule +# SUFFIXES = .lolfx .lolfx.o: @@ -23,3 +50,10 @@ SUFFIXES = .lolfx echo ";") \ | $(CXXCOMPILE) -xc++ -c - -o $@ + +# +# Additional rules +# + +.PHONY: bench lolcheck generated + diff --git a/src/Makefile.am b/src/Makefile.am index 138afc76..b52f58a9 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -70,19 +70,6 @@ liblol_a_SOURCES = \ debug/record.cpp debug/record.h debug/stats.cpp debug/stats.h liblol_a_CPPFLAGS = @LOL_CFLAGS@ -Ibullet -if TRUE -generated: .FORCE - $(MKDIR_P) generated - rm -f generated/[a-zA-Z]* - flex -o generated/easymesh-scanner.cpp easymesh/easymesh-scanner.l - bison -o generated/easymesh-parser.cpp --defines=generated/easymesh-parser.h \ - -d -b generated/easymesh easymesh/easymesh-parser.y - flex -o generated/lolfx-scanner.cpp gpu/lolfx-scanner.l - bison -o generated/lolfx-parser.cpp --defines=generated/lolfx-parser.h \ - -d -b generated/lolfx gpu/lolfx-parser.y -.FORCE: -endif - EXTRA_DIST = easymesh/easymesh-scanner.l easymesh/easymesh-parser.y \ gpu/lolfx-scanner.l gpu/lolfx-parser.y