blob: c06f37437c85d173917288a2653a0196095e8965 [file] [log] [blame]
Anthony Greenc6dddbd2009-10-04 08:11:33 -04001## Process this with automake to create Makefile.in
2
3AUTOMAKE_OPTIONS = foreign subdir-objects
Anthony Greenc6dddbd2009-10-04 08:11:33 -04004
Anthony Greened6ae952013-02-07 16:43:36 -05005ACLOCAL_AMFLAGS = -I m4
6
Anthony Greenc6dddbd2009-10-04 08:11:33 -04007SUBDIRS = include testsuite man
8
Anthony Green9c00a3f2012-10-12 16:46:06 -04009EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj configure.host \
Anthony Green215763d2013-03-16 07:57:35 -040010 src/aarch64/ffi.c src/aarch64/ffitarget.h src/aarch64/sysv.S \
Anthony Green7ea67772013-11-30 20:58:31 -050011 src/alpha/ffi.c src/alpha/osf.S \
Mischa Jonkerb082e152013-06-10 16:19:33 +020012 src/alpha/ffitarget.h src/arc/ffi.c src/arc/arcompact.S \
13 src/arc/ffitarget.h src/arm/ffi.c src/arm/sysv.S \
Anthony Green215763d2013-03-16 07:57:35 -040014 src/arm/ffitarget.h src/avr32/ffi.c src/avr32/sysv.S \
15 src/avr32/ffitarget.h src/cris/ffi.c src/cris/sysv.S \
16 src/cris/ffitarget.h src/ia64/ffi.c src/ia64/ffitarget.h \
17 src/ia64/ia64_flags.h src/ia64/unix.S src/mips/ffi.c \
18 src/mips/n32.S src/mips/o32.S src/metag/ffi.c \
19 src/metag/ffitarget.h src/metag/sysv.S src/moxie/ffi.c \
20 src/moxie/ffitarget.h src/moxie/eabi.S src/mips/ffitarget.h \
21 src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
22 src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
Anthony Greend2fcbcd2013-10-08 06:27:46 -040023 src/m88k/ffi.c src/m88k/obsd.S src/m88k/ffitarget.h \
Anthony Green215763d2013-03-16 07:57:35 -040024 src/microblaze/ffi.c src/microblaze/sysv.S \
Sandra Loosemore16b93a22013-10-15 15:33:59 -040025 src/microblaze/ffitarget.h \
26 src/nios2/ffi.c src/nios2/ffitarget.h src/nios2/sysv.S \
Alan Modraab79d6e2013-11-21 06:12:35 -050027 src/powerpc/ffi.c src/powerpc/ffi_powerpc.h \
28 src/powerpc/ffi_sysv.c src/powerpc/ffi_linux64.c \
Anthony Green215763d2013-03-16 07:57:35 -040029 src/powerpc/sysv.S src/powerpc/linux64.S \
30 src/powerpc/linux64_closure.S src/powerpc/ppc_closure.S \
31 src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S \
32 src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
33 src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
34 src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
35 src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c \
36 src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S \
37 src/sparc/v9.S src/sparc/ffitarget.h src/sparc/ffi.c \
38 src/x86/darwin64.S src/x86/ffi.c src/x86/sysv.S \
39 src/x86/win32.S src/x86/darwin.S src/x86/win64.S \
40 src/x86/freebsd.S src/x86/ffi64.c src/x86/unix64.S \
41 src/x86/ffitarget.h src/pa/ffitarget.h src/pa/ffi.c \
42 src/pa/linux.S src/pa/hpux32.S src/frv/ffi.c src/bfin/ffi.c \
43 src/bfin/ffitarget.h src/bfin/sysv.S src/frv/eabi.S \
44 src/frv/ffitarget.h src/dlmalloc.c src/tile/ffi.c \
45 src/tile/ffitarget.h src/tile/tile.S libtool-version \
Anthony Greend2fcbcd2013-10-08 06:27:46 -040046 src/vax/ffi.c src/vax/ffitarget.h src/vax/elfbsd.S \
Anthony Green215763d2013-03-16 07:57:35 -040047 src/xtensa/ffitarget.h src/xtensa/ffi.c src/xtensa/sysv.S \
Anthony Green9c00a3f2012-10-12 16:46:06 -040048 ChangeLog.libffi m4/libtool.m4 m4/lt~obsolete.m4 \
49 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 \
50 m4/ltversion.m4 src/arm/gentramp.sh src/debug.c msvcc.sh \
Anthony Green634a4752014-03-01 18:37:29 -050051 generate-darwin-source-and-headers.py \
Anthony Green215763d2013-03-16 07:57:35 -040052 libffi.xcodeproj/project.pbxproj src/arm/trampoline.S \
Josh Triplett1c68c072014-03-16 06:11:58 -070053 libtool-ldflags ChangeLog.libffi-3.1
Anthony Green3b7efa42011-08-15 13:25:13 -040054
Anthony Green5cbe2052009-10-04 23:53:11 -040055info_TEXINFOS = doc/libffi.texi
Anthony Greenc6dddbd2009-10-04 08:11:33 -040056
57## ################################################################
58
59##
60## This section is for make and multilib madness.
61##
62
63# Work around what appears to be a GNU make bug handling MAKEFLAGS
64# values defined in terms of make variables, as is the case for CC and
65# friends when we are called from the top level Makefile.
66AM_MAKEFLAGS = \
67 "AR_FLAGS=$(AR_FLAGS)" \
68 "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
69 "CFLAGS=$(CFLAGS)" \
70 "CXXFLAGS=$(CXXFLAGS)" \
71 "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
72 "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
73 "INSTALL=$(INSTALL)" \
74 "INSTALL_DATA=$(INSTALL_DATA)" \
75 "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
76 "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
77 "JC1FLAGS=$(JC1FLAGS)" \
78 "LDFLAGS=$(LDFLAGS)" \
79 "LIBCFLAGS=$(LIBCFLAGS)" \
80 "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
81 "MAKE=$(MAKE)" \
82 "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
83 "PICFLAG=$(PICFLAG)" \
84 "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
85 "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
86 "SHELL=$(SHELL)" \
87 "exec_prefix=$(exec_prefix)" \
88 "infodir=$(infodir)" \
89 "libdir=$(libdir)" \
Anthony Green3f5b1372010-07-12 14:39:18 -040090 "mandir=$(mandir)" \
Anthony Greenc6dddbd2009-10-04 08:11:33 -040091 "prefix=$(prefix)" \
92 "AR=$(AR)" \
93 "AS=$(AS)" \
94 "CC=$(CC)" \
95 "CXX=$(CXX)" \
96 "LD=$(LD)" \
97 "NM=$(NM)" \
98 "RANLIB=$(RANLIB)" \
99 "DESTDIR=$(DESTDIR)"
100
Anthony Green981c32e2013-01-02 07:34:03 -0500101# Subdir rules rely on $(FLAGS_TO_PASS)
102FLAGS_TO_PASS = $(AM_MAKEFLAGS)
103
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400104MAKEOVERRIDES=
105
Anthony Green981c32e2013-01-02 07:34:03 -0500106toolexeclib_LTLIBRARIES = libffi.la
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400107noinst_LTLIBRARIES = libffi_convenience.la
Anthony Greenf88118b2013-07-02 15:51:27 -0400108
109libffi_la_SOURCES = src/prep_cif.c src/types.c \
110 src/raw_api.c src/java_raw_api.c src/closures.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400111
Anthony Greenf7cd61e2013-02-06 17:38:04 -0500112pkgconfigdir = $(libdir)/pkgconfig
113pkgconfig_DATA = libffi.pc
114
Anthony Greenf88118b2013-07-02 15:51:27 -0400115nodist_libffi_la_SOURCES =
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400116
Anthony Green6a6e7f82011-11-12 16:20:42 -0500117if FFI_DEBUG
Anthony Greenf88118b2013-07-02 15:51:27 -0400118nodist_libffi_la_SOURCES += src/debug.c
Anthony Green6a6e7f82011-11-12 16:20:42 -0500119endif
120
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400121if MIPS
Anthony Greenf88118b2013-07-02 15:51:27 -0400122nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400123endif
Anthony Green213ed152012-04-27 01:34:15 -0400124if BFIN
Anthony Greenf88118b2013-07-02 15:51:27 -0400125nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
Anthony Green213ed152012-04-27 01:34:15 -0400126endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400127if X86
Josh Triplette1911f72014-03-16 03:25:53 -0700128nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/sysv.S src/x86/win32.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400129endif
130if X86_FREEBSD
Anthony Greenf88118b2013-07-02 15:51:27 -0400131nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/freebsd.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400132endif
133if X86_WIN32
Anthony Greenf88118b2013-07-02 15:51:27 -0400134nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win32.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400135endif
136if X86_WIN64
Anthony Greenf88118b2013-07-02 15:51:27 -0400137nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/win64.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400138endif
139if X86_DARWIN
Anthony Greenf88118b2013-07-02 15:51:27 -0400140nodist_libffi_la_SOURCES += src/x86/ffi.c src/x86/darwin.S src/x86/ffi64.c src/x86/darwin64.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400141endif
142if SPARC
Anthony Greenf88118b2013-07-02 15:51:27 -0400143nodist_libffi_la_SOURCES += src/sparc/ffi.c src/sparc/v8.S src/sparc/v9.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400144endif
145if ALPHA
Anthony Greenf88118b2013-07-02 15:51:27 -0400146nodist_libffi_la_SOURCES += src/alpha/ffi.c src/alpha/osf.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400147endif
148if IA64
Anthony Greenf88118b2013-07-02 15:51:27 -0400149nodist_libffi_la_SOURCES += src/ia64/ffi.c src/ia64/unix.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400150endif
151if M32R
Anthony Greenf88118b2013-07-02 15:51:27 -0400152nodist_libffi_la_SOURCES += src/m32r/sysv.S src/m32r/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400153endif
154if M68K
Anthony Greenf88118b2013-07-02 15:51:27 -0400155nodist_libffi_la_SOURCES += src/m68k/ffi.c src/m68k/sysv.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400156endif
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400157if M88K
158nodist_libffi_la_SOURCES += src/m88k/ffi.c src/m88k/obsd.S
159endif
Anthony Greenf308faf2013-02-11 14:25:13 -0500160if MOXIE
Anthony Greenf88118b2013-07-02 15:51:27 -0400161nodist_libffi_la_SOURCES += src/moxie/ffi.c src/moxie/eabi.S
Anthony Greenf308faf2013-02-11 14:25:13 -0500162endif
Anthony Greenaeb87192013-01-21 07:37:30 -0500163if MICROBLAZE
Anthony Greenf88118b2013-07-02 15:51:27 -0400164nodist_libffi_la_SOURCES += src/microblaze/ffi.c src/microblaze/sysv.S
Anthony Greenaeb87192013-01-21 07:37:30 -0500165endif
Sandra Loosemore16b93a22013-10-15 15:33:59 -0400166if NIOS2
167nodist_libffi_la_SOURCES += src/nios2/sysv.S src/nios2/ffi.c
168endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400169if POWERPC
Alan Modraab79d6e2013-11-21 06:12:35 -0500170nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/ffi_linux64.c src/powerpc/sysv.S src/powerpc/ppc_closure.S src/powerpc/linux64.S src/powerpc/linux64_closure.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400171endif
172if POWERPC_AIX
Anthony Greenf88118b2013-07-02 15:51:27 -0400173nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/aix.S src/powerpc/aix_closure.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400174endif
175if POWERPC_DARWIN
Anthony Greenf88118b2013-07-02 15:51:27 -0400176nodist_libffi_la_SOURCES += src/powerpc/ffi_darwin.c src/powerpc/darwin.S src/powerpc/darwin_closure.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400177endif
178if POWERPC_FREEBSD
Alan Modraab79d6e2013-11-21 06:12:35 -0500179nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/sysv.S src/powerpc/ppc_closure.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400180endif
Anthony Greenf680b592012-11-06 16:00:40 -0500181if AARCH64
Anthony Greenf88118b2013-07-02 15:51:27 -0400182nodist_libffi_la_SOURCES += src/aarch64/sysv.S src/aarch64/ffi.c
Anthony Greenf680b592012-11-06 16:00:40 -0500183endif
Mischa Jonkerb082e152013-06-10 16:19:33 +0200184if ARC
Mischa Jonkerd918d472013-07-08 15:51:36 +0200185nodist_libffi_la_SOURCES += src/arc/arcompact.S src/arc/ffi.c
Mischa Jonkerb082e152013-06-10 16:19:33 +0200186endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400187if ARM
Anthony Greenf88118b2013-07-02 15:51:27 -0400188nodist_libffi_la_SOURCES += src/arm/sysv.S src/arm/ffi.c
Landon Fullerc71480e2010-09-19 09:02:05 -0700189if FFI_EXEC_TRAMPOLINE_TABLE
Anthony Greenf88118b2013-07-02 15:51:27 -0400190nodist_libffi_la_SOURCES += src/arm/trampoline.S
Landon Fullerc71480e2010-09-19 09:02:05 -0700191endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400192endif
Anthony Green2340e7a2009-10-04 23:53:17 -0400193if AVR32
Anthony Greenf88118b2013-07-02 15:51:27 -0400194nodist_libffi_la_SOURCES += src/avr32/sysv.S src/avr32/ffi.c
Anthony Green2340e7a2009-10-04 23:53:17 -0400195endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400196if LIBFFI_CRIS
Anthony Greenf88118b2013-07-02 15:51:27 -0400197nodist_libffi_la_SOURCES += src/cris/sysv.S src/cris/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400198endif
199if FRV
Anthony Greenf88118b2013-07-02 15:51:27 -0400200nodist_libffi_la_SOURCES += src/frv/eabi.S src/frv/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400201endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400202if S390
Anthony Greenf88118b2013-07-02 15:51:27 -0400203nodist_libffi_la_SOURCES += src/s390/sysv.S src/s390/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400204endif
205if X86_64
Anthony Greenf88118b2013-07-02 15:51:27 -0400206nodist_libffi_la_SOURCES += src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400207endif
208if SH
Anthony Greenf88118b2013-07-02 15:51:27 -0400209nodist_libffi_la_SOURCES += src/sh/sysv.S src/sh/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400210endif
211if SH64
Anthony Greenf88118b2013-07-02 15:51:27 -0400212nodist_libffi_la_SOURCES += src/sh64/sysv.S src/sh64/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400213endif
214if PA_LINUX
Anthony Greenf88118b2013-07-02 15:51:27 -0400215nodist_libffi_la_SOURCES += src/pa/linux.S src/pa/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400216endif
217if PA_HPUX
Anthony Greenf88118b2013-07-02 15:51:27 -0400218nodist_libffi_la_SOURCES += src/pa/hpux32.S src/pa/ffi.c
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400219endif
Anthony Green9c00a3f2012-10-12 16:46:06 -0400220if TILE
Anthony Greenf88118b2013-07-02 15:51:27 -0400221nodist_libffi_la_SOURCES += src/tile/tile.S src/tile/ffi.c
Anthony Green9c00a3f2012-10-12 16:46:06 -0400222endif
Anthony Green20cae322013-01-21 07:07:38 -0500223if XTENSA
Anthony Greenf88118b2013-07-02 15:51:27 -0400224nodist_libffi_la_SOURCES += src/xtensa/sysv.S src/xtensa/ffi.c
Anthony Green20cae322013-01-21 07:07:38 -0500225endif
Anthony Green2fb527a2013-03-16 07:46:38 -0400226if METAG
Anthony Greenf88118b2013-07-02 15:51:27 -0400227nodist_libffi_la_SOURCES += src/metag/sysv.S src/metag/ffi.c
Anthony Green2fb527a2013-03-16 07:46:38 -0400228endif
Anthony Greend2fcbcd2013-10-08 06:27:46 -0400229if VAX
230nodist_libffi_la_SOURCES += src/vax/elfbsd.S src/vax/ffi.c
231endif
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400232
233libffi_convenience_la_SOURCES = $(libffi_la_SOURCES)
234nodist_libffi_convenience_la_SOURCES = $(nodist_libffi_la_SOURCES)
235
Anthony Greenf308faf2013-02-11 14:25:13 -0500236LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/libtool-ldflags $(LDFLAGS))
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400237
Anthony Greena04e30b2014-02-28 17:20:59 -0500238AM_CFLAGS =
239if FFI_DEBUG
240# Build debug. Define FFI_DEBUG on the commandline so that, when building with
241# MSVC, it can link against the debug CRT.
242AM_CFLAGS += -DFFI_DEBUG
243endif
244
Reini Urban6d6f7112012-07-07 12:42:00 -0500245libffi_la_LDFLAGS = -no-undefined -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LTLDFLAGS) $(AM_LTLDFLAGS)
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400246
Anthony Green981c32e2013-01-02 07:34:03 -0500247AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
248AM_CCASFLAGS = $(AM_CPPFLAGS)
Anthony Greenc6dddbd2009-10-04 08:11:33 -0400249
Josh Triplett1c68c072014-03-16 06:11:58 -0700250dist-hook:
251 if [ -d $(top_srcdir)/.git ] ; then git -C $(top_srcdir) log --no-decorate ; else echo 'See git log for history.' ; fi > $(distdir)/ChangeLog