1## Makefile.am for libdebuginfod library subdirectory in elfutils. 2## 3## Process this file with automake to create Makefile.in 4## 5## Copyright (C) 2019 Red Hat, Inc. 6## This file is part of elfutils. 7## 8## This file is free software; you can redistribute it and/or modify 9## it under the terms of either 10## 11## * the GNU Lesser General Public License as published by the Free 12## Software Foundation; either version 3 of the License, or (at 13## your option) any later version 14## 15## or 16## 17## * the GNU General Public License as published by the Free 18## Software Foundation; either version 2 of the License, or (at 19## your option) any later version 20## 21## or both in parallel, as here. 22## 23## elfutils is distributed in the hope that it will be useful, but 24## WITHOUT ANY WARRANTY; without even the implied warranty of 25## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 26## General Public License for more details. 27## 28## You should have received copies of the GNU General Public License and 29## the GNU Lesser General Public License along with this program. If 30## not, see <http://www.gnu.org/licenses/>. 31## 32include $(top_srcdir)/config/eu.am 33AM_CPPFLAGS += -I$(srcdir) -I$(srcdir)/../libelf -I$(srcdir)/../libebl \ 34 -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \ 35 $(libmicrohttpd_CFLAGS) $(libcurl_CFLAGS) $(sqlite3_CFLAGS) \ 36 $(libarchive_CFLAGS) 37 38# Disable eu- prefixing for artifacts (binaries & man pages) in this 39# directory, since they do not conflict with binutils tools. 40program_prefix= 41program_transform_name = s,x,x, 42 43if BUILD_STATIC 44libasm = ../libasm/libasm.a 45libdw = ../libdw/libdw.a -lz $(zip_LIBS) $(libelf) $(libebl) -ldl -lpthread 46libelf = ../libelf/libelf.a -lz 47if DUMMY_LIBDEBUGINFOD 48libdebuginfod = ./libdebuginfod.a 49else 50libdebuginfod = ./libdebuginfod.a -lpthread $(libcurl_LIBS) 51endif 52else 53libasm = ../libasm/libasm.so 54libdw = ../libdw/libdw.so 55libelf = ../libelf/libelf.so 56libdebuginfod = ./libdebuginfod.so 57endif 58libebl = ../libebl/libebl.a 59libeu = ../lib/libeu.a 60 61AM_LDFLAGS = -Wl,-rpath-link,../libelf:../libdw:. 62 63bin_PROGRAMS = 64if DEBUGINFOD 65bin_PROGRAMS += debuginfod 66endif 67 68if LIBDEBUGINFOD 69bin_PROGRAMS += debuginfod-find 70endif 71 72debuginfod_SOURCES = debuginfod.cxx 73debuginfod_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) $(argp_LDADD) $(fts_LIBS) $(libmicrohttpd_LIBS) $(sqlite3_LIBS) $(libarchive_LIBS) -lpthread -ldl 74 75debuginfod_find_SOURCES = debuginfod-find.c 76debuginfod_find_LDADD = $(libdw) $(libelf) $(libeu) $(libdebuginfod) $(argp_LDADD) $(fts_LIBS) 77 78if LIBDEBUGINFOD 79noinst_LIBRARIES = libdebuginfod.a 80noinst_LIBRARIES += libdebuginfod_pic.a 81endif 82 83libdebuginfod_a_SOURCES = debuginfod-client.c 84libdebuginfod_pic_a_SOURCES = debuginfod-client.c 85am_libdebuginfod_pic_a_OBJECTS = $(libdebuginfod_a_SOURCES:.c=.os) 86 87if DUMMY_LIBDEBUGINFOD 88AM_CPPFLAGS += -Wno-unused-parameter 89endif 90 91if LIBDEBUGINFOD 92pkginclude_HEADERS = debuginfod.h 93endif 94 95if LIBDEBUGINFOD 96libdebuginfod_so_LIBS = libdebuginfod_pic.a 97if DUMMY_LIBDEBUGINFOD 98libdebuginfod_so_LDLIBS = 99else 100libdebuginfod_so_LDLIBS = -lpthread $(libcurl_LIBS) $(fts_LIBS) $(libelf) 101endif 102$(LIBDEBUGINFOD_SONAME): $(srcdir)/libdebuginfod.map $(libdebuginfod_so_LIBS) 103 $(AM_V_CCLD)$(LINK) $(dso_LDFLAGS) -o $@ \ 104 -Wl,--soname,$(LIBDEBUGINFOD_SONAME) \ 105 -Wl,--version-script,$< \ 106 $(NO_UNDEFINED) \ 107 -Wl,--whole-archive $(libdebuginfod_so_LIBS) -Wl,--no-whole-archive \ 108 $(libdebuginfod_so_LDLIBS) 109 @$(textrel_check) 110 111libdebuginfod.so: $(LIBDEBUGINFOD_SONAME) 112 ln -fs $< $@ 113 114install: install-am libdebuginfod.so 115 $(mkinstalldirs) $(DESTDIR)$(libdir) 116 $(INSTALL_PROGRAM) $(LIBDEBUGINFOD_SONAME) \ 117 $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so 118 ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/$(LIBDEBUGINFOD_SONAME) 119 ln -fs libdebuginfod-$(PACKAGE_VERSION).so $(DESTDIR)$(libdir)/libdebuginfod.so 120 121uninstall: uninstall-am 122 rm -f $(DESTDIR)$(libdir)/libdebuginfod-$(PACKAGE_VERSION).so 123 rm -f $(DESTDIR)$(libdir)/$(LIBDEBUGINFOD_SONAME) 124 rm -f $(DESTDIR)$(libdir)/libdebuginfod.so 125 rmdir --ignore-fail-on-non-empty $(DESTDIR)$(includedir)/elfutils 126endif 127 128EXTRA_DIST = libdebuginfod.map 129MOSTLYCLEANFILES = $(am_libdebuginfod_pic_a_OBJECTS) $(LIBDEBUGINFOD_SONAME) 130CLEANFILES += $(am_libdebuginfod_pic_a_OBJECTS) libdebuginfod.so 131 132# automake std-options override: arrange to pass LD_LIBRARY_PATH 133installcheck-binPROGRAMS: $(bin_PROGRAMS) 134 bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \ 135 case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \ 136 *" $$p "* | *" $(srcdir)/$$p "*) continue;; \ 137 esac; \ 138 f=`echo "$$p" | \ 139 sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 140 for opt in --help --version; do \ 141 if LD_LIBRARY_PATH=$(DESTDIR)$(libdir) \ 142 $(DESTDIR)$(bindir)/$$f $$opt > c$${pid}_.out 2> c$${pid}_.err \ 143 && test -n "`cat c$${pid}_.out`" \ 144 && test -z "`cat c$${pid}_.err`"; then :; \ 145 else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \ 146 done; \ 147 done; rm -f c$${pid}_.???; exit $$bad 148