Update
If I add *EXTRA_ConfigServer_DEPENDENCIES* just with the value of
*liblcconfig_static_LIBADD* than it works.
It is now clear that *ConfigServer_LDADD* was "forgotten" in the
dependency-list.
myexe += ConfigServer
ConfigServer_CPPFLAGS = $(libmqmsgque_CPPFLAGS) $(liblcconfig_CPPFLAGS)
ConfigServer_CFLAGS = $(libmqmsgque_CFLAGS)
ConfigServer_LDADD = libLcConfigRpcServer.la
if ENABLE_STATIC
ConfigServer_LDADD += $(liblcconfig_static_LIBADD)
*EXTRA_ConfigServer_DEPENDENCIES **= **$(liblcconfig_static_LIBADD)*
else
ConfigServer_LDADD += $(liblcconfig_shared_LIBADD)
endif
On 10.03.23 09:21, aotto wrote:
Hi,
I use *automake* to build my environment. The build is done using the default
*AM_* flags and for
the special executable *ConfigServer* with a specific set of flags.
ERROR: I figure out that on *static* build the executable *ConfigServer* does
*not* rebuild
even if a *static* dependency library has changed.
For analyze I add *Makefile* and *Makefile.am*
*The question is now: does the value(s) of 'liblcconfig_static_LIBADD' show up
in the dependency list?*
-------------------------------------------------------------------------*
Makefile
*
ConfigServer$(EXEEXT): $(ConfigServer_OBJECTS) $(ConfigServer_DEPENDENCIES)
$(EXTRA_ConfigServer_DEPENDENCIES)
@rm -f ConfigServer$(EXEEXT)
$(AM_V_CCLD)$(ConfigServer_LINK) $(ConfigServer_OBJECTS)
$(ConfigServer_LDADD) $(LIBS)
ConfigServer_DEPENDENCIES = \
libLcConfigRpcServer.la \
$(am__DEPENDENCIES_2)
am__DEPENDENCIES_2 = \
$(am__DEPENDENCIES_1)
am__DEPENDENCIES_1 =
EXTRA_ConfigServer_DEPENDENCIES = not set
ConfigServer_OBJECTS = ConfigServer-ConfigServer.$(OBJEXT)
ConfigServer-ConfigServer.o: ConfigServer.c
$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ConfigServer_CPPFLAGS) $(CPPFLAGS) $(ConfigServer_CFLAGS)
$(CFLAGS) -MT ConfigServer-ConfigServer.o -MD -MP -MF $(DEPDIR)/ConfigServer-ConfigServer.Tpo -c -o ConfigServer-ConfigServer.o `
test -f 'ConfigServer.c' || echo '$(srcdir)/'`ConfigServer.c
$(AM_V_at)$(am__mv) $(DEPDIR)/ConfigServer-ConfigServer.Tpo
$(DEPDIR)/ConfigServer-ConfigServer.Po
------------------------------------------------------------------------
*Makefile.am*
myexe = mulclient mulserver manfilter \
testclient testserver MyClient MyServer \
Filter1 Filter2 Filter3 Filter4 Filter5 \
Filter6 Filter7 server MyWorker RECUclient \
Bug2 Bug3 Filter6E MyLoopServer MyRouter \
perfclient perfserver MyClient2 getInternalSize \
MyTransaction
lib_LTLIBRARIES = libMkKernelRpcServer.la
libMkKernelRpcServer_la_SOURCES = MkKernelRpcServer.c
libMkKernelRpcServer_la_CPPFLAGS = $(libmqmsgque_CPPFLAGS)
libMkKernelRpcServer_la_CFLAGS = $(libmqmsgque_CFLAGS)
libMkKernelRpcServer_la_LDFLAGS = $(UBSAN) -version-info @VERSION_INFO@
-no-undefined
libMkKernelRpcServer_la_LIBADD = $(libmqmsgque_shared_LIBADD)
krs: libMkKernelRpcServer.la
lib_LTLIBRARIES += libMqMsgqueRpcServer.la
libMqMsgqueRpcServer_la_SOURCES = MqMsgqueRpcServer.c
libMqMsgqueRpcServer_la_CPPFLAGS = $(libmqmsgque_CPPFLAGS)
libMqMsgqueRpcServer_la_CFLAGS = $(libmqmsgque_CFLAGS)
libMqMsgqueRpcServer_la_LDFLAGS = $(UBSAN) -version-info @VERSION_INFO@
-no-undefined
libMqMsgqueRpcServer_la_LIBADD = ./libMkKernelRpcServer.la
$(libmqmsgque_shared_LIBADD)
mrs: libMqMsgqueRpcServer.la
if USE_LIBCONFIG
lib_LTLIBRARIES += libLcConfigRpcServer.la
libLcConfigRpcServer_la_SOURCES = LcConfigRpcServer.c
libLcConfigRpcServer_la_CPPFLAGS = $(libmqmsgque_CPPFLAGS)
$(liblcconfig_CPPFLAGS)
libLcConfigRpcServer_la_CFLAGS = $(libmqmsgque_CFLAGS)
libLcConfigRpcServer_la_LDFLAGS = $(UBSAN) -version-info @VERSION_INFO@
-no-undefined
libLcConfigRpcServer_la_LIBADD = ./libMkKernelRpcServer.la
$(liblcconfig_shared_LIBADD)
ors: libLcConfigRpcServer.la
myexe += ConfigServer
ConfigServer_CPPFLAGS = $(libmqmsgque_CPPFLAGS) $(liblcconfig_CPPFLAGS)
ConfigServer_CFLAGS = $(libmqmsgque_CFLAGS)
ConfigServer_LDADD = libLcConfigRpcServer.la
if ENABLE_STATIC
ConfigServer_LDADD += $(liblcconfig_static_LIBADD)
endif
endif
#myexe = MyClient MyServer getInternalSize
noinst_PROGRAMS = $(myexe)
AM_CPPFLAGS = $(libmqmsgque_CPPFLAGS)
AM_CFLAGS = $(libmqmsgque_CFLAGS) -DMQ_BUILD_EXAMPLE
if ENABLE_STATIC
AM_LDFLAGS = $(UBSAN) -static -no-undefined
LDADD = $(libmqmsgque_static_LIBADD)
else
AM_LDFLAGS = $(UBSAN) -no-undefined
LDADD = $(libmqmsgque_static_LIBADD)
endif
perfclient_SOURCES = perfclient.c stat.c stat.h
Filter6E_SOURCES = Filter6.c
Filter6E_CFLAGS = -DBUG1 $(AM_CFLAGS)
-------------------------------------------------
*grep for **liblcconfig_static_LIBADD*
grep -C 3 liblcconfig_static_LIBADD Makefile
target_triplet = x86_64-suse-linux-gnu
am__append_1 = libLcConfigRpcServer.la
am__append_2 = ConfigServer
*am__append_3 = $(liblcconfig_static_LIBADD)*
noinst_PROGRAMS = $(am__EXEEXT_2)
subdir = theLink/example/c
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4