aboutsummaryrefslogtreecommitdiff
path: root/libjava/scripts
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-09 19:58:05 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2007-01-09 19:58:05 +0000
commit65bf3316cf384588453604be6b4f0ed3751a8b0f (patch)
tree996a5f57d4a68c53473382e45cb22f574cb3e4db /libjava/scripts
parent8fc56618a84446beccd45b80381cdfe0e94050df (diff)
Merged gcj-eclipse branch to trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120621 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/scripts')
-rw-r--r--libjava/scripts/classes.pl3
-rwxr-xr-xlibjava/scripts/makemake.tcl69
2 files changed, 49 insertions, 23 deletions
diff --git a/libjava/scripts/classes.pl b/libjava/scripts/classes.pl
index d231ea4f7ba..43676590d69 100644
--- a/libjava/scripts/classes.pl
+++ b/libjava/scripts/classes.pl
@@ -1,7 +1,7 @@
# classes.pl - A perl program to generate most of the contents of
# javaprims.h automatically.
-# Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation
+# Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006 Free Software Foundation
#
# This file is part of libgcj.
#
@@ -44,6 +44,7 @@ sub scan
while (defined ($name = $d->read))
{
next if $name eq 'CVS';
+ next if $name eq '.svn';
next if $name eq '.';
next if $name eq '..';
if ($dir eq 'java'
diff --git a/libjava/scripts/makemake.tcl b/libjava/scripts/makemake.tcl
index 954d1847ec4..cac22dc71ea 100755
--- a/libjava/scripts/makemake.tcl
+++ b/libjava/scripts/makemake.tcl
@@ -49,10 +49,13 @@ set package_map(gnu/xml) bc
set package_map(javax/imageio) bc
set package_map(javax/xml) bc
set package_map(gnu/java/beans) bc
+set package_map(gnu/java/awt/dnd/peer/gtk) bc
set package_map(gnu/java/util/prefs/gconf) bc
set package_map(gnu/java/awt/peer/gtk) bc
set package_map(gnu/java/awt/dnd/peer/gtk) bc
set package_map(gnu/java/awt/peer/qt) bc
+set package_map(gnu/java/awt/peer/x) bc
+set package_map(gnu/java/util/prefs/gconf) bc
set package_map(gnu/javax/sound/midi) bc
set package_map(org/xml) bc
set package_map(org/w3c) bc
@@ -62,15 +65,6 @@ set package_map(org/omg) bc
set package_map(gnu/CORBA) bc
set package_map(gnu/javax/rmi) bc
-# This is handled specially by the Makefile.
-# We still want it byte-compiled so it isn't in the .omit file.
-set package_map(gnu/gcj/tools/gcj_dbtool/Main.java) ignore
-
-# These are handled specially. If we list Class.java with other files
-# in java.lang, we hit a compiler bug.
-set package_map(java/lang/Class.java) ignore
-set package_map(java/lang/Object.java) ignore
-
# More special cases. These end up in their own library.
# Note that if we BC-compile AWT we must update these as well.
set package_map(gnu/gcj/xlib) package
@@ -225,7 +219,7 @@ proc scan_directory {basedir subdir} {
# Scan known packages beneath the base directory for .java source
# files.
proc scan_packages {basedir} {
- foreach subdir {gnu java javax org META-INF} {
+ foreach subdir {gnu java javax org sun META-INF} {
if {[file exists $basedir/$subdir]} {
scan_directory $basedir $subdir
}
@@ -253,12 +247,16 @@ proc emit_bc_rule {package} {
if {[info exists exclusion_map($package)]} {
set omit "| grep -v $exclusion_map($package)"
}
- puts "\t@find classpath/lib/$package -name '*.class'${omit} > $tname"
+ puts "\t@find \$(srcdir)/classpath/lib/$package -name '*.class'${omit} > $tname"
puts "\t\$(LTGCJCOMPILE) -fjni -findirect-dispatch -fno-indirect-classes -c -o $loname @$tname"
puts "\t@rm -f $tname"
puts ""
- lappend bc_objects $loname
+ # We skip these because they are built into their own libraries and
+ # are handled specially in Makefile.am.
+ if {$loname != "gnu-java-awt-peer-qt.lo" && $loname != "gnu-java-awt-peer-x.lo"} {
+ lappend bc_objects $loname
+ }
}
# Emit a rule for a 'package' package.
@@ -275,24 +273,46 @@ proc emit_package_rule {package} {
set lname $base.list
set dname $base.deps
+ if {$pkgname == "java/lang"} {
+ # Object and Class are special cases due to an apparent compiler
+ # bug. Process is a special case because we don't build all
+ # concrete implementations of Process on all platforms.
+ set omit "| tr ' ' '\\n' | fgrep -v Object.class | fgrep -v Class.class | grep -v '\[^/\]Process' "
+ } else {
+ set omit ""
+ }
+
# A rule to make the phony file we are going to compile.
puts "$lname: \$($varname)"
puts "\t@\$(mkinstalldirs) \$(dir \$@)"
- puts "\t@for file in \$($varname); do \\"
- puts "\t if test -f \$(srcdir)/\$\$file; then \\"
- puts "\t echo \$(srcdir)/\$\$file; \\"
- puts "\t else echo \$\$file; fi; \\"
- puts "\tdone > $lname"
+ puts "\techo \$(srcdir)/classpath/lib/$package/*.class $omit> $lname"
puts ""
puts "-include $dname"
puts ""
puts ""
- if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib"} {
+ if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib"
+ && $pkgname != "gnu/gcj/tools/gcj_dbtool"} {
lappend package_files $lname
}
}
+# Emit a package-like rule for a platform-specific Process
+# implementation.
+proc emit_process_package_rule {platform} {
+ set base "java/process-$platform"
+ set lname $base.list
+ set dname $base.deps
+
+ puts "$lname: java/lang/${platform}Process.java"
+ puts "\t@\$(mkinstalldirs) \$(dir \$@)"
+ puts "\techo \$(srcdir)/classpath/lib/java/lang/${platform}Process*.class > $lname"
+ puts ""
+ puts "-include $dname"
+ puts ""
+ puts ""
+}
+
# Emit a source file variable for a package, and corresponding header
# file variable, if needed.
proc emit_source_var {package} {
@@ -326,7 +346,9 @@ proc emit_source_var {package} {
if {$package_map($package) != "bc"} {
# Ugly code to build up the appropriate patsubst.
set result "\$(patsubst %.java,%.h,\$($varname))"
- foreach dir [lsort [array names dirs]] {
+ # We use -decreasing so that classpath/external will be stripped
+ # before classpath.
+ foreach dir [lsort -decreasing [array names dirs]] {
if {$dir != "."} {
set result "\$(patsubst $dir/%,%,$result)"
}
@@ -363,22 +385,21 @@ if {[llength $argv] > 0 && [lindex $argv 0] == "-verbose"} {
# Read the proper .omit files.
read_omit_file standard.omit.in
-read_omit_file classpath/lib/standard.omit
+read_omit_file classpath/lib/standard.omit.in
# Scan classpath first.
scan_packages classpath
scan_packages classpath/external/sax
scan_packages classpath/external/w3c_dom
scan_packages classpath/external/relaxngDatatype
+scan_packages classpath/external/jsr166
# Resource files.
scan_packages classpath/resource
# Now scan our own files; this will correctly override decisions made
# when scanning classpath.
scan_packages .
# Files created by the build.
-classify_source_file . java/lang/ConcreteProcess.java
classify_source_file classpath gnu/java/locale/LocaleData.java
-classify_source_file classpath gnu/classpath/Configuration.java
classify_source_file classpath gnu/java/security/Configuration.java
puts "## This file was automatically generated by scripts/makemake.tcl"
@@ -406,6 +427,10 @@ foreach package [lsort [array names package_map]] {
}
}
+emit_process_package_rule Ecos
+emit_process_package_rule Win32
+emit_process_package_rule Posix
+
pp_var all_packages_source_files $package_files
pp_var ordinary_header_files $header_vars "\$(" ")"
pp_var bc_objects $bc_objects