Changed the makefile system to autoconf/automake.
[cacao.git] / Makefile.pre-automake
1 ################################################################################
2 #                    Makefile for the JavaVM - compiler CACAO                  #
3 ################################################################################
4 #
5 # Copyright (c) 1997 A. Krall, R. Grafl, M. Gschwind, M. Probst
6 #
7 # See file COPYRIGHT for information on usage and disclaimer of warranties
8 #
9 # Authors: Reinhard Grafl      EMAIL: cacao@complang.tuwien.ac.at
10 #          Andreas  Krall      EMAIL: cacao@complang.tuwien.ac.at
11 #
12 # Last Change: $Id: Makefile.pre-automake 115 1999-01-20 01:52:45Z phil $
13 #
14 #
15 # ATTENTION: This version of the makefile only works with gmake.
16 #            This Makefile not only generates object files, but also additional
17 #            files needed during compilation:
18 #                nativetypes.hh
19 #                nativetables.hh
20 #            All object files and the *.hh can be deleted savely. They will be
21 #            generated automatically.
22 #
23 ################################################################################
24
25 VERSION_MAJOR = 0
26 VERSION_MINOR = 31
27 VERSION_POSTFIX = 
28
29 VERSION_STRING=$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_POSTFIX)
30
31 ##################### generation of the excutable ##############################
32
33 # Enabling/disabling thread support
34 # USE_THREADS = YES
35 USE_THREADS = NO
36
37 ifeq ($(USE_THREADS),YES)
38 THREAD_OBJ = threads/threads.a
39 THREAD_CFLAGS = -DUSE_THREADS -DEXTERNAL_OVERFLOW -DDONT_FREE_FIRST
40 else
41 THREAD_OBJ =
42 THREAD_CFLAGS =
43 endif
44
45 #CC = cc
46 #ARCHFLAGS = 
47 #CFLAGS = -g -mieee -Wall $(THREAD_CFLAGS) $(ARCHFLAGS)
48 #CFLAGS = -mieee -O3 -Wall $(THREAD_CFLAGS) $(ARCHFLAGS)
49 #LFLAGS = -lm
50
51 CC = cc
52 ARCHFLAGS = 
53 CFLAGS = -g -ieee $(THREAD_CFLAGS) $(ARCHFLAGS)
54 #CFLAGS = -O6 -g -pg -ieee $(THREAD_CFLAGS) $(ARCHFLAGS)
55 #CFLAGS = -O2 -g -ieee -fno-inline $(THREAD_CFLAGS) $(ARCHFLAGS)
56 #CFLAGS = -O6 -ieee $(THREAD_CFLAGS) $(ARCHFLAGS)
57 #CFLAGS = -O3 -ieee $(THREAD_CFLAGS) $(ARCHFLAGS)
58 LFLAGS = -lm
59
60 # IRIX 6.5 MIPSPro 7.2.1
61 #CC = cc
62 #ARCHFLAGS = -DDONT_MMAP
63 #CFLAGS = -g $(THREAD_CFLAGS) -DMAP_ANONYMOUS=0 -woff 1048,1110,1164,1515 $(ARCHFLAGS)
64 #CFLAGS = -O2 -OPT:Olimit=0 $(THREAD_CFLAGS) -DMAP_ANONYMOUS=0 $(ARCHFLAGS)
65 #LFLAGS = -lm -lelfutil
66
67 OBJ = main.o tables.o loader.o compiler.o jit.o builtin.o asmpart.o \
68         toolbox/toolbox.a native.o $(THREAD_OBJ) mm/mm.o
69 OBJH = headers.o tables.o loader.o builtin.o toolbox/toolbox.a $(THREAD_OBJ) \
70 mm/mm.o
71
72 cacao: $(OBJ)
73         $(CC) $(CFLAGS) -o cacao $(OBJ) $(LFLAGS)
74 cacaoh: $(OBJH)
75         $(CC) $(CFLAGS) -o cacaoh $(OBJH) $(LFLAGS)
76
77 main.o: main.c global.h tables.h loader.h jit.h compiler.h \
78         asmpart.h builtin.h native.h
79
80 headers.o:  headers.c global.h tables.h loader.h
81
82 loader.o:   loader.c global.h loader.h tables.h native.h asmpart.h
83
84 compiler.o: builtin.h compiler.h global.h loader.h tables.h native.h \
85             asmpart.h compiler.c comp/*.c sysdep/gen.c sysdep/disass.c
86
87 jit.o:  builtin.h jit.h global.h loader.h tables.h native.h asmpart.h \
88             jit/jitdef.h jit/*.c sysdep/ngen.h sysdep/ngen.c sysdep/disass.c
89
90 builtin.o: builtin.c global.h loader.h builtin.h tables.h sysdep/native-math.h
91
92 native.o: native.c global.h tables.h native.h asmpart.h builtin.h \
93           nativetypes.hh nativetable.hh nat/*.c
94
95 tables.o: tables.c global.h tables.h
96
97 global.h: sysdep/types.h toolbox/*.h
98         touch global.h
99
100 toolbox/toolbox.a: toolbox/*.c toolbox/*.h
101         cd toolbox; $(MAKE) toolbox.a "CFLAGS=$(CFLAGS)" "CC=$(CC)" 
102
103 ifeq ($(USE_THREADS),YES)
104 threads/threads.a: threads/*.c threads/*.h sysdep/threads.h
105         cd threads; $(MAKE) threads.a "USE_THREADS=$(USE_THREADS)" "CFLAGS=$(CFLAGS)" "CC=$(CC)" 
106 endif
107
108 mm/mm.o: mm/*.[ch] mm/Makefile
109         cd mm; $(MAKE) mm.o "USE_THREADS=$(USE_THREADS)" "CFLAGS=$(CFLAGS)" "CC=$(CC)"
110
111 asmpart.o: sysdep/asmpart.c sysdep/offsets.h
112         rm -f asmpart.s
113         $(CC) -E sysdep/asmpart.c > asmpart.s
114         $(CC) -c -o asmpart.o asmpart.s
115         rm -f asmpart.s
116
117
118 ########################### support targets ####################################
119
120 clean:
121         rm -f *.o cacao cacaoh cacao.tgz nativetable.hh nativetypes.hh \
122               core tst/core
123         cd toolbox; $(MAKE) clean
124         cd threads; $(MAKE) clean
125         cd mm; $(MAKE) clean
126
127
128 ### DISTRIBUTION TARGETS ###
129
130 DISTRIBUTION_FILES = \
131 Makefile \
132 */Makefile \
133 README \
134 COPYRIGHT \
135 tst/*.java \
136 doc/*.doc \
137 html/*.html \
138 *.[ch] \
139 comp/*.[ch] \
140 jit/*.[ch] \
141 alpha/*.doc \
142 alpha/*.[ch] \
143 nat/*.[ch] \
144 toolbox/*.[ch] \
145 threads/*.[ch] \
146 mm/*.[ch] \
147 # sparc/*.[ch]
148
149 tar:
150         rm -f cacao.tgz cacao.tar
151         tar -cvf cacao.tar $(DISTRIBUTION_FILES)
152         ls -l cacao.tar
153         gzip -9 cacao.tar
154         mv cacao.tar.gz cacao.tgz
155         ls -l cacao.tgz
156
157 dist:
158         rm -rf cacao-$(VERSION_STRING).tar.gz cacao-$(VERSION_STRING);
159         ( mkdir cacao-$(VERSION_STRING); \
160           tar -cvf cacao-$(VERSION_STRING).tar $(DISTRIBUTION_FILES); \
161           cd cacao-$(VERSION_STRING); \
162           tar -xf ../cacao-$(VERSION_STRING).tar; \
163           cd ..; \
164           rm cacao-$(VERSION_STRING).tar; \
165           tar -cvf cacao-$(VERSION_STRING).tar cacao-$(VERSION_STRING); \
166           rm -rf cacao-$(VERSION_STRING); )
167         gzip -9 cacao-$(VERSION_STRING).tar
168         ls -l cacao-$(VERSION_STRING).tar.gz
169
170 ########################## supported architectures #############################
171
172 config-alpha:
173         rm -f sysdep
174         ln -s alpha sysdep
175         rm -f threads/sysdep
176         ln -s ../sysdep threads/sysdep
177         $(MAKE) clean
178
179 config-sparc:
180         rm -f sysdep
181         ln -s sparc sysdep
182         rm -f threads/sysdep
183         ln -s ../sysdep threads/sysdep
184         $(MAKE) clean
185
186 config-mips:
187         rm -f sysdep
188         ln -s mips sysdep
189         rm -f threads/sysdep
190         ln -s ../sysdep threads/sysdep
191         $(MAKE) clean
192
193
194 ##################### generation of NATIVE - header files ######################
195
196 sysdep/offsets.h nativetypes.hh nativetable.hh : cacaoh
197         ./cacaoh java.lang.Object \
198        java.lang.String \
199        java.lang.Class \
200        java.lang.ClassLoader \
201        java.lang.Compiler \
202        java.lang.Double \
203        java.lang.Float \
204        java.lang.Math \
205        java.lang.Runtime \
206        java.lang.SecurityManager \
207        java.lang.System \
208        java.lang.Thread \
209        java.lang.ThreadGroup \
210        java.lang.Throwable \
211 \
212        java.io.File \
213        java.io.FileDescriptor \
214        java.io.FileInputStream \
215        java.io.FileOutputStream \
216        java.io.PrintStream \
217        java.io.RandomAccessFile \
218 \
219        java.util.Properties \
220        java.util.Date