diff --git a/make/defs.mk b/make/defs.mk index a4502ec5..83b3179f 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -42,6 +42,7 @@ else include $(TOPDIR)/make/cfg_dist.mk endif endif +#include $(MODDIR)/make/proj_conf.mk OPTS_PID_FILE ?= $(PIDDIR)/$(PROJECT).pid @@ -188,11 +189,12 @@ INSTALLED_VERSION_FILE = $(PREFIX)/VERSION INSTALLED_DOCS_DIST = $(addprefix $(INSTALL_DOCDIR_DIST)/,$(DOCS)) INSTALLED_DOCS_DEVEL = $(addprefix $(INSTALL_DOCDIR_DEVEL)/,$(DOCS)) -LIB_A = $(LIBDIR)/lib$(LIBNAME).a ifneq ($(TARGET),mingw) +LIB_A = $(LIBDIR)/lib$(LIBNAME).a SO_SUFFIX = so.$(shell echo $(VERSION) | cut -d- -f1) LIB_SO = $(LIBDIR)/lib$(LIBNAME).$(SO_SUFFIX) else +LIB_A = $(LIBDIR)/lib$(LIBNAME)-static.a SO_SUFFIX = dll.$(shell echo $(VERSION) | cut -d- -f1) LIB_SO = $(LIBDIR)/$(LIBNAME).dll endif diff --git a/make/lo.mk b/make/lo.mk index 86849279..6f0da0b3 100644 --- a/make/lo.mk +++ b/make/lo.mk @@ -24,7 +24,7 @@ BUILD_LOADABLE_OBJ_LIBS = $(addprefix $(LIBDIR)/, $(LOADABLE_OBJ_LIBS)) all: $(LOADABLE_OBJ_LIBS) $(BUILD_LOADABLE_OBJ_LIBS) clean: - rm -f *.o *.cpp *.so *.done + rm -f *.o *.cpp *.so *.done *.dll $(SO_PREFIX)%.so $(SO_PREFIX)%.dll: %.o $(CPP) -shared $^ $(LDFLAGS) -o $@ diff --git a/make/plugin-defs.mk b/make/plugin-defs.mk index f6f59ad7..2e1f33e0 100644 --- a/make/plugin-defs.mk +++ b/make/plugin-defs.mk @@ -3,7 +3,13 @@ IS_PLUGIN = true PLUGIN_API ?= $(notdir $(shell cd ..; pwd)) PLUGIN_NAME ?= $(notdir $(shell pwd)) PLUGIN_PREFIX ?= feedfs -PLUGIN ?= $(PLUGIN_PREFIX)_$(PLUGIN_API)_$(PLUGIN_NAME).so +ifneq ($(TARGET),mingw) +PLUGIN_SUFFIX ?= so +else +PLUGIN_SUFFIX ?= dll +endif + +PLUGIN ?= $(PLUGIN_PREFIX)_$(PLUGIN_API)_$(PLUGIN_NAME).$(PLUGIN_SUFFIX) PLUGIN_VERSION_LIB_BASENAME = $(PLUGIN_PREFIX)_$(PLUGIN_API)_version PLUGIN_VERSION_LIB = $(LIBDIR)/lib$(PLUGIN_VERSION_LIB_BASENAME).a @@ -11,5 +17,5 @@ PLUGIN_VERSION_LIB = $(LIBDIR)/lib$(PLUGIN_VERSION_LIB_BASENAME).a CFLAGS += -D PLUGIN_NAME_STR=\"$(PLUGIN_NAME)\" CPPFLAGS += -D PLUGIN_NAME_STR=\"$(PLUGIN_NAME)\" -LDFLAGS += -Wl,--whole-archive -l$(PLUGIN_VERSION_LIB_BASENAME) -Wl,--no-whole-archive +PROJECT_LDFLAGS += -Wl,--whole-archive -l$(PLUGIN_VERSION_LIB_BASENAME) -Wl,--no-whole-archive diff --git a/make/plugin-version.mk b/make/plugin-version.mk index c46de4bf..6f3fdb82 100644 --- a/make/plugin-version.mk +++ b/make/plugin-version.mk @@ -4,7 +4,7 @@ include $(MODDIR)/make/defs.mk all: $(PLUGIN_VERSION_LIB) clean: thisclean version.o: version.cpp - g++ $(CPPFLAGS) -o $@ -c $< + $(CPP) $(CPPFLAGS) -o $@ -c $< thisclean: rm -f version.o diff --git a/make/rules.mk b/make/rules.mk index 88854865..ed1147ff 100644 --- a/make/rules.mk +++ b/make/rules.mk @@ -67,7 +67,7 @@ $(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@ else $(LIB_SO): $(VERSION_SCRIPT) $(LIB_A) - $(CC) -shared -Wl,--whole-archive,--out-implib,$(LIB_A)-mingw $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \ + $(CC) -shared -Wl,--whole-archive,--out-implib,$(shell echo $(LIB_A) | sed 's/-static//') $(VERSION_SCRIPT) $(LIB_A) -Wl,--no-whole-archive \ $(filter-out -l$(LIBNAME),$(LDFLAGS)) -o $@ endif