blob: a081c67edb2f608fa462660d0e001ce79767b8b0 [file] [log] [blame]
## Makefile for the VTV library.
##
## Copyright (C) 2013-2022 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