diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 62 |
1 files changed, 13 insertions, 49 deletions
@@ -1,5 +1,8 @@ -DISTROS=debian10 ubuntu1910 ubuntu2004 +include common.mk + VERSION=$(shell dpkg-parsechangelog --show-field Version) + +DISTROS=debian10 ubuntu1910 ubuntu2004 PROJECTNAME=webserver PLUGINS= \ cgi \ @@ -10,37 +13,9 @@ PLUGINS= \ webbox \ weblog -CXX=clang++-10 - -ifeq ($(shell which $(CXX)),) -CXX=clang++ -endif - -ifeq ($(shell which $(CXX)),) -CXX=g++-9 -endif +CXXFLAGS+=-fPIE -DVERSION=\"$(VERSION)\" -ifeq ($(shell which $(CXX)),) -CXX=g++ -endif - -ifeq ($(CXXFLAGS),) -#CXXFLAGS=-O2 -DNDEBUG -CXXFLAGS=-O0 -g -D_DEBUG -endif -# -fprofile-instr-generate -fcoverage-mapping -# gcc:--coverage - -CXXFLAGS+=-Wall -I. -DVERSION=\"$(VERSION)\" -fPIE - -CXXFLAGS+=-pthread -ifeq ($(CXX),clang++-10) -CXXFLAGS+=-std=c++20 #-stdlib=libc++ -else -CXXFLAGS+=-std=c++17 -endif - -LIBS=\ +LDLIBS+=\ -lcommon \ -lboost_context \ -lboost_filesystem \ @@ -56,20 +31,6 @@ LIBS=\ #-lboost_thread \ #-lboost_regex \ -ifeq ($(CXX),clang++-10) -LIBS+= \ --fuse-ld=lld-10 \ --lstdc++ -#-lc++ \ -#-lc++abi -#-lc++fs -#-lstdc++fs -else -LIBS+= \ --lstdc++ \ --lstdc++fs -endif - LDFLAGS+=-pie -Llibcommon PROGSRC=\ @@ -87,8 +48,7 @@ PROGSRC=\ SRC=$(PROGSRC) webserver.cpp -build: $(PROJECTNAME) - +set -e ; for i in $(PLUGINS) ; do make -C plugins/$$i ; done +build: $(PROJECTNAME) $(PLUGINS) all: build ./webserver -c webserver.conf @@ -99,6 +59,9 @@ $(PROJECTNAME): libcommon/libcommon.a $(SRC:.cpp=.o) libcommon/libcommon.a: $(MAKE) -C libcommon +$(PLUGINS): + cd plugins/$@ && $(MAKE) + %.d: %.cpp $(CXX) $(CXXFLAGS) -MM -MP -MF $@ -c $< @@ -146,7 +109,7 @@ debs: $(DISTROS) clean: -rm -f $(PROJECTNAME) -rm -f plugins/*.so - -find . -name '*.o' -o -name '*.d' -o -name '*.gcno' -o -name '*.gcda' | xargs rm -f + -find . -name '*.o' -o -name '*.d' -o -name '*.gcno' -o -name '*.gcda' -o -name '*.so' | xargs rm -f #for i in $(PLUGINS) ; do $(MAKE) -C plugins/$$i clean ; done for i in libcommon tests ; do $(MAKE) -C $$i clean ; done @@ -182,6 +145,7 @@ DISTFILES= \ README.txt \ LICENSE.txt \ Makefile \ + common.mk \ googletest \ googlemock \ debian/changelog \ @@ -253,6 +217,6 @@ dist: clean rm -rf $(PROJECTNAME)-$(VERSION) ls -l ../$(PROJECTNAME)-$(VERSION).tar.xz -.PHONY: clean all zip test install deb deb-src debs all $(DISTROS) +.PHONY: clean all zip test install deb deb-src debs all $(DISTROS) $(PLUGINS) -include $(wildcard $(SRC:.cpp=.d)) |