summaryrefslogtreecommitdiff
path: root/libvtv/Makefile.am
blob: 24ee90158e8bc42a34394cee85ce53cccedf30d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
## Makefile for the VTV library.
##
## Copyright (C) 2013-2015 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 cat $(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 VTV_CYGMIN
  toolexeclib_LTLIBRARIES = libvtv.la libvtv_stubs.la
else
  toolexeclib_LTLIBRARIES = libvtv.la
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_CYGMIN
  obstack.c:
	  rm -f $@
	  $(LN_S) $(toplevel_srcdir)/libiberty/obstack.c $@
  
  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
if VTV_CYGMIN
  libvtv_la_SOURCES = $(vtv_sources) obstack.c
  libvtv_stubs_la_SOURCES = $(vtv_stubs_sources)
else
  libvtv_la_SOURCES = $(vtv_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 $@