## Common automake fragments for elfutils subdirectory makefiles. ## ## Copyright (C) 2010, 2014, 2016 Red Hat, Inc. ## ## This file is part of elfutils. ## ## This file is free software; you can redistribute it and/or modify ## it under the terms of either ## ## * the GNU Lesser General Public License as published by the Free ## Software Foundation; either version 3 of the License, or (at ## your option) any later version ## ## or ## ## * the GNU General Public License as published by the Free ## Software Foundation; either version 2 of the License, or (at ## your option) any later version ## ## or both in parallel, as here. ## ## elfutils 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 ## General Public License for more details. ## ## You should have received copies of the GNU General Public License and ## the GNU Lesser General Public License along with this program. If ## not, see <http://www.gnu.org/licenses/>. ## DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. # Drop the 'u' flag that automake adds by default. It is incompatible # with deterministic archives. ARFLAGS = cr # Warn about stack usage of more than 256K = 262144 bytes. if ADD_STACK_USAGE_WARNING STACK_USAGE_WARNING=-Wstack-usage=262144 else STACK_USAGE_WARNING= endif if SANE_LOGICAL_OP_WARNING LOGICAL_OP_WARNING=-Wlogical-op else LOGICAL_OP_WARNING= endif if HAVE_DUPLICATED_COND_WARNING DUPLICATED_COND_WARNING=-Wduplicated-cond else DUPLICATED_COND_WARNING= endif if HAVE_NULL_DEREFERENCE_WARNING NULL_DEREFERENCE_WARNING=-Wnull-dereference else NULL_DEREFERENCE_WARNING= endif if HAVE_IMPLICIT_FALLTHROUGH_WARNING # Use strict fallthrough. Only __attribute__((fallthrough)) will prevent the # warning IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough=5 else IMPLICIT_FALLTHROUGH_WARNING= endif AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ -Wold-style-definition -Wstrict-prototypes -Wtrampolines \ $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \ $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \ $(if $($(*F)_no_Werror),,-Werror) \ $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ $(if $($(*F)_no_Wpacked_not_aligned),-Wno-packed-not-aligned,) \ $($(*F)_CFLAGS) COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) DEFS.os = -DPIC -DSHARED if SYMBOL_VERSIONING DEFS.os += -DSYMBOL_VERSIONING else endif %.os: %.c %.o if AMDEP $(AM_V_CC)if $(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) -MT $@ -MD -MP \ -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \ then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \ rm -f "$(DEPDIR)/$*.Tpo"; \ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ fi else $(AM_V_CC)$(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) $< endif CLEANFILES = *.gcno *.gcda textrel_msg = echo "WARNING: TEXTREL found in '$@'" if FATAL_TEXTREL textrel_found = $(textrel_msg); exit 1 else textrel_found = $(textrel_msg) endif textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi print-%: @echo $*=$($*)