LDFLAGS in the example changed to: ''' override LDFLAGS := $(call expand_stlibs,$(STLIBS)) $(libpq_pgport) $(LDFLAGS) '''
2017-11-16 20:50 GMT+08:00 高增琦 <pgf...@gmail.com>: > Is this a problem or not? > > > A simple fix: > 1. add a STLIBS variable in Makefiles as normal prerequisite > <https://www.gnu.org/software/make/manual/make.html#Prerequisite-Types> > 2. using GNU make's function to generate '-Lxxx -lxxx' for items in STLIBS > > For example: libpgfeutils.a in psql's Makefile: > ''' > # function to generate '-Lxxx -lxxx', may put in another file > expand_stlibs = $(patsubst %,-L%,$(dir $(1))) $(patsubst > lib%.a,-l%,$(notdir $(1))) > > # static lib > STLIBS := $(top_builddir)/src/fe_utils/libpgfeutils.a > > # add STLIBS as normal prerequisite > psql: $(OBJS) $(STLIBS) | submake-libpq submake-libpgport > submake-libpgfeutils > $(CC) $(CFLAGS) $(OBJS) $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X) > ''' > > 2017-11-15 16:10 GMT+08:00 高增琦 <pgf...@gmail.com>: > >> Hi, >> >> Recently, I found 'psql' is not rebuilt automatically after >> editing 'fe_utils/psqlscan.l'. >> >> The detail is: >> 'psqlscan.l' is part of 'libpgfeutils.a' which will be built >> into 'psql' statically. But there is no dependency rule between >> them. >> >> It's OK for 'libpq' since 'libpq' is a dynamic library. >> For a static library such as 'libpgfeutils.a', should we >> add dependency rule in Makefile? >> >> -- >> GaoZengqi >> pgf...@gmail.com >> zengqi...@gmail.com >> > > > > -- > GaoZengqi > pgf...@gmail.com > zengqi...@gmail.com > -- GaoZengqi pgf...@gmail.com zengqi...@gmail.com