Thread: BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib'
The following bug has been logged online: Bug reference: 5960 Logged by: Julia Jacobson Email address: julia.jacobson@arcor.de PostgreSQL version: 8.4.6 Operating system: Windows 7 with Msys/MinGW Description: No rule to make target 'libpq.a', needed by 'all-static-lib' Details: Dear PostgreSQL developers, When trying to compile PostgreSQL 8.4.6 on Windows 7 using MSys (MinGW) in order to build a static version of libpq by the commands ./configure --without-zlib --disable-shared make the compilation process ends with the error message "No rule to make target 'libpq.a', needed by 'all-static-lib'". This issue was already discussed here on the mailing list more than 6 years ago and successfully fixed with a patch: http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg00057.php However, it seems to me like there is a similar problem in version 8.4.x. Please corrected me if I'm wrong. Regards, Julia
Re: BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib'
From
Etienne Robillard
Date:
On 30/03/11 09:54 AM, Julia Jacobson wrote: > The following bug has been logged online: > > Bug reference: 5960 > Logged by: Julia Jacobson > Email address: julia.jacobson@arcor.de > PostgreSQL version: 8.4.6 > Operating system: Windows 7 with Msys/MinGW > Description: No rule to make target 'libpq.a', needed by > 'all-static-lib' > Details: > > Dear PostgreSQL developers, > > When trying to compile PostgreSQL 8.4.6 on Windows 7 using MSys (MinGW) in > order to build a static version of libpq by the commands > ./configure --without-zlib --disable-shared > make > the compilation process ends with the error message > "No rule to make target 'libpq.a', needed by 'all-static-lib'". > This issue was already discussed here on the mailing list more than 6 years > ago and successfully fixed with a patch: > http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg00057.php > However, it seems to me like there is a similar problem in version 8.4.x. > Please corrected me if I'm wrong. > > Regards, > Julia > > hm, out of the blue, i believe you may have hitten yourself in the foot with the --disable-shared option. If that fails. then maybe you'll have different results with postgresql 8.4.7.. Cheers, -- Etienne Robillard Company: Green Tea Hackers Club Occupation: Software Developer (and CEO) E-mail: erob@gthcfoundation.org Work phone: 450-936-2123 Website (Company): https://gthc.org/ Website (Blog): https://gthc.org/blog/ PGP public key fingerprint: F2A9 32EA 8E7C 460F 1728 A1A7 649C 7F17 A086 DDEC During times of universal deceit, telling the truth becomes a revolutionary act. -- George Orwell If a free society cannot help the many who are poor, it cannot save the few who are rich. -- John F. Kennedy
Re: BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib'
From
julia.jacobson@arcor.de
Date:
Hello Etienne, Thanks for your answer. What do you mean by "you may have hitten yourself in the foot with the --disable-shared option"? When I don't use this option, everything works fine. Compiling PostgreSQL 8.4.7 doesn't work either. The problem is that I need a static libpq. Leaving out the --disable-shared option doesn't results in some pseudo-staticlibpq and my application still requires a dynamic libpq apart from the static one. Regards, Julia ----- Original Nachricht ---- Von: Etienne Robillard <erob@gthcfoundation.org> An: Julia Jacobson <julia.jacobson@arcor.de> Datum: 30.03.2011 17:14 Betreff: Re: [BUGS] BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib' > On 30/03/11 09:54 AM, Julia Jacobson wrote: > > The following bug has been logged online: > > > > Bug reference: 5960 > > Logged by: Julia Jacobson > > Email address: julia.jacobson@arcor.de > > PostgreSQL version: 8.4.6 > > Operating system: Windows 7 with Msys/MinGW > > Description: No rule to make target 'libpq.a', needed by > > 'all-static-lib' > > Details: > > > > Dear PostgreSQL developers, > > > > When trying to compile PostgreSQL 8.4.6 on Windows 7 using MSys (MinGW) > in > > order to build a static version of libpq by the commands > > ./configure --without-zlib --disable-shared > > make > > the compilation process ends with the error message > > "No rule to make target 'libpq.a', needed by 'all-static-lib'". > > This issue was already discussed here on the mailing list more than 6 > years > > ago and successfully fixed with a patch: > > http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg00057.php > > However, it seems to me like there is a similar problem in version 8.4.x. > > Please corrected me if I'm wrong. > > > > Regards, > > Julia > > > > > hm, out of the blue, i believe you may have hitten yourself in the foot > with the --disable-shared option. If that fails. then maybe you'll have > different > results with postgresql 8.4.7.. > > Cheers, > > -- > Etienne Robillard > > Company: Green Tea Hackers Club > Occupation: Software Developer (and CEO) > E-mail: erob@gthcfoundation.org > Work phone: 450-936-2123 > Website (Company): https://gthc.org/ > Website (Blog): https://gthc.org/blog/ > PGP public key fingerprint: F2A9 32EA 8E7C 460F 1728 A1A7 649C 7F17 A086 > DDEC > > During times of universal deceit, telling the truth becomes a revolutionary > act. -- George Orwell > > If a free society cannot help the many who are poor, it cannot save the few > who are rich. -- John F. Kennedy > >
Re: BUG #5960: No rule to make target 'libpq.a', needed by 'all-static-lib'
From
Julia Jacobson
Date:
On 30/03/2011 19:49, Etienne Robillard wrote: > On 30/03/11 12:56 PM, julia.jacobson@arcor.de wrote: >> Hello Etienne, >> >> Thanks for your answer. >> What do you mean by "you may have hitten yourself in the foot with the --disable-shared option"? >> When I don't use this option, everything works fine. >> Compiling PostgreSQL 8.4.7 doesn't work either. >> The problem is that I need a static libpq. Leaving out the --disable-shared option doesn't results in some pseudo-staticlibpq and my application still requires a dynamic libpq apart from the static one. >> >> Regards, >> Julia >> >> > > have you tried with "--enable-static=libpq" ? I'm not sure but this > issue could also be related > to the Mingw environment. > > Cheers, > > Etienne Well, the "--enable-static=libpq" option isn't very effective, since it results in the following message: configure: WARNING: option ignored: --enable-static Therefore, I would be happy about the compilation with the --disable-shared option finishing without errors.
On Wed, Mar 30, 2011 at 9:54 AM, Julia Jacobson <julia.jacobson@arcor.de> wrote: > When trying to compile PostgreSQL 8.4.6 on Windows 7 using MSys (MinGW) in > order to build a static version of libpq by the commands > ./configure --without-zlib --disable-shared > make > the compilation process ends with the error message > "No rule to make target 'libpq.a', needed by 'all-static-lib'". > This issue was already discussed here on the mailing list more than 6 years > ago and successfully fixed with a patch: > http://archives.postgresql.org/pgsql-hackers-win32/2004-10/msg00057.php > However, it seems to me like there is a similar problem in version 8.4.x. > Please corrected me if I'm wrong. I tried this on MacOS X and got a different error: make -C interfaces all make -C libpq all make[3]: *** No rule to make target `libpq.5.4.dylib', needed by `all-shared-lib'. Stop. make[2]: *** [all-libpq-recurse] Error 2 make[1]: *** [all-interfaces-recurse] Error 2 make: *** [all-src-recurse] Error 2 I also tried it on Linux (Fedora 12), where it completed successfully. Unfortunately, I don't think we have any buildfarm coverage of --disable-shared, so there is no automatic way for us to notice when this has gotten broken. The problem appears to be that the all-shared-lib target in src/Makefile.shlib depends on $(shlib). The first two, generic assignments to that variable are protected like this: ifeq ($(enable_shared), yes) shlib = $(NAME)$(DLSUFFIX) endif But the remaining, platform-specific ones are not. So my guess is this will work on any platform that uses the default value for shlib, and fail on any platform that has a platform-specific override, namely: aix, darwin, freebsd, hpux, irix, cygwin, win32. Can you see whether the following patch fixes it for you? It seems to work on MacOS X, but I don't have a mingw environment handy. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company