From 3b279c663f8a4ff1df098fa542c81dcf7e227189 Mon Sep 17 00:00:00 2001 From: josh Date: Sat, 4 Apr 2009 01:16:59 +0000 Subject: [PATCH] working on Makefiles git-svn-id: svn://anubis/jcad/trunk@32 c8684bfa-0c3a-0410-9efb-b8c82542f01e --- Makefile | 10 ++++++---- src/Makefile | 41 ++++++++++++++++++++++++----------------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/Makefile b/Makefile index 915268a..98e64f0 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,13 @@ -CP = cp -TARGET = jcad +SHELL := bash +export TARGET := jcad +export CP := cp -p +export RM := rm -f all: $(MAKE) -C src - $(CP) -p src/$(TARGET) . + $(CP) src/$(TARGET) . clean: - find . -name '*.d' -exec rm {} ';' $(MAKE) -C src clean + -$(RM) $(TARGET) diff --git a/src/Makefile b/src/Makefile index 586b6b1..43e8543 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,26 +1,33 @@ -CP := cp -TARGET := jcad -MODULES := main gui engine +SHELL := bash + export GTKMM_VERSION := 2.4 export GTKGLEXTMM_VERSION := 1.2 -CXXFLAGS := -O2 -LDFLAGS := `pkg-config --libs gtkmm-$(GTKMM_VERSION)` \ - `pkg-config --libs gtkglextmm-$(GTKGLEXTMM_VERSION)` -ARCHIVES := $(foreach module,$(MODULES),$(module)/$(module).a) -all: $(MODULES) $(TARGET) +ifdef WIN32 +export CPPFLAGS += -I"$(shell cd)" +else +export CPPFLAGS += -I"$(shell pwd)" +endif +export CXXFLAGS := -Wall -O2 +export LDFLAGS := `pkg-config --libs gtkmm-$(GTKMM_VERSION)` \ + `pkg-config --libs gtkglextmm-$(GTKGLEXTMM_VERSION)` -$(TARGET): $(ARCHIVES) - $(CXX) -o $@ $(ARCHIVES) $(LDFLAGS) +SUBDIRS := engine gui main -%.o: %.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $< +all: $(TARGET) -.PHONY: $(MODULES) -$(MODULES): - $(MAKE) -C $@ +.PHONY: $(TARGET) +$(TARGET): + @for d in $(SUBDIRS); \ + do $(MAKE) -C $$d; \ + ret=$$?; \ + if [[ $$ret != 0 ]]; then \ + exit $$ret; \ + fi; \ + done + $(CXX) -o $@ $(patsubst %,%/*.o,$(SUBDIRS)) $(CXXFLAGS) $(LDFLAGS) clean: - $(RM) -f *.o *.a *~ $(TARGET) - for m in $(MODULES); do (cd $$m; $(MAKE) clean ); done + for d in $(SUBDIRS); do $(MAKE) -C $$d clean CLEAN=1; done + -$(RM) $(TARGET)