| #! @SHELL@ | 
 | # @configure_input@ | 
 |  | 
 | # Make sure sorting is done the same on all configurations | 
 | # Note the use of sort -r below. This is done explicitly to work around | 
 | # a gcj bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21418) | 
 | LC_ALL=C; export LC_ALL | 
 | LANG=C; export LANG | 
 |  | 
 | echo "Adding java source files from srcdir '@top_srcdir@'." | 
 | # We construct 'classes.1' as a series of lines.  Each line | 
 | # has three fields, which are separated by spaces.  The first | 
 | # field is the package of this class (separated by "/"s). | 
 | # The second field is the name of the top-level directory for | 
 | # this file, relative to the build directory.  E.g., it might | 
 | # look like "../../classpath/vm/reference". | 
 | # The third field is the file name, like "java/lang/Object.java". | 
 | # We do this because it makes splitting for the gcj build much | 
 | # cheaper. | 
 | (cd @top_srcdir@ | 
 |  @FIND@ java javax gnu org -follow -name '*.java' -print | | 
 |  sort -r | sed -e 's,/\([^/]*\)$, \1,' | | 
 |  while read pkg file; do | 
 |     echo $pkg @top_srcdir@ $pkg/$file | 
 |  done) > ${top_builddir}/lib/classes.1 | 
 |  | 
 | # The same, but for the external code. | 
 | # Right now all external code is in org/. | 
 | for dir in @top_srcdir@/external/w3c_dom \ | 
 |    @top_srcdir@/external/sax; do | 
 |   (cd $dir | 
 |   @FIND@ org -follow -name '*.java' -print | | 
 |   sort -r | sed -e 's,/\([^/]*\)$, \1,' | | 
 |   while read pkg file; do | 
 |      echo $pkg $dir $pkg/$file | 
 |   done) | 
 | done >> ${top_builddir}/lib/classes.1 | 
 |  | 
 | # Generate files for the VM classes. | 
 | : > vm.omit | 
 | : > vm.add | 
 | vm_dirlist=`echo "@vm_classes@" | sed -e 's/:/ /g'` | 
 | for dir in $vm_dirlist; do | 
 |    echo "Adding java source files from VM directory $dir" | 
 |    (cd $dir | 
 |    for subdir in java javax gnu org com; do | 
 |       if test -d $subdir; then | 
 | 	 @FIND@ $subdir -name '*.java' -print | 
 |       fi | 
 |    done) | sed -e 's,/\([^/]*\)$, \1,' | | 
 |    while read pkg file; do | 
 |       echo $pkg $dir $pkg/$file >> vm.add | 
 |       echo $pkg/$file >> vm.omit | 
 |    done | 
 | done | 
 |  | 
 | # Only include generated files once. | 
 | if test ! "${top_builddir}" -ef "@top_srcdir@"; then | 
 |   echo "Adding generated files in builddir '${top_builddir}'." | 
 |   # Currently the only generated files are in gnu and java. | 
 |   (cd ${top_builddir}; @FIND@ gnu java -follow -name '*.java' -print) | | 
 |   sort | sed -e 's,/\([^/]*\)$, \1,' | | 
 |   while read pkg file; do | 
 |      echo $pkg $top_builddir $pkg/$file | 
 |   done >> ${top_builddir}/lib/classes.1 | 
 | fi | 
 |  | 
 |  | 
 | cat @top_srcdir@/lib/$1.omit vm.omit > tmp.omit | 
 | for dir in $vm_dirlist; do | 
 |    if test -f $dir/$1.omit; then | 
 |       cat $dir/$1.omit >> tmp.omit | 
 |    fi | 
 | done | 
 |  | 
 | # FIXME: could be more efficient by constructing a series of greps. | 
 | for filexp in `cat tmp.omit`; do | 
 |    grep -v ${filexp} < ${top_builddir}/lib/classes.1 > ${top_builddir}/lib/classes.tmp | 
 |    mv ${top_builddir}/lib/classes.tmp ${top_builddir}/lib/classes.1 | 
 | done | 
 |  | 
 |  | 
 | for dir in $vm_dirlist; do | 
 |    if test -f $dir/$1.omit; then | 
 |       for filexp in `cat $dir/$1.omit`; do | 
 | 	 grep -v $filexp < vm.add > vm.add.1 | 
 | 	 mv vm.add.1 vm.add | 
 |       done | 
 |    fi | 
 | done | 
 | cat vm.add >> classes.1 | 
 |  | 
 | rm vm.omit | 
 | rm vm.add | 
 | rm tmp.omit | 
 |  | 
 | new= | 
 | if test -e ${top_builddir}/lib/classes.2; then | 
 |   p=`diff ${top_builddir}/lib/classes.2 ${top_builddir}/lib/classes.1` | 
 |   if test "$p" != ""; then | 
 |     new="true" | 
 |   fi | 
 | else | 
 |   new="true" | 
 | fi | 
 |  | 
 | if test "$new" = "true"; then | 
 |   cp ${top_builddir}/lib/classes.1 ${top_builddir}/lib/classes.2 | 
 |   # Strip the package part. | 
 |   sed -e 's/^[^ ]* //' -e 's, ,/,' < ${top_builddir}/lib/classes.1 \ | 
 |      > ${top_builddir}/lib/classes | 
 |   echo "JAVA_SRCS = \\" > ${top_builddir}/lib/java.dep | 
 |   for i in `cat ${top_builddir}/lib/classes` ; do | 
 |     echo $i "\\" >> ${top_builddir}/lib/java.dep | 
 |   done | 
 | fi | 
 |  | 
 | exit 0 |