Today here is a highlight of a new Postgres 9.4 feature interesting for developers and companies doing packaging of Postgres on Windows as it makes possible the installation of client-only binaries and libraries using MSVC. It has been introduced by this commit:
commit a7e5f7bf6890fdf14a6c6ecd0854ac3f5f308ccd Author: Andrew Dunstan <email@example.com> Date: Sun Jan 26 17:03:13 2014 -0500 Provide for client-only installs with MSVC. MauMau.
Enters in the client package all the binaries used to interact directly with the server (psql, pg_dump, pgbench) and the interface libraries (libpq, ecpg).
Documentation precisely describes how to set up an environment to compile PostgreSQL on Windows, so in short here is the new command that you can use from src/tools/msvc in for example a Windows SDK command prompt:
install c:\install\to\path client
The command "install" will install by default everything if no keyword is specified. As a new behavior, the keyword "all" can be used to install everything, meaning that the following commands are equivalent:
install c:\install\to\path install c:\install\to\path all
After the client installation, you will get the following things installed:
$ ls /c/install/to/path/bin/ clusterdb.exe droplang.exe oid2name.exe pg_isready.exe reindexdb.exe createdb.exe dropuser.exe pg_basebackup.exe pg_receivexlog.exe vacuumdb.exe createlang.exe ecpg.exe pg_config.exe pg_restore.exe vacuumlo.exe createuser.exe libpq.dll pg_dump.exe pgbench.exe dropdb.exe oid2name.exe pg_dumpall.exe psql.exe $ ls /c/install/to/path/lib/ libecpg.dll libecpg_compat.dll libpgcommon.lib libpgtypes.dll libpq.dll postgres.lib libecpg.lib libecpg_compat.lib libpgport.lib libpgtypes.lib libpq.lib
This is going to simplify a bit more the life of Windows packagers who have up to now needed custom scripts to install client-side things only. So thanks MauMau!