]>
Commit | Line | Data |
---|---|---|
ee9dd372 TT |
1 | ## Process this file with automake to produce Makefile.in. |
2 | ||
e3f92d3b | 3 | AUTOMAKE_OPTIONS = foreign subdir-objects |
ee9dd372 | 4 | |
86acf60c | 5 | ACLOCAL_AMFLAGS = -I . -I .. -I ../config -I libltdl |
5aac1dac | 6 | |
e9bbd9d7 ZW |
7 | # May be used by various substitution variables. |
8 | gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) | |
9 | ||
b0fa81ee | 10 | SUBDIRS = $(DIRLTDL) gcj include classpath |
feffe335 KC |
11 | if TESTSUBDIR |
12 | SUBDIRS += testsuite | |
ee9dd372 TT |
13 | endif |
14 | ||
0c7829a9 | 15 | # write_entries_to_file - writes each entry in a list |
0dc54e5c RW |
16 | # to the specified file. Entries are written in chunks of |
17 | # $(write_entries_to_file_split) to accomodate systems with | |
18 | # severe command-line-length limitations. | |
0c7829a9 ME |
19 | # Parameters: |
20 | # $(1): variable containing entries to iterate over | |
21 | # $(2): output file | |
0dc54e5c RW |
22 | write_entries_to_file_split = 50 |
23 | write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) \ | |
24 | $(foreach range, \ | |
25 | $(shell i=1; while test $$i -le $(words $(1)); do \ | |
26 | echo $$i; i=`expr $$i + $(write_entries_to_file_split)`; done), \ | |
27 | $(shell echo $(wordlist $(range), \ | |
28 | $(shell expr $(range) + $(write_entries_to_file_split) - 1), $(1)) \ | |
29 | | tr ' ' '\n' >> $(2))) | |
0c7829a9 | 30 | |
ee9dd372 TT |
31 | ## ################################################################ |
32 | ||
ed2e3d33 NN |
33 | # autoconf2.13's target_alias |
34 | target_noncanonical = @target_noncanonical@ | |
35 | ||
eec69c4e TT |
36 | # This is required by TL_AC_GXX_INCLUDE_DIR. |
37 | libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) | |
38 | ||
97b8365c TT |
39 | libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) |
40 | ||
ee9dd372 TT |
41 | ## |
42 | ## What gets installed, and where. | |
43 | ## | |
44 | ||
27651ad3 | 45 | toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la |
feffe335 KC |
46 | toolexecmainlib_DATA = libgcj.spec |
47 | ||
6a92b6c7 DK |
48 | ## |
49 | ## These files form a closed dependency group at the lower | |
50 | ## edge of libjava's dependency graph, so can be separated out. | |
51 | ## For details of how the list was generated, see the GCC wiki: | |
52 | ## | |
53 | ## http://gcc.gnu.org/wiki/Internal_dependencies_of_libgcj | |
54 | ## | |
55 | LOWER_PACKAGE_FILES_LO = \ | |
56 | $(propertyo_files) \ | |
57 | gnu-CORBA.lo \ | |
58 | gnu-java-awt-dnd-peer-gtk.lo \ | |
59 | gnu-java-awt-peer-gtk.lo \ | |
60 | gnu-java-awt-peer-swing.lo \ | |
61 | gnu-java-lang-management.lo \ | |
62 | gnu-javax-management.lo \ | |
63 | gnu-javax-rmi.lo \ | |
64 | gnu-javax-sound-midi.lo \ | |
65 | gnu-xml-aelfred2.lo \ | |
66 | gnu-xml-dom.lo \ | |
67 | gnu-xml-libxmlj.lo \ | |
68 | gnu-xml-pipeline.lo \ | |
69 | gnu-xml-stream.lo \ | |
70 | gnu-xml-transform.lo \ | |
71 | gnu-xml-util.lo \ | |
72 | gnu-xml-validation.lo \ | |
73 | gnu-xml-xpath.lo \ | |
74 | java-lang-management.lo \ | |
75 | javax-imageio.lo \ | |
76 | javax-rmi.lo \ | |
77 | jni-libjvm.lo \ | |
78 | org-omg-CORBA.lo \ | |
79 | org-omg-CORBA_2_3.lo \ | |
80 | org-omg-CosNaming.lo \ | |
81 | org-omg-Dynamic.lo \ | |
82 | org-omg-DynamicAny.lo \ | |
83 | org-omg-IOP.lo \ | |
84 | org-omg-Messaging.lo \ | |
85 | org-omg-PortableInterceptor.lo \ | |
86 | org-omg-PortableServer.lo \ | |
87 | org-omg-SendingContext.lo \ | |
88 | org-omg-stub.lo \ | |
89 | org-relaxng.lo \ | |
90 | org-xml.lo \ | |
91 | META-INF/services/java.util.prefs.PreferencesFactory.in.lo \ | |
92 | META-INF/services/java.util.prefs.PreferencesFactory.lo \ | |
93 | META-INF/services/javax.sound.midi.spi.MidiDeviceProvider.lo \ | |
94 | META-INF/services/javax.sound.midi.spi.MidiFileReader.lo \ | |
95 | META-INF/services/javax.sound.midi.spi.MidiFileWriter.lo \ | |
96 | META-INF/services/javax.sound.sampled.spi.AudioFileReader.lo \ | |
97 | classpath/native/jni/classpath/jcl.lo \ | |
98 | classpath/native/jni/classpath/jnilink.lo \ | |
99 | classpath/native/jni/java-math/gnu_java_math_GMP.lo \ | |
100 | classpath/tools/libgcj_tools_la-tools.lo \ | |
101 | gnu/awt.lo \ | |
102 | gnu/awt/j2d.lo \ | |
103 | gnu/gcj/io.lo \ | |
104 | gnu/gcj/io/natSimpleSHSStream.lo \ | |
105 | gnu/gcj/io/shs.lo \ | |
106 | gnu/gcj/tools/gcj_dbtool.lo \ | |
107 | gnu/gcj/util/natDebug.lo \ | |
108 | gnu/gcj/util/natGCInfo.lo \ | |
109 | gnu/java/awt/dnd.lo \ | |
110 | gnu/java/awt/font.lo \ | |
111 | gnu/java/awt/image.lo \ | |
112 | gnu/java/awt/print.lo \ | |
113 | gnu/java/awt/font/autofit.lo \ | |
114 | gnu/java/awt/font/opentype.lo \ | |
115 | gnu/java/awt/font/opentype/truetype.lo \ | |
116 | gnu/java/lang/management/natVMClassLoadingMXBeanImpl.lo \ | |
117 | gnu/java/lang/management/natVMCompilationMXBeanImpl.lo \ | |
118 | gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.lo \ | |
119 | gnu/java/lang/management/natVMMemoryMXBeanImpl.lo \ | |
120 | gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.lo \ | |
121 | gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.lo \ | |
122 | gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.lo \ | |
123 | gnu/java/lang/management/natVMRuntimeMXBeanImpl.lo \ | |
124 | gnu/java/lang/management/natVMThreadMXBeanImpl.lo \ | |
125 | gnu/java/net/local.lo \ | |
126 | gnu/java/net/protocol/ftp.lo \ | |
127 | gnu/java/net/protocol/gcjlib.lo \ | |
128 | gnu/java/net/protocol/https.lo \ | |
129 | gnu/javax/imageio.lo \ | |
130 | gnu/javax/print.lo \ | |
131 | gnu/javax/sound.lo \ | |
132 | gnu/javax/activation/viewers.lo \ | |
133 | gnu/javax/imageio/bmp.lo \ | |
134 | gnu/javax/imageio/gif.lo \ | |
135 | gnu/javax/imageio/jpeg.lo \ | |
136 | gnu/javax/imageio/png.lo \ | |
137 | gnu/javax/naming/giop.lo \ | |
138 | gnu/javax/naming/ictxImpl/trans.lo \ | |
139 | gnu/javax/naming/jndi/url/corbaname.lo \ | |
140 | gnu/javax/naming/jndi/url/rmi.lo \ | |
141 | gnu/javax/print/ipp.lo \ | |
142 | gnu/javax/print/ipp/attribute.lo \ | |
143 | gnu/javax/print/ipp/attribute/defaults.lo \ | |
144 | gnu/javax/print/ipp/attribute/job.lo \ | |
145 | gnu/javax/print/ipp/attribute/printer.lo \ | |
146 | gnu/javax/print/ipp/attribute/supported.lo \ | |
147 | gnu/javax/security/auth/login.lo \ | |
148 | gnu/javax/sound/sampled/AU.lo \ | |
149 | gnu/javax/sound/sampled/WAV.lo \ | |
150 | gnu/javax/swing/plaf/gnu.lo \ | |
151 | gnu/javax/swing/plaf/metal.lo \ | |
152 | java/sql.lo \ | |
153 | java/awt/im.lo \ | |
154 | java/awt/print.lo \ | |
155 | java/awt/im/spi.lo \ | |
156 | java/security/acl.lo \ | |
157 | javax/activation.lo \ | |
158 | javax/activity.lo \ | |
159 | javax/management.lo \ | |
160 | javax/naming.lo \ | |
161 | javax/print.lo \ | |
162 | javax/sql.lo \ | |
163 | javax/tools.lo \ | |
164 | javax/transaction.lo \ | |
165 | javax/management/loading.lo \ | |
166 | javax/management/openmbean.lo \ | |
167 | javax/management/remote.lo \ | |
168 | javax/management/remote/rmi.lo \ | |
169 | javax/naming/directory.lo \ | |
170 | javax/naming/event.lo \ | |
171 | javax/naming/ldap.lo \ | |
172 | javax/naming/spi.lo \ | |
173 | javax/print/attribute.lo \ | |
174 | javax/print/event.lo \ | |
175 | javax/print/attribute/standard.lo \ | |
176 | javax/security/cert.lo \ | |
177 | javax/security/auth/kerberos.lo \ | |
178 | javax/security/auth/login.lo \ | |
179 | javax/security/auth/spi.lo \ | |
180 | javax/sound/midi.lo \ | |
181 | javax/sound/midi/spi.lo \ | |
182 | javax/swing/plaf/multi.lo \ | |
183 | javax/swing/plaf/synth.lo \ | |
184 | javax/swing/text/rtf.lo \ | |
185 | javax/swing/text/html/default.css.lo \ | |
186 | javax/transaction/xa.lo \ | |
187 | org/ietf/jgss.lo \ | |
188 | sun/awt.lo | |
189 | ||
190 | ## | |
191 | ## Lists of all .lo files, and filtered core and non-core lists. | |
192 | ## | |
193 | ALL_PACKAGE_SOURCE_FILES_LO = $(all_packages_source_files:.list=.lo) $(propertyo_files) $(bc_objects) | |
194 | NONCORE_PACKAGE_SOURCE_FILES_LO = $(filter $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO)) | |
195 | CORE_PACKAGE_SOURCE_FILES_LO = $(filter-out $(LOWER_PACKAGE_FILES_LO),$(ALL_PACKAGE_SOURCE_FILES_LO)) | |
196 | ||
197 | ## | |
198 | ## Assign objects to output libraries. | |
199 | ## | |
200 | if BUILD_SUBLIBS | |
201 | toolexeclib_LTLIBRARIES += libgcj-noncore.la | |
202 | libgcj_noncore_la_LIBADD_SUBOBJECTS = $(NONCORE_PACKAGE_SOURCE_FILES_LO) | |
203 | libgcj_la_LIBADD_SUBOBJECTS = $(CORE_PACKAGE_SOURCE_FILES_LO) | |
c4f0333b | 204 | LIBJAVA_LDFLAGS_NOUNDEF = $(LIBGCJ_SUBLIB_LTFLAGS) |
6a92b6c7 DK |
205 | else |
206 | # If not building sublibraries, everything goes in libgcj, | |
207 | # and it cannot be usefully built shared on PE platforms. | |
208 | libgcj_la_LIBADD_SUBOBJECTS = $(ALL_PACKAGE_SOURCE_FILES_LO) | |
c4f0333b | 209 | LIBJAVA_LDFLAGS_NOUNDEF = |
6a92b6c7 DK |
210 | endif |
211 | ||
97c074fd JJ |
212 | if USE_LIBGCJ_BC |
213 | toolexeclib_LTLIBRARIES += libgcj_bc.la | |
214 | endif | |
215 | ||
5950e016 | 216 | if XLIB_AWT |
feffe335 | 217 | toolexeclib_LTLIBRARIES += lib-gnu-awt-xlib.la |
2622c79d RR |
218 | endif |
219 | ||
fb5b5d97 TF |
220 | dbexec_LTLIBRARIES = libjvm.la |
221 | ||
7fbbd122 | 222 | pkgconfigdir = $(libdir)/pkgconfig |
7fbbd122 | 223 | |
395cb211 | 224 | jardir = $(datadir)/java |
27651ad3 | 225 | jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar |
97b8365c TT |
226 | if INSTALL_ECJ_JAR |
227 | jar_DATA += $(ECJ_BUILD_JAR) | |
228 | endif | |
ee9dd372 | 229 | |
c33b7bf0 TF |
230 | if JAVA_HOME_SET |
231 | JAVA_HOME_DIR = $(JAVA_HOME) | |
232 | BOOT_CLASS_PATH_DIR = $(JAVA_HOME)/lib/rt.jar | |
233 | else | |
234 | JAVA_HOME_DIR = $(prefix) | |
01ade80d | 235 | BOOT_CLASS_PATH_DIR = $(jardir)/libgcj-$(gcc_version).jar |
c33b7bf0 TF |
236 | endif |
237 | ||
558b8548 TT |
238 | ## Name of the default .db. |
239 | db_name = classmap.db | |
206318ea | 240 | ## Compiler specific component of the .db file |
c9db365d JS |
241 | gcjsubdir = @gcjsubdir@ |
242 | db_pathtail = $(gcjsubdir)/$(db_name) | |
558b8548 | 243 | |
f2646bf2 | 244 | ## For now, only on native systems. FIXME. |
ee9dd372 | 245 | if NATIVE |
4bf95cef | 246 | bin_programs = jv-convert gij grmic grmiregistry gcj-dbtool \ |
20f326d7 | 247 | gappletviewer gjarsigner gkeytool gjar gcjh gjavah gnative2ascii \ |
7f40378f | 248 | gorbd grmid gserialver gtnameserv gc-analyze |
cd6d4007 | 249 | if CREATE_GJDOC |
4bf95cef JJ |
250 | bin_programs += gjdoc |
251 | endif | |
252 | ||
253 | noinst_PROGRAMS = | |
254 | if INSTALL_BINARIES | |
255 | bin_PROGRAMS = $(bin_programs) | |
256 | else | |
257 | noinst_PROGRAMS += $(bin_programs) | |
cd6d4007 | 258 | endif |
558b8548 TT |
259 | |
260 | ## It is convenient to actually build and install the default database | |
261 | ## when gcj-dbtool is available. | |
262 | dbexec_DATA = $(db_name) | |
c9db365d JS |
263 | endif |
264 | ||
48965b7c | 265 | bin_SCRIPTS = contrib/rebuild-gcj-db contrib/aot-compile |
ee9dd372 | 266 | |
c9db365d JS |
267 | if INSTALL_AOT_RPM |
268 | bin_SCRIPTS += contrib/aot-compile-rpm | |
269 | endif | |
6c80c45e | 270 | |
97b8365c TT |
271 | if BUILD_ECJ1 |
272 | ## We build ecjx and not ecj1 because in one mode, ecjx will not work | |
273 | ## until after 'make install', and we don't want it to be picked up in | |
274 | ## the build tree by gcj via a -B option. | |
275 | libexecsub_PROGRAMS = ecjx | |
276 | endif | |
277 | ||
ee9dd372 TT |
278 | ## ################################################################ |
279 | ||
280 | ## | |
281 | ## Compilers and compilation flags. | |
282 | ## | |
283 | ||
ee84a135 TT |
284 | ## The compiler with whatever flags we want for both -c and -C |
285 | ## compiles. | |
c94432c5 | 286 | GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated |
ee84a135 | 287 | |
c0975bc7 | 288 | extra_ldflags_libjava = @extra_ldflags_libjava@ |
f202305d | 289 | extra_ldflags = @extra_ldflags@ |
c0975bc7 | 290 | |
47742ccd JJ |
291 | if ANONVERSCRIPT |
292 | extra_ldflags_libjava += -Wl,--version-script=$(srcdir)/libgcj.ver | |
293 | endif | |
294 | ||
48965b7c | 295 | LTLDFLAGS = $(shell $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) |
84fec8a5 RW |
296 | GCJLINK = $(LIBTOOL) --tag=GCJ $(LIBTOOLFLAGS) --mode=link $(GCJ) -L$(here) \ |
297 | $(JC1FLAGS) $(LTLDFLAGS) -o $@ | |
97b8365c TT |
298 | GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ |
299 | GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@ | |
84fec8a5 RW |
300 | LIBLINK = $(LIBTOOL) --tag=CXX $(LIBTOOLFLAGS) --mode=link $(CXX) -L$(here) \ |
301 | $(JC1FLAGS) $(LTLDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -o $@ | |
302 | CXXLINK = $(LIBTOOL) --tag=CXX $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ | |
303 | $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LTLDFLAGS) -o $@ | |
a3ffcff3 | 304 | |
52a11cbf | 305 | GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ |
ee9dd372 | 306 | |
a3c44036 | 307 | WARNINGS = -Wextra -Wall |
baeff970 MK |
308 | ## Some systems don't allow `$' in identifiers by default, so we force |
309 | ## it with -fdollars-in-identifiers. -Wswitch-enum detects bugs in | |
310 | ## the verifier implementation, and maybe other places. We need | |
311 | ## _GNU_SOURCE defined for some Linux builds. It doesn't hurt to | |
312 | ## always define it. Some systems, including Linux, need | |
313 | ## -D_FILE_OFFSET_BITS=64 to enable > 2GB file support. | |
314 | AM_CXXFLAGS = \ | |
315 | -fno-rtti \ | |
316 | -fnon-call-exceptions \ | |
317 | $(THREADCXXFLAGS) \ | |
cdd3612a | 318 | -fdollars-in-identifiers \ |
b446a5f1 | 319 | -Wswitch-enum \ |
b845ed9f | 320 | -D_FILE_OFFSET_BITS=64 \ |
baeff970 | 321 | @LIBGCJ_CXXFLAGS@ \ |
baeff970 MK |
322 | $(WARNINGS) \ |
323 | -D_GNU_SOURCE \ | |
324 | -DPREFIX="\"$(prefix)\"" \ | |
df3e8c70 | 325 | -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\"" \ |
c33b7bf0 TF |
326 | -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \ |
327 | -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \ | |
558b8548 | 328 | -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \ |
dc0a6205 | 329 | -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \ |
fb5b5d97 | 330 | -DGCJ_VERSIONED_LIBDIR="\"$(dbexecdir)\"" \ |
8c0633b7 | 331 | -DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \ |
442a795b | 332 | -DECJ_JAR_FILE="\"$(ECJ_JAR)\"" \ |
aa893047 | 333 | -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \ |
5cfa6a4e | 334 | -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" |
e3f92d3b MK |
335 | |
336 | AM_GCJFLAGS = \ | |
ed89de94 | 337 | @LIBGCJ_JAVAFLAGS@ \ |
9ecd0347 | 338 | -fclasspath= -fbootclasspath=$(BOOTCLASSPATH) \ |
e3f92d3b | 339 | --encoding=UTF-8 \ |
cca1655e | 340 | -Wno-deprecated -fbootstrap-classes |
e3f92d3b | 341 | |
3cf735f6 | 342 | AM_CFLAGS = @LIBGCJ_CFLAGS@ |
feffe335 KC |
343 | if USING_GCC |
344 | AM_CFLAGS += $(WARNINGS) | |
ee9dd372 TT |
345 | endif |
346 | ||
a507baad DD |
347 | if SUPPRESS_LIBGCJ_BC |
348 | LIBGCJ_BC_FLAGS = | |
349 | else | |
350 | LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes | |
351 | endif | |
352 | ||
c07cd2c7 DD |
353 | if BUILD_LIBGCJ_REDUCED_REFLECTION |
354 | LIBGCJ_REDUCED_REFLECTION_FLAGS = -freduced-reflection | |
355 | else | |
356 | LIBGCJ_REDUCED_REFLECTION_FLAGS = | |
357 | endif | |
358 | ||
ae522139 MW |
359 | ## Extra CFLAGS used for JNI C sources shared with GNU Classpath. |
360 | PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long | |
361 | ||
1f577886 | 362 | JCFLAGS = -g |
3cf735f6 | 363 | JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) |
ee9dd372 | 364 | |
c8fb9813 | 365 | LIBFFIINCS = @LIBFFIINCS@ |
58eb6e7c | 366 | |
b0fa81ee TT |
367 | AM_CPPFLAGS = -I$(top_srcdir) \ |
368 | -Iinclude -I$(top_srcdir)/include \ | |
369 | -I$(top_srcdir)/classpath/include \ | |
21276379 | 370 | -Iclasspath/include \ |
b0fa81ee | 371 | -I$(top_srcdir)/classpath/native/fdlibm \ |
456d47b3 | 372 | $(GCINCS) $(THREADINCS) $(INCLTDL) \ |
52a11cbf | 373 | $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) |
ee9dd372 | 374 | |
97b8365c | 375 | BOOTCLASSPATH = $(srcdir)/classpath/lib |
9ecd0347 | 376 | |
ee9dd372 TT |
377 | ## ################################################################ |
378 | ||
379 | ## | |
f34ff6d6 | 380 | ## How to build libgcj.a and libgcj.jar |
ee9dd372 TT |
381 | ## |
382 | ||
fedf5454 | 383 | libgij_la_SOURCES = gij.cc |
e3f92d3b | 384 | libgij_la_DEPENDENCIES = libgcj.la libgcj.spec |
6a92b6c7 DK |
385 | if BUILD_SUBLIBS |
386 | libgij_la_DEPENDENCIES += libgcj-noncore.la | |
387 | endif | |
a2fcf673 | 388 | ## See jv_convert_LDADD. |
84c40293 | 389 | libgij_la_LIBADD = -L$(here)/.libs libgcj.la |
a2fcf673 | 390 | ## The mysterious backslash in the grep pattern is consumed by make. |
c4f0333b | 391 | libgij_la_LDFLAGS = -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ |
a2fcf673 | 392 | -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) |
878f62e5 | 393 | libgij_la_LINK = $(CXXLINK) $(libgij_la_LDFLAGS) |
fedf5454 | 394 | |
86acf60c DD |
395 | if INTERPRETER |
396 | libgcj_interpret_source_files = jvmti.cc interpret.cc | |
397 | else | |
398 | libgcj_interpret_source_files = | |
399 | endif | |
400 | ||
401 | libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc \ | |
402 | link.cc defineclass.cc verify.cc $(libgcj_interpret_source_files) \ | |
b0fa81ee | 403 | $(nat_source_files) |
72095b64 | 404 | |
acb966f2 TT |
405 | ## We need to compile at least the interpreter this way. |
406 | interpret.lo: AM_CXXFLAGS += -fwrapv | |
407 | ||
72095b64 KC |
408 | if USING_BOEHMGC |
409 | libgcj_la_SOURCES += boehm.cc | |
410 | endif | |
411 | ||
412 | if USING_NOGC | |
413 | libgcj_la_SOURCES += nogc.cc | |
414 | endif | |
415 | ||
72095b64 KC |
416 | if USING_POSIX_PLATFORM |
417 | libgcj_la_SOURCES += posix.cc | |
418 | endif | |
419 | ||
420 | if USING_WIN32_PLATFORM | |
421 | libgcj_la_SOURCES += win32.cc | |
422 | endif | |
423 | ||
424 | if USING_DARWIN_CRT | |
425 | libgcj_la_SOURCES += darwin.cc | |
426 | endif | |
427 | ||
428 | if USING_POSIX_THREADS | |
429 | libgcj_la_SOURCES += posix-threads.cc | |
430 | endif | |
431 | ||
432 | if USING_WIN32_THREADS | |
433 | libgcj_la_SOURCES += win32-threads.cc | |
434 | endif | |
435 | ||
436 | if USING_NO_THREADS | |
437 | libgcj_la_SOURCES += no-threads.cc | |
438 | endif | |
bbbf4955 | 439 | |
b08fd659 AH |
440 | ## Objects from C++ sources in subdirs. |
441 | nat_files = $(nat_source_files:.cc=.lo) | |
442 | xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) | |
443 | ||
2e9ab75d BM |
444 | # Include THREADLIBS here to ensure that the correct version of |
445 | # certain linuxthread functions get linked: | |
ff78c80b | 446 | ## The mysterious backslash in the grep pattern is consumed by make. |
f202305d | 447 | libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \ |
c4f0333b | 448 | $(LIBLTDL) $(SYS_ZLIBS) $(LIBJAVA_LDFLAGS_NOUNDEF) \ |
76b972d6 L |
449 | -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ |
450 | $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) | |
9ecd0347 | 451 | libgcj_la_LIBADD = \ |
b0fa81ee | 452 | classpath/native/fdlibm/libfdlibm.la \ |
97b8365c TT |
453 | java/lang/Object.lo \ |
454 | java/lang/Class.lo \ | |
455 | java/process-$(PLATFORM).lo \ | |
6a92b6c7 | 456 | $(libgcj_la_LIBADD_SUBOBJECTS) \ |
9fe94447 | 457 | $(LIBFFI) $(ZLIBS) $(GCLIBS) |
e9bbd9d7 | 458 | libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ |
97b8365c TT |
459 | java/lang/Object.lo \ |
460 | java/lang/Class.lo \ | |
461 | java/process-$(PLATFORM).lo \ | |
6a92b6c7 | 462 | $(ALL_PACKAGE_SOURCE_FILES_LO) \ |
5aa9bbc4 | 463 | $(LIBLTDL) $(libgcj_la_LIBADD) |
47742ccd JJ |
464 | if ANONVERSCRIPT |
465 | libgcj_la_DEPENDENCIES += $(srcdir)/libgcj.ver | |
466 | endif | |
84fec8a5 | 467 | libgcj_la_LINK = $(LIBLINK) $(libgcj_la_LDFLAGS) |
89b6698a | 468 | |
97b8365c TT |
469 | ## A hack to make sure the various gcj-related macros, like |
470 | ## LTGCJCOMPILE, are defined by automake. This is never actually | |
471 | ## compiled. | |
472 | EXTRA_libgcj_la_SOURCES = java/lang/Object.java | |
473 | ||
6a92b6c7 DK |
474 | if BUILD_SUBLIBS |
475 | libgcj_noncore_la_SOURCES = | |
476 | libgcj_noncore_la_LDFLAGS = $(libgcj_la_LDFLAGS) | |
477 | libgcj_noncore_la_LIBADD = $(libgcj_noncore_la_LIBADD_SUBOBJECTS) \ | |
478 | $(LIBFFI) $(ZLIBS) $(GCLIBS) libgcj.la | |
479 | libgcj_noncore_la_DEPENDENCIES = libgcj-$(gcc_version).jar $(LIBLTDL) \ | |
480 | $(libgcj_noncore_la_LIBADD) libgcj.la | |
481 | if ANONVERSCRIPT | |
482 | libgcj_noncore_la_DEPENDENCIES += $(srcdir)/libgcj.ver | |
483 | endif | |
484 | libgcj_noncore_la_LINK = $(libgcj_la_LINK) | |
485 | endif | |
486 | ||
a6524a7c AH |
487 | # We compile libgcj_tools with -findirect-dispatch so that they can |
488 | # depend on external classes: in particular, gjdoc uses antlr. In | |
489 | # addition, -fno-bootstrap-classes ensures that the tools are loaded | |
490 | # by the system class loader rather than the bootstrap class loader: | |
491 | # only core library classes should be loaded by the bootstrap loader. | |
97b8365c | 492 | libgcj_tools_la_SOURCES = classpath/tools/tools.zip |
a6524a7c AH |
493 | libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \ |
494 | -fno-bootstrap-classes -fno-indirect-classes \ | |
495 | -fsource-filename=$(here)/classpath/tools/all-classes.lst | |
27651ad3 | 496 | libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \ |
76b972d6 | 497 | -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ |
c4f0333b | 498 | $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) |
c829a888 | 499 | libgcj_tools_la_LIBADD = libgcj.la -lm |
56d30bd5 | 500 | libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec |
6a92b6c7 DK |
501 | if BUILD_SUBLIBS |
502 | libgcj_tools_la_DEPENDENCIES += libgcj-noncore.la | |
503 | endif | |
84fec8a5 | 504 | libgcj_tools_la_LINK = $(LIBLINK) $(libgcj_tools_la_LDFLAGS) |
27651ad3 | 505 | |
fb5b5d97 TF |
506 | ## libjvm.so |
507 | libjvm_la_SOURCES = jni-libjvm.cc | |
508 | libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec | |
6a92b6c7 DK |
509 | if BUILD_SUBLIBS |
510 | libjvm_la_DEPENDENCIES += libgcj-noncore.la | |
511 | endif | |
fb5b5d97 TF |
512 | ## See jv_convert_LDADD. |
513 | libjvm_la_LIBADD = -L$(here)/.libs libgcj.la | |
6a92b6c7 | 514 | libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC) \ |
c4f0333b | 515 | $(LIBJAVA_LDFLAGS_NOUNDEF) |
878f62e5 | 516 | libjvm_la_LINK = $(CXXLINK) $(libjvm_la_LDFLAGS) |
558b8548 TT |
517 | |
518 | ## The .db file. This rule is only used for native builds, so it is | |
519 | ## safe to invoke gcj-dbtool. | |
cb8faadc | 520 | $(db_name): gcj-dbtool$(EXEEXT) |
558b8548 TT |
521 | ## In case it exists already. |
522 | @rm -f $(db_name) | |
523 | ## We don't actually care if it fails -- if it does, just make an | |
524 | ## empty file. This is simpler than trying to discover when mmap is | |
525 | ## not available. | |
526 | ./gcj-dbtool -n $(db_name) || touch $(db_name) | |
527 | ||
34bab46d | 528 | lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files) |
9365047a TT |
529 | lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo |
530 | lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \ | |
531 | libgcj.la libgcj.spec \ | |
34bab46d | 532 | $(lib_gnu_awt_xlib_la_LIBADD) |
6a92b6c7 DK |
533 | if BUILD_SUBLIBS |
534 | lib_gnu_awt_xlib_la_DEPENDENCIES += libgcj-noncore.la | |
535 | endif | |
456d47b3 MK |
536 | ## We require libstdc++-v3 to be in the same build tree. |
537 | lib_gnu_awt_xlib_la_CPPFLAGS = \ | |
d933abbe | 538 | $(AM_CPPFLAGS) \ |
456d47b3 MK |
539 | -I../libstdc++-v3/include \ |
540 | -I../libstdc++-v3/include/$(target_noncanonical) \ | |
541 | -I$(srcdir)/../libstdc++-v3/libsupc++ | |
ff78c80b | 542 | ## The mysterious backslash in the grep pattern is consumed by make. |
5f9cea34 TT |
543 | lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \ |
544 | @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \ | |
c4f0333b | 545 | -rpath $(toolexeclibdir) $(LIBJAVA_LDFLAGS_NOUNDEF) \ |
36739040 | 546 | -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) |
84fec8a5 | 547 | lib_gnu_awt_xlib_la_LINK = $(LIBLINK) $(lib_gnu_awt_xlib_la_LDFLAGS) |
a697c5f7 | 548 | |
97c074fd JJ |
549 | ## Support for libgcj_bc: dummy shared library. |
550 | ## | |
551 | ## This lets us have one soname in BC objects and another in C++ ABI objects. | |
de383aec | 552 | ## This library is not linked against libgcj. |
97c074fd | 553 | libgcj_bc_la_SOURCES = libgcj_bc.c |
76b972d6 | 554 | libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0 \ |
c4f0333b | 555 | $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBJAVA_LDFLAGS_NOUNDEF) |
97c074fd | 556 | libgcj_bc_la_DEPENDENCIES = libgcj.la |
84fec8a5 | 557 | libgcj_bc_la_LINK = $(LIBLINK) $(libgcj_bc_la_LDFLAGS) |
97c074fd JJ |
558 | ## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others. |
559 | ## USE_LIBGCJ_BC shouldn't be set on other targets. | |
560 | libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \ | |
561 | -fPIC -nostdlib | |
562 | ||
563 | ## This rule creates the libgcj_bc dummy library in the .libs directory, for use | |
564 | ## when testing. | |
565 | libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES) | |
566 | $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \ | |
567 | $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) || exit; \ | |
568 | rm .libs/libgcj_bc.so; \ | |
569 | mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \ | |
570 | $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ | |
571 | -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \ | |
572 | rm .libs/libgcj_bc.so.1; \ | |
573 | $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 | |
574 | ||
578fdcb2 | 575 | ## Note that property_files is defined in sources.am. |
e293cbd5 | 576 | propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files))) |
b0fa81ee | 577 | |
e293cbd5 | 578 | $(propertyo_files): %.lo: classpath/resource/% |
b0fa81ee TT |
579 | $(mkinstalldirs) `dirname $@`; \ |
580 | $(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,$(@:.lo=) | |
581 | ||
f4410786 | 582 | libgcj-$(gcc_version).jar: classpath/lib/compile-classes |
97b8365c TT |
583 | ## Note that this now omits the property files. |
584 | ## It doesn't matter since we don't use the jar at runtime. | |
d43b573e | 585 | here=`pwd`; cd $(srcdir)/classpath/lib; \ |
a968c714 | 586 | find gnu java javax org sun -name .svn -prune -o -name '*.class' -print | \ |
d43b573e | 587 | $(JAR) -cfM@ $$here/libgcj-$(gcc_version).jar |
b0fa81ee | 588 | |
97b8365c | 589 | libgcj-tools-$(gcc_version).jar: classpath/tools/tools.zip |
27651ad3 TF |
590 | cp $< $@ |
591 | ||
592 | CLEANFILES = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar | |
b0fa81ee | 593 | DISTCLEANFILES = native.dirs |
9096b279 | 594 | |
2db99d05 ME |
595 | mostlyclean-local: |
596 | ## Use libtool rm to remove each libtool object | |
5649c0b9 | 597 | find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f |
ee9dd372 | 598 | |
2db99d05 ME |
599 | distclean-local: |
600 | ## Remove every .d file that was created. | |
601 | find . -name '*.d' -print | xargs rm -f | |
602 | ||
1acce4c7 JM |
603 | # Just remove the objects from C++ sources, for testing the C++ compiler. |
604 | clean-nat: | |
ff78c80b | 605 | rm -f $(nat_files) $(xlib_nat_files) |
1acce4c7 | 606 | |
b0fa81ee | 607 | SUFFIXES = .class .java .h .properties .list |
ee9dd372 | 608 | |
c8dc36d6 TT |
609 | ## Pass the list of object files to libtool in a temporary file to |
610 | ## avoid tripping platform command line length limits. | |
072b0db2 | 611 | lib-gnu-awt-xlib.la: $(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_DEPENDENCIES) |
0c7829a9 ME |
612 | @echo Creating list of files to link... |
613 | @: $(call write_entries_to_file,$(lib_gnu_awt_xlib_la_OBJECTS) $(lib_gnu_awt_xlib_la_LIBADD),lib_gnu_awt_xlib.objectlist) | |
072b0db2 TT |
614 | $(lib_gnu_awt_xlib_la_LINK) -objectlist lib_gnu_awt_xlib.objectlist \ |
615 | -rpath $(toolexeclibdir) $(lib_gnu_awt_xlib_la_LDFLAGS) $(LIBS) | |
e4c34f6a | 616 | |
ee9dd372 TT |
617 | ## ################################################################ |
618 | ||
b0fa81ee TT |
619 | ## Compiling a list of java sources to a single .o. |
620 | ||
c07cd2c7 DD |
621 | # Concurrent things use reflection internally. |
622 | java/util/concurrent.lo \ | |
623 | java/util/concurrent/atomic.lo \ | |
624 | java/util/concurrent/locks.lo: LIBGCJ_REDUCED_REFLECTION_FLAGS = | |
625 | ||
b0fa81ee | 626 | %.lo: %.list |
c07cd2c7 | 627 | $(LTGCJCOMPILE) $(LIBGCJ_REDUCED_REFLECTION_FLAGS) -c -o $@ -fsource-filename=$(here)/classpath/lib/classes -MT $@ -MD -MP -MF $(basename $@).deps @$< |
97b8365c TT |
628 | |
629 | java/lang/Object.lo: classpath/lib/java/lang/Object.class | |
630 | $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< | |
631 | ||
632 | java/lang/Class.lo: classpath/lib/java/lang/Class.class | |
633 | $(LTGCJCOMPILE) -c -o $@ -fsource-filename=$(srcdir)/$(basename $@).java $< | |
aa893047 | 634 | |
b0fa81ee TT |
635 | ## ################################################################ |
636 | ||
637 | ## This pulls in a number of variable and target definitions. | |
638 | include sources.am | |
3078e929 | 639 | |
aa893047 TT |
640 | ## ################################################################ |
641 | ||
ee9dd372 TT |
642 | ## |
643 | ## How to build header files. | |
644 | ## | |
645 | ||
b0fa81ee TT |
646 | ## We have special rules for certain headers. |
647 | omitted_headers = java/lang/ClassLoader.h java/lang/Thread.h \ | |
648 | java/lang/String.h java/lang/reflect/Constructor.h \ | |
649 | java/lang/reflect/Field.h java/lang/reflect/Method.h \ | |
650 | java/lang/reflect/Proxy.h gnu/gcj/runtime/ExtensionClassLoader.h | |
651 | ||
9dd668d2 | 652 | inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ |
d3cc3f10 | 653 | java/io/ObjectInputStream$$GetField.h \ |
7ef52736 | 654 | java/nio/DirectByteBufferImpl$$ReadWrite.h \ |
1e2a4850 MK |
655 | java/nio/channels/Pipe$$SinkChannel.h \ |
656 | java/nio/channels/Pipe$$SourceChannel.h \ | |
f4a2a1de | 657 | java/lang/VMProcess$ImmediateEOFInputStream.h \ |
d3cc3f10 | 658 | java/lang/reflect/Proxy$$ProxyData.h \ |
9b7fe786 BM |
659 | java/lang/reflect/Proxy$$ProxyType.h \ |
660 | gnu/java/net/PlainSocketImpl$$SocketInputStream.h \ | |
1e2a4850 MK |
661 | gnu/java/net/PlainSocketImpl$$SocketOutputStream.h \ |
662 | gnu/java/nio/PipeImpl$$SinkChannelImpl.h \ | |
97b8365c | 663 | gnu/java/nio/PipeImpl$$SourceChannelImpl.h |
ee9dd372 | 664 | |
d4da97d7 JJ |
665 | generic_header_files = $(ordinary_header_files) $(inner_nat_headers) \ |
666 | $(xlib_nat_headers) | |
667 | ||
668 | MYGCJH = gjavah | |
669 | ||
670 | $(generic_header_files): gcjh.stamp | |
671 | ||
672 | gcjh.stamp: classpath/lib/compile-classes | |
673 | if JAVA_MAINTAINER_MODE | |
674 | $(MYGCJH) --cni --all $(srcdir)/classpath/lib \ | |
675 | --cmdfile=$(srcdir)/headers.txt -d $(srcdir) --force | |
676 | endif | |
677 | echo > gcjh.stamp | |
678 | ||
97b8365c | 679 | nat_headers = $(ordinary_header_files) $(inner_nat_headers) |
b0fa81ee | 680 | nat_headers_install = $(ordinary_header_files) |
9dd668d2 | 681 | |
9365047a | 682 | xlib_nat_headers = $(gnu_awt_xlib_header_files) $(gnu_gcj_xlib_header_files) |
2622c79d | 683 | |
27e934d8 TT |
684 | ## Headers we maintain by hand and which we want to install. |
685 | extra_headers = java/lang/Object.h java/lang/Class.h | |
686 | ||
17ba19fe | 687 | $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h: |
7f7ba9bf TT |
688 | @: |
689 | ||
c64ccf4d AT |
690 | install-exec-hook: install-binPROGRAMS install-toolexeclibLTLIBRARIES \ |
691 | install-libexecsubPROGRAMS | |
97c074fd JJ |
692 | ## Support for libgcj_bc: dummy shared library used only at link-time. |
693 | if USE_LIBGCJ_BC | |
694 | ## Install libgcj_bc dummy lib in the target directory. We also need to delete | |
695 | ## libtool's .la file, this prevents libtool resetting the lib again | |
696 | ## later. | |
97c074fd | 697 | @echo Installing dummy lib libgcj_bc.so.1.0.0; \ |
02b8fc06 MK |
698 | rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ |
699 | mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \ | |
97c074fd | 700 | $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ |
02b8fc06 MK |
701 | -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \ |
702 | rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ | |
703 | $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \ | |
704 | rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la; | |
97c074fd | 705 | endif |
97b8365c | 706 | if BUILD_ECJ1 |
cef04d59 ME |
707 | ## Undo any prepending of the target prefix and transform |
708 | ## to the actual host's executable suffix. | |
52b213f3 | 709 | mv $(DESTDIR)$(libexecsubdir)/`echo ecjx | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` $(DESTDIR)$(libexecsubdir)/ecj1$(host_exeext) |
97b8365c | 710 | endif BUILD_ECJ1 |
97c074fd | 711 | |
27e934d8 TT |
712 | ## Install the headers. It is fairly ugly that we have to do this by |
713 | ## hand. | |
38d24731 | 714 | install_data_local_split = 50 |
27e934d8 TT |
715 | install-data-local: |
716 | $(PRE_INSTALL) | |
51d0a5cc TT |
717 | ## Install the .pc file. |
718 | @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \ | |
719 | file="libgcj-$${pc_version}.pc"; \ | |
d233eb7a | 720 | $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \ |
51d0a5cc TT |
721 | echo " $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \ |
722 | $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file | |
ab847133 TT |
723 | ## We use a GNU make trick here so that we don't go over the command |
724 | ## length limit of some shells. | |
0c7829a9 | 725 | @echo Creating list of headers to install... |
579ed987 | 726 | @: $(call write_entries_to_file,$(nat_headers_install) $(extra_headers),tmp-ilist) |
38d24731 RW |
727 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ |
728 | while read file; do echo "$$file $$file"; done < tmp-ilist | \ | |
729 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | |
730 | $(AWK) 'BEGIN { files["."] = "" } \ | |
731 | { files[$$2] = files[$$2] " " $$1; \ | |
732 | if (++n[$$2] == $(install_data_local_split)) { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | |
733 | END { for (dir in files) print dir, files[dir] }' | \ | |
734 | while read dir files; do \ | |
735 | xfiles=; for file in $$files; do \ | |
736 | if test -f "$$file"; then xfiles="$$xfiles $$file"; \ | |
737 | else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ | |
738 | test -z "$$xfiles" || { \ | |
739 | test "x$$dir" = x. || { \ | |
740 | echo "$(mkinstalldirs) $(DESTDIR)$(gxx_include_dir)/$$dir"; \ | |
741 | $(mkinstalldirs) $(DESTDIR)$(gxx_include_dir)/$$dir; }; \ | |
742 | echo " $(INSTALL_DATA) $$xfiles $(DESTDIR)$(gxx_include_dir)/$$dir"; \ | |
743 | $(INSTALL_DATA) $$xfiles $(DESTDIR)$(gxx_include_dir)/$$dir; }; \ | |
27e934d8 | 744 | done |
ab847133 | 745 | -@rm -f tmp-ilist |
579ed987 | 746 | ## Install inner class headers. |
97b8365c TT |
747 | $(INSTALL_DATA) $(srcdir)/'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ |
748 | $(INSTALL_DATA) $(srcdir)/'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/ | |
749 | $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SinkChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ | |
750 | $(INSTALL_DATA) $(srcdir)/'java/nio/channels/Pipe$$SourceChannel.h' $(DESTDIR)$(gxx_include_dir)/java/nio/channels/ | |
751 | $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyData.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ | |
752 | $(INSTALL_DATA) $(srcdir)/'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(gxx_include_dir)/java/lang/reflect/ | |
753 | $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ | |
754 | $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ | |
755 | $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ | |
756 | $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ | |
7ef52736 | 757 | ## Don't install java/nio/DirectByteBufferImpl$$ReadWrite.h here. It's for internal use only. |
c9db365d JS |
758 | ## Install Python modules for aot-compile. |
759 | $(mkinstalldirs) $(DESTDIR)$(python_mod_dir); \ | |
760 | $(INSTALL_DATA) $(srcdir)/contrib/classfile.py \ | |
761 | $(DESTDIR)$(python_mod_dir)/classfile.py; \ | |
762 | $(INSTALL_DATA) contrib/aotcompile.py \ | |
763 | $(DESTDIR)$(python_mod_dir)/aotcompile.py; | |
764 | if CREATE_JAVA_HOME | |
765 | ## Create sdk style directories | |
766 | $(mkinstalldirs) $(DESTDIR)$(JRE_BIN_DIR) | |
767 | $(mkinstalldirs) $(DESTDIR)$(SDK_BIN_DIR) | |
768 | $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR) | |
769 | $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU) | |
770 | $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR) | |
771 | $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/$(OS) | |
772 | relative() { \ | |
773 | $(PERL) -e 'use File::Spec; \ | |
774 | print File::Spec->abs2rel($$ARGV[0], $$ARGV[1])' $$1 $$2; \ | |
775 | }; \ | |
776 | RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(SDK_BIN_DIR)); \ | |
777 | ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
778 | $(DESTDIR)$(SDK_BIN_DIR)/java; \ | |
779 | ln -sf $$RELATIVE/`echo gjar | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
780 | $(DESTDIR)$(SDK_BIN_DIR)/jar; \ | |
781 | ln -sf $$RELATIVE/`echo gjdoc | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
782 | $(DESTDIR)$(SDK_BIN_DIR)/javadoc; \ | |
783 | ln -sf $$RELATIVE/`echo grmic | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
784 | $(DESTDIR)$(SDK_BIN_DIR)/rmic; \ | |
785 | ln -sf $$RELATIVE/`echo gjavah | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
786 | $(DESTDIR)$(SDK_BIN_DIR)/javah; \ | |
c9db365d JS |
787 | ln -sf $$RELATIVE/`echo gappletviewer | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ |
788 | $(DESTDIR)$(SDK_BIN_DIR)/appletviewer; \ | |
789 | ln -sf $$RELATIVE/`echo gjarsigner | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
790 | $(DESTDIR)$(SDK_BIN_DIR)/jarsigner; \ | |
791 | ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
792 | $(DESTDIR)$(SDK_BIN_DIR)/rmiregistry; \ | |
793 | ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
794 | $(DESTDIR)$(SDK_BIN_DIR)/keytool; \ | |
795 | ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
796 | $(DESTDIR)$(SDK_BIN_DIR)/orbd; \ | |
797 | ln -sf $$RELATIVE/`echo gnative2ascii | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
798 | $(DESTDIR)$(SDK_BIN_DIR)/native2ascii; \ | |
799 | ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
800 | $(DESTDIR)$(SDK_BIN_DIR)/rmid; \ | |
801 | ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
802 | $(DESTDIR)$(SDK_BIN_DIR)/tnameserv; \ | |
803 | ln -sf $$RELATIVE/`echo gserialver | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
804 | $(DESTDIR)$(SDK_BIN_DIR)/serialver; \ | |
805 | RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(JRE_BIN_DIR)); \ | |
806 | ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
807 | $(DESTDIR)$(JRE_BIN_DIR)/rmiregistry; \ | |
808 | ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
809 | $(DESTDIR)$(JRE_BIN_DIR)/keytool; \ | |
810 | ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
811 | $(DESTDIR)$(JRE_BIN_DIR)/java; \ | |
812 | ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
813 | $(DESTDIR)$(JRE_BIN_DIR)/orbd; \ | |
814 | ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
815 | $(DESTDIR)$(JRE_BIN_DIR)/rmid; \ | |
816 | ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ | |
817 | $(DESTDIR)$(JRE_BIN_DIR)/tnameserv; \ | |
818 | $(mkinstalldirs) $(DESTDIR)$(JVM_JAR_DIR); \ | |
819 | version=$(JAVA_VERSION).$(BUILD_VERSION); \ | |
820 | working_dir=`pwd`; \ | |
821 | cd $(DESTDIR)$(JVM_JAR_DIR); \ | |
728a8a74 AH |
822 | RELATIVE=$$(relative $(DESTDIR)$(JRE_LIB_DIR) \ |
823 | $(DESTDIR)$(JVM_JAR_DIR)); \ | |
c9db365d JS |
824 | for jarname in jaas jce jdbc-stdext jndi jndi-cos jndi-dns \ |
825 | jndi-ldap jndi-rmi jsse sasl; \ | |
826 | do \ | |
728a8a74 | 827 | ln -sf $$RELATIVE/rt.jar $$jarname-$$version.jar; \ |
c9db365d | 828 | done; \ |
728a8a74 AH |
829 | RELATIVE=$$(relative $(DESTDIR)$(jardir) \ |
830 | $(DESTDIR)$(JVM_JAR_DIR)); \ | |
c9db365d JS |
831 | for jar in *-$$version.jar; \ |
832 | do \ | |
833 | ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|-$(JAVA_VERSION).jar|g"); \ | |
834 | ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|.jar|g"); \ | |
835 | done; \ | |
836 | cd $$working_dir; \ | |
837 | $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/security; \ | |
6eaf85d0 | 838 | RELATIVE=$$(relative $(DESTDIR)$(toolexeclibdir)/security \ |
c9db365d JS |
839 | $(DESTDIR)$(JRE_LIB_DIR)/security); \ |
840 | cd $(DESTDIR)$(JRE_LIB_DIR)/security; \ | |
841 | ln -sf $$RELATIVE/classpath.security java.security; \ | |
842 | cd $$working_dir; \ | |
843 | $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/linux; \ | |
844 | $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client; \ | |
845 | $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server; \ | |
846 | $(mkinstalldirs) $(DESTDIR)$(SDK_LIB_DIR); \ | |
728a8a74 | 847 | RELATIVE=$$(relative $(DESTDIR)$(datadir)/java \ |
c9db365d JS |
848 | $(DESTDIR)$(JRE_LIB_DIR)); \ |
849 | ln -sf $$RELATIVE/libgcj-$(gcc_version).jar \ | |
850 | $(DESTDIR)$(JRE_LIB_DIR)/rt.jar; \ | |
851 | RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ | |
852 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)); \ | |
853 | ln -sf $$RELATIVE/libjawt.so \ | |
854 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/libjawt.so; \ | |
855 | RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ | |
856 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client); \ | |
857 | ln -sf $$RELATIVE/libjvm.so \ | |
858 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client/libjvm.so; \ | |
859 | RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ | |
860 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server); \ | |
861 | ln -sf $$RELATIVE/libjvm.so \ | |
862 | $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server/libjvm.so; \ | |
728a8a74 | 863 | RELATIVE=$$(relative $(DESTDIR)$(datadir)/java \ |
c9db365d JS |
864 | $(DESTDIR)$(SDK_LIB_DIR)); \ |
865 | ln -sf $$RELATIVE/libgcj-tools-$(gcc_version).jar \ | |
866 | $(DESTDIR)$(SDK_LIB_DIR)/tools.jar; \ | |
867 | for headername in jawt jni; do \ | |
ee721644 | 868 | DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/`echo gcj | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ |
c9db365d | 869 | -print-file-name=include/$$headername.h)); \ |
728a8a74 | 870 | RELATIVE=$$(relative $$DIRECTORY \ |
c9db365d JS |
871 | $(DESTDIR)$(SDK_INCLUDE_DIR)); \ |
872 | ln -sf $$RELATIVE/$$headername.h \ | |
873 | $(DESTDIR)$(SDK_INCLUDE_DIR)/$$headername.h; \ | |
874 | done; \ | |
875 | for headername in jawt_md jni_md; do \ | |
ee721644 | 876 | DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/`echo gcj | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ |
c9db365d | 877 | -print-file-name=include/$$headername.h)); \ |
728a8a74 | 878 | RELATIVE=$$(relative $$DIRECTORY \ |
c9db365d JS |
879 | $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \ |
880 | ln -sf $$RELATIVE/$$headername.h \ | |
881 | $(DESTDIR)$(SDK_INCLUDE_DIR)/linux/$$headername.h; \ | |
882 | done; \ | |
728a8a74 | 883 | RELATIVE=$$(relative $(DESTDIR)$(datadir)/java \ |
6eaf85d0 | 884 | $(DESTDIR)$(JVM_ROOT_DIR)/$(SDK_DIR)); |
c9db365d | 885 | endif |
ee9dd372 TT |
886 | |
887 | ## ################################################################ | |
888 | ||
889 | ## | |
890 | ## Additional `check' targets for maintainer convenience. | |
891 | ## | |
892 | ||
893 | ## This is used for maintainer-check. FIXME: should set from | |
894 | ## configure using AC_CHECK_TOOL. | |
895 | NM = nm | |
896 | ||
897 | ## Try to make sure our library doesn't stomp the namespace. | |
a3ffcff3 TT |
898 | maintainer-check: libgcj.la |
899 | $(NM) .libs/libgcj.a | grep ' T ' \ | |
ee9dd372 TT |
900 | ## Anything with `4java' is assumed to be from .java source. |
901 | | grep -v '4java' \ | |
902 | ## Anything with Jv is ok. | |
903 | | grep -v 'Jv' \ | |
904 | ## `terminate' and `unexpected' are part of the runtime. | |
905 | | grep -v 'terminate__Fv' | grep -v 'unexpected__Fv' | |
906 | ||
907 | ## This rule can be used to see if the headers are more or less | |
908 | ## correct. | |
e9bbd9d7 | 909 | header-check: libgcj-$(gcc_version).jar $(nat_headers) |
ee9dd372 TT |
910 | rm -f htest.cc; \ |
911 | for h in $(nat_headers); do \ | |
912 | echo "#include \"$$h\"" >> htest.cc; \ | |
913 | done; \ | |
914 | $(CXXCOMPILE) -fsyntax-only htest.cc | |
915 | ||
3642e753 TT |
916 | ## This rule can be used to see if all the .class files verify |
917 | ## correctly. | |
e9bbd9d7 | 918 | class-check: libgcj-$(gcc_version).jar |
3642e753 TT |
919 | @ok=0; find . -name '*.class' -print | fgrep -v testsuite | \ |
920 | while read f; do \ | |
921 | echo "$(GCJ_WITH_FLAGS) --syntax-only $$f"; \ | |
922 | if $(GCJ_WITH_FLAGS) --syntax-only $$f; then \ | |
923 | :; else ok=1; fi; \ | |
924 | done; exit $$ok | |
ee9dd372 | 925 | |
0c7829a9 ME |
926 | ## This rule checks whether write_entries_to_file works properly. |
927 | write-entries-to-file-check: | |
928 | @echo Creating list of files to link... | |
929 | @: $(call write_entries_to_file,$(libgcj_la_OBJECTS) $(libgcj_la_LIBADD),libgcj.objectlist) | |
930 | ||
ee9dd372 TT |
931 | ## ################################################################ |
932 | ||
933 | ## | |
934 | ## The `jv-convert' program and code to rebuild the converter header | |
935 | ## files. | |
936 | ## | |
937 | ||
938 | ## it only makes sense to try to rebuild the JIS .h files on native | |
939 | ## systems. | |
940 | if NATIVE | |
941 | if MAINTAINER_MODE | |
4bf95cef | 942 | noinst_PROGRAMS += gen-from-JIS |
e3f92d3b MK |
943 | |
944 | gen_from_JIS_SOURCES = \ | |
945 | gnu/gcj/convert/gen-from-JIS.c \ | |
de777675 RW |
946 | gnu/gcj/convert/make-trie.c \ |
947 | gnu/gcj/convert/make-trie.h | |
e3f92d3b MK |
948 | |
949 | gen_from_JIS_DEPENDENCIES = \ | |
950 | gnu/gcj/convert/JIS0201.h \ | |
951 | gnu/gcj/convert/JIS0208.h \ | |
952 | gnu/gcj/convert/JIS0212.h | |
953 | ||
954 | $(srcdir)/gnu/gcj/convert/JIS0208_to_Unicode.cc: ./gen-from-JIS$(EXEEXT) | |
955 | ./gen-from-JIS JIS0208 >$(srcdir)/gnu/gcj/convert/JIS0208_to_Unicode.cc | |
956 | ||
957 | $(srcdir)/gnu/gcj/convert/JIS0212_to_Unicode.cc: ./gen-from-JIS$(EXEEXT) | |
958 | ./gen-from-JIS JIS0212 >$(srcdir)/gnu/gcj/convert/JIS0212_to_Unicode.cc | |
959 | ||
960 | $(srcdir)/gnu/gcj/convert/Unicode_to_JIS.cc: ./gen-from-JIS$(EXEEXT) | |
961 | ./gen-from-JIS toJIS >$(srcdir)/gnu/gcj/convert/Unicode_to_JIS.cc | |
962 | ||
963 | # The Unicode consortium does not permit re-distributing the file JIS0201.TXT. | |
964 | # You can get it from | |
965 | # ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/ | |
966 | ||
967 | $(srcdir)/gnu/gcj/convert/JIS0201.h: # gnu/gcj/convert/JIS0201.TXT | |
968 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0201; \ | |
969 | tr -d '\r' <$(srcdir)/gnu/gcj/convert/JIS0201.TXT \ | |
970 | | sed -n -e 's|\(0x..\).*\(0x....\).*#\(.*\)$$|MAP(0x00, \1, \2) /*\3 */|p' \ | |
971 | >> tmp-0201; \ | |
972 | mv tmp-0201 $(srcdir)/gnu/gcj/convert/JIS0201.h | |
973 | ||
974 | # The Unicode consortium does not permit re-distributing the file JIS0208.TXT. | |
975 | # You can get it from | |
976 | # ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/ | |
977 | ||
978 | $(srcdir)/gnu/gcj/convert/JIS0208.h: # gnu/gcj/convert/JIS0208.TXT | |
979 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0208; \ | |
980 | tr -d '\r' <$(srcdir)/gnu/gcj/convert/JIS0208.TXT \ | |
981 | | sed -n -e 's|\(0x....\).*0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\2, 0x\3, \4) /*\5 */|p' \ | |
982 | >> tmp-0208; \ | |
983 | mv tmp-0208 $(srcdir)/gnu/gcj/convert/JIS0208.h | |
984 | ||
985 | # The Unicode consortium does not permit re-distributing the file JIS0212.TXT. | |
986 | # You can get it from | |
987 | # ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/ | |
988 | ||
989 | $(srcdir)/gnu/gcj/convert/JIS0212.h: # gnu/gcj/convert/JIS0212.TXT | |
990 | echo '/* This file is automatically generated from Unicode tables */' > tmp-0212; \ | |
991 | tr -d '\r' <$(srcdir)/gnu/gcj/convert/JIS0212.TXT \ | |
992 | | sed -n -e 's|0x\(..\)\(..\).*\(0x....\).*#\(.*\)$$|MAP(0x\1, 0x\2, \3) /*\4 */|p' \ | |
993 | >> tmp-0212; \ | |
994 | mv tmp-0212 $(srcdir)/gnu/gcj/convert/JIS0212.h | |
995 | ||
ee9dd372 TT |
996 | endif |
997 | endif | |
998 | ||
ee9dd372 TT |
999 | |
1000 | jv_convert_SOURCES = | |
d5d9a8b6 TT |
1001 | ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We |
1002 | ## need this because we are explicitly using libtool to link using the | |
1003 | ## `.la' file. | |
f994389b | 1004 | jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ |
f202305d | 1005 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1006 | jv_convert_LINK = $(GCJLINK) $(jv_convert_LDFLAGS) |
eb9c4fdf AO |
1007 | ## We don't explicitly link in the libraries we need; libgcj.la brings |
1008 | ## in all dependencies. We need the -L so that gcj can find libgcj | |
1009 | ## with `-lgcj', but it must come first, otherwise the -L flags | |
1010 | ## brought in from libgcj.la would cause the install directories to be | |
1011 | ## searched before the build-tree ones, and we'd get errors because of | |
1012 | ## different libraries with the same SONAME from picky linkers such as | |
1013 | ## Solaris'. FIXME: should be _libs on some systems. | |
1014 | jv_convert_LDADD = -L$(here)/.libs libgcj.la | |
81d4a072 TT |
1015 | ## Depend on the spec file to make sure it is up to date before |
1016 | ## linking this program. | |
e3f92d3b | 1017 | jv_convert_DEPENDENCIES = libgcj.la libgcj.spec |
6a92b6c7 DK |
1018 | if BUILD_SUBLIBS |
1019 | jv_convert_DEPENDENCIES += libgcj-noncore.la | |
1020 | endif | |
ee9dd372 | 1021 | |
b0fa81ee | 1022 | gcj_dbtool_SOURCES = \ |
b0fa81ee TT |
1023 | gnu/gcj/tools/gcj_dbtool/natMain.cc |
1024 | ||
36739040 TT |
1025 | ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We |
1026 | ## need this because we are explicitly using libtool to link using the | |
1027 | ## `.la' file. | |
1028 | gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \ | |
f202305d | 1029 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1030 | gcj_dbtool_LINK = $(GCJLINK) $(gcj_dbtool_LDFLAGS) |
36739040 TT |
1031 | ## We don't explicitly link in the libraries we need; libgcj.la brings |
1032 | ## in all dependencies. We need the -L so that gcj can find libgcj | |
1033 | ## with `-lgcj', but it must come first, otherwise the -L flags | |
1034 | ## brought in from libgcj.la would cause the install directories to be | |
1035 | ## searched before the build-tree ones, and we'd get errors because of | |
1036 | ## different libraries with the same SONAME from picky linkers such as | |
1037 | ## Solaris'. FIXME: should be _libs on some systems. | |
97b8365c | 1038 | gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la |
36739040 TT |
1039 | ## Depend on the spec file to make sure it is up to date before |
1040 | ## linking this program. | |
97b8365c | 1041 | gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec |
6a92b6c7 DK |
1042 | if BUILD_SUBLIBS |
1043 | gcj_dbtool_DEPENDENCIES += libgcj-noncore.la | |
1044 | endif | |
36739040 | 1045 | |
7f40378f DD |
1046 | gc_analyze_SOURCES = |
1047 | ||
1048 | ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We | |
1049 | ## need this because we are explicitly using libtool to link using the | |
1050 | ## `.la' file. | |
1051 | gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \ | |
f202305d | 1052 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1053 | gc_analyze_LINK = $(GCJLINK) $(gc_analyze_LDFLAGS) |
7f40378f DD |
1054 | ## See jv_convert_LDADD. |
1055 | gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la | |
1056 | ## Depend on the spec file to make sure it is up to date before | |
1057 | ## linking this program. | |
1058 | gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec | |
6a92b6c7 DK |
1059 | if BUILD_SUBLIBS |
1060 | gc_analyze_DEPENDENCIES += libgcj-noncore.la | |
1061 | endif | |
7f40378f | 1062 | |
e3f92d3b | 1063 | gij_SOURCES = |
58eb6e7c AG |
1064 | ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We |
1065 | ## need this because we are explicitly using libtool to link using the | |
1066 | ## `.la' file. | |
3b6d448d | 1067 | gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \ |
417e7bed AT |
1068 | -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \ |
1069 | $(extra_gij_ldflags) | |
84fec8a5 | 1070 | gij_LINK = $(GCJLINK) $(gij_LDFLAGS) |
eb9c4fdf | 1071 | ## See jv_convert_LDADD. |
e3f92d3b | 1072 | gij_LDADD = -L$(here)/.libs libgij.la |
58eb6e7c AG |
1073 | ## Depend on the spec file to make sure it is up to date before |
1074 | ## linking this program. | |
e3f92d3b | 1075 | gij_DEPENDENCIES = libgij.la |
58eb6e7c | 1076 | |
97b8365c | 1077 | ## Build an ecjx from a .jar. |
fda2cea1 | 1078 | ecjx_SOURCES = ecjx.cc |
97b8365c TT |
1079 | ## We use the BC ABI here so that we don't need to compile ecj.jar. |
1080 | ## Hopefully the user has compiled it into his system .db. | |
1081 | ## However, even if not it will run reasonably quickly. | |
83e7315b | 1082 | |
97b8365c TT |
1083 | ECJX_BASE_FLAGS = -findirect-dispatch \ |
1084 | --main=org.eclipse.jdt.internal.compiler.batch.GCCMain | |
1085 | ||
1086 | if NATIVE | |
1087 | ||
84fec8a5 | 1088 | ecjx_LINK = $(GCJLINK) $(ecjx_LDFLAGS) |
97b8365c TT |
1089 | |
1090 | if ENABLE_SHARED | |
1091 | ## Use ecj.jar at runtime. | |
1092 | ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR) | |
1093 | else !ENABLE_SHARED | |
1094 | ## Use ecj.jar at compile time. | |
125d9388 | 1095 | ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH) |
97b8365c TT |
1096 | endif !ENABLE_SHARED |
1097 | ||
6f611d52 | 1098 | ecjx_LDADD = -L$(here)/.libs $(extra_ldflags) |
97b8365c | 1099 | ecjx_DEPENDENCIES = libgcj.la libgcj.spec |
6a92b6c7 DK |
1100 | if BUILD_SUBLIBS |
1101 | ecjx_DEPENDENCIES += libgcj-noncore.la | |
1102 | endif | |
38fbab2a L |
1103 | if USE_LIBGCJ_BC |
1104 | ecjx_DEPENDENCIES += libgcj_bc.la | |
fda2cea1 JJ |
1105 | else |
1106 | ecjx_LDADD += libgcj.la | |
38fbab2a | 1107 | endif |
97b8365c TT |
1108 | |
1109 | else !NATIVE | |
1110 | ||
84fec8a5 | 1111 | ecjx_LINK = $(GCJ_FOR_ECJX_LINK) $(ecjx_LDFLAGS) |
97b8365c TT |
1112 | ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) |
1113 | ecjx_LDADD = | |
1114 | ecjx_DEPENDENCIES = | |
1115 | ||
1116 | endif !NATIVE | |
83e7315b | 1117 | |
27651ad3 TF |
1118 | ## This is a dummy definition. |
1119 | gappletviewer_SOURCES = | |
1120 | gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ | |
f202305d | 1121 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1122 | gappletviewer_LINK = $(GCJLINK) $(gappletviewer_LDFLAGS) |
27651ad3 TF |
1123 | ## See jv_convert_LDADD. |
1124 | gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la | |
27651ad3 TF |
1125 | gappletviewer_DEPENDENCIES = libgcj-tools.la |
1126 | ||
1127 | ## This is a dummy definition. | |
1128 | gjarsigner_SOURCES = | |
1129 | gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \ | |
f202305d | 1130 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1131 | gjarsigner_LINK = $(GCJLINK) $(gjarsigner_LDFLAGS) |
27651ad3 TF |
1132 | ## See jv_convert_LDADD. |
1133 | gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la | |
27651ad3 TF |
1134 | gjarsigner_DEPENDENCIES = libgcj-tools.la |
1135 | ||
1136 | ## This is a dummy definition. | |
1137 | gkeytool_SOURCES = | |
1138 | gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \ | |
f202305d | 1139 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1140 | gkeytool_LINK = $(GCJLINK) $(gkeytool_LDFLAGS) |
27651ad3 TF |
1141 | ## See jv_convert_LDADD. |
1142 | gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la | |
27651ad3 TF |
1143 | gkeytool_DEPENDENCIES = libgcj-tools.la |
1144 | ||
97b8365c TT |
1145 | ## This is a dummy definition. |
1146 | gjar_SOURCES = | |
1147 | gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \ | |
f202305d | 1148 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1149 | gjar_LINK = $(GCJLINK) $(gjar_LDFLAGS) |
97b8365c TT |
1150 | ## See jv_convert_LDADD. |
1151 | gjar_LDADD = -L$(here)/.libs libgcj-tools.la | |
1152 | gjar_DEPENDENCIES = libgcj-tools.la | |
1153 | ||
1154 | ## This is a dummy definition. | |
1155 | gjavah_SOURCES = | |
1156 | gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \ | |
f202305d | 1157 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1158 | gjavah_LINK = $(GCJLINK) $(gjavah_LDFLAGS) |
97b8365c TT |
1159 | ## See jv_convert_LDADD. |
1160 | gjavah_LDADD = -L$(here)/.libs libgcj-tools.la | |
1161 | gjavah_DEPENDENCIES = libgcj-tools.la | |
1162 | ||
20f326d7 TT |
1163 | ## This is a dummy definition. |
1164 | gcjh_SOURCES = | |
1165 | gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \ | |
f202305d | 1166 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1167 | gcjh_LINK = $(GCJLINK) $(gcjh_LDFLAGS) |
20f326d7 TT |
1168 | ## See jv_convert_LDADD. |
1169 | gcjh_LDADD = -L$(here)/.libs libgcj-tools.la | |
1170 | gcjh_DEPENDENCIES = libgcj-tools.la | |
1171 | ||
97b8365c TT |
1172 | ## This is a dummy definition. |
1173 | gnative2ascii_SOURCES = | |
1174 | gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \ | |
f202305d | 1175 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1176 | gnative2ascii_LINK = $(GCJLINK) $(gnative2ascii_LDFLAGS) |
97b8365c TT |
1177 | ## See jv_convert_LDADD. |
1178 | gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la | |
1179 | gnative2ascii_DEPENDENCIES = libgcj-tools.la | |
1180 | ||
1181 | ## This is a dummy definition. | |
1182 | gorbd_SOURCES = | |
1183 | gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \ | |
f202305d | 1184 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1185 | gorbd_LINK = $(GCJLINK) $(gorbd_LDFLAGS) |
97b8365c TT |
1186 | ## See jv_convert_LDADD. |
1187 | gorbd_LDADD = -L$(here)/.libs libgcj-tools.la | |
1188 | gorbd_DEPENDENCIES = libgcj-tools.la | |
1189 | ||
1190 | ## This is a dummy definition. | |
1191 | grmid_SOURCES = | |
1192 | grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \ | |
f202305d | 1193 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1194 | grmid_LINK = $(GCJLINK) $(grmid_LDFLAGS) |
97b8365c TT |
1195 | ## See jv_convert_LDADD. |
1196 | grmid_LDADD = -L$(here)/.libs libgcj-tools.la | |
1197 | grmid_DEPENDENCIES = libgcj-tools.la | |
1198 | ||
1199 | ## This is a dummy definition. | |
1200 | gserialver_SOURCES = | |
1201 | gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \ | |
f202305d | 1202 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1203 | gserialver_LINK = $(GCJLINK) $(gserialver_LDFLAGS) |
97b8365c TT |
1204 | ## See jv_convert_LDADD. |
1205 | gserialver_LDADD = -L$(here)/.libs libgcj-tools.la | |
1206 | gserialver_DEPENDENCIES = libgcj-tools.la | |
1207 | ||
1208 | ## This is a dummy definition. | |
1209 | gtnameserv_SOURCES = | |
1210 | gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \ | |
f202305d | 1211 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1212 | gtnameserv_LINK = $(GCJLINK) $(gtnameserv_LDFLAGS) |
97b8365c TT |
1213 | ## See jv_convert_LDADD. |
1214 | gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la | |
1215 | gtnameserv_DEPENDENCIES = libgcj-tools.la | |
1216 | ||
1217 | ## This is a dummy definition. | |
1218 | grmic_SOURCES = | |
1219 | grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \ | |
f202305d | 1220 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1221 | grmic_LINK = $(GCJLINK) $(grmic_LDFLAGS) |
97b8365c TT |
1222 | ## See jv_convert_LDADD. |
1223 | grmic_LDADD = -L$(here)/.libs libgcj-tools.la | |
1224 | grmic_DEPENDENCIES = libgcj-tools.la | |
1225 | ||
1226 | ## This is a dummy definition. | |
1227 | grmiregistry_SOURCES = | |
1228 | grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \ | |
f202305d | 1229 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) |
84fec8a5 | 1230 | grmiregistry_LINK = $(GCJLINK) $(grmiregistry_LDFLAGS) |
97b8365c TT |
1231 | ## See jv_convert_LDADD. |
1232 | grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la | |
1233 | grmiregistry_DEPENDENCIES = libgcj-tools.la | |
1234 | ||
cd6d4007 MK |
1235 | ## This is a dummy definition. |
1236 | gjdoc_SOURCES = | |
1237 | gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \ | |
1238 | -Djava.class.path=$(ANTLR_JAR) \ | |
1239 | -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) | |
84fec8a5 | 1240 | gjdoc_LINK = $(GCJLINK) $(gjdoc_LDFLAGS) |
cd6d4007 MK |
1241 | ## See jv_convert_LDADD. |
1242 | gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la | |
1243 | gjdoc_DEPENDENCIES = libgcj-tools.la | |
1244 | ||
ee9dd372 | 1245 | ## ################################################################ |
86acf60c DD |
1246 | if INTERPRETER |
1247 | nat_jdwp_source_files = \ | |
1248 | gnu/classpath/jdwp/natVMFrame.cc \ | |
1249 | gnu/classpath/jdwp/natVMMethod.cc \ | |
1250 | gnu/classpath/jdwp/natVMVirtualMachine.cc | |
ee9dd372 | 1251 | |
86acf60c DD |
1252 | nat_jvmti_source_files = \ |
1253 | gnu/gcj/jvmti/natBreakpoint.cc \ | |
1254 | gnu/gcj/jvmti/natNormalBreakpoint.cc | |
1255 | else | |
1256 | nat_jdwp_source_files = | |
1257 | nat_jvmti_source_files = | |
1258 | endif | |
ee9dd372 | 1259 | ## This lists all the C++ source files in subdirectories. |
a0e894a8 | 1260 | nat_source_files = \ |
86acf60c | 1261 | $(nat_jdwp_source_files) \ |
97b8365c TT |
1262 | gnu/classpath/natConfiguration.cc \ |
1263 | gnu/classpath/natSystemProperties.cc \ | |
1264 | gnu/classpath/natVMStackWalker.cc \ | |
a11e2c22 | 1265 | gnu/gcj/natCore.cc \ |
ee9dd372 | 1266 | gnu/gcj/convert/JIS0208_to_Unicode.cc \ |
a0e894a8 TT |
1267 | gnu/gcj/convert/JIS0212_to_Unicode.cc \ |
1268 | gnu/gcj/convert/Unicode_to_JIS.cc \ | |
946efde1 | 1269 | gnu/gcj/convert/natIconv.cc \ |
a0e894a8 TT |
1270 | gnu/gcj/convert/natInput_EUCJIS.cc \ |
1271 | gnu/gcj/convert/natInput_SJIS.cc \ | |
1272 | gnu/gcj/convert/natOutput_EUCJIS.cc \ | |
1273 | gnu/gcj/convert/natOutput_SJIS.cc \ | |
6c80c45e TT |
1274 | gnu/gcj/io/natSimpleSHSStream.cc \ |
1275 | gnu/gcj/io/shs.cc \ | |
86acf60c | 1276 | $(nat_jvmti_source_files) \ |
eeedeb5a | 1277 | gnu/gcj/runtime/natFinalizerThread.cc \ |
8107bcf9 | 1278 | gnu/gcj/runtime/natSharedLibLoader.cc \ |
b149e89e | 1279 | gnu/gcj/runtime/natSystemClassLoader.cc \ |
50cc5dd2 | 1280 | gnu/gcj/runtime/natStringBuffer.cc \ |
36739040 | 1281 | gnu/gcj/util/natDebug.cc \ |
7f40378f | 1282 | gnu/gcj/util/natGCInfo.cc \ |
74fa958e | 1283 | gnu/java/lang/natMainThread.cc \ |
97b8365c TT |
1284 | gnu/java/lang/management/natVMClassLoadingMXBeanImpl.cc \ |
1285 | gnu/java/lang/management/natVMCompilationMXBeanImpl.cc \ | |
1286 | gnu/java/lang/management/natVMGarbageCollectorMXBeanImpl.cc \ | |
1287 | gnu/java/lang/management/natVMMemoryMXBeanImpl.cc \ | |
1288 | gnu/java/lang/management/natVMMemoryManagerMXBeanImpl.cc \ | |
1289 | gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc \ | |
e1bea0c0 | 1290 | gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc \ |
97b8365c TT |
1291 | gnu/java/lang/management/natVMRuntimeMXBeanImpl.cc \ |
1292 | gnu/java/lang/management/natVMThreadMXBeanImpl.cc \ | |
4a503716 MK |
1293 | gnu/java/net/natPlainDatagramSocketImpl.cc \ |
1294 | gnu/java/net/natPlainSocketImpl.cc \ | |
85aa13b2 | 1295 | gnu/java/net/protocol/core/natCoreInputStream.cc \ |
463c03f1 GB |
1296 | gnu/java/nio/natVMPipe.cc \ |
1297 | gnu/java/nio/natVMSelector.cc \ | |
51914674 | 1298 | gnu/java/nio/natNIOServerSocket.cc \ |
97b8365c | 1299 | gnu/java/nio/natVMChannel.cc \ |
76c88fd9 | 1300 | gnu/java/nio/channels/natFileChannelImpl.cc \ |
dc6a0b2d | 1301 | gnu/java/security/jce/prng/natVMSecureRandom.cc \ |
a0e894a8 | 1302 | java/io/natFile.cc \ |
463c03f1 | 1303 | java/io/natVMObjectInputStream.cc \ |
827452ae | 1304 | java/io/natVMObjectStreamClass.cc \ |
a0e894a8 TT |
1305 | java/lang/natCharacter.cc \ |
1306 | java/lang/natClass.cc \ | |
58eb6e7c | 1307 | java/lang/natClassLoader.cc \ |
42962a48 | 1308 | java/lang/natConcreteProcess.cc \ |
463c03f1 GB |
1309 | java/lang/natVMDouble.cc \ |
1310 | java/lang/natVMFloat.cc \ | |
a0e894a8 TT |
1311 | java/lang/natMath.cc \ |
1312 | java/lang/natObject.cc \ | |
1313 | java/lang/natRuntime.cc \ | |
1314 | java/lang/natString.cc \ | |
cd6d4007 | 1315 | java/lang/natAbstractStringBuffer.cc \ |
a0e894a8 TT |
1316 | java/lang/natSystem.cc \ |
1317 | java/lang/natThread.cc \ | |
97b8365c | 1318 | java/lang/natThreadLocal.cc \ |
b54a2715 | 1319 | java/lang/natVMClassLoader.cc \ |
f4a2a1de | 1320 | java/lang/natVMProcess.cc \ |
18744d9b | 1321 | java/lang/natVMThrowable.cc \ |
2b3d3db6 | 1322 | java/lang/ref/natReference.cc \ |
a0e894a8 | 1323 | java/lang/reflect/natArray.cc \ |
0f918fea | 1324 | java/lang/reflect/natConstructor.cc \ |
a0e894a8 TT |
1325 | java/lang/reflect/natField.cc \ |
1326 | java/lang/reflect/natMethod.cc \ | |
97b8365c | 1327 | java/lang/reflect/natVMProxy.cc \ |
adefdaca | 1328 | java/net/natVMInetAddress.cc \ |
97b8365c TT |
1329 | java/net/natVMNetworkInterface.cc \ |
1330 | java/net/natVMURLConnection.cc \ | |
628cacef | 1331 | java/nio/channels/natVMChannels.cc \ |
8086b65d | 1332 | java/nio/natVMDirectByteBufferImpl.cc \ |
464fc7a1 | 1333 | java/security/natVMAccessController.cc \ |
be6415be | 1334 | java/security/natVMAccessControlState.cc \ |
a0e894a8 | 1335 | java/text/natCollator.cc \ |
ffe2e220 | 1336 | java/util/natVMTimeZone.cc \ |
97b8365c | 1337 | java/util/concurrent/atomic/natAtomicLong.cc \ |
92c91cf7 | 1338 | java/util/logging/natLogger.cc \ |
0ffac832 | 1339 | java/util/zip/natDeflater.cc \ |
97b8365c TT |
1340 | java/util/zip/natInflater.cc \ |
1341 | sun/misc/natUnsafe.cc | |
ee9dd372 | 1342 | |
ff78c80b | 1343 | xlib_nat_source_files = \ |
2622c79d RR |
1344 | gnu/gcj/xlib/natClip.cc \ |
1345 | gnu/gcj/xlib/natColormap.cc \ | |
1346 | gnu/gcj/xlib/natDisplay.cc \ | |
1347 | gnu/gcj/xlib/natDrawable.cc \ | |
1348 | gnu/gcj/xlib/natFont.cc \ | |
1349 | gnu/gcj/xlib/natGC.cc \ | |
1350 | gnu/gcj/xlib/natPixmap.cc \ | |
1351 | gnu/gcj/xlib/natScreen.cc \ | |
1352 | gnu/gcj/xlib/natVisual.cc \ | |
1353 | gnu/gcj/xlib/natWMSizeHints.cc \ | |
1354 | gnu/gcj/xlib/natWindow.cc \ | |
1355 | gnu/gcj/xlib/natWindowAttributes.cc \ | |
1356 | gnu/gcj/xlib/natXAnyEvent.cc \ | |
1357 | gnu/gcj/xlib/natXButtonEvent.cc \ | |
1358 | gnu/gcj/xlib/natXColor.cc \ | |
1359 | gnu/gcj/xlib/natXConfigureEvent.cc \ | |
1360 | gnu/gcj/xlib/natXException.cc \ | |
1361 | gnu/gcj/xlib/natXExposeEvent.cc \ | |
1362 | gnu/gcj/xlib/natXImage.cc \ | |
1363 | gnu/gcj/xlib/natXUnmapEvent.cc | |
1364 | ||
ee9dd372 TT |
1365 | ## ################################################################ |
1366 | ||
f0d87cda TT |
1367 | ## |
1368 | ## Creating and installing sources.zip | |
1369 | ## | |
1370 | ||
1371 | ## Create a zip holding all the sources. This can be meaningfully | |
1372 | ## used in Eclipse. | |
1373 | src.zip: | |
1374 | -rm -f src.zip | |
1375 | here=`pwd`; \ | |
510a8dd5 TF |
1376 | ( \ |
1377 | ( cd $(srcdir)/classpath; \ | |
97b8365c | 1378 | find java gnu javax org sun -name '*.java' -print | \ |
f0d87cda TT |
1379 | while read file; do \ |
1380 | ## Ugly code to avoid "echo -C". Must separate each entry by a newline | |
1381 | ## Gross but easy. | |
1382 | echo "x-C" | sed -e 's/^.//'; \ | |
510a8dd5 | 1383 | echo $(srcdir)/classpath; \ |
f0d87cda TT |
1384 | echo $$file; \ |
1385 | done ); \ | |
97b8365c TT |
1386 | ( cd $(srcdir)/classpath/external/sax; \ |
1387 | find org -name '*.java' -print | \ | |
1388 | while read file; do \ | |
1389 | echo "x-C" | sed -e 's/^.//'; \ | |
1390 | echo $(srcdir)/classpath/external/sax; \ | |
1391 | echo $$file; \ | |
1392 | done ); \ | |
1393 | ( cd $(srcdir)/classpath/external/relaxngDatatype; \ | |
1394 | find org -name '*.java' -print | \ | |
1395 | while read file; do \ | |
1396 | echo "x-C" | sed -e 's/^.//'; \ | |
1397 | echo $(srcdir)/classpath/external/relaxngDatatype; \ | |
1398 | echo $$file; \ | |
1399 | done ); \ | |
1400 | ( cd $(srcdir)/classpath/external/w3c_dom; \ | |
1401 | find org -name '*.java' -print | \ | |
1402 | while read file; do \ | |
1403 | echo "x-C" | sed -e 's/^.//'; \ | |
1404 | echo $(srcdir)/classpath/external/w3c_dom; \ | |
1405 | echo $$file; \ | |
1406 | done ); \ | |
f0d87cda | 1407 | ## Now the build tree. |
510a8dd5 TF |
1408 | ( cd classpath; \ |
1409 | find gnu java -name '*.java' -print | \ | |
1410 | while read file; do \ | |
1411 | echo "x-C" | sed -e 's/^.//'; \ | |
1412 | echo `pwd`; \ | |
1413 | echo $$file; \ | |
1414 | done ); \ | |
1415 | ) | \ | |
76c6ea0c TT |
1416 | ## Many of the above circumlocutions were because ZIP used to be a |
1417 | ## relative path to fastjar. It didn't seem worthwhile to change the | |
1418 | ## code when we moved to an external jar. | |
1419 | $(JAR) -cfM@ $$here/src.zip | |
510a8dd5 TF |
1420 | ## Override GNU Classpath sources with libgcj replacements. |
1421 | here=`pwd`; \ | |
1422 | ( \ | |
1423 | ( cd $(srcdir); \ | |
1424 | find gnu java -name '*.java' -print | \ | |
1425 | while read file; do \ | |
1426 | echo "x-C" | sed -e 's/^.//'; \ | |
1427 | echo $(srcdir); \ | |
1428 | echo $$file; \ | |
1429 | done ); \ | |
1430 | ) | \ | |
76c6ea0c | 1431 | $(JAR) -ufM@ $$here/src.zip |
f0d87cda TT |
1432 | |
1433 | ## We use a variable for this in case the user wants to override it. | |
1434 | sourcesdir = $(jardir) | |
1435 | ||
1436 | install-src.zip: src.zip | |
e9bbd9d7 | 1437 | $(INSTALL_DATA) src.zip $(DESTDIR)$(sourcesdir)/src-$(gcc_version).zip |
f0d87cda TT |
1438 | |
1439 | ||
1440 | ## ################################################################ | |
1441 | ||
480222b5 TT |
1442 | ## |
1443 | ## Dependency tracking madness. | |
1444 | ## | |
1445 | ||
480222b5 | 1446 | ## This is an evil hack to work around an automake limitation. We |
b0fa81ee TT |
1447 | ## need to ensure that all CNI headers are built, not just the ones |
1448 | ## used internally by libgcj. We can't make the .o files depend on | |
1449 | ## nat_headers, because in that case we'll force a complete rebuild of | |
1450 | ## the C++ code whenever any .java file is touched. So instead we | |
1451 | ## have a dummy rule which is only used once, namely the first time a | |
1452 | ## build is done. On subsequent builds, the dependency tracking for | |
1453 | ## the .cc compilations will have picked up the .h files, and these | |
1454 | ## will be built directly as needed. | |
1455 | ||
1456 | headers.stamp: | |
1457 | ## Note that we don't use a real dependency here, since we don't want | |
1458 | ## to rebuild all the headers here when the header list changes. If | |
1459 | ## we did rebuild here, then any addition of a .java file would cause | |
1460 | ## a large number of recompilations. | |
1461 | $(MAKE) create-headers | |
1462 | @echo > headers.stamp | |
1463 | ||
1464 | headers_to_make = $(nat_headers) | |
1465 | if XLIB_AWT | |
1466 | headers_to_make += $(xlib_nat_headers) | |
1467 | endif | |
1468 | ||
1469 | create-headers: $(headers_to_make) | |
1470 | ||
1471 | .PHONY: create-headers | |
1472 | ||
1473 | $(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp | |
c69094e1 | 1474 | $(libgij_la_OBJECTS): headers.stamp |
fb5b5d97 | 1475 | $(libjvm_la_OBJECTS): headers.stamp |
480222b5 TT |
1476 | |
1477 | ## ################################################################ | |
1478 | ||
ee9dd372 TT |
1479 | ## |
1480 | ## This section is for make and multilib madness. | |
1481 | ## | |
1482 | ||
1483 | # Work around what appears to be a GNU make bug handling MAKEFLAGS | |
1484 | # values defined in terms of make variables, as is the case for CC and | |
1485 | # friends when we are called from the top level Makefile. | |
1486 | AM_MAKEFLAGS = \ | |
1487 | "AR_FLAGS=$(AR_FLAGS)" \ | |
1488 | "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ | |
1489 | "CFLAGS=$(CFLAGS)" \ | |
1490 | "CXXFLAGS=$(CXXFLAGS)" \ | |
4a2e2916 | 1491 | "CPPFLAGS=$(CPPFLAGS)" \ |
ee9dd372 TT |
1492 | "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ |
1493 | "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ | |
1494 | "INSTALL=$(INSTALL)" \ | |
1495 | "INSTALL_DATA=$(INSTALL_DATA)" \ | |
1496 | "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ | |
1497 | "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ | |
bbf65529 | 1498 | "GCJFLAGS=$(GCJFLAGS)" \ |
ee9dd372 TT |
1499 | "LDFLAGS=$(LDFLAGS)" \ |
1500 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
1501 | "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ | |
1502 | "MAKE=$(MAKE)" \ | |
1503 | "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ | |
1504 | "PICFLAG=$(PICFLAG)" \ | |
1505 | "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ | |
1506 | "SHELL=$(SHELL)" \ | |
6e6958dc | 1507 | "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ |
ee9dd372 | 1508 | "exec_prefix=$(exec_prefix)" \ |
1f542826 | 1509 | "datadir=$(datadir)" \ |
ee9dd372 TT |
1510 | "infodir=$(infodir)" \ |
1511 | "libdir=$(libdir)" \ | |
28c3de64 | 1512 | "mandir=$(mandir)" \ |
ee9dd372 | 1513 | "prefix=$(prefix)" \ |
dafb7f3f | 1514 | "gxx_include_dir=$(gxx_include_dir)" \ |
ee9dd372 TT |
1515 | "AR=$(AR)" \ |
1516 | "AS=$(AS)" \ | |
ee9dd372 TT |
1517 | "LD=$(LD)" \ |
1518 | "LIBCFLAGS=$(LIBCFLAGS)" \ | |
1519 | "NM=$(NM)" \ | |
1520 | "PICFLAG=$(PICFLAG)" \ | |
1521 | "RANLIB=$(RANLIB)" \ | |
97b8365c TT |
1522 | "DESTDIR=$(DESTDIR)" \ |
1523 | "JAR=$(JAR)" | |
ee9dd372 | 1524 | |
bbf65529 AS |
1525 | # Subdir rules rely on $(FLAGS_TO_PASS) |
1526 | FLAGS_TO_PASS = $(AM_MAKEFLAGS) | |
1527 | ||
7f7ba9bf | 1528 | CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host |
ee9dd372 TT |
1529 | |
1530 | MAKEOVERRIDES= | |
1531 | ||
1532 | # Multilib support variables. | |
1533 | MULTISRCTOP = | |
1534 | MULTIBUILDTOP = | |
1535 | MULTIDIRS = | |
1536 | MULTISUBDIR = | |
1537 | MULTIDO = true | |
1538 | MULTICLEAN = true | |
1539 | ||
1540 | # Multilib support. | |
1541 | .PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ | |
1542 | maintainer-clean-multi | |
1543 | ||
1544 | all-recursive: all-multi | |
1545 | install-recursive: install-multi | |
1546 | mostlyclean-recursive: mostlyclean-multi | |
1547 | clean-recursive: clean-multi | |
1548 | distclean-recursive: distclean-multi | |
1549 | maintainer-clean-recursive: maintainer-clean-multi | |
1550 | ||
1551 | all-multi: | |
6c5d742e | 1552 | : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do |
ee9dd372 TT |
1553 | install-multi: |
1554 | $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do | |
1555 | mostlyclean-multi: | |
1556 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean | |
1557 | clean-multi: | |
1558 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean | |
1559 | distclean-multi: | |
1560 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean | |
1561 | maintainer-clean-multi: | |
1562 | $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean |