1## Makefile for the VTV library. 2## 3## Copyright (C) 2013-2021 Free Software Foundation, Inc. 4## 5## Process this file with automake to produce Makefile.in. 6## 7## This file is part of the Vtable Verification (VTV) Library. This 8## library is free software; you can redistribute it and/or modify it 9## under the terms of the GNU General Public License as published by 10## the Free Software Foundation; either version 3, or (at your option) 11## any later version. 12 13## This library is distributed in the hope that it will be useful, but 14## WITHOUT ANY WARRANTY; without even the implied warranty of 15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16## General Public License for more details. 17 18## You should have received a copy of the GNU General Public License 19## along with this library; see the file COPYING3. If not see 20## <http://www.gnu.org/licenses/>. 21 22if ENABLE_VTABLE_VERIFY 23 SUBDIRS = testsuite 24else 25 SUBDIRS= 26endif 27 28ACLOCAL_AMFLAGS = -I .. -I ../config 29 30# May be used by toolexeclibdir. 31gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) 32 33DEFS = @DEFS@ 34AM_CPPFLAGS = -I$(top_srcdir)/../include 35AM_CFLAGS = $(XCFLAGS) 36AM_CCASFLAGS = $(XCFLAGS) 37AM_CXXFLAGS = $(XCFLAGS) 38AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) 39AM_CXXFLAGS += -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end 40 41if ENABLE_VTABLE_VERIFY 42 toolexeclib_LTLIBRARIES = libvtv.la 43if VTV_CYGMIN 44 toolexeclib_LTLIBRARIES += libvtv_stubs.la 45endif 46endif 47 48vtv_headers = \ 49 vtv_map.h \ 50 vtv_malloc.h \ 51 vtv_fail.h \ 52 vtv_set.h \ 53 vtv_utils.h \ 54 vtv_rts.h 55 56vtv_sources = \ 57 vtv_start.c \ 58 vtv_malloc.cc \ 59 vtv_rts.cc \ 60 vtv_utils.cc \ 61 vtv_end.c 62 63vtv_stubs_sources = \ 64 vtv_start.c \ 65 vtv_stubs.cc \ 66 vtv_end.c 67 68libvtv_includedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include 69 70# Link in vtv_start and vtv_end. 71BUILT_SOURCES = vtv_start.c vtv_end.c 72vtv_start.c: 73 rm -f $@ 74 $(LN_S) $(toplevel_srcdir)/libgcc/vtv_start.c $@ 75 76vtv_end.c: 77 rm -f $@ 78 $(LN_S) $(toplevel_srcdir)/libgcc/vtv_end.c $@ 79 80if VTV_NO_OBSTACK 81 obstack.c: 82 rm -f $@ 83 $(LN_S) $(toplevel_srcdir)/libiberty/obstack.c $@ 84 > config.h 85endif 86 87if VTV_CYGMIN 88 vtv_stubs.cc: 89 rm -f $@ 90 $(LN_S) $(toplevel_srcdir)/libstdc++-v3/libsupc++/vtv_stubs.cc $@ 91endif 92 93if VTV_CYGMIN 94 libvtv_la_LIBADD = -lpsapi 95 libvtv_la_LDFLAGS = $(lt_host_flags) 96 libvtv_stubs_la_LDFLAGS = $(lt_host_flags) 97endif 98 99if ENABLE_VTABLE_VERIFY 100 libvtv_la_SOURCES = $(vtv_sources) 101if VTV_NO_OBSTACK 102 libvtv_la_SOURCES += obstack.c 103endif 104if VTV_CYGMIN 105 libvtv_stubs_la_SOURCES = $(vtv_stubs_sources) 106endif 107 libvtv_include_HEADERS = $(vtv_headers) 108else 109 libvtv_la_SOURCES = 110 libvtv_include_HEADERS = 111endif 112 113# Least ordering for dependencies mean linking w/o libstdc++ for as 114# long as the development of libvtv does not absolutely require it. 115CXXVTV=$(CC_FOR_TARGET) 116CXXLD=$(CC_FOR_TARGET) 117 118LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 119 --mode=compile $(CXXVTV) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ 120 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) 121 122CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ 123 --mode=link $(CXXVTV) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ 124 $(LDFLAGS) -o $@ 125 126include $(top_srcdir)/../multilib.am 127