| ## Makefile for the VTV library. | |
| ## | |
| ## Copyright (C) 2013-2026 Free Software Foundation, Inc. | |
| ## | |
| ## Process this file with automake to produce Makefile.in. | |
| ## | |
| ## This file is part of the Vtable Verification (VTV) Library. This | |
| ## library is free software; you can redistribute it and/or modify it | |
| ## under the terms of the GNU General Public License as published by | |
| ## the Free Software Foundation; either version 3, or (at your option) | |
| ## any later version. | |
| ## This library 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 a copy of the GNU General Public License | |
| ## along with this library; see the file COPYING3. If not see | |
| ## <http://www.gnu.org/licenses/>. | |
| if ENABLE_VTABLE_VERIFY | |
| SUBDIRS = testsuite | |
| else | |
| SUBDIRS= | |
| endif | |
| ACLOCAL_AMFLAGS = -I .. -I ../config | |
| # May be used by toolexeclibdir. | |
| gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) | |
| DEFS = @DEFS@ | |
| AM_CPPFLAGS = -I$(top_srcdir)/../include | |
| AM_CFLAGS = $(XCFLAGS) | |
| AM_CCASFLAGS = $(XCFLAGS) | |
| AM_CXXFLAGS = $(XCFLAGS) | |
| AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS) | |
| AM_CXXFLAGS += -Wl,-u_vtable_map_vars_start,-u_vtable_map_vars_end | |
| if ENABLE_VTABLE_VERIFY | |
| toolexeclib_LTLIBRARIES = libvtv.la | |
| if VTV_CYGMIN | |
| toolexeclib_LTLIBRARIES += libvtv_stubs.la | |
| endif | |
| endif | |
| vtv_headers = \ | |
| vtv_map.h \ | |
| vtv_malloc.h \ | |
| vtv_fail.h \ | |
| vtv_set.h \ | |
| vtv_utils.h \ | |
| vtv_rts.h | |
| vtv_sources = \ | |
| vtv_start.c \ | |
| vtv_malloc.cc \ | |
| vtv_rts.cc \ | |
| vtv_utils.cc \ | |
| vtv_end.c | |
| vtv_stubs_sources = \ | |
| vtv_start.c \ | |
| vtv_stubs.cc \ | |
| vtv_end.c | |
| libvtv_includedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include | |
| # Link in vtv_start and vtv_end. | |
| BUILT_SOURCES = vtv_start.c vtv_end.c | |
| vtv_start.c: | |
| rm -f $@ | |
| $(LN_S) $(toplevel_srcdir)/libgcc/vtv_start.c $@ | |
| vtv_end.c: | |
| rm -f $@ | |
| $(LN_S) $(toplevel_srcdir)/libgcc/vtv_end.c $@ | |
| if VTV_NO_OBSTACK | |
| obstack.c: | |
| rm -f $@ | |
| $(LN_S) $(toplevel_srcdir)/libiberty/obstack.c $@ | |
| > config.h | |
| endif | |
| if VTV_CYGMIN | |
| vtv_stubs.cc: | |
| rm -f $@ | |
| $(LN_S) $(toplevel_srcdir)/libstdc++-v3/libsupc++/vtv_stubs.cc $@ | |
| endif | |
| if VTV_CYGMIN | |
| libvtv_la_LIBADD = -lpsapi | |
| libvtv_la_LDFLAGS = $(lt_host_flags) | |
| libvtv_stubs_la_LDFLAGS = $(lt_host_flags) | |
| endif | |
| if ENABLE_VTABLE_VERIFY | |
| libvtv_la_SOURCES = $(vtv_sources) | |
| if VTV_NO_OBSTACK | |
| libvtv_la_SOURCES += obstack.c | |
| endif | |
| if VTV_CYGMIN | |
| libvtv_stubs_la_SOURCES = $(vtv_stubs_sources) | |
| endif | |
| libvtv_include_HEADERS = $(vtv_headers) | |
| else | |
| libvtv_la_SOURCES = | |
| libvtv_include_HEADERS = | |
| endif | |
| # Least ordering for dependencies mean linking w/o libstdc++ for as | |
| # long as the development of libvtv does not absolutely require it. | |
| CXXVTV=$(CC_FOR_TARGET) | |
| CXXLD=$(CC_FOR_TARGET) | |
| LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
| --mode=compile $(CXXVTV) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ | |
| $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
| CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
| --mode=link $(CXXVTV) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \ | |
| $(LDFLAGS) -o $@ | |
| include $(top_srcdir)/../multilib.am |