Unlink static libraries before rebuilding them.

When the library already exists in the build directory, "ar" preserves
members not named on its command line.  This mattered when, for example,
a "configure" rerun dropped a file from $(LIBOBJS).  libpgport carried
the obsolete member until "make clean".  Back-patch to 9.0 (all
supported versions).
This commit is contained in:
Noah Misch 2015-03-01 13:05:23 -05:00
parent 82e0d6eb51
commit 6b61b64116
2 changed files with 5 additions and 0 deletions

View File

@ -342,6 +342,7 @@ all-shared-lib: $(shlib)
ifndef haslibarule
$(stlib): $(OBJS)
rm -f $@
$(LINK.static) $@ $^
$(RANLIB) $@
endif #haslibarule
@ -384,6 +385,7 @@ else # PORTNAME == aix
# AIX case
$(shlib) $(stlib): $(OBJS)
rm -f $(stlib)
$(LINK.static) $(stlib) $^
$(RANLIB) $(stlib)
$(MKLDEXPORT) $(stlib) >$(exports_file)
@ -404,6 +406,7 @@ $(shlib): $(OBJS) | $(SHLIB_PREREQS)
$(CC) $(CFLAGS) -shared -o $@ $(OBJS) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) $(LDAP_LIBS_BE)
$(stlib): $(OBJS) | $(SHLIB_PREREQS)
rm -f $@
$(LINK.static) $@ $^
$(RANLIB) $@

View File

@ -52,6 +52,7 @@ uninstall:
rm -f '$(DESTDIR)$(libdir)/libpgport.a'
libpgport.a: $(OBJS)
rm -f $@
$(AR) $(AROPT) $@ $^
# thread.o needs PTHREAD_CFLAGS (but thread_srv.o does not)
@ -63,6 +64,7 @@ thread.o: thread.c
#
libpgport_srv.a: $(OBJS_SRV)
rm -f $@
$(AR) $(AROPT) $@ $^
%_srv.o: %.c