Files
libgphoto2/camlibs/Makefile.am
Hans Ulrich Niedermann 155c4454ee Enable silent build rules by default
Enable silent build rules by default.

You can still use verbose build rules by using any of the following
methods:

  * run `configure` with the `--disable-silent-rules` argument
  * run `make` with the `V=1` argument

This hides the compiler command line which makes debugging users'
problems more difficult. To compensate for that, this prints the
build flags separately, but a lot less frequently:

For each part of the build (`libgphoto2_port.la`, iolibs,
`libgphoto2.la`, camlibs), if something of that part has been
rebuilt, prints the build flags (_CPPFLAGS, _CFLAGS, _LIBADD,
_LDFLAGS) once.

Always prints the environment variables CPPFLAGS CFLAGS LDADD
LIBADD LDFLAGS once, whether they are the defaults the configure
script sets or given on the `make` command line.

Not all make recipes have been converted to be completely silent,
but the majority (especially the Automake standard recipes) are
now silent.
2024-09-19 21:25:13 +02:00

226 lines
7.6 KiB
Makefile

########################################################################
# Usage instructions
########################################################################
# If you only want to build a single camlib (say agfa_cl20), run
# gmake -C camlibs agfa_cl20.la
# or
# ( cd camlibs && make agfa_cl20.la )
#
# If you only want to build/install a single camlib or two, run
# make GP_CAMLIB_SET="canon.la agfa_cl20.la" install
# in the camlibs/ subdir or in the libgphoto2 top-level directory.
########################################################################
########################################################################
# The only SUBDIRS here are "." (to run all-local checking the
# definition of the camlibs) and the special ones for building docs
# and stuff.
#
# Building the camlibs itself is defined in the Makefile-files
# included below.
SUBDIRS = .
########################################################################
# Define the common variables added to in the included Makefile-files
CLEANFILES =
EXTRA_DIST =
camlibdoc_DATA =
localization_DATA =
localizationdir =
noinst_DATA =
noinst_LTLIBRARIES =
EXTRA_LTLIBRARIES =
########################################################################
# We pass the list of camlibs through this set of variables in order
# to remain compatible with older calling conventions.
# Actually implement BUILD_THESE_CAMLIBS as documented
BUILD_THESE_CAMLIBS = $(GP_CAMLIB_SET)
# while keeping compatibility with the variable which has been working
# for so long
INSTALL_THESE_CAMLIBS = $(BUILD_THESE_CAMLIBS)
########################################################################
# All camlibs are defined as EXTRA_LTLIBRARIES. This requires that
# all camlibs have -rpath set explicitly in foobar_la_LDFLAGS.
# You're probably best off by using the camlib_* variables defined
# below.
camlib_LTLIBRARIES = $(INSTALL_THESE_CAMLIBS)
########################################################################
# Define the compile/link/etc. flags common to all camlibs in one place,
# i.e. here.
camlib_dependencies =
camlib_ldflags =
camlib_ldflags += -module
camlib_ldflags += -no-undefined
camlib_ldflags += -avoid-version
camlib_ldflags += -export-dynamic
EXTRA_DIST += camlib.sym
camlib_dependencies += $(top_srcdir)/camlibs/camlib.sym
camlib_ldflags += -export-symbols '$(top_srcdir)/camlibs/camlib.sym'
camlib_ldflags += -rpath '$(camlibdir)'
camlib_libadd =
camlib_libadd += $(top_builddir)/libgphoto2/libgphoto2.la
camlib_libadd += $(top_builddir)/libgphoto2_port/libgphoto2_port/libgphoto2_port.la
camlib_cflags =
camlib_cppflags =
camlib_cppflags += $(AM_CPPFLAGS)
camlib_cppflags += -I$(top_srcdir)
camlib_cppflags += -I$(top_builddir)
camlib_cppflags += -I$(top_srcdir)/libgphoto2_port
########################################################################
# You can generate this Makefile-files include list by running
# find . -name Makefile-files -exec echo include {} \; | sort | sed 's| ./| |g'
include adc65/Makefile-files
include agfa-cl20/Makefile-files
include aox/Makefile-files
include ax203/Makefile-files
include barbie/Makefile-files
include canon/Makefile-files
include casio/Makefile-files
include clicksmart310/Makefile-files
include digigr8/Makefile-files
include digita/Makefile-files
include dimera/Makefile-files
include directory/Makefile-files
include docupen/Makefile-files
include enigma13/Makefile-files
include fuji/Makefile-files
include gsmart300/Makefile-files
include hp215/Makefile-files
include iclick/Makefile-files
include jamcam/Makefile-files
include jd11/Makefile-files
include jl2005a/Makefile-files
include jl2005c/Makefile-files
include kodak/dc120/Makefile-files
include kodak/dc210/Makefile-files
include kodak/dc240/Makefile-files
include kodak/dc3200/Makefile-files
include kodak/ez200/Makefile-files
include kodak/Makefile-files
include konica/Makefile-files
include largan/lmini/Makefile-files
include lg_gsm/Makefile-files
include lumix/Makefile-files
include mars/Makefile-files
include minolta/dimagev/Makefile-files
include minolta/Makefile-files
include mustek/Makefile-files
include panasonic/coolshot/Makefile-files
include panasonic/l859/Makefile-files
include panasonic/Makefile-files
include pccam300/Makefile-files
include pccam600/Makefile-files
include pentax/Makefile-files
include polaroid/Makefile-files
include ptp2/Makefile-files
include quicktake1x0/Makefile-files
include ricoh/Makefile-files
include samsung/Makefile-files
include sierra/Makefile-files
include sipix/Makefile-files
include smal/Makefile-files
include sonix/Makefile-files
include sonydscf1/Makefile-files
include sonydscf55/Makefile-files
include soundvision/Makefile-files
include spca50x/Makefile-files
include sq905/Makefile-files
include st2205/Makefile-files
include stv0674/Makefile-files
include stv0680/Makefile-files
include sx330z/Makefile-files
include template/Makefile-files
include topfield/Makefile-files
include toshiba/pdrm11/Makefile-files
include tp6801/Makefile-files
# End of list of Makefile-files
########################################################################
# Print build flags for camlibs
CLEANFILES += camlib-buildflags.stamp
noinst_DATA += camlib-buildflags.stamp
camlib-buildflags.stamp: $(camlib_LTLIBRARIES)
@test -z "$(camlib_cflags)" || printf " %s %-8s %s\n" cam CFLAGS "$(camlib_cflags)"
@test -z "$(camlib_cppflags)" || printf " %s %-8s %s\n" cam CPPFLAGS "$(camlib_cppflags)"
@test -z "$(camlib_libadd)" || printf " %s %-8s %s\n" cam LIBADD "$(camlib_libadd)"
@test -z "$(camlib_ldflags)" || printf " %s %-8s %s\n" cam LDFLAGS "$(camlib_ldflags)"
@date > $@
########################################################################
# Print list of GP_CAMLIB() definitions suitable for adding to
# configure.ac
print-camlibs: Makefile
@for x in $(EXTRA_LTLIBRARIES); do \
y="$$(basename "$$x" ".la")"; \
echo "GP_CAMLIB([$$y])dnl"; \
done
########################################################################
# Make sure that the list of camlibs defined in configure.ac using
# GP_CAMLIB(...) and the list of camlibs defined in */Makefile-files
# match.
# List all camlibs defined in configure.ac
CLEANFILES += all-cfg-camlibs
all-cfg-camlibs: Makefile
@(for x in $(GP_CAMLIB_SET_EVERYTHING); do echo "$$x"; done) \
| LC_ALL=C $(SORT) > all-cfg-camlibs
# List all camlibs defined in the camlibs/ source subtree Makefile-files
CLEANFILES += all-mkf-camlibs
all-mkf-camlibs: Makefile
@(for x in $(EXTRA_LTLIBRARIES) $(noinst_LTLIBRARIES); do echo "$$(basename "$$x" ".la")"; done) \
| LC_ALL=C $(SORT) > all-mkf-camlibs
.PHONY: all-local
all-local: all-cfg-camlibs all-mkf-camlibs
@if $(CMP) all-cfg-camlibs all-mkf-camlibs > /dev/null 2>&1; then :; else \
echo "#"; \
for camlib in $$($(COMM) -23 all-cfg-camlibs all-mkf-camlibs); do \
echo "# - '$${camlib}' camlib in 'configure.ac', but not in Makefiles."; \
done; \
for camlib in $$($(COMM) -13 all-cfg-camlibs all-mkf-camlibs); do \
echo "# - '$${camlib}' camlib in Makefiles, but not in 'configure.ac'"; \
done; \
echo "#"; \
echo "# The camlib set definitions in 'configure.ac' and Makefiles are inconsistent"; \
echo "# Have a developer sync them, maybe using \"make -C camlibs print-camlibs\"."; \
echo "#"; \
exit 1; \
fi
########################################################################
# Shortcut for installation of a subset of camlibs
# Usage: make CAMLIBS="canon.la ptp2.la" install-camlibs
install-camlibs: $(GP_CAMLIB_SET)
$(MAKE) $(AM_MAKEFLAGS) GP_CAMLIB_SET="$(GP_CAMLIB_SET)" install-camlibLTLIBRARIES
########################################################################
# End of camlibs/Makefile.am