| # 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 |
| DLSUFFIX = .dll |
| |
| 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) |