xen: syswrap XEN_DOMCTL_[gs]et_vcpu_msrs
[valgrind.git] / Makefile.vex.am
blob8e1ec3c61fafcc94f7b5b17f9116e9a76e90b856
1 # VEX/Makefile is generated from this file at configure-time.
3 include $(top_srcdir)/Makefile.all.am
5 #----------------------------------------------------------------------------
6 # Headers, etc
7 #----------------------------------------------------------------------------
9 EXTRA_DIST = \
10         HACKING.README \
11         LICENSE.README \
12         LICENSE.GPL \
13         auxprogs/genoffsets.c
15 pkginclude_HEADERS = \
16         pub/libvex.h \
17         pub/libvex_basictypes.h \
18         pub/libvex_emnote.h \
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 \
25         pub/libvex_guest_arm64.h \
26         pub/libvex_guest_s390x.h \
27         pub/libvex_guest_mips32.h \
28         pub/libvex_guest_mips64.h \
29         pub/libvex_guest_tilegx.h \
30         pub/libvex_s390x_common.h \
31         pub/libvex_ir.h \
32         pub/libvex_trc_values.h
34 noinst_HEADERS = \
35         priv/main_globals.h \
36         priv/main_util.h \
37         priv/ir_match.h \
38         priv/ir_opt.h \
39         priv/guest_generic_bb_to_IR.h \
40         priv/guest_generic_x87.h \
41         priv/guest_x86_defs.h \
42         priv/guest_amd64_defs.h \
43         priv/guest_ppc_defs.h \
44         priv/guest_arm_defs.h \
45         priv/guest_arm64_defs.h \
46         priv/guest_s390_defs.h \
47         priv/guest_mips_defs.h \
48         priv/guest_tilegx_defs.h \
49         priv/host_generic_regs.h \
50         priv/host_generic_simd64.h \
51         priv/host_generic_simd128.h \
52         priv/host_generic_simd256.h \
53         priv/host_generic_maddf.h \
54         priv/host_x86_defs.h \
55         priv/host_amd64_defs.h \
56         priv/host_ppc_defs.h \
57         priv/host_arm_defs.h \
58         priv/host_arm64_defs.h \
59         priv/host_s390_defs.h \
60         priv/host_tilegx_defs.h \
61         priv/s390_disasm.h \
62         priv/s390_defs.h \
63         priv/host_mips_defs.h \
64         priv/tilegx_disasm.h
66 BUILT_SOURCES = pub/libvex_guest_offsets.h
67 CLEANFILES    = pub/libvex_guest_offsets.h
69 if COMPILER_IS_CLANG
70 CFLAGS_FOR_GENOFFSETS = $(CFLAGS) -no-integrated-as
71 else
72 CFLAGS_FOR_GENOFFSETS = $(CFLAGS)
73 endif
75 # This is very uggerly.  Need to sed out both "xyzzyN" and
76 # "xyzzy$N" since gcc on different targets emits the constants
77 # differently -- with a leading $ on x86/amd64 but none on ppc32/64.
78 # ICC also emits the constants differently with a leading # #define
79 pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \
80                             pub/libvex_basictypes.h \
81                             pub/libvex_guest_x86.h \
82                             pub/libvex_guest_amd64.h \
83                             pub/libvex_guest_ppc32.h \
84                             pub/libvex_guest_ppc64.h \
85                             pub/libvex_guest_arm.h \
86                             pub/libvex_guest_arm64.h \
87                             pub/libvex_guest_s390x.h \
88                             pub/libvex_guest_mips32.h \
89                             pub/libvex_guest_mips64.h \
90                             pub/libvex_guest_tilegx.h
91         rm -f auxprogs/genoffsets.s
92         $(mkdir_p) auxprogs pub
93         $(CC) $(CFLAGS_FOR_GENOFFSETS) \
94               $(LIBVEX_CFLAGS) \
95               $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
96                                 -O -S -o auxprogs/genoffsets.s \
97                                          $(srcdir)/auxprogs/genoffsets.c
98         grep xyzzy auxprogs/genoffsets.s | grep "^[# ]*#define" \
99            | sed "s/# #define/#define/g" \
100            | sed "s/xyzzy\\$$//g" \
101            | sed "s/xyzzy#//g" \
102            | sed "s/xyzzy//g" \
103            > pub/libvex_guest_offsets.h
104         rm -f auxprogs/genoffsets.s
106 #----------------------------------------------------------------------------
107 # libvex-<platform>-<os>.a : containing all VEX objects, including
108 # a main_main.o compiled in single arch (guest==host).
109 # libvexmultiarch-<platform>-<os>.a, only containing multiarch_main_main.o,
110 # which is main_main.c compiled so that any guest/host combination
111 # can be done at runtime.
112 #----------------------------------------------------------------------------
114 pkglib_LIBRARIES  = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a \
115         libvexmultiarch-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
116 if VGCONF_HAVE_PLATFORM_SEC
117 pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a \
118         libvexmultiarch-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
119 endif
121 LIBVEX_SOURCES_COMMON = \
122         priv/main_globals.c \
123         priv/main_main.c \
124         priv/main_util.c \
125         priv/ir_defs.c \
126         priv/ir_inject.c \
127         priv/ir_match.c \
128         priv/ir_opt.c \
129         priv/guest_generic_bb_to_IR.c \
130         priv/guest_generic_x87.c \
131         priv/guest_x86_helpers.c \
132         priv/guest_x86_toIR.c \
133         priv/guest_amd64_helpers.c \
134         priv/guest_amd64_toIR.c \
135         priv/guest_ppc_helpers.c \
136         priv/guest_ppc_toIR.c \
137         priv/guest_arm_helpers.c \
138         priv/guest_arm_toIR.c \
139         priv/guest_arm64_helpers.c \
140         priv/guest_arm64_toIR.c \
141         priv/guest_s390_helpers.c \
142         priv/guest_s390_toIR.c \
143         priv/guest_mips_helpers.c \
144         priv/guest_mips_toIR.c \
145         priv/guest_tilegx_helpers.c \
146         priv/guest_tilegx_toIR.c \
147         priv/host_generic_regs.c \
148         priv/host_generic_simd64.c \
149         priv/host_generic_simd128.c \
150         priv/host_generic_simd256.c \
151         priv/host_generic_maddf.c \
152         priv/host_generic_reg_alloc2.c \
153         priv/host_x86_defs.c \
154         priv/host_x86_isel.c \
155         priv/host_amd64_defs.c \
156         priv/host_amd64_isel.c \
157         priv/host_ppc_defs.c \
158         priv/host_ppc_isel.c \
159         priv/host_arm_defs.c \
160         priv/host_arm_isel.c \
161         priv/host_arm64_defs.c \
162         priv/host_arm64_isel.c \
163         priv/host_s390_defs.c \
164         priv/host_s390_isel.c \
165         priv/s390_disasm.c \
166         priv/host_mips_defs.c \
167         priv/host_mips_isel.c \
168         priv/host_tilegx_defs.c \
169         priv/host_tilegx_isel.c \
170         priv/tilegx_disasm.c
172 LIBVEXMULTIARCH_SOURCES = priv/multiarch_main_main.c
174 LIBVEX_CFLAGS = \
175         -Wbad-function-cast \
176         -fstrict-aliasing
178 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES  = $(LIBVEX_SOURCES_COMMON)
179 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
180         $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
181 libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS   = \
182         $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
183 if VGCONF_HAVE_PLATFORM_SEC
184 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES  = $(LIBVEX_SOURCES_COMMON)
185 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
186         $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
187 libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS   = \
188         $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
189 endif
191 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES  = \
192         $(LIBVEXMULTIARCH_SOURCES)
193 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
194         $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
195 libvexmultiarch_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS   = \
196         $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
197 if VGCONF_HAVE_PLATFORM_SEC
198 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES  = \
199         $(LIBVEXMULTIARCH_SOURCES)
200 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
201         $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
202 libvexmultiarch_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS   = \
203         $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
204 endif