Re: Static build of libpq fails

Bruce Momjian <[email protected]>
Newsgroups gmane.comp.db.postgresql.devel.win32,gmane.comp.db.postgresql.devel.patches
Message-ID <[email protected]>
Dave Page wrote:
> Hi,
> 
> I tried building a static libpq with Mingw, which it seems doesn't work
> any more:
> 
> make[3]: *** No rule to make target `libpq.a', needed by
> `all-static-lib'.  Stop.
> make[3]: Leaving directory `/cvs/pgsql/src/interfaces/libpq'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/cvs/pgsql/src/interfaces'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `/cvs/pgsql/src'
> make: *** [all] Error 2
> 
> I can work around this easily enough, however it should obviously get
> fixed at some point.

I got it working easily by doing 'gmake all-static-lib' from the
src/interfaces/libpq directory.  Is it supposed to work somewhere else?

The attached patch adds some pg_config_paths.h dependencies that are
missing.  I am now wondering if we should have that file generated by
configure, but that defeats the ability to modify Makefile.global to
change settings so I guess we are stuck with what we have currently.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [email protected]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073


---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
/bjm/diff (text/plain, 3.7 KB)
Index: src/Makefile.shlib
===================================================================
RCS file: /cvsroot/pgsql/src/Makefile.shlib,v
retrieving revision 1.79
diff -c -c -r1.79 Makefile.shlib
*** src/Makefile.shlib	8 Oct 2004 04:22:59 -0000	1.79
--- src/Makefile.shlib	12 Oct 2004 00:56:46 -0000
***************
*** 245,253 ****
  
  all-lib: all-static-lib all-shared-lib
  
! all-static-lib: lib$(NAME).a
  
! all-shared-lib: $(shlib)
  
  ifneq ($(PORTNAME), cygwin)
  ifneq ($(PORTNAME), win32)
--- 245,253 ----
  
  all-lib: all-static-lib all-shared-lib
  
! all-static-lib: $(PTHREAD_H_WIN32) $(top_srcdir)/src/port/pg_config_paths.h lib$(NAME).a
  
! all-shared-lib: $(PTHREAD_H_WIN32) $(top_srcdir)/src/port/pg_config_paths.h $(shlib)
  
  ifneq ($(PORTNAME), cygwin)
  ifneq ($(PORTNAME), win32)
Index: src/interfaces/ecpg/ecpglib/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/Makefile,v
retrieving revision 1.26
diff -c -c -r1.26 Makefile
*** src/interfaces/ecpg/ecpglib/Makefile	4 Oct 2004 20:36:11 -0000	1.26
--- src/interfaces/ecpg/ecpglib/Makefile	12 Oct 2004 00:56:54 -0000
***************
*** 30,36 ****
  SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) \
  	$(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) $(PTHREAD_LIBS)
  
! all: all-lib
  
  # Shared library stuff
  include $(top_srcdir)/src/Makefile.shlib
--- 30,36 ----
  SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) \
  	$(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) $(PTHREAD_LIBS)
  
! all: $(top_srcdir)/src/port/pg_config_paths.h all-lib
  
  # Shared library stuff
  include $(top_srcdir)/src/Makefile.shlib
***************
*** 46,51 ****
--- 46,54 ----
  exec.c: % : $(top_srcdir)/src/port/%
  	rm -f $@ && $(LN_S) $< .
  
+ $(top_srcdir)/src/port/pg_config_paths.h:
+ 	$(MAKE) -C $(top_srcdir)/src/port pg_config_paths.h
+ 
  install: all installdirs install-lib
  
  installdirs:
Index: src/interfaces/libpq/Makefile
===================================================================
RCS file: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v
retrieving revision 1.115
diff -c -c -r1.115 Makefile
*** src/interfaces/libpq/Makefile	6 Oct 2004 16:42:01 -0000	1.115
--- src/interfaces/libpq/Makefile	12 Oct 2004 00:56:54 -0000
***************
*** 31,43 ****
  	$(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS))
  
  ifeq ($(PORTNAME), win32)
! OBJS+=win32.o libpqrc.o
! libpqrc.o: libpq.rc
  	windres -i libpq.rc -o libpqrc.o
  ifeq ($(enable_thread_safety), yes)
  # This doesn't work yet because configure test fails.  2004-06-19
! OBJS+=pthread-win32.o
! PTHREAD_H_WIN32=yes
  endif
  endif
  
--- 31,43 ----
  	$(filter crypt.o getaddrinfo.o inet_aton.o open.o snprintf.o strerror.o, $(LIBOBJS))
  
  ifeq ($(PORTNAME), win32)
! OBJS += win32.o libpqrc.o
! libpqrc.o : libpq.rc
  	windres -i libpq.rc -o libpqrc.o
  ifeq ($(enable_thread_safety), yes)
  # This doesn't work yet because configure test fails.  2004-06-19
! OBJS += pthread-win32.o
! PTHREAD_H_WIN32 = yes
  endif
  endif
  
***************
*** 51,57 ****
  endif
  
  
! all: $(PTHREAD_H_WIN32) all-lib
  
  # Shared library stuff
  include $(top_srcdir)/src/Makefile.shlib
--- 51,57 ----
  endif
  
  
! all: $(PTHREAD_H_WIN32) $(top_srcdir)/src/port/pg_config_paths.h all-lib
  
  # Shared library stuff
  include $(top_srcdir)/src/Makefile.shlib
***************
*** 83,88 ****
--- 83,91 ----
  	rm -f $@ && $(LN_S) $< .
  endif
  
+ $(top_srcdir)/src/port/pg_config_paths.h:
+ 	$(MAKE) -C $(top_srcdir)/src/port pg_config_paths.h
+ 
  install: all installdirs install-lib
  	$(INSTALL_DATA) $(srcdir)/libpq-fe.h $(DESTDIR)$(includedir)
  	$(INSTALL_DATA) $(srcdir)/libpq-int.h $(DESTDIR)$(includedir_internal)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.