First try to get a bootstrap-like build process.
[cacao.git] / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 # $Id: Makefile.am 1541 2004-11-18 12:17:56Z twisti $
4
5 @SET_MAKE@
6
7 MAINTAINERCLEANFILES = Makefile.in configure
8 ALLSUBDIRS = mm toolbox threads jit nat tst doc jvmtst classpath
9 SUBDIRS = $(ALLSUBDIRS)
10 DIST_SUBDIRS = $(ALLSUBDIRS)
11
12 EXTRA_DIST = \
13         html/cacaoinstall.html \
14         html/cacaoman.html \
15         html/index.html \
16         main.h \
17         natcalls.h \
18         nativecalls.h
19
20 CLEANFILES = \
21         nativetable.inc
22
23 bin_PROGRAMS = cacao cacaoh
24 noinst_PROGRAMS = gennativetable genoffsets
25
26 INCLUDES = -I$(top_srcdir)/jit/@ARCH_DIR@
27
28 BOEHM_LIBS = mm/libboehm.a mm/boehm-gc/.libs/libgc.a
29
30 cacao_SOURCES = \
31         builtin.c \
32         exceptions.c \
33         jni.c \
34         loader.c \
35         main.c \
36         native.c \
37         options.c \
38         statistics.c \
39         tables.c \
40         typeinfo.c \
41         unzip.c
42
43 cacao_LDADD = \
44         jit/libjit.a \
45         jit/loop/libloop.a \
46         jit/@ARCH_DIR@/libarch.a \
47         nat/libnat.a \
48         $(BOEHM_LIBS) \
49         @THREAD_OBJ@ \
50         toolbox/libtoolbox.a \
51         @STATIC_CLASSPATH_LIBS@ \
52         @DYNAMIC_CLASSPATH_LIBS@ \
53         @AWT_OBJS@ \
54         @ZIP_LIBS@ \
55         @THREAD_LIB@
56
57
58 cacao_DEPENDENCIES = \
59         jit/libjit.a \
60         jit/loop/libloop.a \
61         jit/@ARCH_DIR@/libarch.a \
62         nat/libnat.a \
63         $(BOEHM_LIBS) \
64         @THREAD_OBJ@ \
65         toolbox/libtoolbox.a \
66         @STATIC_CLASSPATH_LIBS@ \
67         nativetable.inc \
68         @AWT_OBJS@
69
70 cacaoh_SOURCES = \
71         builtin.c \
72         cacaoh.c \
73         exceptions.c \
74         headers.c \
75         loader.c \
76         options.c \
77         statistics.c \
78         tables.c \
79         unzip.c
80
81 cacaoh_LDADD = \
82         $(BOEHM_LIBS) \
83         classpath/native/jni/java-lang/.libs/libjavalang.a \
84         @THREAD_OBJ@ \
85         @ZIP_LIBS@ \
86         toolbox/libtoolbox.a \
87         @THREAD_LIB@
88
89 cacaoh_DEPENDENCIES = \
90         $(BOEHM_LIBS) \
91         classpath/native/jni/java-lang/.libs/libjavalang.a \
92         @THREAD_OBJ@ \
93         toolbox/libtoolbox.a
94
95 gennativetable_SOURCES = \
96         builtin.c \
97         exceptions.c \
98         gennativetable.c \
99         headers.c \
100         loader.c \
101         options.c \
102         tables.c \
103         statistics.c \
104         unzip.c
105
106 gennativetable_LDADD = \
107         $(BOEHM_LIBS) \
108         classpath/native/jni/java-lang/.libs/libjavalang.a \
109         @THREAD_OBJ@ \
110         @ZIP_LIBS@ \
111         toolbox/libtoolbox.a \
112         @THREAD_LIB@
113
114 gennativetable_DEPENDENCIES = \
115         $(BOEHM_LIBS) \
116         classpath/native/jni/java-lang/.libs/libjavalang.a \
117         @THREAD_OBJ@ \
118         @ZIP_LIBS@ \
119         toolbox/libtoolbox.a \
120         @THREAD_LIB@
121
122 all: cacaoh natheaders genoffsets gennativetable cacao
123
124 mm/libboehm.a:
125         make -C mm
126
127 classpath/native/jni/java-lang/.libs/libjavalang.a:
128         make -C classpath/native/
129
130 threads/libthreads.a:
131         make -C threads
132
133 toolbox/libtoolbox.a:
134         make -C toolbox
135
136 jit/libjit.a:
137         make -C jit
138
139 nat/libnat.a:
140         make -C nat
141
142 natheaders: cacaoh
143         CLASSPATH=$(top_srcdir)/classpath/lib/bootstrap.zip \
144         ./cacaoh -d nat/ \
145         $(CLASSES)
146
147 nativetable.inc: gennativetable nat/implementednatives.data
148         CLASSPATH=$(top_srcdir)/classpath/lib/bootstrap.zip \
149         $(top_srcdir)/gennativetable \
150         $(CLASSES) \
151         > nativetable.inc
152
153 nat/implementednatives.data:
154         make -C nat implementednatives
155
156 native.c: nativetable.inc
157
158 CLASSES= \
159         java.lang.Cloneable \
160         java.lang.reflect.Field \
161         java.lang.SecurityManager \
162         java.net.DatagramPacket \
163         java.net.InetAddress \
164         java.net.SocketImpl \
165         java.util.Properties \
166         \
167         gnu.classpath.Configuration \
168         gnu.classpath.RawData \
169         gnu.java.lang.reflect.TypeSignature \
170         gnu.java.math.MPN \
171         gnu.java.net.PlainDatagramSocketImpl \
172         gnu.java.net.PlainSocketImpl \
173         gnu.java.nio.FileLockImpl \
174         gnu.java.nio.SelectorImpl \
175         gnu.java.nio.channels.FileChannelImpl \
176         gnu.java.security.x509.X509Certificate  \
177         java.beans.PropertyEditor \
178         java.io.DataInput \
179         java.io.DataInputStream \
180         java.io.File \
181         java.io.FileDescriptor \
182         java.io.FileInputStream \
183         java.io.FileWriter \
184         java.io.ObjectInputStream \
185         java.io.OutputStream \
186         java.io.OutputStreamWriter \
187         java.io.PrintStream \
188         java.io.PrintWriter \
189         java.io.RandomAccessFile \
190         java.io.VMFile \
191         java.io.VMObjectStreamClass \
192         java.io.Writer \
193         java.lang.Boolean \
194         java.lang.Byte \
195         java.lang.Character \
196         java.lang.Class \
197         java.lang.Compiler \
198         java.lang.Double \
199         java.lang.Float \
200         java.lang.Integer \
201         java.lang.JOWENNTest1 \
202         java.lang.Long \
203         java.lang.Math \
204         java.lang.Process \
205         java.lang.Runtime \
206         java.lang.RuntimePermission \
207         java.lang.Short \
208         java.lang.StackTraceElement \
209         java.lang.StrictMath \
210         java.lang.StringBuffer \
211         java.lang.System \
212         java.lang.UnsatisfiedLinkError \
213         java.lang.VMClass \
214         java.lang.VMClassLoader \
215         java.lang.VMDouble \
216         java.lang.VMFloat \
217         java.lang.VMRuntime \
218         java.lang.VMSecurityManager \
219         java.lang.VMString \
220         java.lang.VMSystem \
221         java.lang.VMThrowable \
222         java.lang.reflect.Array \
223         java.lang.reflect.Constructor \
224         java.lang.reflect.Method \
225         java.lang.reflect.Modifier \
226         java.lang.reflect.Proxy \
227         java.net.DatagramSocketImpl \
228         java.net.NetworkInterface \
229         java.nio.ByteOrder \
230         java.nio.CharBufferImpl \
231         java.nio.DirectByteBufferImpl \
232         java.nio.DoubleBufferImpl \
233         java.nio.FloatBufferImpl \
234         java.nio.IntBufferImpl \
235         java.nio.LongBufferImpl \
236         java.nio.ShortBufferImpl \
237         java.security.AccessController \
238         java.security.ProtectionDomain \
239         java.security.cert.Certificate \
240         java.security.cert.X509Certificate \
241         java.sql.Connection \
242         java.text.Collator \
243         java.util.Hashtable \
244         java.util.Locale \
245         java.util.TimeZone \
246         java.util.VMTimeZone \
247         java.util.zip.Deflater \
248         java.util.zip.Inflater \
249         javax.swing.Popup \
250         javax.swing.UIManager \
251         @AWTPEERS@
252
253 XCLASSES = \
254         java.lang.ClassLoader \
255         java.lang.Cloneable \
256         java.lang.Object \
257         java.lang.String \
258         java.lang.ThreadGroup \
259         java.lang.Throwable \
260         java.lang.VMObject \
261         java.lang.VMThread
262
263 checkjvm:
264         $(MAKE) -C jvmtst $@
265
266
267 ## Local variables:
268 ## mode: Makefile
269 ## indent-tabs-mode: t
270 ## c-basic-offset: 4
271 ## tab-width: 8
272 ## compile-command: "automake --add-missing"
273 ## End: