1 ## Process this with automake to create Makefile.in
3 AUTOMAKE_OPTIONS = cygnus
7 EXTRA_DIST = LICENSE ChangeLog.v1 src/mips/ffi.c src/mips/n32.S \
8 src/mips/n32.s src/mips/o32.S src/mips/o32.s \
9 src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S \
10 src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \
11 src/alpha/ffi.c src/alpha/osf.S \
12 src/m68k/ffi.c src/m68k/sysv.S \
13 src/powerpc/ffi.c src/powerpc/sysv.S \
14 src/powerpc/ppc_closure.S src/powerpc/asm.h \
15 src/arm/ffi.c src/arm/sysv.S
17 VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
19 ## ################################################################
22 ## This section is for make and multilib madness.
25 # Work around what appears to be a GNU make bug handling MAKEFLAGS
26 # values defined in terms of make variables, as is the case for CC and
27 # friends when we are called from the top level Makefile.
29 "AR_FLAGS=$(AR_FLAGS)" \
30 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
32 "CXXFLAGS=$(CXXFLAGS)" \
33 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
34 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
35 "INSTALL=$(INSTALL)" \
36 "INSTALL_DATA=$(INSTALL_DATA)" \
37 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
38 "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
39 "JC1FLAGS=$(JC1FLAGS)" \
40 "LDFLAGS=$(LDFLAGS)" \
41 "LIBCFLAGS=$(LIBCFLAGS)" \
42 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
44 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
45 "PICFLAG=$(PICFLAG)" \
46 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
48 "exec_prefix=$(exec_prefix)" \
49 "infodir=$(infodir)" \
57 "LIBCFLAGS=$(LIBCFLAGS)" \
59 "PICFLAG=$(PICFLAG)" \
65 # Multilib support variables.
73 ## Install a library built with a cross compiler in tooldir, not
76 toolexeclibdir = $(libdir)$(MULTISUBDIR)
78 toolexecdir = $(exec_prefix)/$(target_alias)
79 toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
82 toolexeclib_LTLIBRARIES = libffi.la
83 noinst_LTLIBRARIES = libfficonvenience.la
85 noinst_PROGRAMS = ffitest
87 ffitest_SOURCES = src/ffitest.c
88 ffitest_LDADD = libffi.la
89 ffitest_LDFLAGS = -shared-libgcc
91 TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
92 TARGET_SRC_MIPS_SGI = src/mips/ffi.c src/mips/o32.s src/mips/n32.s
93 TARGET_SRC_X86 = src/x86/ffi.c src/x86/sysv.S
94 TARGET_SRC_X86_WIN32 = src/x86/ffi.c src/x86/win32.S
95 TARGET_SRC_SPARC = src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
96 TARGET_SRC_ALPHA = src/alpha/ffi.c src/alpha/osf.S
97 TARGET_SRC_IA64 = src/ia64/ffi.c src/ia64/unix.S
98 TARGET_SRC_M68K = src/m68k/ffi.c src/m68k/sysv.S
99 TARGET_SRC_POWERPC = src/powerpc/ffi.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
100 TARGET_SRC_ARM = src/arm/sysv.S src/arm/ffi.c
102 ##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@)
103 ## Work around automake deficiency
104 libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
105 src/raw_api.c src/java_raw_api.c
107 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
108 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
111 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
112 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
115 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
116 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
119 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
120 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
123 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
124 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
127 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
128 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
131 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
132 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
135 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
136 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
139 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
140 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
143 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
144 libfficonvenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
147 AM_CFLAGS = -fexceptions
149 libffi_la_LDFLAGS = -release $(VERSION)
151 INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
153 # Override these rules so that object files get put in the correct
156 $(LTCOMPILE) -c -o $@ $<
159 $(LTCOMPILE) -c -o $@ $<
162 $(LTCOMPILE) -c -o $@ $<
165 $(LTCOMPILE) -c -o $@ $<
168 $(LTCOMPILE) -c -o $@ $<
171 $(LTCOMPILE) -c -o $@ $<
174 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
175 maintainer-clean-multi
177 all-recursive: all-multi
178 install-recursive: install-multi
179 mostlyclean-recursive: mostlyclean-multi
180 clean-recursive: clean-multi
181 distclean-recursive: distclean-multi
182 maintainer-clean-recursive: maintainer-clean-multi
185 $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
187 $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
189 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
191 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
193 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
194 maintainer-clean-multi:
195 $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
198 ## ################################################################