make: MinGW port

This commit is contained in:
Jan Lindemann 2007-07-16 15:15:16 +00:00 committed by Jan Lindemann
commit 1c812446e6
5 changed files with 14 additions and 6 deletions

View file

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

View file

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

View file

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

View file

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

View file

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