diff options
Diffstat (limited to 'src/makefiles/Makefile.win32')
-rw-r--r-- | src/makefiles/Makefile.win32 | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/makefiles/Makefile.win32 b/src/makefiles/Makefile.win32 new file mode 100644 index 0000000..17d6819 --- /dev/null +++ b/src/makefiles/Makefile.win32 @@ -0,0 +1,86 @@ +# src/makefiles/Makefile.win32 + +ifdef PGXS +BE_DLLLIBS= -L$(libdir) -lpostgres +override CPPFLAGS+= -I$(includedir_server)/port/win32 +else +BE_DLLLIBS= -L$(top_builddir)/src/backend -lpostgres +override CPPFLAGS+="-I$(top_srcdir)/src/include/port/win32" +endif + +override CPPFLAGS += -DWIN32_STACK_RLIMIT=$(WIN32_STACK_RLIMIT) + +AROPT = crs + +ifneq (,$(findstring backend,$(subdir))) +ifeq (,$(findstring conversion_procs,$(subdir))) +ifeq (,$(findstring libpqwalreceiver,$(subdir))) +ifeq (,$(findstring replication/pgoutput,$(subdir))) +ifeq (,$(findstring snowball,$(subdir))) +override CPPFLAGS+= -DBUILDING_DLL +endif +endif +endif +endif +endif + +ifneq (,$(findstring src/common,$(subdir))) +override CPPFLAGS+= -DBUILDING_DLL +endif + +ifneq (,$(findstring src/port,$(subdir))) +override CPPFLAGS+= -DBUILDING_DLL +endif + +ifneq (,$(findstring timezone,$(subdir))) +override CPPFLAGS+= -DBUILDING_DLL +endif + +ifneq (,$(findstring ecpg/ecpglib,$(subdir))) +override CPPFLAGS+= -DBUILDING_DLL +endif + +# required by Python headers +ifneq (,$(findstring src/pl/plpython,$(subdir))) +override CPPFLAGS+= -DUSE_DL_IMPORT +endif + +# it is better to install shared-libraries anyway? +# may be overridden with make MAKE_DLL=false install +ifndef MAKE_DLL +MAKE_DLL = true +endif + + +# Build rules to add versioninfo resources to win32 binaries + +WIN32RES += win32ver.o +PGFTYPE = $(if $(shlib),VFT_DLL,VFT_APP) +ifneq (,$(PGAPPICON)) +PGICOSTR = $(subst /,\/,IDI_ICON ICON \"$(top_builddir)/src/port/$(PGAPPICON).ico\") +endif + +# We do not install src/port/win32ver.rc, its content being specific to +# PostgreSQL Global Development Group software. Any module can ship a +# win32ver.rc or furnish a rule for generating one. Set $(PGFILEDESC) to +# signal win32ver.rc availability to the dll build rule below. +ifndef PGXS +win32ver.rc: $(top_srcdir)/src/port/win32ver.rc + sed -e 's;FILEDESC;$(PGFILEDESC);' \ + -e 's;VFT_APP;$(PGFTYPE);' \ + -e 's;_ICO_;$(PGICOSTR);' \ + -e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' \ + -e '/_INTERNAL_NAME_/$(if $(shlib),s;_INTERNAL_NAME_;"$(basename $(shlib))";,d)' \ + -e '/_ORIGINAL_NAME_/$(if $(shlib),s;_ORIGINAL_NAME_;"$(shlib)";,d)' \ + $< >$@ + +# Depend on Makefile.global to force rebuild on re-run of configure. +win32ver.rc: $(top_builddir)/src/Makefile.global +endif + +win32ver.o: win32ver.rc + $(WINDRES) -i $< -o $@ --include-dir=$(top_builddir)/src/include --include-dir=$(srcdir) + +# Rule for building a shared library from a single .o file +%.dll: %.o $(if $(PGFILEDESC),$(WIN32RES)) + $(CC) $(CFLAGS) -shared -static-libgcc -o $@ $^ -Wl,--export-all-symbols $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS) |