* doc/install.texi (Prerequisites): Mention GNU make requirement.
[official-gcc.git] / libffi / Makefile.am
blobd015026f2f9db1c036bfcebcc9cb9fe32594800c
1 ## Process this with automake to create Makefile.in
3 AUTOMAKE_OPTIONS = cygnus
5 SUBDIRS = include
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/x86/ffi64.c src/x86/unix64.S \
12                 src/alpha/ffi.c src/alpha/osf.S \
13                 src/m68k/ffi.c src/m68k/sysv.S \
14                 src/powerpc/ffi.c src/powerpc/sysv.S \
15                 src/powerpc/linux64.S src/powerpc/linux64_closure.S \
16                 src/powerpc/ppc_closure.S src/powerpc/asm.h \
17                 src/powerpc/ffi_darwin.c \
18                 src/powerpc/darwin.S src/powerpc/aix.S \
19                 src/powerpc/darwin_closure.S src/powerpc/aix_closure.S \
20                 src/arm/ffi.c src/arm/sysv.S \
21                 src/s390/ffi.c src/s390/sysv.S \
22                 src/sh/ffi.c src/sh/sysv.S \
23                 src/sh64/ffi.c src/sh64/sysv.S
25 VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
27 ## ################################################################
30 ## This section is for make and multilib madness.
33 # Work around what appears to be a GNU make bug handling MAKEFLAGS
34 # values defined in terms of make variables, as is the case for CC and
35 # friends when we are called from the top level Makefile.
36 AM_MAKEFLAGS = \
37         "AR_FLAGS=$(AR_FLAGS)" \
38         "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
39         "CFLAGS=$(CFLAGS)" \
40         "CXXFLAGS=$(CXXFLAGS)" \
41         "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
42         "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
43         "INSTALL=$(INSTALL)" \
44         "INSTALL_DATA=$(INSTALL_DATA)" \
45         "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
46         "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
47         "JC1FLAGS=$(JC1FLAGS)" \
48         "LDFLAGS=$(LDFLAGS)" \
49         "LIBCFLAGS=$(LIBCFLAGS)" \
50         "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
51         "MAKE=$(MAKE)" \
52         "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
53         "PICFLAG=$(PICFLAG)" \
54         "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
55         "SHELL=$(SHELL)" \
56         "exec_prefix=$(exec_prefix)" \
57         "infodir=$(infodir)" \
58         "libdir=$(libdir)" \
59         "prefix=$(prefix)" \
60         "AR=$(AR)" \
61         "AS=$(AS)" \
62         "CC=$(CC)" \
63         "CXX=$(CXX)" \
64         "LD=$(LD)" \
65         "LIBCFLAGS=$(LIBCFLAGS)" \
66         "NM=$(NM)" \
67         "PICFLAG=$(PICFLAG)" \
68         "RANLIB=$(RANLIB)" \
69         "DESTDIR=$(DESTDIR)"
71 MAKEOVERRIDES=
73 # Multilib support variables.
74 MULTISRCTOP =
75 MULTIBUILDTOP =
76 MULTIDIRS =
77 MULTISUBDIR =
78 MULTIDO = true
79 MULTICLEAN = true
81 toolexeclib_LTLIBRARIES = libffi.la
82 noinst_LTLIBRARIES = libffi_convenience.la
84 noinst_PROGRAMS = ffitest
86 ffitest_OBJECTS = ffitest.lo
87 ffitest_LDADD = libffi.la
88 ffitest_LDFLAGS = -shared-libgcc
90 TARGET_SRC_MIPS_GCC = src/mips/ffi.c src/mips/o32.S src/mips/n32.S
91 TARGET_SRC_MIPS_LINUX = src/mips/ffi.c src/mips/o32.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 src/powerpc/linux64.S src/powerpc/linux64_closure.S
100 TARGET_SRC_POWERPC_AIX = src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
101 TARGET_SRC_POWERPC_DARWIN = src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
102 TARGET_SRC_ARM =  src/arm/sysv.S src/arm/ffi.c
103 TARGET_SRC_S390 =  src/s390/sysv.S src/s390/ffi.c
104 TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
105 TARGET_SRC_SH =  src/sh/sysv.S src/sh/ffi.c
106 TARGET_SRC_SH64 =  src/sh64/sysv.S src/sh64/ffi.c
108 ##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@)
109 ## Work around automake deficiency
110 libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
111                 src/raw_api.c src/java_raw_api.c
112 if MIPS_GCC
113 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
114 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_GCC)
115 endif
116 if MIPS_LINUX
117 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
118 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
119 endif
120 if MIPS_SGI
121 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
122 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_SGI)
123 endif
124 if X86
125 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
126 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
127 endif
128 if X86_WIN32
129 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
130 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
131 endif
132 if SPARC
133 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
134 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
135 endif
136 if ALPHA
137 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
138 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
139 endif
140 if IA64
141 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
142 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
143 endif
144 if M68K
145 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
146 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
147 endif
148 if POWERPC
149 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
150 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
151 endif
152 if POWERPC_AIX
153 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
154 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
155 endif
156 if POWERPC_DARWIN
157 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
158 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
159 endif
160 if ARM
161 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
162 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
163 endif
164 if S390
165 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
166 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
167 endif
168 if X86_64
169 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
170 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
171 endif
172 if SH
173 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
174 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
175 endif
176 if SH64
177 libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
178 libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
179 endif
181 AM_CFLAGS = -fexceptions
183 libffi_la_LDFLAGS = -release $(VERSION) 
185 INCLUDES = -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
187 # Override these rules so that object files get put in the correct 
188 # subdirectories. 
189 .c.o:
190         $(LTCOMPILE) -c -o $@ $<
192 .s.o:
193         $(LTCOMPILE) -c -o $@ $<
195 .S.o:
196         $(LTCOMPILE) -c -o $@ $<
198 .c.lo:
199         $(LTCOMPILE) -c -o $@ $<
201 .s.lo:
202         $(LTCOMPILE) -c -o $@ $<
204 .S.lo:
205         $(LTCOMPILE) -c -o $@ $<
207 # Multilib support.
208 .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
209         maintainer-clean-multi
211 all-recursive: all-multi
212 install-recursive: install-multi
213 mostlyclean-recursive: mostlyclean-multi
214 clean-recursive: clean-multi
215 distclean-recursive: distclean-multi
216 maintainer-clean-recursive: maintainer-clean-multi
218 all-multi:
219         : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
220 install-multi:
221         $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
222 mostlyclean-multi:
223         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean
224 clean-multi:
225         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean
226 distclean-multi:
227         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean
228 maintainer-clean-multi:
229         $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean
232 ## ################################################################