blob: 339a7e8d841f50acf9f777040d43f3ddc4e60179 [file] [log] [blame]
njn8b68b642009-06-24 00:37:09 +00001# 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 \
13 quote.txt \
14 newline.txt \
15 auxprogs/genoffsets.c
16
17pkginclude_HEADERS = \
18 pub/libvex.h \
19 pub/libvex_basictypes.h \
20 pub/libvex_emwarn.h \
21 pub/libvex_guest_offsets.h \
22 pub/libvex_guest_x86.h \
23 pub/libvex_guest_amd64.h \
24 pub/libvex_guest_ppc32.h \
25 pub/libvex_guest_ppc64.h \
26 pub/libvex_guest_arm.h \
27 pub/libvex_ir.h \
28 pub/libvex_trc_values.h
29
30noinst_HEADERS = \
sewardj27824a72009-07-02 12:23:16 +000031 priv/main_globals.h \
32 priv/main_util.h \
33 priv/ir_match.h \
34 priv/ir_opt.h \
35 priv/guest_generic_bb_to_IR.h \
36 priv/guest_generic_x87.h \
37 priv/guest_x86_defs.h \
38 priv/guest_amd64_defs.h \
39 priv/guest_ppc_defs.h \
40 priv/guest_arm_defs.h \
41 priv/host_generic_regs.h \
42 priv/host_generic_simd64.h \
43 priv/host_x86_defs.h \
44 priv/host_amd64_defs.h \
45 priv/host_ppc_defs.h \
46 priv/host_arm_defs.h
njn8b68b642009-06-24 00:37:09 +000047
48BUILT_SOURCES = pub/libvex_guest_offsets.h
49CLEANFILES = pub/libvex_guest_offsets.h
50
51# This is very uggerly. Need to sed out both "xyzzyN" and
52# "xyzzy$N" since gcc on different targets emits the constants
53# differently -- with a leading $ on x86/amd64 but none on ppc32/64.
54pub/libvex_guest_offsets.h:
55 rm -f auxprogs/genoffsets.s
56 $(CC) $(LIBVEX_CFLAGS) -O -S -o auxprogs/genoffsets.s \
57 auxprogs/genoffsets.c
58 grep xyzzy auxprogs/genoffsets.s | grep define \
59 | sed "s/xyzzy\\$$//g" | sed "s/xyzzy//g" \
60 > pub/libvex_guest_offsets.h
61 rm -f auxprogs/genoffsets.s
62
63#----------------------------------------------------------------------------
njnebf2cae2009-07-14 04:49:18 +000064# main_vex_svnversion.h
njn8b68b642009-06-24 00:37:09 +000065#----------------------------------------------------------------------------
66
sewardje7995132009-07-02 12:36:53 +000067BUILT_SOURCES += priv/main_vex_svnversion.h
njn8b68b642009-06-24 00:37:09 +000068
njnebf2cae2009-07-14 04:49:18 +000069# The contents of this file don't matter, as we don't call LibVEX_version()
70# from Valgrind.
71# Nb: generating a file and putting it in $(srcdir) rather than $(builddir)
72# seems like bad form... this should be fixed if VPATH builds are made to
73# work.
74priv/main_vex_svnversion.h:
75 echo "\"version\"" > $(srcdir)/priv/main_vex_svnversion.h
njn8b68b642009-06-24 00:37:09 +000076
77#----------------------------------------------------------------------------
78# libvex-<platform>.a
79#----------------------------------------------------------------------------
80
81pkglib_LIBRARIES = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
82if VGCONF_HAVE_PLATFORM_SEC
83pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
84endif
85
njn8b68b642009-06-24 00:37:09 +000086LIBVEX_SOURCES_COMMON = \
sewardj27824a72009-07-02 12:23:16 +000087 priv/main_globals.c \
88 priv/main_main.c \
89 priv/main_util.c \
90 priv/ir_defs.c \
91 priv/ir_match.c \
92 priv/ir_opt.c \
93 priv/guest_generic_bb_to_IR.c \
94 priv/guest_generic_x87.c \
95 priv/guest_x86_helpers.c \
96 priv/guest_x86_toIR.c \
97 priv/guest_amd64_helpers.c \
98 priv/guest_amd64_toIR.c \
99 priv/guest_ppc_helpers.c \
100 priv/guest_ppc_toIR.c \
101 priv/guest_arm_helpers.c \
102 priv/guest_arm_toIR.c \
103 priv/host_generic_regs.c \
104 priv/host_generic_simd64.c \
105 priv/host_generic_reg_alloc2.c \
106 priv/host_x86_defs.c \
107 priv/host_x86_isel.c \
108 priv/host_amd64_defs.c \
109 priv/host_amd64_isel.c \
110 priv/host_ppc_defs.c \
111 priv/host_ppc_isel.c \
112 priv/host_arm_defs.c \
113 priv/host_arm_isel.c
njn8b68b642009-06-24 00:37:09 +0000114
115LIBVEX_CFLAGS = \
116 -Wbad-function-cast \
117 -Wcast-qual \
118 -Wcast-align \
119 -fstrict-aliasing
120
121libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
122libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
123 $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
124libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
125 $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
126if VGCONF_HAVE_PLATFORM_SEC
127libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = $(LIBVEX_SOURCES_COMMON)
128libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
129 $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
130libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
131 $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
132endif
133