Makefile.vex.am revision b32f58018498ea2225959b0ba11c18f0c433deef
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 \
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_guest_s390x.h \
28	pub/libvex_s390x_common.h \
29	pub/libvex_ir.h \
30	pub/libvex_trc_values.h
31
32noinst_HEADERS = \
33	priv/main_globals.h \
34	priv/main_util.h \
35	priv/ir_match.h \
36	priv/ir_opt.h \
37	priv/guest_generic_bb_to_IR.h \
38	priv/guest_generic_x87.h \
39	priv/guest_x86_defs.h \
40	priv/guest_amd64_defs.h \
41	priv/guest_ppc_defs.h \
42	priv/guest_arm_defs.h \
43	priv/guest_s390_defs.h \
44	priv/host_generic_regs.h \
45	priv/host_generic_simd64.h \
46	priv/host_generic_simd128.h \
47	priv/host_x86_defs.h \
48	priv/host_amd64_defs.h \
49	priv/host_ppc_defs.h \
50	priv/host_arm_defs.h \
51	priv/host_s390_defs.h \
52	priv/host_s390_disasm.h
53
54BUILT_SOURCES = pub/libvex_guest_offsets.h
55CLEANFILES    = pub/libvex_guest_offsets.h
56
57# This is very uggerly.  Need to sed out both "xyzzyN" and
58# "xyzzy$N" since gcc on different targets emits the constants
59# differently -- with a leading $ on x86/amd64 but none on ppc32/64.
60pub/libvex_guest_offsets.h: auxprogs/genoffsets.c \
61			    pub/libvex_basictypes.h \
62			    pub/libvex_guest_x86.h \
63			    pub/libvex_guest_amd64.h \
64			    pub/libvex_guest_ppc32.h \
65			    pub/libvex_guest_ppc64.h \
66			    pub/libvex_guest_arm.h \
67			    pub/libvex_guest_s390x.h
68	rm -f auxprogs/genoffsets.s
69	$(CC) $(CFLAGS) \
70	      $(LIBVEX_CFLAGS) \
71	      $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) \
72				-O -S -o auxprogs/genoffsets.s \
73					 auxprogs/genoffsets.c
74	grep xyzzy auxprogs/genoffsets.s | grep define \
75	   | sed "s/xyzzy\\$$//g" \
76	   | sed "s/xyzzy#//g" \
77	   | sed "s/xyzzy//g" \
78	   > pub/libvex_guest_offsets.h
79	rm -f auxprogs/genoffsets.s
80
81#----------------------------------------------------------------------------
82# libvex-<platform>.a
83#----------------------------------------------------------------------------
84
85pkglib_LIBRARIES  = libvex-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
86if VGCONF_HAVE_PLATFORM_SEC
87pkglib_LIBRARIES += libvex-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
88endif
89
90LIBVEX_SOURCES_COMMON = \
91	priv/main_globals.c \
92	priv/main_main.c \
93	priv/main_util.c \
94	priv/ir_defs.c \
95	priv/ir_match.c \
96	priv/ir_opt.c \
97	priv/guest_generic_bb_to_IR.c \
98	priv/guest_generic_x87.c \
99	priv/guest_x86_helpers.c \
100	priv/guest_x86_toIR.c \
101	priv/guest_amd64_helpers.c \
102	priv/guest_amd64_toIR.c \
103	priv/guest_ppc_helpers.c \
104	priv/guest_ppc_toIR.c \
105	priv/guest_arm_helpers.c \
106	priv/guest_arm_toIR.c \
107	priv/guest_s390_helpers.c \
108	priv/guest_s390_toIR.c \
109	priv/host_generic_regs.c \
110	priv/host_generic_simd64.c \
111	priv/host_generic_simd128.c \
112	priv/host_generic_reg_alloc2.c \
113	priv/host_x86_defs.c \
114	priv/host_x86_isel.c \
115	priv/host_amd64_defs.c \
116	priv/host_amd64_isel.c \
117	priv/host_ppc_defs.c \
118	priv/host_ppc_isel.c \
119	priv/host_arm_defs.c \
120	priv/host_arm_isel.c \
121	priv/host_s390_defs.c \
122	priv/host_s390_isel.c \
123	priv/host_s390_disasm.c
124
125LIBVEX_CFLAGS = \
126	-Wbad-function-cast \
127	-Wcast-qual \
128	-Wcast-align \
129	-fstrict-aliasing
130
131libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES  = $(LIBVEX_SOURCES_COMMON)
132libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
133        $(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) -Ipriv
134libvex_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS   = \
135        $(AM_CFLAGS_@VGCONF_PLATFORM_PRI_CAPS@) $(LIBVEX_CFLAGS)
136if VGCONF_HAVE_PLATFORM_SEC
137libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES  = $(LIBVEX_SOURCES_COMMON)
138libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
139        $(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) -Ipriv
140libvex_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS   = \
141        $(AM_CFLAGS_@VGCONF_PLATFORM_SEC_CAPS@) $(LIBVEX_CFLAGS)
142endif
143
144