Re: propably automake bug

2024-01-12 Thread Mike Frysinger
i think you might be describing this bug report:
https://debbugs.gnu.org/60508
-mike


signature.asc
Description: PGP signature


Re: propably automake bug

2023-03-10 Thread aotto

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 = 

propably automake bug

2023-03-10 Thread aotto

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
--
liblcconfig_addon_CPPFLAGS = $(libmkkernel_CPPFLAGS) $(LIBCONFIG_CPPFLAGS)
liblcconfig_addon_LIBADD = $(LIBCONFIG_LIBADD)
liblcconfig_shared_LIBADD = $(top_builddir)/theLink/liblcconfig/liblcconfig.la
*liblcconfig_static_LIBADD = $(top_builddir)/theLink/liblcconfig/liblcconfig.la $(liblcconfig_addon_LIBADD) 
$(libmkkernel_static_LIBADD) *

libmkkernel_CFLAGS = $(UBSAN) -Wstrict-prototypes -Wconversion -Werror 
$(META_OPTIMIZE)
libmkkernel_CPPFLAGS = -I$(top_srcdir)/theLink/libmkkernel 
$(libmkkernel_addon_CPPFLAGS)
libmkkernel_CXXFLAGS = $(UBSAN) -Wconversion -Werror