]> git.ipfire.org Git - thirdparty/valgrind.git/blame - Makefile.vex.am
VG_(show_open_fds) Only emit empty line when not creating xml output
[thirdparty/valgrind.git] / Makefile.vex.am
CommitLineData
b05a2a18
NN
1# VEX/Makefile is generated from this file at configure-time.
2
3include $(top_srcdir)/Makefile.all.am
4
5#----------------------------------------------------------------------------
6# Headers, etc
7#----------------------------------------------------------------------------
8
9EXTRA_DIST = \
10 HACKING.README \
11 LICENSE.README \
12 LICENSE.GPL \
b05a2a18
NN
13 auxprogs/genoffsets.c
14
15pkginclude_HEADERS = \
16 pub/libvex.h \
17 pub/libvex_basictypes.h \
adec49e4 18 pub/libvex_emnote.h \
b05a2a18
NN
19 pub/libvex_guest_offsets.h \
20 pub/libvex_guest_x86.h \
21 pub/libvex_guest_amd64.h \
22 pub/libvex_guest_ppc32.h \
23 pub/libvex_guest_ppc64.h \
24 pub/libvex_guest_arm.h \
3f6d2112 25 pub/libvex_guest_arm64.h \
6107fd66 26 pub/libvex_guest_s390x.h \
3e344c57 27 pub/libvex_guest_mips32.h \
c5fd4773 28 pub/libvex_guest_mips64.h \
b3181771 29 pub/libvex_s390x_common.h \
b05a2a18 30 pub/libvex_ir.h \
3045007d
PW
31 pub/libvex_trc_values.h \
32 pub/libvex_inner.h
33# libvex_inner.h is special: it is a public header for valgrind core,
34# but should not be used by the end user
b05a2a18
NN
35
36noinst_HEADERS = \
d5c1e338
JS
37 priv/main_globals.h \
38 priv/main_util.h \
39 priv/ir_match.h \
40 priv/ir_opt.h \
41 priv/guest_generic_bb_to_IR.h \
42 priv/guest_generic_x87.h \
43 priv/guest_x86_defs.h \
44 priv/guest_amd64_defs.h \
45 priv/guest_ppc_defs.h \
46 priv/guest_arm_defs.h \
3f6d2112 47 priv/guest_arm64_defs.h \
6107fd66 48 priv/guest_s390_defs.h \
3e344c57 49 priv/guest_mips_defs.h \
92ecddd1 50 priv/mips_defs.h \
eddb917a 51 priv/guest_nanomips_defs.h \
d5c1e338
JS
52 priv/host_generic_regs.h \
53 priv/host_generic_simd64.h \
1ce6a7ed 54 priv/host_generic_simd128.h \
dc0e01ab
JS
55 priv/host_generic_simd256.h \
56 priv/host_generic_maddf.h \
a5693c12 57 priv/host_amd64_maddf.h \
d5c1e338
JS
58 priv/host_x86_defs.h \
59 priv/host_amd64_defs.h \
60 priv/host_ppc_defs.h \
6107fd66 61 priv/host_arm_defs.h \
3f6d2112 62 priv/host_arm64_defs.h \
6107fd66 63 priv/host_s390_defs.h \
9a906610 64 priv/s390_disasm.h \
846c955f 65 priv/s390_defs.h \
eddb917a
PJ
66 priv/host_mips_defs.h \
67 priv/host_nanomips_defs.h \
68 priv/common_nanomips_defs.h
b05a2a18
NN
69
70BUILT_SOURCES = pub/libvex_guest_offsets.h
71CLEANFILES = pub/libvex_guest_offsets.h
72
898b5a08
FK
73if COMPILER_IS_CLANG
74CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as
75else
76CFLAGS_FOR_GENOFFSETS = $(CFLAGS)
77endif
78
ab773096
PW
79# for VEX building, use the LTO versions, in case they differ from non lto versions
80AR = ${LTO_AR}
81RANLIB = ${LTO_RANLIB}
82
b05a2a18
NN
83# This is very uggerly. Need to sed out both "xyzzyN" and
84# "xyzzy$N" since gcc on different targets emits the constants
85# differently -- with a leading $ on x86/amd64 but none on ppc32/64.
b21985c7 86# ICC also emits the constants differently with a leading # #define
5f4ff748
JS
87pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \
88 pub/libvex_basictypes.h \
89 pub/libvex_guest_x86.h \
90 pub/libvex_guest_amd64.h \
91 pub/libvex_guest_ppc32.h \
92 pub/libvex_guest_ppc64.h \
6107fd66 93 pub/libvex_guest_arm.h \
3f6d2112 94 pub/libvex_guest_arm64.h \
3e344c57 95 pub/libvex_guest_s390x.h \
c5fd4773 96 pub/libvex_guest_mips32.h \
246bb0e2 97 pub/libvex_guest_mips64.h
b05a2a18 98 rm -f auxprogs/genoffsets.s
fbd9fe85 99 $(mkdir_p) auxprogs pub
898b5a08 100 $(CC) $(CFLAGS_FOR_GENOFFSETS) \
ab773096 101 $(LIBVEX_CFLAGS_NO_LTO) \
509ffafa
JS
102 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
103 -O -S -o auxprogs/genoffsets.s \
fbd9fe85 104 $(srcdir)/auxprogs/genoffsets.c
b21985c7
FK
105 grep xyzzy auxprogs/genoffsets.s | grep "^[# ]*#define" \
106 | sed "s/# #define/#define/g" \
e9de4585
JS
107 | sed "s/xyzzy\\$$//g" \
108 | sed "s/xyzzy#//g" \
109 | sed "s/xyzzy//g" \
b05a2a18
NN
110 > pub/libvex_guest_offsets.h
111 rm -f auxprogs/genoffsets.s
112
b05a2a18 113#----------------------------------------------------------------------------
3c9cad9e
PW
114# libvex-<platform>-<os>.a : containing all VEX objects, including
115# a main_main.o compiled in single arch (guest==host).
116# libvexmultiarch-<platform>-<os>.a, only containing multiarch_main_main.o,
117# which is main_main.c compiled so that any guest/host combination
118# can be done at runtime.
b05a2a18
NN
119#----------------------------------------------------------------------------
120
3c9cad9e
PW
121pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
122 libvexmultiarch-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
b05a2a18 123if VGCONF_HAVE_PLATFORM_SEC
3c9cad9e
PW
124pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
125 libvexmultiarch-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
b05a2a18
NN
126endif
127
b05a2a18 128LIBVEX_SOURCES_COMMON = \
d5c1e338
JS
129 priv/main_globals.c \
130 priv/main_main.c \
131 priv/main_util.c \
132 priv/ir_defs.c \
0d0e6346 133 priv/ir_inject.c \
d5c1e338
JS
134 priv/ir_match.c \
135 priv/ir_opt.c \
136 priv/guest_generic_bb_to_IR.c \
137 priv/guest_generic_x87.c \
138 priv/guest_x86_helpers.c \
139 priv/guest_x86_toIR.c \
140 priv/guest_amd64_helpers.c \
141 priv/guest_amd64_toIR.c \
142 priv/guest_ppc_helpers.c \
143 priv/guest_ppc_toIR.c \
144 priv/guest_arm_helpers.c \
145 priv/guest_arm_toIR.c \
3f6d2112
JS
146 priv/guest_arm64_helpers.c \
147 priv/guest_arm64_toIR.c \
6107fd66
JS
148 priv/guest_s390_helpers.c \
149 priv/guest_s390_toIR.c \
3e344c57 150 priv/guest_mips_helpers.c \
92ecddd1 151 priv/guest_mipsdsp_toIR.c \
3e344c57 152 priv/guest_mips_toIR.c \
eddb917a
PJ
153 priv/guest_nanomips_helpers.c \
154 priv/guest_nanomips_toIR.c \
d5c1e338
JS
155 priv/host_generic_regs.c \
156 priv/host_generic_simd64.c \
1ce6a7ed 157 priv/host_generic_simd128.c \
dc0e01ab
JS
158 priv/host_generic_simd256.c \
159 priv/host_generic_maddf.c \
a5693c12 160 priv/host_amd64_maddf.c \
d5c1e338 161 priv/host_generic_reg_alloc2.c \
efa1e5ef 162 priv/host_generic_reg_alloc3.c \
d5c1e338
JS
163 priv/host_x86_defs.c \
164 priv/host_x86_isel.c \
165 priv/host_amd64_defs.c \
166 priv/host_amd64_isel.c \
167 priv/host_ppc_defs.c \
168 priv/host_ppc_isel.c \
169 priv/host_arm_defs.c \
6107fd66 170 priv/host_arm_isel.c \
3f6d2112
JS
171 priv/host_arm64_defs.c \
172 priv/host_arm64_isel.c \
6107fd66
JS
173 priv/host_s390_defs.c \
174 priv/host_s390_isel.c \
9a906610 175 priv/s390_disasm.c \
3e344c57 176 priv/host_mips_defs.c \
eddb917a
PJ
177 priv/host_nanomips_defs.c \
178 priv/host_mips_isel.c \
179 priv/host_nanomips_isel.c
b05a2a18 180
3c9cad9e
PW
181LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c
182
ab773096 183LIBVEX_CFLAGS_NO_LTO = \
b05a2a18 184 -Wbad-function-cast \
b05a2a18
NN
185 -fstrict-aliasing
186
ab773096
PW
187LIBVEX_CFLAGS = ${LTO_CFLAGS} \
188 ${LIBVEX_CFLAGS_NO_LTO}
189
b05a2a18
NN
190libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
191libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
192 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
193libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
194 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
195if VGCONF_HAVE_PLATFORM_SEC
196libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
197libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
198 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
199libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
200 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
201endif
202
3c9cad9e
PW
203libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
204 $(LIBVEXMULTIARCH_SOURCES)
205libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
206 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
207libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
208 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
209if VGCONF_HAVE_PLATFORM_SEC
210libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
211 $(LIBVEXMULTIARCH_SOURCES)
212libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
213 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
214libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
215 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
216endif
217