]>
Commit | Line | Data |
---|---|---|
ee9dd372 TT |
1 | ## Process this file with automake to produce Makefile.in. |
2 | ||
3 | AUTOMAKE_OPTIONS = foreign no-installinfo | |
4 | ||
5 | if TESTSUBDIR | |
6 | SUBDIRS = testsuite | |
7 | endif | |
8 | ||
9 | ## ################################################################ | |
10 | ||
11 | ## | |
12 | ## What gets installed, and where. | |
13 | ## | |
14 | ||
15 | toolexecdir = $(exec_prefix)/$(target_alias) | |
16 | toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR) | |
17 | ||
a3ffcff3 | 18 | toolexeclib_LTLIBRARIES = libgcj.la |
ee9dd372 TT |
19 | data_DATA = libgcj.zip |
20 | ||
21 | ## For now, only on native systems. | |
22 | if NATIVE | |
23 | bin_PROGRAMS = jv-convert | |
24 | endif | |
25 | ||
26 | ## ################################################################ | |
27 | ||
28 | ## | |
29 | ## Compilers and compilation flags. | |
30 | ## | |
31 | ||
32 | ## CANADIAN is a misnomer. Really we check to see if we must pick up | |
33 | ## the tools from the path. | |
34 | if CANADIAN | |
35 | if NULL_TARGET | |
36 | ## In this case, gcj is found outside the build tree. However, zip is | |
37 | ## found in the build tree. | |
38 | GCJ = gcj | |
39 | ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT) | |
40 | else | |
41 | GCJ = $(target_alias)-gcj | |
42 | ZIP = zip | |
43 | endif | |
44 | GCJH = gcjh | |
45 | else # CANADIAN | |
46 | ## JAVAC is set to `$(GCJ) -C'. However, JAVAC is run from the srcdir | |
47 | ## (due to problems running it in builddir). In this case the obvious | |
48 | ## definition of GCJ won't work; instead we resort to this ugly | |
49 | ## definition that gives us absolute paths. | |
50 | expanded = `cd $(MULTIBUILDTOP)../$(COMPPATH)/gcc && pwd` | |
51 | GCJ = $(expanded)/gcj$(EXEEXT) -B$(expanded)/ | |
52 | GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) | |
53 | ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT) | |
54 | endif # CANADIAN | |
55 | ||
a3ffcff3 TT |
56 | GCJCOMPILE = CLASSPATH=$(here) $(LIBTOOL) --mode=compile $(GCJ) -fassume-compiled $(JC1FLAGS) -c |
57 | ||
ee9dd372 TT |
58 | JAVAC = $(GCJ) -C |
59 | ||
60 | EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@ | |
61 | ||
62 | WARNINGS = -W -Wall | |
63 | AM_CXXFLAGS = -fno-rtti -fvtable-thunks @LIBGCJ_CXXFLAGS@ $(WARNINGS) | |
64 | if USING_GCC | |
65 | AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS) | |
66 | else | |
67 | AM_CFLAGS = @LIBGCJ_CFLAGS@ | |
68 | endif | |
69 | ||
70 | JCFLAGS = -g | |
71 | JC1FLAGS = -g @LIBGCJ_JAVAFLAGS@ | |
72 | ||
73 | INCLUDES = -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) $(EH_COMMON_INCLUDE) | |
74 | ||
75 | ||
76 | ## ################################################################ | |
77 | ||
78 | ## | |
79 | ## How to build libgcj.a and libgcj.zip | |
80 | ## | |
81 | ||
82 | ## Objects from C++ sources in subdirs. | |
a3ffcff3 | 83 | nat_files = $(nat_source_files:.cc=.lo) |
ee9dd372 | 84 | ## Objects from C sources in subdirs. |
a3ffcff3 | 85 | c_files = $(c_source_files:.c=.lo) |
ee9dd372 | 86 | ## Objects from Java sources in subdirs. |
a3ffcff3 | 87 | javao_files = $(java_source_files:.java=.lo) |
ee9dd372 | 88 | |
a3ffcff3 TT |
89 | libgcj_la_SOURCES = prims.cc jni.cc exception.cc |
90 | EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ | |
ee9dd372 | 91 | $(c_source_files) $(java_source_files) |
a3ffcff3 | 92 | libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \ |
ee9dd372 | 93 | $(c_files) $(GCOBJS) $(THREADOBJS) |
a3ffcff3 | 94 | libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \ |
ee9dd372 | 95 | $(THREADOBJS) |
a06fcbd4 TT |
96 | libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) \ |
97 | ## The mysterious backslash is consumed by make. | |
98 | -version-info `grep -v '^\#' $(srcdir)/libtool-version` | |
ee9dd372 TT |
99 | |
100 | ## Make the .class files depend on the .zip file. This seems | |
101 | ## backwards, but is right. This doesn't catch all the .class files, | |
102 | ## but that is ok, because the ones it fails to pick up are defined in | |
103 | ## a .java file with some other class which is caught. Note that we | |
104 | ## only want to create headers for those files which do not have | |
105 | ## hand-maintained headers. | |
106 | $(java_source_files:.java=.class): libgcj.zip | |
107 | ||
108 | ## We have the zip file depend on the java sources and not the class | |
109 | ## files, because we don't know the names of all the class files. | |
110 | ## FIXME: this method fails in a peculiar case: if libgcj.zip is | |
111 | ## up-to-date, and foo.class is removed, and bar.java is touched, then | |
112 | ## `make libgcj.zip' will not rebuilt foo.class. That's because | |
113 | ## libgcj.zip is not out-of-date with respect to foo.java. | |
114 | libgcj.zip: $(java_source_files) | |
115 | ## This little nastiness is here so that the backquoted stuff in the | |
116 | ## GCJ definition can be correctly expanded, if required. | |
117 | javac="$(JAVAC)"; cd $(srcdir); \ | |
118 | $$javac $(JCFLAGS) -classpath $(here):`/bin/pwd` -d $(here) \ | |
119 | $(subst $(srcdir)/,,$?) | |
120 | -@rm -f libgcj.zip | |
121 | ## Note that we explicitly want to include directory information. | |
b6d37991 | 122 | $(ZIP) -r libgcj java gnu -n .class -i '*.class' -i '*/' |
ee9dd372 TT |
123 | |
124 | MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files) | |
9096b279 TT |
125 | CLEANFILES = libgcj.zip |
126 | ||
127 | clean-local: | |
128 | ## We just remove every .class file that was created. | |
129 | find . -name '*.class' -print | xargs rm -f | |
ee9dd372 TT |
130 | |
131 | SUFFIXES = .class .java .h | |
132 | ||
a3ffcff3 TT |
133 | .class.lo: |
134 | $(GCJCOMPILE) -o $@ $< | |
ee9dd372 | 135 | |
a3ffcff3 TT |
136 | .java.lo: |
137 | $(GCJCOMPILE) -o $@ $< | |
ee9dd372 TT |
138 | |
139 | ## This is GNU make specific. For the .o files in subdirs, use a | |
140 | ## special rule. The standard automake rule can't be overridden (this | |
141 | ## is a bug in automake), and it also won't put the .o files into | |
142 | ## subdirs. FIXME. | |
a3ffcff3 TT |
143 | $(nat_files): %.lo: %.cc |
144 | $(LTCXXCOMPILE) -c -o $@ $< | |
ee9dd372 | 145 | |
a3ffcff3 | 146 | $(nat_files) $(GCOBJS) $(THREADOBJS) $(libgcj_la_OBJECTS): \ |
a4e44caa | 147 | include/config.h include/java-signal.h $(nat_headers) |
ee9dd372 TT |
148 | |
149 | ## FIXME: GNU make. | |
a3ffcff3 TT |
150 | $(c_files): %.lo: %.c |
151 | $(LTCOMPILE) -c -o $@ $< | |
ee9dd372 TT |
152 | |
153 | $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h | |
154 | ||
155 | ## FIXME: GNU make. | |
a3ffcff3 TT |
156 | $(javao_files): %.lo: %.java |
157 | $(GCJCOMPILE) -o $@ $< | |
ee9dd372 TT |
158 | |
159 | ## ################################################################ | |
160 | ||
161 | ## | |
162 | ## How to build header files. | |
163 | ## | |
164 | ||
165 | .class.h: | |
166 | ## FIXME: GNU make specific. | |
167 | $(GCJH) -classpath $(top_builddir) $(basename $<) | |
168 | ||
169 | ## Header files used when compiling some of the nat* files. | |
170 | nat_headers = $(ordinary_java_source_files:.java=.h) | |
171 | ||
172 | $(nat_headers): libgcj.zip | |
173 | ||
174 | ## Our internal main program needs to be able to create a FirstThread. | |
175 | FTFRIEND = void JvRunMain (jclass klass, int argc, const char **argv) | |
176 | java/lang/FirstThread.h: java/lang/FirstThread.class libgcj.zip | |
177 | $(GCJH) -classpath $(top_builddir) -friend '$(FTFRIEND);' \ | |
178 | $(basename $<) | |
179 | ||
180 | ## ThreadGroup has a special constructor that is used when creating | |
181 | ## the first ThreadGroup. We need to expose this to the main program. | |
182 | TGFRIEND = void JvRunMain (jclass klass, int argc, const char **argv) | |
183 | java/lang/ThreadGroup.h: java/lang/ThreadGroup.class libgcj.zip | |
184 | $(GCJH) -classpath $(top_builddir) -friend '$(TGFRIEND);' \ | |
185 | $(basename $<) | |
186 | ||
187 | java/lang/String.h: java/lang/String.class libgcj.zip | |
188 | $(GCJH) -classpath $(top_builddir) \ | |
189 | -friend 'jchar* _Jv_GetStringChars (jstring str);' \ | |
190 | -friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \ | |
191 | -friend 'jstring* _Jv_StringGetSlot (jstring);' \ | |
192 | -friend 'jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);' \ | |
193 | -friend 'jstring _Jv_NewStringLatin1 (const char*, jsize);' \ | |
194 | -friend 'jstring _Jv_AllocString (jsize);' \ | |
195 | $(basename $<) | |
196 | ||
197 | java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.zip | |
198 | $(GCJH) -classpath $(top_builddir) \ | |
199 | -friend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \ | |
200 | -friend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID);' \ | |
201 | -friend 'java::lang::Class;' \ | |
202 | $(basename $<) | |
203 | ||
204 | java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.zip | |
205 | $(GCJH) -classpath $(top_builddir) \ | |
206 | -friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \ | |
207 | -friend 'java::lang::Class;' \ | |
208 | $(basename $<) | |
209 | ||
210 | ||
211 | ## ################################################################ | |
212 | ||
213 | ## | |
214 | ## Additional `check' targets for maintainer convenience. | |
215 | ## | |
216 | ||
217 | ## This is used for maintainer-check. FIXME: should set from | |
218 | ## configure using AC_CHECK_TOOL. | |
219 | NM = nm | |
220 | ||
221 | ## Try to make sure our library doesn't stomp the namespace. | |
a3ffcff3 TT |
222 | maintainer-check: libgcj.la |
223 | $(NM) .libs/libgcj.a | grep ' T ' \ | |
ee9dd372 TT |
224 | ## Anything with `4java' is assumed to be from .java source. |
225 | | grep -v '4java' \ | |
226 | ## Anything with Jv is ok. | |
227 | | grep -v 'Jv' \ | |
228 | ## `terminate' and `unexpected' are part of the runtime. | |
229 | | grep -v 'terminate__Fv' | grep -v 'unexpected__Fv' | |
230 | ||
231 | ## This rule can be used to see if the headers are more or less | |
232 | ## correct. | |
233 | header-check: libgcj.zip $(nat_headers) | |
234 | rm -f htest.cc; \ | |
235 | for h in $(nat_headers); do \ | |
236 | echo "#include \"$$h\"" >> htest.cc; \ | |
237 | done; \ | |
238 | $(CXXCOMPILE) -fsyntax-only htest.cc | |
239 | ||
240 | ||
241 | ## ################################################################ | |
242 | ||
243 | ## | |
244 | ## The `jv-convert' program and code to rebuild the converter header | |
245 | ## files. | |
246 | ## | |
247 | ||
248 | ## it only makes sense to try to rebuild the JIS .h files on native | |
249 | ## systems. | |
250 | if NATIVE | |
251 | if MAINTAINER_MODE | |
252 | noinst_PROGRAMS = gen-from-JIS | |
253 | endif | |
254 | endif | |
255 | ||
256 | CONVERT_DIR = gnu/gcj/convert | |
257 | ||
258 | jv_convert_SOURCES = | |
259 | EXTRA_jv_convert_SOURCES = $(convert_source_files) | |
d5d9a8b6 TT |
260 | ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We |
261 | ## need this because we are explicitly using libtool to link using the | |
262 | ## `.la' file. | |
263 | jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert -nodefaultlibs \ | |
264 | -rpath $(toolexeclibdir) | |
265 | jv_convert_LINK = $(LIBTOOL) --mode=link $(GCJ) $(JC1FLAGS) $(LDFLAGS) \ | |
266 | -o jv-convert | |
a3ffcff3 | 267 | jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \ |
d8f8e9ba | 268 | $(GCLIBS) $(THREADLIBS) -lm -lgcc -lc -lgcc |
a3ffcff3 TT |
269 | jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \ |
270 | $(GCDEPS) $(THREADDEPS) libgcj.la | |
ee9dd372 | 271 | |
714091c6 PB |
272 | # The Unicode consortium does not permit re-distributing the file JIS0201.TXT. |
273 | # You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/. | |
274 | ||
275 | $(srcdir)/$(CONVERT_DIR)/JIS0201.h: # $(CONVERT_DIR)/JIS0201.TXT | |
276 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0201; \ | |
277 | tr -d '\r' <$(CONVERT_DIR)/JIS0201.TXT \ | |
278 | | sed -n -e 's|\(0x..\).*\(0x....\).*#\(.*\)$$|MAP(0x00, \1, \2) /*\3 */|p' \ | |
279 | >> tmp-0201; \ | |
280 | mv tmp-0201 $(srcdir)/$(CONVERT_DIR)/JIS0201.h | |
281 | ||
ee9dd372 TT |
282 | # The Unicode consortium does not permit re-distributing the file JIS0208.TXT. |
283 | # You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/. | |
284 | ||
714091c6 PB |
285 | $(srcdir)/$(CONVERT_DIR)/JIS0208.h: # $(CONVERT_DIR)/JIS0208.TXT |
286 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0208; \ | |
287 | tr -d '\r' <$(CONVERT_DIR)/JIS0208.TXT \ | |
288 | | sed -n -e 's|\(0x....\).*0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\2, 0x\3, \4) /*\5 */|p' \ | |
289 | >> tmp-0208; \ | |
ee9dd372 TT |
290 | mv tmp-0208 $(srcdir)/$(CONVERT_DIR)/JIS0208.h |
291 | ||
292 | # The Unicode consortium does not permit re-distributing the file JIS0212.TXT. | |
293 | # You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/. | |
294 | ||
714091c6 PB |
295 | $(srcdir)/$(CONVERT_DIR)/JIS0212.h: # $(CONVERT_DIR)/JIS0212.TXT |
296 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0212; \ | |
297 | tr -d '\r' <$(CONVERT_DIR)/JIS0212.TXT \ | |
298 | | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \ | |
299 | >> tmp-0212; \ | |
ee9dd372 TT |
300 | mv tmp-0212 $(srcdir)/$(CONVERT_DIR)/JIS0212.h |
301 | ||
302 | ||
303 | gen_from_JIS_SOURCES = | |
304 | EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \ | |
714091c6 PB |
305 | $(srcdir)/$(CONVERT_DIR)/make-trie.c \ |
306 | $(srcdir)/$(CONVERT_DIR)/JIS0201.h \ | |
ee9dd372 TT |
307 | $(srcdir)/$(CONVERT_DIR)/JIS0208.h \ |
308 | $(srcdir)/$(CONVERT_DIR)/JIS0212.h | |
714091c6 PB |
309 | gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o |
310 | gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o \ | |
311 | $(CONVERT_DIR)/make-trie.o | |
ee9dd372 TT |
312 | |
313 | $(CONVERT_DIR)/gen-from-JIS.o: $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \ | |
714091c6 | 314 | $(srcdir)/$(CONVERT_DIR)/JIS0201.h \ |
ee9dd372 TT |
315 | $(srcdir)/$(CONVERT_DIR)/JIS0208.h \ |
316 | $(srcdir)/$(CONVERT_DIR)/JIS0212.h | |
317 | $(COMPILE) -c -o $(CONVERT_DIR)/gen-from-JIS.o \ | |
318 | $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c | |
319 | ||
714091c6 PB |
320 | $(CONVERT_DIR)/make-trie.o: $(srcdir)/$(CONVERT_DIR)/make-trie.c |
321 | $(COMPILE) -c -o $(CONVERT_DIR)/make-trie.o \ | |
322 | $(srcdir)/$(CONVERT_DIR)/make-trie.c | |
323 | ||
ee9dd372 TT |
324 | if NATIVE |
325 | if MAINTAINER_MODE | |
326 | ||
327 | $(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc: ./gen-from-JIS$(EXEEXT) | |
328 | ./gen-from-JIS JIS0208>$(srcdir)/$(CONVERT_DIR)/JIS0208_to_Unicode.cc | |
329 | ||
330 | $(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc: ./gen-from-JIS$(EXEEXT) | |
331 | ./gen-from-JIS JIS0212>$(srcdir)/$(CONVERT_DIR)/JIS0212_to_Unicode.cc | |
332 | ||
714091c6 PB |
333 | $(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc: ./gen-from-JIS$(EXEEXT) |
334 | ./gen-from-JIS toJIS>$(srcdir)/$(CONVERT_DIR)/Unicode_to_JIS.cc | |
335 | ||
ee9dd372 TT |
336 | endif # MAINTAINER_MODE |
337 | endif # NATIVE | |
338 | ||
339 | ||
340 | ## ################################################################ | |
341 | ||
342 | ## | |
343 | ## This section lists all the source files we care about. | |
344 | ## | |
345 | ||
346 | convert_source_files = \ | |
347 | gnu/gcj/convert/BytesToUnicode.java \ | |
348 | gnu/gcj/convert/Convert.java \ | |
349 | gnu/gcj/convert/Input_8859_1.java \ | |
350 | gnu/gcj/convert/Input_EUCJIS.java \ | |
714091c6 PB |
351 | gnu/gcj/convert/Input_JavaSrc.java \ |
352 | gnu/gcj/convert/Input_SJIS.java \ | |
ee9dd372 TT |
353 | gnu/gcj/convert/Input_UTF8.java \ |
354 | gnu/gcj/convert/Output_8859_1.java \ | |
714091c6 | 355 | gnu/gcj/convert/Output_EUCJIS.java \ |
ee9dd372 | 356 | gnu/gcj/convert/Output_JavaSrc.java \ |
714091c6 | 357 | gnu/gcj/convert/Output_SJIS.java \ |
ee9dd372 TT |
358 | gnu/gcj/convert/Output_UTF8.java \ |
359 | gnu/gcj/convert/UnicodeToBytes.java | |
360 | ||
361 | ## List of all .java files for which the .h file is maintained by | |
362 | ## hand. | |
363 | special_java_source_files = java/lang/Class.java java/lang/Object.java | |
364 | ||
775de547 PB |
365 | awt_java_source_files = \ |
366 | java/awt/AWTEvent.java \ | |
367 | java/awt/BorderLayout.java \ | |
368 | java/awt/Component.java \ | |
369 | java/awt/Container.java \ | |
370 | java/awt/Dimension.java \ | |
371 | java/awt/Event.java \ | |
372 | java/awt/Font.java \ | |
373 | java/awt/Frame.java \ | |
374 | java/awt/LayoutManager.java \ | |
375 | java/awt/LayoutManager2.java \ | |
376 | java/awt/Menu.java \ | |
377 | java/awt/MenuBar.java \ | |
378 | java/awt/MenuItem.java \ | |
379 | java/awt/MenuComponent.java \ | |
380 | java/awt/MenuContainer.java \ | |
381 | java/awt/Point.java \ | |
382 | java/awt/Rectangle.java \ | |
383 | java/awt/Shape.java \ | |
384 | java/awt/TextArea.java \ | |
385 | java/awt/TextComponent.java \ | |
386 | java/awt/Toolkit.java \ | |
387 | java/awt/Window.java \ | |
388 | java/awt/event/ActionEvent.java \ | |
389 | java/awt/event/ActionListener.java \ | |
390 | java/awt/event/ComponentEvent.java \ | |
391 | java/awt/event/InputEvent.java \ | |
392 | java/awt/event/KeyEvent.java \ | |
393 | java/awt/event/KeyListener.java \ | |
394 | java/awt/event/TextEvent.java \ | |
395 | java/awt/event/TextListener.java \ | |
396 | java/awt/event/WindowAdapter.java \ | |
397 | java/awt/event/WindowEvent.java \ | |
398 | java/awt/event/WindowListener.java \ | |
399 | java/awt/geom/Point2D.java \ | |
400 | java/awt/geom/Dimension2D.java \ | |
401 | java/awt/peer/ComponentPeer.java \ | |
402 | java/awt/peer/ContainerPeer.java \ | |
403 | java/awt/peer/FramePeer.java \ | |
404 | java/awt/peer/WindowPeer.java | |
405 | ||
406 | # $(awt_java_source_files) | |
407 | ||
ee9dd372 TT |
408 | ## List of all .java files to be compiled. Please keep this list |
409 | ## alphabetical. Please put files from gnu/gcj/convert into | |
410 | ## convert_source_files. If the .java file has a hand-maintained | |
411 | ## header, please list it in special_java_source_files. | |
412 | ordinary_java_source_files = $(convert_source_files) \ | |
413 | gnu/gcj/text/BaseBreakIterator.java \ | |
414 | gnu/gcj/text/CharacterBreakIterator.java \ | |
415 | gnu/gcj/text/LineBreakIterator.java \ | |
416 | gnu/gcj/text/LocaleData_en.java \ | |
417 | gnu/gcj/text/LocaleData_en_US.java \ | |
418 | gnu/gcj/text/SentenceBreakIterator.java \ | |
419 | gnu/gcj/text/WordBreakIterator.java \ | |
d825fa87 WL |
420 | gnu/gcj/protocol/file/Connection.java \ |
421 | gnu/gcj/protocol/file/Handler.java \ | |
ee9dd372 TT |
422 | gnu/gcj/protocol/http/Connection.java \ |
423 | gnu/gcj/protocol/http/Handler.java \ | |
775de547 | 424 | gnu/gcj/RawData.java \ |
e3884aee | 425 | gnu/gcj/util/EnumerationChain.java \ |
ee9dd372 TT |
426 | java/io/BufferedInputStream.java \ |
427 | java/io/BufferedOutputStream.java \ | |
428 | java/io/BufferedReader.java \ | |
429 | java/io/BufferedWriter.java \ | |
430 | java/io/ByteArrayInputStream.java \ | |
431 | java/io/ByteArrayOutputStream.java \ | |
432 | java/io/CharArrayReader.java \ | |
433 | java/io/CharArrayWriter.java \ | |
434 | java/io/CharConversionException.java \ | |
435 | java/io/DataInput.java \ | |
436 | java/io/DataInputStream.java \ | |
437 | java/io/DataOutput.java \ | |
438 | java/io/DataOutputStream.java \ | |
439 | java/io/EOFException.java \ | |
440 | java/io/File.java \ | |
441 | java/io/FileDescriptor.java \ | |
442 | java/io/FileInputStream.java \ | |
443 | java/io/FileNotFoundException.java \ | |
444 | java/io/FileOutputStream.java \ | |
445 | java/io/FileReader.java \ | |
446 | java/io/FileWriter.java \ | |
447 | java/io/FilenameFilter.java \ | |
448 | java/io/FilterInputStream.java \ | |
449 | java/io/FilterOutputStream.java \ | |
450 | java/io/FilterReader.java \ | |
451 | java/io/FilterWriter.java \ | |
452 | java/io/IOException.java \ | |
453 | java/io/InputStream.java \ | |
454 | java/io/InputStreamReader.java \ | |
455 | java/io/InterruptedIOException.java \ | |
456 | java/io/LineNumberInputStream.java \ | |
457 | java/io/LineNumberReader.java \ | |
458 | java/io/OutputStream.java \ | |
459 | java/io/OutputStreamWriter.java \ | |
460 | java/io/PipedInputStream.java \ | |
461 | java/io/PipedOutputStream.java \ | |
462 | java/io/PipedReader.java \ | |
463 | java/io/PipedWriter.java \ | |
464 | java/io/PrintStream.java \ | |
465 | java/io/PrintWriter.java \ | |
466 | java/io/PushbackInputStream.java \ | |
467 | java/io/PushbackReader.java \ | |
468 | java/io/RandomAccessFile.java \ | |
469 | java/io/Reader.java \ | |
470 | java/io/SequenceInputStream.java \ | |
471 | java/io/Serializable.java \ | |
472 | java/io/StreamTokenizer.java \ | |
473 | java/io/StringBufferInputStream.java \ | |
474 | java/io/StringReader.java \ | |
475 | java/io/StringWriter.java \ | |
476 | java/io/SyncFailedException.java \ | |
477 | java/io/UTFDataFormatException.java \ | |
478 | java/io/UnsupportedEncodingException.java \ | |
479 | java/io/Writer.java \ | |
480 | java/lang/AbstractMethodError.java \ | |
481 | java/lang/ArithmeticException.java \ | |
482 | java/lang/ArrayIndexOutOfBoundsException.java \ | |
483 | java/lang/ArrayStoreException.java \ | |
484 | java/lang/Boolean.java \ | |
485 | java/lang/Byte.java \ | |
486 | java/lang/Character.java \ | |
487 | java/lang/ClassCastException.java \ | |
488 | java/lang/ClassCircularityError.java \ | |
489 | java/lang/ClassFormatError.java \ | |
490 | java/lang/ClassLoader.java \ | |
491 | java/lang/ClassNotFoundException.java \ | |
492 | java/lang/CloneNotSupportedException.java \ | |
493 | java/lang/Cloneable.java \ | |
494 | java/lang/Comparable.java \ | |
495 | java/lang/Compiler.java \ | |
496 | java/lang/Double.java \ | |
497 | java/lang/Error.java \ | |
498 | java/lang/Exception.java \ | |
499 | java/lang/ExceptionInInitializerError.java \ | |
500 | java/lang/FirstThread.java \ | |
501 | java/lang/Float.java \ | |
502 | java/lang/IllegalAccessError.java \ | |
503 | java/lang/IllegalAccessException.java \ | |
504 | java/lang/IllegalArgumentException.java \ | |
505 | java/lang/IllegalMonitorStateException.java \ | |
506 | java/lang/IllegalStateException.java \ | |
507 | java/lang/IllegalThreadStateException.java \ | |
508 | java/lang/IncompatibleClassChangeError.java \ | |
509 | java/lang/IndexOutOfBoundsException.java \ | |
510 | java/lang/InstantiationError.java \ | |
511 | java/lang/InstantiationException.java \ | |
512 | java/lang/Integer.java \ | |
513 | java/lang/InternalError.java \ | |
514 | java/lang/InterruptedException.java \ | |
515 | java/lang/LinkageError.java \ | |
516 | java/lang/Long.java \ | |
517 | java/lang/Math.java \ | |
518 | java/lang/NegativeArraySizeException.java \ | |
519 | java/lang/NoClassDefFoundError.java \ | |
520 | java/lang/NoSuchFieldError.java \ | |
521 | java/lang/NoSuchFieldException.java \ | |
522 | java/lang/NoSuchMethodError.java \ | |
523 | java/lang/NoSuchMethodException.java \ | |
524 | java/lang/NullPointerException.java \ | |
525 | java/lang/Number.java \ | |
526 | java/lang/NumberFormatException.java \ | |
527 | java/lang/OutOfMemoryError.java \ | |
528 | java/lang/Process.java \ | |
529 | java/lang/Runnable.java \ | |
530 | java/lang/Runtime.java \ | |
531 | java/lang/RuntimeException.java \ | |
532 | java/lang/SecurityException.java \ | |
533 | java/lang/SecurityManager.java \ | |
534 | java/lang/Short.java \ | |
535 | java/lang/StackOverflowError.java \ | |
536 | java/lang/String.java \ | |
537 | java/lang/StringBuffer.java \ | |
538 | java/lang/StringIndexOutOfBoundsException.java \ | |
539 | java/lang/System.java \ | |
540 | java/lang/Thread.java \ | |
541 | java/lang/ThreadDeath.java \ | |
542 | java/lang/ThreadGroup.java \ | |
543 | java/lang/Throwable.java \ | |
544 | java/lang/UnknownError.java \ | |
545 | java/lang/UnsatisfiedLinkError.java \ | |
546 | java/lang/UnsupportedOperationException.java \ | |
547 | java/lang/VerifyError.java \ | |
548 | java/lang/VirtualMachineError.java \ | |
549 | java/lang/Void.java \ | |
550 | java/lang/reflect/AccessibleObject.java \ | |
551 | java/lang/reflect/Array.java \ | |
552 | java/lang/reflect/Constructor.java \ | |
553 | java/lang/reflect/Field.java \ | |
554 | java/lang/reflect/InvocationTargetException.java \ | |
555 | java/lang/reflect/Member.java \ | |
556 | java/lang/reflect/Method.java \ | |
557 | java/lang/reflect/Modifier.java \ | |
558 | java/net/BindException.java \ | |
559 | java/net/ConnectException.java \ | |
560 | java/net/ContentHandler.java \ | |
561 | java/net/ContentHandlerFactory.java \ | |
562 | java/net/FileNameMap.java \ | |
563 | java/net/HttpURLConnection.java \ | |
564 | java/net/InetAddress.java \ | |
565 | java/net/MalformedURLException.java \ | |
566 | java/net/NoRouteToHostException.java \ | |
567 | java/net/PlainSocketImpl.java \ | |
568 | java/net/ProtocolException.java \ | |
569 | java/net/ServerSocket.java \ | |
570 | java/net/Socket.java \ | |
571 | java/net/SocketException.java \ | |
572 | java/net/SocketImpl.java \ | |
573 | java/net/SocketImplFactory.java \ | |
574 | java/net/URL.java \ | |
575 | java/net/URLConnection.java \ | |
12571b1f WL |
576 | java/net/URLDecoder.java \ |
577 | java/net/URLEncoder.java \ | |
ee9dd372 TT |
578 | java/net/URLStreamHandler.java \ |
579 | java/net/URLStreamHandlerFactory.java \ | |
580 | java/net/UnknownHostException.java \ | |
581 | java/net/UnknownServiceException.java \ | |
fac61898 AG |
582 | java/security/MessageDigest.java \ |
583 | java/security/NoSuchAlgorithmException.java \ | |
ee9dd372 TT |
584 | java/text/BreakIterator.java \ |
585 | java/text/CharacterIterator.java \ | |
586 | java/text/ChoiceFormat.java \ | |
a0e894a8 TT |
587 | java/text/CollationElementIterator.java \ |
588 | java/text/CollationKey.java \ | |
589 | java/text/Collator.java \ | |
ee9dd372 TT |
590 | java/text/DateFormat.java \ |
591 | java/text/DateFormatSymbols.java \ | |
592 | java/text/DecimalFormat.java \ | |
593 | java/text/DecimalFormatSymbols.java \ | |
594 | java/text/FieldPosition.java \ | |
595 | java/text/Format.java \ | |
596 | java/text/MessageFormat.java \ | |
597 | java/text/NumberFormat.java \ | |
598 | java/text/ParseException.java \ | |
599 | java/text/ParsePosition.java \ | |
a0e894a8 | 600 | java/text/RuleBasedCollator.java \ |
ee9dd372 TT |
601 | java/text/SimpleDateFormat.java \ |
602 | java/text/StringCharacterIterator.java \ | |
603 | java/util/BitSet.java \ | |
604 | java/util/Calendar.java \ | |
605 | java/util/ConcurrentModificationException.java \ | |
606 | java/util/Date.java \ | |
607 | java/util/Dictionary.java \ | |
608 | java/util/EmptyStackException.java \ | |
609 | java/util/Enumeration.java \ | |
610 | java/util/EventListener.java \ | |
611 | java/util/EventObject.java \ | |
612 | java/util/GregorianCalendar.java \ | |
613 | java/util/Hashtable.java \ | |
614 | java/util/ListResourceBundle.java \ | |
615 | java/util/Locale.java \ | |
616 | java/util/MissingResourceException.java \ | |
617 | java/util/NoSuchElementException.java \ | |
618 | java/util/Observable.java \ | |
619 | java/util/Observer.java \ | |
620 | java/util/Properties.java \ | |
e3884aee | 621 | java/util/PropertyResourceBundle.java \ |
ee9dd372 TT |
622 | java/util/Random.java \ |
623 | java/util/ResourceBundle.java \ | |
624 | java/util/SimpleTimeZone.java \ | |
625 | java/util/Stack.java \ | |
626 | java/util/StringTokenizer.java \ | |
627 | java/util/TimeZone.java \ | |
628 | java/util/TooManyListenersException.java \ | |
629 | java/util/Vector.java \ | |
630 | java/util/zip/Adler32.java \ | |
631 | java/util/zip/CRC32.java \ | |
632 | java/util/zip/Checksum.java \ | |
633 | java/util/zip/Deflater.java \ | |
634 | java/util/zip/DeflaterOutputStream.java \ | |
775de547 | 635 | java/util/zip/InflaterInputStream.java \ |
ee9dd372 TT |
636 | java/util/zip/ZipConstants.java \ |
637 | java/util/zip/ZipEntry.java \ | |
638 | java/util/zip/ZipException.java \ | |
639 | java/util/zip/ZipFile.java \ | |
775de547 | 640 | java/util/zip/ZipInputStream.java \ |
ee9dd372 TT |
641 | java/util/zip/ZipOutputStream.java |
642 | ||
643 | java_source_files = $(ordinary_java_source_files) $(special_java_source_files) | |
644 | ||
645 | ## Math library: C, not C++ | |
646 | c_source_files = \ | |
647 | java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \ | |
648 | java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \ | |
649 | java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \ | |
650 | java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \ | |
651 | java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \ | |
652 | java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \ | |
653 | java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \ | |
654 | java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \ | |
655 | java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \ | |
656 | java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c \ | |
657 | java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \ | |
658 | java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \ | |
659 | java/lang/k_cos.c java/lang/s_sin.c | |
660 | ||
775de547 PB |
661 | #java/awt/natToolkit.cc |
662 | ||
ee9dd372 | 663 | ## This lists all the C++ source files in subdirectories. |
a0e894a8 | 664 | nat_source_files = \ |
ee9dd372 | 665 | gnu/gcj/convert/JIS0208_to_Unicode.cc \ |
a0e894a8 TT |
666 | gnu/gcj/convert/JIS0212_to_Unicode.cc \ |
667 | gnu/gcj/convert/Unicode_to_JIS.cc \ | |
668 | gnu/gcj/convert/natInput_EUCJIS.cc \ | |
669 | gnu/gcj/convert/natInput_SJIS.cc \ | |
670 | gnu/gcj/convert/natOutput_EUCJIS.cc \ | |
671 | gnu/gcj/convert/natOutput_SJIS.cc \ | |
672 | java/io/natFile.cc \ | |
673 | java/io/natFileDescriptor.cc \ | |
674 | java/lang/natCharacter.cc \ | |
675 | java/lang/natClass.cc \ | |
676 | java/lang/natDouble.cc \ | |
677 | java/lang/natFirstThread.cc \ | |
678 | java/lang/natFloat.cc \ | |
679 | java/lang/natMath.cc \ | |
680 | java/lang/natObject.cc \ | |
681 | java/lang/natRuntime.cc \ | |
682 | java/lang/natString.cc \ | |
683 | java/lang/natSystem.cc \ | |
684 | java/lang/natThread.cc \ | |
685 | java/lang/reflect/natArray.cc \ | |
686 | java/lang/reflect/natField.cc \ | |
687 | java/lang/reflect/natMethod.cc \ | |
688 | java/net/natInetAddress.cc \ | |
689 | java/net/natPlainSocketImpl.cc \ | |
690 | java/text/natCollator.cc \ | |
691 | java/util/natDate.cc \ | |
692 | java/util/natGregorianCalendar.cc | |
ee9dd372 TT |
693 | |
694 | ## ################################################################ | |
695 | ||
696 | ## | |
697 | ## This section is for make and multilib madness. | |
698 | ## | |
699 | ||
700 | # Work around what appears to be a GNU make bug handling MAKEFLAGS | |
701 | # values defined in terms of make variables, as is the case for CC and | |
702 | # friends when we are called from the top level Makefile. | |
703 | AM_MAKEFLAGS = \ | |
704 | "AR_FLAGS=$(AR_FLAGS)" \ | |
705 | "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ | |
706 | "CFLAGS=$(CFLAGS)" \ | |
707 | "CXXFLAGS=$(CXXFLAGS)" \ | |
708 | "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ | |
709 | "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ | |
710 | "INSTALL=$(INSTALL)" \ | |
711 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
712 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
713 | "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ | |
4ac19b2c | 714 | "JC1FLAGS=$(JC1FLAGS)" \ |
ee9dd372 TT |
715 | "LDFLAGS=$(LDFLAGS)" \ |
716 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
717 | "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ | |
718 | "MAKE=$(MAKE)" \ | |
719 | "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ | |
720 | "PICFLAG=$(PICFLAG)" \ | |
721 | "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ | |
722 | "SHELL=$(SHELL)" \ | |
723 | "exec_prefix=$(exec_prefix)" \ | |
724 | "infodir=$(infodir)" \ | |
725 | "libdir=$(libdir)" \ | |
726 | "prefix=$(prefix)" \ | |
727 | "AR=$(AR)" \ | |
728 | "AS=$(AS)" \ | |
729 | "CC=$(CC)" \ | |
730 | "CXX=$(CXX)" \ | |
731 | "LD=$(LD)" \ | |
732 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
733 | "NM=$(NM)" \ | |
734 | "PICFLAG=$(PICFLAG)" \ | |
735 | "RANLIB=$(RANLIB)" \ | |
736 | "DESTDIR=$(DESTDIR)" | |
737 | ||
738 | CONFIG_STATUS_DEPENDENCIES = $(libgcj_basedir)/configure.host | |
739 | ||
740 | MAKEOVERRIDES= | |
741 | ||
742 | # Multilib support variables. | |
743 | MULTISRCTOP = | |
744 | MULTIBUILDTOP = | |
745 | MULTIDIRS = | |
746 | MULTISUBDIR = | |
747 | MULTIDO = true | |
748 | MULTICLEAN = true | |
749 | ||
750 | # Multilib support. | |
751 | .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ | |
752 | maintainer-clean-multi | |
753 | ||
754 | all-recursive: all-multi | |
755 | install-recursive: install-multi | |
756 | mostlyclean-recursive: mostlyclean-multi | |
757 | clean-recursive: clean-multi | |
758 | distclean-recursive: distclean-multi | |
759 | maintainer-clean-recursive: maintainer-clean-multi | |
760 | ||
761 | all-multi: | |
762 | $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do | |
763 | install-multi: | |
764 | $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do | |
765 | mostlyclean-multi: | |
766 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean | |
767 | clean-multi: | |
768 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean | |
769 | distclean-multi: | |
770 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean | |
771 | maintainer-clean-multi: | |
772 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean | |
773 | ||
774 | ||
775 | ## ################################################################ | |
776 | ||
777 | ||
778 | ## See above. | |
779 | cygnus_hack = | |
780 | ||
781 |