A libpq library on Mac OS X is made as a loadable library (bundle). Since a
shared library version (dylib) of libpq does not exist, all programs which 
use libpq are always linked with a static version of libpq.

Psql made by a current make rule:

    $ ls -l /opt/pgsql/7.3/bin/psql psql
    -rwxr-xr-x  1 sugita  admin  188616 Dec 22 01:25 /opt/pgsql/7.3/bin/psql
    $ otool -L /opt/pgsql/7.3/bin/psql
    /opt/pgsql/7.3/bin/psql:
	    /usr/lib/libz.1.1.3.dylib (compatibility version 1.0.0, current version 1.1.3)
	    /usr/local/lib/libreadline.4.1.dylib (compatibility version 4.0.0, current version 4.1.0)
	    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 63.0.0)
    $

Psql made by a hand made shared library:

    $ ls -l psql 
    -rwxr-xr-x  1 sugita  wheel  138732 Dec 22 01:34 psql*
    $ otool -L psql 
    psql:
	    libpq.2.2.dylib (compatibility version 2.0.0, current version 2.2.0)
	    /usr/lib/libz.1.1.3.dylib (compatibility version 1.0.0, current version 1.1.3)
	    /usr/local/lib/libreadline.4.1.dylib (compatibility version 4.0.0, current version 4.1.0)
	    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 63.0.0)
    $ 

Make rules for shared library and loadable library are required to
make both type of libraries. How to change PostgreSQL make rules?


Kenji Sugita

Sun, 22 Dec 2002 01:38:10 +0900 (JST)
Kenji Sugita <sugita@srapc1327.sra.co.jp>
How to write make rules for shared library and loadable library