diff --git a/Makefile b/Makefile index ef0dec46..2a0baaba 100644 --- a/Makefile +++ b/Makefile @@ -23,21 +23,17 @@ else ifeq ($(UNAME),Linux) include Makefile.linux else # win32 mingw DAEMON_SRC += DaemonWin32.cpp Win32/Win32Service.cpp Win32/Win32App.cpp - DAEMON_RC += Win32/Resource.rc - WINDIR := True include Makefile.mingw endif -all: mk_build_dir $(ARLIB) $(ARLIB_CLIENT) $(I2PD) +all: mk_obj_dir $(ARLIB) $(ARLIB_CLIENT) $(I2PD) -mk_build_dir: - mkdir -p obj - ifeq ($(WINDIR),True) - mkdir -p obj/Win32 - endif +mk_obj_dir: + @mkdir -p obj + @mkdir -p obj/Win32 -api: mk_build_dir $(SHLIB) $(ARLIB) -api_client: mk_build_dir $(SHLIB) $(ARLIB) $(SHLIB_CLIENT) $(ARLIB_CLIENT) +api: mk_obj_dir $(SHLIB) $(ARLIB) +api_client: mk_obj_dir $(SHLIB) $(ARLIB) $(SHLIB_CLIENT) $(ARLIB_CLIENT) ## NOTE: The NEEDED_CXXFLAGS are here so that CXXFLAGS can be specified at build time ## **without** overwriting the CXXFLAGS which we need in order to build. @@ -46,24 +42,18 @@ api_client: mk_build_dir $(SHLIB) $(ARLIB) $(SHLIB_CLIENT) $(ARLIB_CLIENT) ## -std=c++11. If you want to remove this variable please do so in a way that allows setting ## custom FLAGS to work at build-time. -deps: - @mkdir -p obj +deps: mk_obj_dir $(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) -MM *.cpp > $(DEPS) @sed -i -e '/\.o:/ s/^/obj\//' $(DEPS) -obj/%.o : %.cpp - @mkdir -p obj +obj/%.o: %.cpp $(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) $(CPU_FLAGS) -c -o $@ $< -obj/%.o : %.rc - $(WINDRES) -i $< -o $@ - # '-' is 'ignore if missing' on first run -include $(DEPS) -DAEMON_OBJS = $(patsubst %.cpp,obj/%.o,$(DAEMON_SRC)) -DAEMON_RES_OBJS = $(patsubst %.rc,obj/%.o,$(DAEMON_RC)) -$(I2PD): $(DAEMON_OBJS) $(DAEMON_RES_OBJS) $(ARLIB) $(ARLIB_CLIENT) +DAEMON_OBJS += $(patsubst %.cpp,obj/%.o,$(DAEMON_SRC)) +$(I2PD): $(DAEMON_OBJS) $(ARLIB) $(ARLIB_CLIENT) $(CXX) -o $@ $^ $(LDLIBS) $(LDFLAGS) $(SHLIB): $(patsubst %.cpp,obj/%.o,$(LIB_SRC)) @@ -98,4 +88,4 @@ dist: .PHONY: dist .PHONY: api .PHONY: api_client -.PHONY: mk_build_dir +.PHONY: mk_obj_dir diff --git a/Makefile.mingw b/Makefile.mingw index 632eca0c..5de1f49d 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -4,8 +4,31 @@ CXXFLAGS = -O2 -D_MT -DWIN32 -D_WINDOWS -DWIN32_LEAN_AND_MEAN NEEDED_CXXFLAGS = -std=c++11 BOOST_SUFFIX = -mt INCFLAGS = -I/usr/include/ -I/usr/local/include/ -LDFLAGS = -mwindows -Wl,-rpath,/usr/local/lib -L/usr/local/lib -L/c/dev/openssl -L/c/dev/boost/lib -LDLIBS = -Wl,-Bstatic -lboost_system$(BOOST_SUFFIX) -Wl,-Bstatic -lboost_date_time$(BOOST_SUFFIX) -Wl,-Bstatic -lboost_filesystem$(BOOST_SUFFIX) -Wl,-Bstatic -lboost_regex$(BOOST_SUFFIX) -Wl,-Bstatic -lboost_program_options$(BOOST_SUFFIX) -Wl,-Bstatic -lssl -Wl,-Bstatic -lcrypto -Wl,-Bstatic -lz -Wl,-Bstatic -lwsock32 -Wl,-Bstatic -lws2_32 -Wl,-Bstatic -lgdi32 -Wl,-Bstatic -liphlpapi -static-libgcc -static-libstdc++ -Wl,-Bstatic -lstdc++ -Wl,-Bstatic -lpthread +LDFLAGS = -mwindows -Wl,-rpath,/usr/local/lib \ + -L/usr/local/lib \ + -L/c/dev/openssl \ + -L/c/dev/boost/lib +LDLIBS = \ + -Wl,-Bstatic -lboost_system$(BOOST_SUFFIX) \ + -Wl,-Bstatic -lboost_date_time$(BOOST_SUFFIX) \ + -Wl,-Bstatic -lboost_filesystem$(BOOST_SUFFIX) \ + -Wl,-Bstatic -lboost_regex$(BOOST_SUFFIX) \ + -Wl,-Bstatic -lboost_program_options$(BOOST_SUFFIX) \ + -Wl,-Bstatic -lssl \ + -Wl,-Bstatic -lcrypto \ + -Wl,-Bstatic -lz \ + -Wl,-Bstatic -lwsock32 \ + -Wl,-Bstatic -lws2_32 \ + -Wl,-Bstatic -lgdi32 \ + -Wl,-Bstatic -liphlpapi \ + -static-libgcc -static-libstdc++ \ + -Wl,-Bstatic -lstdc++ \ + -Wl,-Bstatic -lpthread +DAEMON_RC += Win32/Resource.rc +DAEMON_OBJS += $(patsubst %.rc,obj/%.o,$(DAEMON_RC)) + +obj/%.o : %.rc + $(WINDRES) -i $< -o $@ ifeq ($(USE_AESNI),1) CPU_FLAGS = -maes -DAESNI