1 ## Common automake fragments for elfutils subdirectory makefiles. 2 ## 3 ## Copyright (C) 2010, 2014 Red Hat, Inc. 4 ## 5 ## This file is part of elfutils. 6 ## 7 ## This file is free software; you can redistribute it and/or modify 8 ## it under the terms of either 9 ## 10 ## * the GNU Lesser General Public License as published by the Free 11 ## Software Foundation; either version 3 of the License, or (at 12 ## your option) any later version 13 ## 14 ## or 15 ## 16 ## * the GNU General Public License as published by the Free 17 ## Software Foundation; either version 2 of the License, or (at 18 ## your option) any later version 19 ## 20 ## or both in parallel, as here. 21 ## 22 ## elfutils is distributed in the hope that it will be useful, but 23 ## WITHOUT ANY WARRANTY; without even the implied warranty of 24 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 25 ## General Public License for more details. 26 ## 27 ## You should have received copies of the GNU General Public License and 28 ## the GNU Lesser General Public License along with this program. If 29 ## not, see <http://www.gnu.org/licenses/>. 30 ## 31 32 DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' 33 AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. 34 35 # Drop the 'u' flag that automake adds by default. It is incompatible 36 # with deterministic archives. 37 ARFLAGS = cr 38 39 # Warn about stack usage of more than 256K = 262144 bytes. 40 if ADD_STACK_USAGE_WARNING 41 STACK_USAGE_WARNING=-Wstack-usage=262144 42 else 43 STACK_USAGE_WARNING= 44 endif 45 AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ 46 -Wold-style-definition -Wstrict-prototypes \ 47 $(if $($(*F)_no_Werror),,-Werror) \ 48 $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ 49 $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ 50 $($(*F)_CFLAGS) 51 52 COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) 53 54 DEFS.os = -DPIC -DSHARED 55 if SYMBOL_VERSIONING 56 DEFS.os += -DSYMBOL_VERSIONING 57 else 58 endif 59 60 %.os: %.c %.o 61 if AMDEP 62 $(AM_V_CC)if $(COMPILE.os) -c -o $@ -fPIC $(DEFS.os) -MT $@ -MD -MP \ 63 -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \ 64 then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \ 65 rm -f "$(DEPDIR)/$*.Tpo"; \ 66 else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ 67 fi 68 else 69 $(AM_V_CC)$(COMPILE.os) -c -o $@ -fPIC $(DEFS.os) $< 70 endif 71 72 CLEANFILES = *.gcno *.gcda 73 74 textrel_msg = echo "WARNING: TEXTREL found in '$@'" 75 if FATAL_TEXTREL 76 textrel_found = $(textrel_msg); exit 1 77 else 78 textrel_found = $(textrel_msg) 79 endif 80 textrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi 81 82 print-%: 83 @echo $*=$($*) 84