[Assorted-commits] SF.net SVN: assorted:[1323] ydb/trunk/src/Makefile
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-03-23 03:54:39
|
Revision: 1323 http://assorted.svn.sourceforge.net/assorted/?rev=1323&view=rev Author: yangzhang Date: 2009-03-23 03:54:33 +0000 (Mon, 23 Mar 2009) Log Message: ----------- - distcc now works perfectly - reorganized the Makefile and removed recursive make - general cleanup and tweaks throughout the Makefile Modified Paths: -------------- ydb/trunk/src/Makefile Modified: ydb/trunk/src/Makefile =================================================================== --- ydb/trunk/src/Makefile 2009-03-22 09:08:37 UTC (rev 1322) +++ ydb/trunk/src/Makefile 2009-03-23 03:54:33 UTC (rev 1323) @@ -1,61 +1,16 @@ -TARGET := ydb +# +# Tool configurations +# + WTF := wtf +# CXX := $(WTF) ag++ -k --Xcompiler # $(CXX) +ORIGCXX := $(CXX) CCACHE := ccache -DISTCC := distcc -CCACHE_PREFIX := $(DISTCC) -ifeq ($(CCACHE),) -ACCEL := $(DISTCC) -else -ACCEL := $(CCACHE) -endif +export CCACHE_PREFIX := distcc +CXX := $(WTF) $(CCACHE) $(CXX) -pipe +# CC := $(CXX) # for linking -CLAMPS := $(wildcard *.lzz.clamp) -CLAMPLZZS:= $(patsubst %.clamp,%,$(CLAMPS)) -PURELZZS := $(foreach lzz,$(wildcard *.lzz),$(if $(wildcard $(lzz).clamp),,$(lzz))) -LZZS := $(CLAMPLZZS) $(PURELZZS) -LZZHDRS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.hh,$(lzz))) -LZZSRCS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.cc,$(lzz))) -LZZOBJS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.o,$(lzz))) - -PBS := $(wildcard *.proto) -PBHDRS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.h,$(pb))) -PBSRCS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.cc,$(pb))) -PBOBJS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.o,$(pb))) - -GENHDRS := $(LZZHDRS) $(PBHDRS) -GENSRCS := $(LZZSRCS) $(PBSRCS) -GENOBJS := $(LZZOBJS) $(PBOBJS) - -TPCC_OBJS:= clock randomgenerator tpccclient tpccdb tpccgenerator tpcctables -TPCC_OBJS:= $(foreach i,$(TPCC_OBJS),tpcc/$(i).o) - -HDRS := $(GENHDRS) -SRCS := $(GENSRCS) -OBJS := $(GENOBJS) $(TPCC_OBJS) - -ifneq ($(GPROF),) - GPROF := -pg -endif -ifneq ($(GCOV),) - GCOV := -fprofile-arcs -ftest-coverage -endif -ifneq ($(PPROF),) - PPROF := -lprofiler -endif -ifneq ($(OPT),) - OPT := -g3 -O3 -Wdisabled-optimization -DNDEBUG -else - OPT := -g3 -endif -# CXX := $(WTF) ag++ -k --Xcompiler # $(CXX) -CXX := $(WTF) $(ACCEL) $(CXX) -pipe -CC := $(CXX) # for linking -LDFLAGS := -pthread $(GPROF) -LDLIBS := -lstx -lst -lresolv -lprotobuf -lgtest \ - -lboost_program_options-gcc43-mt -lboost_thread-gcc43-mt \ - -lboost_serialization-gcc43-mt $(PPROF) - -CXXFLAGS0 := $(OPT) -pthread $(GPROF) \ +WARNINGS = \ -Wall \ -Werror \ -Wextra \ @@ -84,11 +39,7 @@ -Wredundant-decls \ -Winvalid-pch \ -Wlong-long \ - -Wvolatile-register-var \ - -std=gnu++0x \ - -m64 \ - -march=$(shell gcc-config march) \ - $(CXXFLAGS) + -Wvolatile-register-var # \ -Wmissing-noreturn \ @@ -102,54 +53,111 @@ -Wstrict-overflow \ -Winline \ +ORIGCXXFLAGS := $(CXXFLAGS) + +ifneq ($(GCOV),) + GCOV := -fprofile-arcs -ftest-coverage +endif +ifneq ($(OPT),) + OPT := -g3 -O3 -Wdisabled-optimization -DNDEBUG +else + OPT := -g3 +endif +ifneq ($(GPROF),) + GPROF := -pg +endif +ifneq ($(PPROF),) + PPROF := -lprofiler +endif + +CXXFLAGS0 = $(OPT) -pthread $(GPROF) \ + $(WARNINGS) \ + -std=gnu++0x \ + -m64 \ + -march=$(shell ./gcc-config march) \ + $(ORIGCXXFLAGS) + ifneq ($(PCH),) - CXXFLAGS := $(CXXFLAGS0) -include pch.h + CXXFLAGS = $(CXXFLAGS0) -include pch.h $(LZZOBJS): pch.h.gch else - CXXFLAGS := $(CXXFLAGS0) + CXXFLAGS = $(CXXFLAGS0) endif -PBCXXFLAGS := $(OPT) -Wall -Werror $(GPROF) +LDFLAGS := -pthread $(GPROF) $(LDFLAGS) -all: $(TARGET) +LDLIBS := -lstx -lst -lresolv -lprotobuf -lgtest \ + -lboost_program_options-gcc43-mt -lboost_thread-gcc43-mt \ + -lboost_serialization-gcc43-mt $(PPROF) -%.pb.o: %.pb.cc %.pb.h - $(CXX) -c $(PBCXXFLAGS) $(OUTPUT_OPTION) $< +.PHONY: clean -stxn.o: main.hh $(PBHDRS) -main.o: util.hh msg.h $(PBHDRS) -util.o: msg.h $(PBHDRS) -ydb.o: main.hh stxn.hh tpcc.hh util.hh $(PBHDRS) -tpcc.o: main.hh util.hh $(PBHDRS) -ydb: $(OBJS) +# +# Project sources +# -tpcc/%.o: tpcc/%.cc - make -C tpcc/ +SVNURL := https://assorted.svn.sourceforge.net/svnroot/assorted/ydb/trunk/src -tpcc/%.cc: tpcc/%.cc.cog - make -C tpcc/ +TARGET := ydb -.SECONDARY: tpcc/tpcctables.cc tpcc/tpcctables.o +CLAMPS := $(wildcard *.lzz.clamp) +CLAMPLZZS:= $(patsubst %.clamp,%,$(CLAMPS)) +PURELZZS := $(foreach lzz,$(wildcard *.lzz),$(if $(wildcard $(lzz).clamp),,$(lzz))) +LZZS := $(CLAMPLZZS) $(PURELZZS) +LZZHDRS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.hh,$(lzz))) +LZZSRCS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.cc,$(lzz))) +LZZOBJS := $(foreach lzz,$(LZZS),$(patsubst %.lzz,%.o,$(lzz))) +PBS := $(wildcard *.proto) +PBHDRS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.h,$(pb))) +PBSRCS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.cc,$(pb))) +PBOBJS := $(foreach pb,$(PBS),$(patsubst %.proto,%.pb.o,$(pb))) + +COGS := $(wildcard tpcc/*.cog) +COGSRCS := $(foreach cog,$(COGS),$(patsubst %.cog,%,$(cog))) + +GENHDRS := $(LZZHDRS) $(PBHDRS) $(COGHDRS) +GENSRCS := $(LZZSRCS) $(PBSRCS) $(COGSRCS) +GENOBJS := $(LZZOBJS) $(PBOBJS) $(COGOBJS) + +TPCC_OBJS:= clock randomgenerator tpccclient tpccdb tpccgenerator tpcctables +TPCC_OBJS:= $(foreach i,$(TPCC_OBJS),tpcc/$(i).o) + +HDRS := $(GENHDRS) +SRCS := $(GENSRCS) +OBJS := $(GENOBJS) $(TPCC_OBJS) + +# +# Rules +# + +all: $(TARGET) + +doc: $(SRCS) $(HDRS) + doxygen + +%.pb.o: WARNINGS = -Wall -Werror +%.pb.o: %.pb.cc %.pb.h + +%.cc: %.cc.cog + cog.py $< > $@ + %.cc %.hh: %.lzz lzz -hx hh -sx cc -hl -sl -hd -sd $< -%.pb.cc: %.proto +%.pb.h %.pb.cc: %.proto protoc --cpp_out=. $< -%.pb.h: %.proto - protoc --cpp_out=. $< - %.lzz: %.lzz.clamp rm -f $@ - mkdir -p clamp/ - clamp --outdir clamp/ --prefix $(basename $@) < $< | \ + mkdir -p .clamp/ + clamp --outdir .clamp/ --prefix $(basename $@) < $< | \ sed "$$( echo -e '1i\\\n\#hdr\n1a\\\n\#end' )" | \ sed "$$( echo -e '$$i\\\n\#hdr\n$$a\\\n\#end' )" > $@ chmod -w $@ pch.h: - svn ls -rHEAD -R https://assorted.svn.sourceforge.net/svnroot/assorted/ydb/trunk/src | \ + svn ls -rHEAD -R $(SVNURL) | \ egrep -v '/$$|Makefile' | \ xargs sed 's/.*\binclude\b *<\(.*\)>.*/\#include <\1>/; t succ; d; :succ /commons/ d' | \ sort -u > $@ @@ -158,23 +166,38 @@ %.h.gch: %.h $(LINK.cc) $(OUTPUT_OPTION) $< +# +# Project-specific rules +# + +stxn.o: main.hh $(PBHDRS) +main.o: util.hh msg.h $(PBHDRS) +util.o: msg.h $(PBHDRS) +ydb.o: main.hh stxn.hh tpcc.hh util.hh $(PBHDRS) +tpcc.o: main.hh util.hh $(PBHDRS) +ydb: $(OBJS) + +tpcc/%.o: WARNINGS = \ + -Werror \ + -Wall \ + -Wextra \ + -Wconversion \ + -Wpointer-arith \ + -Wcast-qual \ + -Wcast-align \ + -Wwrite-strings \ + -Woverloaded-virtual \ + -Wno-sign-compare \ + -Wno-unused-parameter + clean: - rm -rf clamp/ $(GENSRCS) $(GENHDRS) $(OBJS) $(TARGET) \ - $(CLAMPLZZS) $(LZZHDRS) $(LZZSRCS) - make -C tpcc/ clean + rm -rf .clamp/ $(GENSRCS) $(GENHDRS) $(OBJS) $(TARGET) $(CLAMPLZZS) distclean: clean rm -f pch.h pch.h.gch -doc: $(SRCS) $(HDRS) - doxygen +.SECONDARY: $(GENSRCS) $(GENHDRS) $(OBJS) main.lzz pch.h.gch -.PHONY: clean - -.SECONDARY: $(SRCS) $(HDRS) $(OBJS) main.lzz pch.h.gch - -### - serperf: ydb.pb.o ser: ydb.pb.o ser.o: msg.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |