From 0296d104ad633d416076db3a4237511ce53efb68 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Tue, 7 Oct 2014 22:10:26 +0200
Subject: [PATCH] fix multiple invocations of recepies

---
 alib2algo/makefile                            |  14 +-
 alib2data/makefile                            |  13 +-
 .../PDA/RealTimeHeightDeterministicDPDA.cpp   |   2 +-
 makefile                                      | 121 +++++++++---------
 4 files changed, 78 insertions(+), 72 deletions(-)

diff --git a/alib2algo/makefile b/alib2algo/makefile
index d37762de57..9f806f21b7 100644
--- a/alib2algo/makefile
+++ b/alib2algo/makefile
@@ -16,12 +16,14 @@ TEST_OBJECTS_RELEASE:=$(patsubst test-src/%.cpp, test-obj-release/%.o, $(shell f
 
 .PHONY: all build-debug build-tests-debug clean-debug doc
 
+
+
 all:
 	@echo "What to do master?"
 
-debug: build-debug build-tests-debug
+debug: unit-test-debug
 
-release: build-release build-tests-release
+release: unit-test-release
 
 clean: clean-debug clean-release
 	$(RM) -r doc
@@ -30,11 +32,11 @@ test: unit-test-debug unit-test-release
 
 
 
-lib-debug/$(LIBRARY): obj-debug/ $(OBJECTS_DEBUG)
+lib-debug/$(LIBRARY): $(OBJECTS_DEBUG)
 	mkdir -p $(dir $@)
 	$(CXX) $(OBJECTS_DEBUG) -o $@ $(LDFLAGS_DEBUG)
 
-lib-release/$(LIBRARY): obj-release/ $(OBJECTS_RELEASE)
+lib-release/$(LIBRARY): $(OBJECTS_RELEASE)
 	mkdir -p $(dir $@)
 	$(CXX) $(OBJECTS_RELEASE) -o $@ $(LDFLAGS_RELEASE)
 
@@ -103,11 +105,11 @@ build-release: lib-release/$(LIBRARY)
 
 
 
-test-bin-debug/$(TESTBIN): test-obj-debug/ lib-debug/$(LIBRARY) $(TEST_OBJECTS_DEBUG)
+test-bin-debug/$(TESTBIN): lib-debug/$(LIBRARY) $(TEST_OBJECTS_DEBUG)
 	mkdir -p $(dir $@)
 	$(CXX) $(TEST_OBJECTS_DEBUG) -o $@ $(TEST_LDFLAGS_DEBUG)
 
-test-bin-release/$(TESTBIN): test-obj-release/ lib-release/$(LIBRARY) $(TEST_OBJECTS_RELEASE)
+test-bin-release/$(TESTBIN): lib-release/$(LIBRARY) $(TEST_OBJECTS_RELEASE)
 	mkdir -p $(dir $@)
 	$(CXX) $(TEST_OBJECTS_RELEASE) -o $@ $(TEST_LDFLAGS_RELEASE)
 
diff --git a/alib2data/makefile b/alib2data/makefile
index 7b0e587e62..9c4d944703 100644
--- a/alib2data/makefile
+++ b/alib2data/makefile
@@ -21,9 +21,9 @@ TEST_OBJECTS_RELEASE:=$(patsubst test-src/%.cpp, test-obj-release/%.o, $(shell f
 all:
 	@echo "What to do master?"
 
-debug: build-debug build-tests-debug
+debug: unit-test-debug
 
-release: build-release build-tests-release
+release: unit-test-release
 
 clean: clean-debug clean-release
 	$(RM) -r doc
@@ -32,11 +32,11 @@ test: unit-test-debug unit-test-release
 
 
 
-lib-debug/$(LIBRARY): obj-debug/ $(OBJECTS_DEBUG)
+lib-debug/$(LIBRARY): $(OBJECTS_DEBUG)
 	mkdir -p $(dir $@)
 	$(CXX) $(OBJECTS_DEBUG) -o $@ $(LDFLAGS_DEBUG)
 
-lib-release/$(LIBRARY): obj-release/ $(OBJECTS_RELEASE)
+lib-release/$(LIBRARY): $(OBJECTS_RELEASE)
 	mkdir -p $(dir $@)
 	$(CXX) $(OBJECTS_RELEASE) -o $@ $(LDFLAGS_RELEASE)
 
@@ -105,11 +105,11 @@ build-release: lib-release/$(LIBRARY)
 
 
 
-test-bin-debug/$(TESTBIN): test-obj-debug/ lib-debug/$(LIBRARY) $(TEST_OBJECTS_DEBUG)
+test-bin-debug/$(TESTBIN): lib-debug/$(LIBRARY) $(TEST_OBJECTS_DEBUG)
 	mkdir -p $(dir $@)
 	$(CXX) $(TEST_OBJECTS_DEBUG) -o $@ $(TEST_LDFLAGS_DEBUG)
 
-test-bin-release/$(TESTBIN): test-obj-release/ lib-release/$(LIBRARY) $(TEST_OBJECTS_RELEASE)
+test-bin-release/$(TESTBIN): lib-release/$(LIBRARY) $(TEST_OBJECTS_RELEASE)
 	mkdir -p $(dir $@)
 	$(CXX) $(TEST_OBJECTS_RELEASE) -o $@ $(TEST_LDFLAGS_RELEASE)
 
@@ -201,3 +201,4 @@ FORCE:
 
 doc:
 	doxygen
+
diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
index 039f42e8bd..054fa7492d 100644
--- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
+++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp
@@ -13,7 +13,7 @@
 
 namespace automaton {
 
-RealTimeHeightDeterministicDPDA::RealTimeHeightDeterministicDPDA(const State& initialState, const alphabet::Symbol& bottomOfTheStackSymbol) : BottomOfTheStackSymbolPushdownStoreAlphabet(bottomOfTheStackSymbol), SingleInitialState(initialState) {
+RealTimeHeightDeterministicDPDA::RealTimeHeightDeterministicDPDA(const State& initialState, const alphabet::Symbol& bottomOfTheStackSymbol) : SingleInitialState(initialState), BottomOfTheStackSymbolPushdownStoreAlphabet(bottomOfTheStackSymbol) {
 
 }
 
diff --git a/makefile b/makefile
index 46b5505029..8739611f78 100644
--- a/makefile
+++ b/makefile
@@ -20,38 +20,89 @@ SUBDIRS_BINS = acat2 \
 
 SUBDIRS_WITH_MAKE = $(dir $(wildcard */makefile))
 
-.PHONY: $(addsuffix .build-debug  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))  \
+.PHONY: $(addsuffix .all-debug  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))  \
+	$(addsuffix .all-release, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))\
+	$(addsuffix .build-debug  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))  \
 	$(addsuffix .build-release, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))\
 	$(addsuffix .build-debug-tests  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))  \
 	$(addsuffix .build-release-tests, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))\
-	build-debug   build-test-debug   unit-test-debug   copy-debug   test-debug   clean-debug   \
-	build-release build-test-release unit-test-release copy-release test-release clean-release \
-	doc all
+	all-debug   build-debug   build-test-debug   unit-test-debug   clean-debug   \
+	all-release build-release build-test-release unit-test-release clean-release \
+	debug release clean doc all
 
 # ifneq (3.82, $(firstword $(sort $(MAKE_VERSION) 3.81)))
 # 	$(error version at least 3.82 is needed for make to work)
 # endif
 
-all: debug release doc
+all:
+	@echo "What to do master?"
 
 
 
-debug  : build-debug   build-tests-debug   unit-test-debug   copy-debug   test-debug
+debug  : all-debug
+	mkdir -p $(addsuffix -debug, $(BINFOLDER))
+	rm -rf $(addsuffix -debug, $(BINFOLDER))/*
+	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
+	    cp $$dir/lib-debug/* $(addsuffix -debug, $(BINFOLDER)); \
+	done
+	for dir in $(SUBDIRS_BINS); do \
+	    cp $$dir/bin-debug/* $(addsuffix -debug, $(BINFOLDER)); \
+	done
+	./tests.aconversion.sh debug
 
-release: build-release build-tests-release unit-test-release copy-release test-release
+release: all-release
+	mkdir -p $(addsuffix -release, $(BINFOLDER))
+	rm -rf $(addsuffix -release, $(BINFOLDER))/*
+	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
+	    cp $$dir/lib-release/* $(addsuffix -release, $(BINFOLDER)); \
+	done
+	for dir in $(SUBDIRS_BINS); do \
+	    cp $$dir/bin-release/* $(addsuffix -release, $(BINFOLDER)); \
+	done
+	./tests.aconversion.sh release
 
 clean  : clean-debug   clean-release
 	$(RM) -r bin-debug bin-release
 
+
+
+all-debug   : $(addsuffix .all-debug  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
+
+all-release : $(addsuffix .all-release, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
+
+
+
 build-debug  : $(addsuffix .build-debug  , $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
 
 build-release: $(addsuffix .build-release, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
 
 
 
-build-tests-debug  : build-debug   $(addsuffix .build-tests-debug  , $(CORE_LIB) $(SUBDIRS_LIBS))
+build-tests-debug  : $(addsuffix .build-tests-debug  , $(CORE_LIB) $(SUBDIRS_LIBS))
+
+build-tests-release: $(addsuffix .build-tests-release, $(CORE_LIB) $(SUBDIRS_LIBS))
+
+
+
+$(addsuffix .all-debug, $(CORE_LIB)):
+	$(MAKE) debug -C $(basename $@)
+
+$(addsuffix .all-debug, $(SUBDIRS_LIBS)): $(addsuffix .all-debug, $(CORE_LIB))
+	$(MAKE) debug -C $(basename $@)
+
+$(addsuffix .all-debug, $(SUBDIRS_BINS)): $(addsuffix .all-debug, $(SUBDIRS_LIBS))
+	$(MAKE) debug -C $(basename $@)
+
+
 
-build-tests-release: build-release $(addsuffix .build-tests-release, $(CORE_LIB) $(SUBDIRS_LIBS))
+$(addsuffix .all-release, $(CORE_LIB)):
+	$(MAKE) release -C $(basename $@)
+
+$(addsuffix .all-release, $(SUBDIRS_LIBS)): $(addsuffix .build-release, $(CORE_LIB))
+	$(MAKE) release -C $(basename $@)
+
+$(addsuffix .all-release, $(SUBDIRS_BINS)): $(addsuffix .build-release, $(SUBDIRS_LIBS))
+	$(MAKE) release -C $(basename $@)
 
 
 
@@ -105,66 +156,18 @@ clean-release:
 
 
 
-copy-debug: $(addsuffix .build-debug, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
-	mkdir -p $(addsuffix -debug, $(BINFOLDER))
-	rm -rf $(addsuffix -debug, $(BINFOLDER))/*
-	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
-	    cp $$dir/lib-debug/* $(addsuffix -debug, $(BINFOLDER)); \
-	done
-	for dir in $(SUBDIRS_BINS); do \
-	    cp $$dir/bin-debug/* $(addsuffix -debug, $(BINFOLDER)); \
-	done
-
-copy-release: $(addsuffix .build-release, $(CORE_LIB) $(SUBDIRS_LIBS) $(SUBDIRS_BINS))
-	mkdir -p $(addsuffix -release, $(BINFOLDER))
-	rm -rf $(addsuffix -release, $(BINFOLDER))/*
-	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
-	    cp $$dir/lib-release/* $(addsuffix -release, $(BINFOLDER)); \
-	done
-	for dir in $(SUBDIRS_BINS); do \
-	    cp $$dir/bin-release/* $(addsuffix -release, $(BINFOLDER)); \
-	done
-
-
-
-# install:
-# 	cp alib/lib/libalib.so $(LIBPATH)
-# 	cp acat/bin/acat $(APPPATH)
-# 	cp aconvert/bin/aconvert $(APPPATH)
-# 	cp aconvert.dot/bin/aconvert.dot $(APPPATH)
-# 	cp aconvert.gastex/bin/aconvert.gastex $(APPPATH)
-# 	cp aminimize/bin/aminimize $(APPPATH)
-
-# uninstall:
-# 	rm $(LIBPATH)/libalib.so
-# 	rm $(APPPATH)/acat
-# 	rm $(APPPATH)/aconvert
-# 	rm $(APPPATH)/aconvert.dot
-# 	rm $(APPPATH)/aconvert.gastex
-# 	rm $(APPPATH)/aminimize
-
-unit-test-debug: build-tests-debug
+unit-test-debug:
 	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
 	    $(MAKE) unit-test-debug -C $$dir; \
 	done
 
-unit-test-verbose: build-tests-release
+unit-test-verbose:
 	for dir in $(CORE_LIB) $(SUBDIRS_LIBS); do \
 	    $(MAKE) unit-test-release -C $$dir; \
 	done
 
 
 
-test-debug: copy-debug unit-test-debug
-	./tests.aconversion.sh debug
-
-
-
-test-release: copy-release unit-test-release
-	./tests.aconversion.sh release
-
-
-
 doc:
 	$(MAKE) doc -C alib2data
 	$(MAKE) doc -C alib2algo
-- 
GitLab