libtool/libltdl/ltdl.mk
Ileana Dumitrescu d405ede870
Fix errors in distclean and maintainer-clean
The variable, LT_ARGZ_H, can be empty, which causes distclean and
maintainer-clean to error as a directory is attempted to be removed
instead of a file.

When running maintainer-clean for gnulib-tests, the .version file is
missing, which is needed by config.status, so the command will error.

* configure.ac: Update CONFIG_STATUS_DEPENDENCIES to use dotversion so
  that the .version file can be generated if needed.
* libltdl/ltdl.mk: Add conditional with LTARGZH_EXISTS to append path for
  LT_ARGZ_H file to BUILT_SOURCES.
* m4/ltdl.m4: Add AM_CONDITIONAL for LTARGZH_EXISTS that is set to
  true if LT_ARGZ_H is non-empty.
* NO-THANKS: Add 'Michael Pratt' for bug#73672 contribution.
* NEWS: List additional bug fix.
2024-10-22 19:55:50 +03:00

149 lines
5.4 KiB
Makefile

## ltdl.mk -- includable Makefile snippet
##
## Copyright (C) 2003-2005, 2007, 2011-2019, 2021-2024 Free Software
## Foundation, Inc.
## Written by Gary V. Vaughan, 2003
##
## NOTE: The canonical source of this file is maintained with the
## GNU Libtool package. Report bugs to bug-libtool@gnu.org.
##
## GNU Libltdl is free software; you can redistribute it and/or
## modify it under the terms of the GNU Lesser General Public
## License as published by the Free Software Foundation; either
## version 2 of the License, or (at your option) any later version.
##
## As a special exception to the GNU Lesser General Public License,
## if you distribute this file as part of a program or library that
## is built using GNU libtool, you may include this file under the
## same distribution terms that you use for the rest of that program.
##
## GNU Libltdl is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU Lesser General Public License for more details.
##
## You should have received a copy of the GNU LesserGeneral Public
## License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
#####
## DO NOT REMOVE THIS LINE -- make depends on it
# -I$(srcdir) is needed for user that built libltdl with a sub-Automake
# (not as a sub-package!) using 'nostdinc':
AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \
-DLTDL -I. -I$(srcdir) -Ilibltdl \
-I$(srcdir)/libltdl -Ilibltdl/libltdl \
-I$(srcdir)/libltdl/libltdl
AM_LDFLAGS += -no-undefined
LTDL_VERSION_INFO = -version-info 10:2:3
noinst_LTLIBRARIES += $(LT_DLLOADERS)
if INSTALL_LTDL
ltdlincludedir = $(includedir)/libltdl
ltdlinclude_HEADERS = libltdl/libltdl/lt_system.h \
libltdl/libltdl/lt_error.h \
libltdl/libltdl/lt_dlloader.h
include_HEADERS += libltdl/ltdl.h
lib_LTLIBRARIES += libltdl/libltdl.la
endif
if CONVENIENCE_LTDL
noinst_LTLIBRARIES += libltdl/libltdlc.la
endif
libltdl_libltdl_la_SOURCES = libltdl/libltdl/lt__alloc.h \
libltdl/libltdl/lt__dirent.h \
libltdl/libltdl/lt__glibc.h \
libltdl/libltdl/lt__private.h \
libltdl/libltdl/lt__strl.h \
libltdl/libltdl/lt_dlloader.h \
libltdl/libltdl/lt_error.h \
libltdl/libltdl/lt_system.h \
libltdl/libltdl/slist.h \
libltdl/loaders/preopen.c \
libltdl/lt__alloc.c \
libltdl/lt_dlloader.c \
libltdl/lt_error.c \
libltdl/ltdl.c \
libltdl/ltdl.h \
libltdl/slist.c
EXTRA_DIST += libltdl/lt__dirent.c \
libltdl/lt__strl.c
libltdl_libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS)
libltdl_libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN)
libltdl_libltdl_la_LIBADD = $(LTLIBOBJS)
libltdl_libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(LTLIBOBJS)
libltdl_libltdlc_la_SOURCES = $(libltdl_libltdl_la_SOURCES)
libltdl_libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS)
libltdl_libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN)
libltdl_libltdlc_la_LIBADD = $(libltdl_libltdl_la_LIBADD)
libltdl_libltdlc_la_DEPENDENCIES= $(libltdl_libltdl_la_DEPENDENCIES)
## The loaders are preopened by libltdl, itself always built from
## pic-objects (either as a shared library, or a convenience library),
## so the loaders themselves must be made from pic-objects too. We
## use convenience libraries for that purpose:
EXTRA_LTLIBRARIES += libltdl/dlopen.la \
libltdl/dld_link.la \
libltdl/dyld.la \
libltdl/load_add_on.la \
libltdl/loadlibrary.la \
libltdl/shl_load.la
libltdl_dlopen_la_SOURCES = libltdl/loaders/dlopen.c
libltdl_dlopen_la_LDFLAGS = -module -avoid-version
libltdl_dlopen_la_LIBADD = $(LIBADD_DLOPEN)
libltdl_dld_link_la_SOURCES = libltdl/loaders/dld_link.c
libltdl_dld_link_la_LDFLAGS = -module -avoid-version
libltdl_dld_link_la_LIBADD = -ldld
libltdl_dyld_la_SOURCES = libltdl/loaders/dyld.c
libltdl_dyld_la_LDFLAGS = -module -avoid-version
libltdl_load_add_on_la_SOURCES = libltdl/loaders/load_add_on.c
libltdl_load_add_on_la_LDFLAGS = -module -avoid-version
libltdl_loadlibrary_la_SOURCES = libltdl/loaders/loadlibrary.c
libltdl_loadlibrary_la_LDFLAGS = -module -avoid-version
libltdl_shl_load_la_SOURCES = libltdl/loaders/shl_load.c
libltdl_shl_load_la_LDFLAGS = -module -avoid-version
libltdl_shl_load_la_LIBADD = $(LIBADD_SHL_LOAD)
## Make sure these will be cleaned even when they're not built by default:
CLEANFILES += libltdl/libltdl.la \
libltdl/libltdlc.la \
libltdl/libdlloader.la
## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects
## automatically:
CLEANFILES += $(LIBOBJS) $(LTLIBOBJS)
EXTRA_DIST += libltdl/COPYING.LIB \
libltdl/README
## --------------------------- ##
## Gnulib Makefile.am snippets ##
## --------------------------- ##
if LTARGZH_EXISTS
BUILT_SOURCES += libltdl/libltdl/$(LT_ARGZ_H)
endif
EXTRA_DIST += libltdl/libltdl/lt__argz_.h \
libltdl/lt__argz.c
# We need the following in order to create an <argz.h> when the system
# doesn't have one that works with the given compiler.
all-local $(lib_OBJECTS): libltdl/libltdl/$(LT_ARGZ_H)
libltdl/libltdl/lt__argz.h: libltdl/libltdl/lt__argz_.h
$(AM_V_at)$(mkinstalldirs) . libltdl/libltdl
$(AM_V_GEN)cp $(srcdir)/libltdl/libltdl/lt__argz_.h $@-t
$(AM_V_at)mv $@-t $@
MOSTLYCLEANFILES += libltdl/libltdl/lt__argz.h \
libltdl/libltdl/lt__argz.h-t