working on Makefiles

git-svn-id: svn://anubis/jcad/trunk@32 c8684bfa-0c3a-0410-9efb-b8c82542f01e
This commit is contained in:
josh 2009-04-04 01:16:59 +00:00
parent 7e0ff79829
commit 3b279c663f
2 changed files with 30 additions and 21 deletions

View File

@ -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)

View File

@ -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)