Re: no library dependency in Makefile?

From: 高增琦 <pgf00a(at)gmail(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: no library dependency in Makefile?
Date: 2017-11-16 12:50:31
Message-ID: CAFmBtr1nSvn3QAy30etCbNmUD+2hDDF=3nCpBAzuDBJ9n8HO4g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

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 $(at)$(X)
'''

2017-11-15 16:10 GMT+08:00 高增琦 <pgf00a(at)gmail(dot)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
> pgf00a(at)gmail(dot)com
> zengqigao(at)gmail(dot)com
>

--
GaoZengqi
pgf00a(at)gmail(dot)com
zengqigao(at)gmail(dot)com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message 高增琦 2017-11-16 12:51:57 Re: no library dependency in Makefile?
Previous Message David Rowley 2017-11-16 12:40:44 Re: Further simplification of c.h's #include section