122359e265395fd2f8267190ef97f5417770e6206Roland McGrath## Common automake fragments for elfutils subdirectory makefiles. 222359e265395fd2f8267190ef97f5417770e6206Roland McGrath## 3f48eb6b15fee66e54b488d71738979fc608f25eeMark Wielaard## Copyright (C) 2010, 2014 Red Hat, Inc. 422359e265395fd2f8267190ef97f5417770e6206Roland McGrath## 5de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## This file is part of elfutils. 622359e265395fd2f8267190ef97f5417770e6206Roland McGrath## 7de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## This file is free software; you can redistribute it and/or modify 8de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## it under the terms of either 9de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## 10de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## * the GNU Lesser General Public License as published by the Free 11de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## Software Foundation; either version 3 of the License, or (at 12de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## your option) any later version 13de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## 14de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## or 15de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## 16de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## * the GNU General Public License as published by the Free 17de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## Software Foundation; either version 2 of the License, or (at 18de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## your option) any later version 19de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## 20de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## or both in parallel, as here. 21de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## 22de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## elfutils is distributed in the hope that it will be useful, but 2322359e265395fd2f8267190ef97f5417770e6206Roland McGrath## WITHOUT ANY WARRANTY; without even the implied warranty of 2422359e265395fd2f8267190ef97f5417770e6206Roland McGrath## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2522359e265395fd2f8267190ef97f5417770e6206Roland McGrath## General Public License for more details. 2622359e265395fd2f8267190ef97f5417770e6206Roland McGrath## 27de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## You should have received copies of the GNU General Public License and 28de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## the GNU Lesser General Public License along with this program. If 29de2ed97f33139af5c7a0811e4ec66fc896a13cf2Mark Wielaard## not, see <http://www.gnu.org/licenses/>. 3022359e265395fd2f8267190ef97f5417770e6206Roland McGrath## 3122359e265395fd2f8267190ef97f5417770e6206Roland McGrath 32b386ccfe5439f6ed886f87d47259886e6fdc54a1Roland McGrathDEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"' 33cdaaf2153a1f40d1be080c8ff6e10767b51a1c96Mark WielaardAM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I.. 34712f3c8930a372345b94270ede67233f94a7263bMark Wielaard 357b74830ec65081a8ea1be6d544ccd6ed0c61eaa1Mark Wielaard# Drop the 'u' flag that automake adds by default. It is incompatible 367b74830ec65081a8ea1be6d544ccd6ed0c61eaa1Mark Wielaard# with deterministic archives. 377b74830ec65081a8ea1be6d544ccd6ed0c61eaa1Mark WielaardARFLAGS = cr 387b74830ec65081a8ea1be6d544ccd6ed0c61eaa1Mark Wielaard 39712f3c8930a372345b94270ede67233f94a7263bMark Wielaard# Warn about stack usage of more than 256K = 262144 bytes. 404b7953db48ed736ed913fd17a038c8474ce2198dMark Wielaardif ADD_STACK_USAGE_WARNING 414b7953db48ed736ed913fd17a038c8474ce2198dMark WielaardSTACK_USAGE_WARNING=-Wstack-usage=262144 424b7953db48ed736ed913fd17a038c8474ce2198dMark Wielaardelse 434b7953db48ed736ed913fd17a038c8474ce2198dMark WielaardSTACK_USAGE_WARNING= 444b7953db48ed736ed913fd17a038c8474ce2198dMark Wielaardendif 45f48eb6b15fee66e54b488d71738979fc608f25eeMark WielaardAM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \ 461ccdfb683ad6c7e59793136c3a657ddf131cafd1Mark Wielaard -Wold-style-definition -Wstrict-prototypes \ 4722359e265395fd2f8267190ef97f5417770e6206Roland McGrath $(if $($(*F)_no_Werror),,-Werror) \ 4822359e265395fd2f8267190ef97f5417770e6206Roland McGrath $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \ 494b7953db48ed736ed913fd17a038c8474ce2198dMark Wielaard $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \ 5022359e265395fd2f8267190ef97f5417770e6206Roland McGrath $($(*F)_CFLAGS) 5122359e265395fd2f8267190ef97f5417770e6206Roland McGrath 523232479483cad695d1872b879128a23da3953a7dMark WielaardCOMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE)) 5322359e265395fd2f8267190ef97f5417770e6206Roland McGrath 54bafacacaf7659a4933604662daba26a480b29a8dMax FilippovDEFS.os = -DPIC -DSHARED 55bafacacaf7659a4933604662daba26a480b29a8dMax Filippovif SYMBOL_VERSIONING 56bafacacaf7659a4933604662daba26a480b29a8dMax FilippovDEFS.os += -DSYMBOL_VERSIONING 57bafacacaf7659a4933604662daba26a480b29a8dMax Filippovelse 58bafacacaf7659a4933604662daba26a480b29a8dMax Filippovendif 59bafacacaf7659a4933604662daba26a480b29a8dMax Filippov 6022359e265395fd2f8267190ef97f5417770e6206Roland McGrath%.os: %.c %.o 6122359e265395fd2f8267190ef97f5417770e6206Roland McGrathif AMDEP 62daee4714ee3761e2d92f764a724e83875a79a3f0Josh Stone $(AM_V_CC)if $(COMPILE.os) -c -o $@ -fPIC $(DEFS.os) -MT $@ -MD -MP \ 6322359e265395fd2f8267190ef97f5417770e6206Roland McGrath -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \ 6422359e265395fd2f8267190ef97f5417770e6206Roland McGrath then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \ 6522359e265395fd2f8267190ef97f5417770e6206Roland McGrath rm -f "$(DEPDIR)/$*.Tpo"; \ 6622359e265395fd2f8267190ef97f5417770e6206Roland McGrath else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ 6722359e265395fd2f8267190ef97f5417770e6206Roland McGrath fi 6822359e265395fd2f8267190ef97f5417770e6206Roland McGrathelse 69daee4714ee3761e2d92f764a724e83875a79a3f0Josh Stone $(AM_V_CC)$(COMPILE.os) -c -o $@ -fPIC $(DEFS.os) $< 7022359e265395fd2f8267190ef97f5417770e6206Roland McGrathendif 7122359e265395fd2f8267190ef97f5417770e6206Roland McGrath 7222359e265395fd2f8267190ef97f5417770e6206Roland McGrathCLEANFILES = *.gcno *.gcda 7322359e265395fd2f8267190ef97f5417770e6206Roland McGrath 74805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardtextrel_msg = echo "WARNING: TEXTREL found in '$@'" 75805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardif FATAL_TEXTREL 76805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardtextrel_found = $(textrel_msg); exit 1 77805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardelse 78805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardtextrel_found = $(textrel_msg) 79805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardendif 80805ec833c17b01e1791162227ab0b4119ffe1eb0Mark Wielaardtextrel_check = if $(READELF) -d $@ | fgrep -q TEXTREL; then $(textrel_found); fi 813425454a10d307fae891fb667cf7969e945cde79Josh Stone 823425454a10d307fae891fb667cf7969e945cde79Josh Stoneprint-%: 833425454a10d307fae891fb667cf7969e945cde79Josh Stone @echo $*=$($*) 84