Re: no library dependency in Makefile? - Mailing list pgsql-hackers

From 高增琦
Subject Re: no library dependency in Makefile?
Date
Msg-id CAFmBtr3qUKuLHi+apw7ZVU7mG6mLsZwT9WR8pj62-=xAZ9r_5A@mail.gmail.com
Whole thread Raw
In response to Re: no library dependency in Makefile?  (高增琦 <pgf00a@gmail.com>)
Responses Re: no library dependency in Makefile?  (高增琦 <pgf00a@gmail.com>)
List pgsql-hackers
LDFLAGS in the example changed to:

'''
override LDFLAGS := $(call expand_stlibs,$(STLIBS)) $(libpq_pgport) $(LDFLAGS)
'''

2017-11-16 20:50 GMT+08:00 高增琦 <pgf00a@gmail.com>:
Is this a problem or not?


A simple fix:
1. add a STLIBS variable in Makefiles as normal prerequisite
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 高增琦 <pgf00a@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?

--



--



--

pgsql-hackers by date:

Previous
From: 高增琦
Date:
Subject: Re: no library dependency in Makefile?
Next
From: Huong Dangminh
Date:
Subject: RE: Re: User defined data types in Logical Replication