It stopped working in early 2017 after version 9.6.1.
http://wix.codeplex.com/
-Two parallel systems to build the installers are currently provided:
-
-POWERSHELL BASED
+HOW TO BUILD
----------
Ensure that suitable binaries are in the parent directory Release build outputs
Note that these installer generators use the configuration file prepared by the
PowerShell scripts in ..\winbuild, defaulting to ..\winbuild\configuration.xml,
-so you can't just mix them with SDK- or NMake based compilation.
-
-NMAKE BASED
------------
+so you can't just mix them with SDK-based compilation.
-Use the top-level file (win64.mak), per the documentation in
-docs/win32-compilation.html, to build installers using NMake.
+++ /dev/null
-
-
-# All the driver files that will be included in the installer
-DRIVER_FILES = ../$(TARGET_CPU)_Unicode_$(CFG)/psqlodbc35w.dll \
- ../$(TARGET_CPU)_Unicode_$(CFG)/pgxalib.dll \
- ../$(TARGET_CPU)_Unicode_$(CFG)/pgenlist.dll \
- ../$(TARGET_CPU)_ANSI_$(CFG)/psqlodbc30a.dll \
- ../$(TARGET_CPU)_ANSI_$(CFG)/pgxalib.dll \
- ../$(TARGET_CPU)_ANSI_$(CFG)/pgenlista.dll
-
-ALL: $(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msm $(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msi
-
-CANDLE="$(WIX)bin\candle.exe"
-LIGHT="$(WIX)bin\light"
-
-!INCLUDE ..\windows-defaults.mak
-!IF EXISTS(..\windows-local.mak)
-!INCLUDE ..\windows-local.mak
-!ENDIF
-
-!MESSAGE determining product code
-
-!INCLUDE productcodes.mak
-
-!MESSAGE Got product code $(PRODUCTCODE)
-
-MSM_OPTS = -dLIBPQBINDIR="$(LIBPQ_BIN)"
-
-# Merge module
-$(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msm: psqlodbcm_cpu.wxs $(DRIVER_FILES)
- echo Building Installer Merge Module
- $(CANDLE) -nologo -dPlatform="$(TARGET_CPU)" -dVERSION=$(POSTGRESDRIVERVERSION) -dSUBLOC=$(SUBLOC) $(MSM_OPTS) -o $(TARGET_CPU)\psqlodbcm.wixobj psqlodbcm_cpu.wxs
- $(LIGHT) -nologo -o $(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msm $(TARGET_CPU)\psqlodbcm.wixobj
-
-$(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msi: psqlodbc_cpu.wxs $(DRIVER_FILES)
- echo Building Installer
- $(CANDLE) -nologo -dPlatform="$(TARGET_CPU)" -dVERSION=$(POSTGRESDRIVERVERSION) -dSUBLOC=$(SUBLOC) -dPRODUCTCODE=$(PRODUCTCODE) -o $(TARGET_CPU)\psqlodbc.wixobj psqlodbc_cpu.wxs
- $(LIGHT) -nologo -ext WixUIExtension -cultures:en-us -o $(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msi $(TARGET_CPU)\psqlodbc.wixobj
- cscript modify_msi.vbs $(TARGET_CPU)\psqlodbc_$(TARGET_CPU).msi
-
-clean:
- -rd /Q /S x64 x86
+++ /dev/null
-!IF "$(POSTGRESDRIVERVERSION)" == "09.02.0100"
-PRODUCTCODE="3E42F836-9204-4c42-B3C3-8680A0434875"
-SUBLOC=0902
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.03.0100"
-PRODUCTCODE="1F896F2F-5756-4d22-B5A3-040796C9B485"
-SUBLOC=0903
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.03.0200"
-PRODUCTCODE="1F896F2F-5756-4d22-B5A3-040796C9B485"
-SUBLOC=0903
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.03.0210"
-PRODUCTCODE="1F896F2F-5756-4d22-B5A3-040796C9B485"
-SUBLOC=0903
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.03.0300"
-PRODUCTCODE="1F896F2F-5756-4d22-B5A3-040796C9B485"
-SUBLOC=0903
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.05.0100"
-PRODUCTCODE="4C4C4544-004D-5210-8035-B4C04F4B5731"
-SUBLOC=0905
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.05.0200"
-PRODUCTCODE="E40653B0-7482-45F6-9BBB-BBB4414E282C"
-SUBLOC=0905
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.05.0300"
-PRODUCTCODE="6621B0BF-1017-4b6d-AB9A-C1F9CFF092C8"
-SUBLOC=0905
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.05.0400"
-PRODUCTCODE="B047E4C0-B2C9-44DE-B125-6A4DEEFD26CD"
-SUBLOC=0905
-!ELSE IF "$(POSTGRESDRIVERVERSION)" == "09.06.0100"
-PRODUCTCODE="FBA4F687-2F8E-4E5F-BB7B-60F606E6F1C3"
-SUBLOC=0906
-!ELSE
-!MESSAGE Driver version $(POSTGRESDRIVERVERSION) is not listed in productcodes.mak
-EXIT
-!ENDIF
ansi-driver:
$(MAKE) -f win64.mak ANSI_VERSION=yes
-installer: unicode-driver ansi-driver
- cd installer && $(MAKE) -f installer.mak CFG=$(CFG)
-
-# world target builds both 32-bit and 64-bit installers in one command.
-#
-# The "setenv" command, from Microsoft SDK, is used to switch the build
-# target. However, it only changes the environment for the current shell;
-# it is reset for the next command. So we cannot just call "setenv /x64"
-# here one one line and nmake one the next one. I also tried creating a .bat
-# file with the commands, but setenv contains a "EXIT /B" which stops the
-# script from executing. But we can launch a new cmd.exe and pass the
-# commands to it in stdin.
world:
cmd < <<
setenv /x64
-$(MAKE) -f win64.mak installer CFG=$(CFG)
+$(MAKE) -f win64.mak unicode-driver ansi-driver CFG=$(CFG)
setenv /x86
-$(MAKE) -f win64.mak installer CFG=$(CFG)
+$(MAKE) -f win64.mak unicode-driver ansi-driver CFG=$(CFG)
+>&2 echo The "world" target does not build installers anymore.
<<
clean-world:
-rd /Q /S x64_Unicode_Release x64_Unicode_Debug
-rd /Q /S x86_ANSI_Release x86_ANSI_Debug
-rd /Q /S x86_Unicode_Release x86_Unicode_Debug
- cd installer && $(MAKE) /f installer.mak CFG=$(CFG) clean