Gitweb links:
...log
http://git.netsurf-browser.org/toolchains.git/shortlog/110cc76ad1289310bf...
...commit
http://git.netsurf-browser.org/toolchains.git/commit/110cc76ad1289310bf8c...
...tree
http://git.netsurf-browser.org/toolchains.git/tree/110cc76ad1289310bf8c57...
The branch, master has been updated
via 110cc76ad1289310bf8c57183917b0ad58abf6d6 (commit)
via 15d17ea200e595220c84cbca479436f95172ea1b (commit)
from 28b5c711c4c1d487c6640ea11a035184a02120a9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/toolchains.git/commit/?id=110cc76ad1289310...
commit 110cc76ad1289310bf8c57183917b0ad58abf6d6
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Update openurl repo location
diff --git a/m68k-unknown-amigaos/Makefile b/m68k-unknown-amigaos/Makefile
index 494949c..3ee99f6 100644
--- a/m68k-unknown-amigaos/Makefile
+++ b/m68k-unknown-amigaos/Makefile
@@ -27,9 +27,9 @@ UPSTREAM_CLIB2_URI :=
anonymous@clib2.cvs.sourceforge.net:/cvsroot/clib2
UPSTREAM_NDK_TARBALL := ndk-3.9-includes.tar.bz2
UPSTREAM_NDK_URI :=
http://kas1e.mikendezign.com/zerohero_crosscompilers_backup/files/m68k-am...
-UPSTREAM_OPENURL_VERSION := 7.8
+UPSTREAM_OPENURL_VERSION := 7.15
UPSTREAM_OPENURL_TARBALL := openurl
-UPSTREAM_OPENURL_URI :=
https://openurllib.svn.sourceforge.net/svnroot/openurllib/releases/$(UPST...
+UPSTREAM_OPENURL_URI :=
http://svn.code.sf.net/p/openurllib/code/releases/$(UPSTREAM_OPENURL_VERS...
TOP := $(CURDIR)
RECIPES := $(TOP)/recipes
commitdiff
http://git.netsurf-browser.org/toolchains.git/commit/?id=15d17ea200e59522...
commit 15d17ea200e595220c84cbca479436f95172ea1b
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Fix m68k binutils build
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
new file mode 100644
index 0000000..0b6d02d
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
@@ -0,0 +1,11 @@
+--- binutils/Makefile.in 2014-12-19 12:37:51.912015855 +0000
++++ binutils/Makefile.in 2014-12-19 12:45:15.116014557 +0000
+@@ -481,7 +481,7 @@ LINK = $(LIBTOOL) --mode=link $(CCLD) $(
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
+ LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+-YLWRAP = $(top_srcdir)/ylwrap
++YLWRAP = $(top_srcdir)/../ylwrap
+ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ DIST_SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
new file mode 100644
index 0000000..f1a1473
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
@@ -0,0 +1,11 @@
+--- ld/Makefile.in 2014-12-19 12:37:47.280015870 +0000
++++ ld/Makefile.in 2014-12-19 12:44:38.192014671 +0000
+@@ -635,7 +635,7 @@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAG
+ LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+-YLWRAP = $(top_srcdir)/ylwrap
++YLWRAP = $(top_srcdir)/../ylwrap
+ DIST_SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
+ TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
+ am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
new file mode 100644
index 0000000..020dda1
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
@@ -0,0 +1,291 @@
+--- ylwrap 2014-12-19 12:18:57.552019176 +0000
++++ ylwrap 2014-12-19 12:35:15.832016312 +0000
+@@ -1,6 +1,11 @@
+ #! /bin/sh
+ # ylwrap - wrapper for lex/yacc invocations.
+-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
++
++scriptversion=2005-05-14.22
++
++# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
+ # Written by Tom Tromey <tromey(a)cygnus.com>.
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -15,58 +20,84 @@
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-
+-# Usage:
+-# ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...
+-# * PROGRAM is program to run.
+-# * INPUT is the input file
+-# * OUTPUT is file PROG generates
+-# * DESIRED is file we actually want
+-# * ARGS are passed to PROG
+-# Any number of OUTPUT,DESIRED pairs may be used.
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++# 02110-1301, USA.
+
+-# The program to run.
+-prog="$1"
+-shift
+-# Make any relative path in $prog absolute.
+-case "$prog" in
+- /* | [A-Za-z]:\\*) ;;
+- */*) prog="`pwd`/$prog" ;;
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
++# This file is maintained in Automake, please report
++# bugs to <bug-automake(a)gnu.org> or send patches to
++# <automake-patches(a)gnu.org>.
++
++case "$1" in
++ '')
++ echo "$0: No files given. Try \`$0 --help' for more information."
1>&2
++ exit 1
++ ;;
++ --basedir)
++ basedir=$2
++ shift 2
++ ;;
++ -h|--h*)
++ cat <<\EOF
++Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
++
++Wrapper for lex/yacc invocations, renaming files as desired.
++
++ INPUT is the input file
++ OUTPUT is one file PROG generates
++ DESIRED is the file we actually want instead of OUTPUT
++ PROGRAM is program to run
++ ARGS are passed to PROG
++
++Any number of OUTPUT,DESIRED pairs may be used.
++
++Report bugs to <bug-automake(a)gnu.org>.
++EOF
++ exit $?
++ ;;
++ -v|--v*)
++ echo "ylwrap $scriptversion"
++ exit $?
++ ;;
+ esac
+
++
+ # The input.
+ input="$1"
+ shift
+ case "$input" in
+- /* | [A-Za-z]:\\*)
++ [\\/]* | ?:[\\/]*)
+ # Absolute path; do nothing.
+ ;;
+- *)
+- # Relative path. Make it absolute. Why? Because otherwise any
+- # debugging info in the generated file will point to the wrong
+- # place. This is really gross.
++ *)
++ # Relative path. Make it absolute.
+ input="`pwd`/$input"
+ ;;
+ esac
+
+-# We don't want to use the absolute path if the input in the current
+-# directory like when making a tar ball.
+-input_base=`echo $input | sed -e 's|.*/||'`
+-if test -f $input_base && cmp $input_base $input >/dev/null 2>&1;
then
+- input=$input_base
+-fi
+-
+ pairlist=
+ while test "$#" -ne 0; do
+- if test "$1" = "--"; then
+- shift
+- break
+- fi
+- pairlist="$pairlist $1"
+- shift
++ if test "$1" = "--"; then
++ shift
++ break
++ fi
++ pairlist="$pairlist $1"
++ shift
+ done
+
++# The program to run.
++prog="$1"
++shift
++# Make any relative path in $prog absolute.
++case "$prog" in
++ [\\/]* | ?:[\\/]*) ;;
++ *[\\/]*) prog="`pwd`/$prog" ;;
++esac
++
+ # FIXME: add hostname here for parallel makes that run commands on
+ # other machines. But that might take us over the 14-char limit.
+ dirname=ylwrap$$
+@@ -74,50 +105,119 @@ trap "cd `pwd`; rm -rf $dirname > /dev/n
+ mkdir $dirname || exit 1
+
+ cd $dirname
+-case "$input" in
+- /* | [A-Za-z]:\\*)
+- # Absolute path; do nothing.
+- ;;
+- *)
+- # Make a symbolic link, hard link or hardcopy.
+- ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input"
. > /dev/null 2>&1 || cp ../"$input" .
+- ;;
++
++case $# in
++ 0) $prog "$input" ;;
++ *) $prog "$@" "$input" ;;
+ esac
+-$prog ${1+"$@"} "$input"
+-status=$?
++ret=$?
+
+-if test $status -eq 0; then
+- set X $pairlist
+- shift
+- first=yes
+- while test "$#" -ne 0; do
+- if test -f "$1"; then
+- # If $2 is an absolute path name, then just use that,
+- # otherwise prepend `../'.
+- case "$2" in
+- /* | [A-Za-z]:\\*) target="$2";;
+- *) target="../$2";;
+- esac
+- mv "$1" "$target" || status=$?
++if test $ret -eq 0; then
++ set X $pairlist
++ shift
++ first=yes
++ # Since DOS filename conventions don't allow two dots,
++ # the DOS version of Bison writes out y_tab.c instead of y.tab.c
++ # and y_tab.h instead of y.tab.h. Test to see if this is the case.
++ y_tab_nodot="no"
++ if test -f y_tab.c || test -f y_tab.h; then
++ y_tab_nodot="yes"
++ fi
++
++ # The directory holding the input.
++ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
++ # Quote $INPUT_DIR so we can use it in a regexp.
++ # FIXME: really we should care about more than `.' and `\'.
++ input_rx=`echo "$input_dir" | sed
's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
++
++ while test "$#" -ne 0; do
++ from="$1"
++ # Handle y_tab.c and y_tab.h output by DOS
++ if test $y_tab_nodot = "yes"; then
++ if test $from = "y.tab.c"; then
++ from="y_tab.c"
+ else
+- # A missing file is only an error for the first file. This
+- # is a blatant hack to let us support using "yacc -d". If -d
+- # is not specified, we don't want an error when the header
+- # file is "missing".
+- if test $first = yes; then
+- status=1
+- fi
++ if test $from = "y.tab.h"; then
++ from="y_tab.h"
++ fi
+ fi
+- shift
+- shift
+- first=no
+- done
++ fi
++ if test -f "$from"; then
++ # If $2 is an absolute path name, then just use that,
++ # otherwise prepend `../'.
++ case "$2" in
++ [\\/]* | ?:[\\/]*) target="$2";;
++ *) target="../$2";;
++ esac
++
++ # We do not want to overwrite a header file if it hasn't
++ # changed. This avoid useless recompilations. However the
++ # parser itself (the first file) should always be updated,
++ # because it is the destination of the .y.c rule in the
++ # Makefile. Divert the output of all other files to a temporary
++ # file so we can compare them to existing versions.
++ if test $first = no; then
++ realtarget="$target"
++ target="tmp-`echo $target | sed s/.*[\\/]//g`"
++ fi
++ # Edit out `#line' or `#' directives.
++ #
++ # We don't want the resulting debug information to point at
++ # an absolute srcdir; it is better for it to just mention the
++ # .y file with no path.
++ #
++ # We want to use the real output file name, not yy.lex.c for
++ # instance.
++ #
++ # We want the include guards to be adjusted too.
++ FROM=`echo "$from" | sed \
++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
++ TARGET=`echo "$2" | sed \
++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
++
++ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2,"
\
++ -e "s,$FROM,$TARGET," "$from" >"$target" ||
ret=$?
++
++ # Check whether header files must be updated.
++ if test $first = no; then
++ if test -f "$realtarget" && cmp -s "$realtarget"
"$target"; then
++ echo "$2" is unchanged
++ rm -f "$target"
++ else
++ echo updating "$2"
++ mv -f "$target" "$realtarget"
++ fi
++ fi
++ else
++ # A missing file is only an error for the first file. This
++ # is a blatant hack to let us support using "yacc -d". If -d
++ # is not specified, we don't want an error when the header
++ # file is "missing".
++ if test $first = yes; then
++ ret=1
++ fi
++ fi
++ shift
++ shift
++ first=no
++ done
+ else
+- status=$?
++ ret=$?
+ fi
+
+ # Remove the directory.
+ cd ..
+ rm -rf $dirname
+
+-exit $status
++exit $ret
++
++# Local Variables:
++# mode: shell-script
++# sh-indentation: 2
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "scriptversion="
++# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-end: "$"
++# End:
-----------------------------------------------------------------------
Summary of changes:
m68k-unknown-amigaos/Makefile | 4 +-
.../patches/binutils/binutils.Makefile.in.p | 11 +
.../recipes/patches/binutils/ld.Makefile.in.p | 11 +
.../recipes/patches/binutils/ylwrap.p | 291 ++++++++++++++++++++
4 files changed, 315 insertions(+), 2 deletions(-)
create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
create mode 100644 m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
diff --git a/m68k-unknown-amigaos/Makefile b/m68k-unknown-amigaos/Makefile
index 494949c..3ee99f6 100644
--- a/m68k-unknown-amigaos/Makefile
+++ b/m68k-unknown-amigaos/Makefile
@@ -27,9 +27,9 @@ UPSTREAM_CLIB2_URI :=
anonymous@clib2.cvs.sourceforge.net:/cvsroot/clib2
UPSTREAM_NDK_TARBALL := ndk-3.9-includes.tar.bz2
UPSTREAM_NDK_URI :=
http://kas1e.mikendezign.com/zerohero_crosscompilers_backup/files/m68k-am...
-UPSTREAM_OPENURL_VERSION := 7.8
+UPSTREAM_OPENURL_VERSION := 7.15
UPSTREAM_OPENURL_TARBALL := openurl
-UPSTREAM_OPENURL_URI :=
https://openurllib.svn.sourceforge.net/svnroot/openurllib/releases/$(UPST...
+UPSTREAM_OPENURL_URI :=
http://svn.code.sf.net/p/openurllib/code/releases/$(UPSTREAM_OPENURL_VERS...
TOP := $(CURDIR)
RECIPES := $(TOP)/recipes
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
new file mode 100644
index 0000000..0b6d02d
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/binutils.Makefile.in.p
@@ -0,0 +1,11 @@
+--- binutils/Makefile.in 2014-12-19 12:37:51.912015855 +0000
++++ binutils/Makefile.in 2014-12-19 12:45:15.116014557 +0000
+@@ -481,7 +481,7 @@ LINK = $(LIBTOOL) --mode=link $(CCLD) $(
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
+ LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+-YLWRAP = $(top_srcdir)/ylwrap
++YLWRAP = $(top_srcdir)/../ylwrap
+ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ DIST_SOURCES = $(addr2line_SOURCES) $(ar_SOURCES) $(coffdump_SOURCES) \
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
new file mode 100644
index 0000000..f1a1473
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/ld.Makefile.in.p
@@ -0,0 +1,11 @@
+--- ld/Makefile.in 2014-12-19 12:37:47.280015870 +0000
++++ ld/Makefile.in 2014-12-19 12:44:38.192014671 +0000
+@@ -635,7 +635,7 @@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAG
+ LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
+ YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
+ LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) $(AM_YFLAGS)
+-YLWRAP = $(top_srcdir)/ylwrap
++YLWRAP = $(top_srcdir)/../ylwrap
+ DIST_SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
+ TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
+ am__TEXINFO_TEX_DIR = $(top_srcdir)/../texinfo
diff --git a/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
new file mode 100644
index 0000000..020dda1
--- /dev/null
+++ b/m68k-unknown-amigaos/recipes/patches/binutils/ylwrap.p
@@ -0,0 +1,291 @@
+--- ylwrap 2014-12-19 12:18:57.552019176 +0000
++++ ylwrap 2014-12-19 12:35:15.832016312 +0000
+@@ -1,6 +1,11 @@
+ #! /bin/sh
+ # ylwrap - wrapper for lex/yacc invocations.
+-# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
++
++scriptversion=2005-05-14.22
++
++# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
++# Free Software Foundation, Inc.
++#
+ # Written by Tom Tromey <tromey(a)cygnus.com>.
+ #
+ # This program is free software; you can redistribute it and/or modify
+@@ -15,58 +20,84 @@
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+-
+-# Usage:
+-# ylwrap PROGRAM INPUT [OUTPUT DESIRED]... -- [ARGS]...
+-# * PROGRAM is program to run.
+-# * INPUT is the input file
+-# * OUTPUT is file PROG generates
+-# * DESIRED is file we actually want
+-# * ARGS are passed to PROG
+-# Any number of OUTPUT,DESIRED pairs may be used.
++# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++# 02110-1301, USA.
+
+-# The program to run.
+-prog="$1"
+-shift
+-# Make any relative path in $prog absolute.
+-case "$prog" in
+- /* | [A-Za-z]:\\*) ;;
+- */*) prog="`pwd`/$prog" ;;
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
++# This file is maintained in Automake, please report
++# bugs to <bug-automake(a)gnu.org> or send patches to
++# <automake-patches(a)gnu.org>.
++
++case "$1" in
++ '')
++ echo "$0: No files given. Try \`$0 --help' for more information."
1>&2
++ exit 1
++ ;;
++ --basedir)
++ basedir=$2
++ shift 2
++ ;;
++ -h|--h*)
++ cat <<\EOF
++Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
++
++Wrapper for lex/yacc invocations, renaming files as desired.
++
++ INPUT is the input file
++ OUTPUT is one file PROG generates
++ DESIRED is the file we actually want instead of OUTPUT
++ PROGRAM is program to run
++ ARGS are passed to PROG
++
++Any number of OUTPUT,DESIRED pairs may be used.
++
++Report bugs to <bug-automake(a)gnu.org>.
++EOF
++ exit $?
++ ;;
++ -v|--v*)
++ echo "ylwrap $scriptversion"
++ exit $?
++ ;;
+ esac
+
++
+ # The input.
+ input="$1"
+ shift
+ case "$input" in
+- /* | [A-Za-z]:\\*)
++ [\\/]* | ?:[\\/]*)
+ # Absolute path; do nothing.
+ ;;
+- *)
+- # Relative path. Make it absolute. Why? Because otherwise any
+- # debugging info in the generated file will point to the wrong
+- # place. This is really gross.
++ *)
++ # Relative path. Make it absolute.
+ input="`pwd`/$input"
+ ;;
+ esac
+
+-# We don't want to use the absolute path if the input in the current
+-# directory like when making a tar ball.
+-input_base=`echo $input | sed -e 's|.*/||'`
+-if test -f $input_base && cmp $input_base $input >/dev/null 2>&1;
then
+- input=$input_base
+-fi
+-
+ pairlist=
+ while test "$#" -ne 0; do
+- if test "$1" = "--"; then
+- shift
+- break
+- fi
+- pairlist="$pairlist $1"
+- shift
++ if test "$1" = "--"; then
++ shift
++ break
++ fi
++ pairlist="$pairlist $1"
++ shift
+ done
+
++# The program to run.
++prog="$1"
++shift
++# Make any relative path in $prog absolute.
++case "$prog" in
++ [\\/]* | ?:[\\/]*) ;;
++ *[\\/]*) prog="`pwd`/$prog" ;;
++esac
++
+ # FIXME: add hostname here for parallel makes that run commands on
+ # other machines. But that might take us over the 14-char limit.
+ dirname=ylwrap$$
+@@ -74,50 +105,119 @@ trap "cd `pwd`; rm -rf $dirname > /dev/n
+ mkdir $dirname || exit 1
+
+ cd $dirname
+-case "$input" in
+- /* | [A-Za-z]:\\*)
+- # Absolute path; do nothing.
+- ;;
+- *)
+- # Make a symbolic link, hard link or hardcopy.
+- ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input"
. > /dev/null 2>&1 || cp ../"$input" .
+- ;;
++
++case $# in
++ 0) $prog "$input" ;;
++ *) $prog "$@" "$input" ;;
+ esac
+-$prog ${1+"$@"} "$input"
+-status=$?
++ret=$?
+
+-if test $status -eq 0; then
+- set X $pairlist
+- shift
+- first=yes
+- while test "$#" -ne 0; do
+- if test -f "$1"; then
+- # If $2 is an absolute path name, then just use that,
+- # otherwise prepend `../'.
+- case "$2" in
+- /* | [A-Za-z]:\\*) target="$2";;
+- *) target="../$2";;
+- esac
+- mv "$1" "$target" || status=$?
++if test $ret -eq 0; then
++ set X $pairlist
++ shift
++ first=yes
++ # Since DOS filename conventions don't allow two dots,
++ # the DOS version of Bison writes out y_tab.c instead of y.tab.c
++ # and y_tab.h instead of y.tab.h. Test to see if this is the case.
++ y_tab_nodot="no"
++ if test -f y_tab.c || test -f y_tab.h; then
++ y_tab_nodot="yes"
++ fi
++
++ # The directory holding the input.
++ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
++ # Quote $INPUT_DIR so we can use it in a regexp.
++ # FIXME: really we should care about more than `.' and `\'.
++ input_rx=`echo "$input_dir" | sed
's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
++
++ while test "$#" -ne 0; do
++ from="$1"
++ # Handle y_tab.c and y_tab.h output by DOS
++ if test $y_tab_nodot = "yes"; then
++ if test $from = "y.tab.c"; then
++ from="y_tab.c"
+ else
+- # A missing file is only an error for the first file. This
+- # is a blatant hack to let us support using "yacc -d". If -d
+- # is not specified, we don't want an error when the header
+- # file is "missing".
+- if test $first = yes; then
+- status=1
+- fi
++ if test $from = "y.tab.h"; then
++ from="y_tab.h"
++ fi
+ fi
+- shift
+- shift
+- first=no
+- done
++ fi
++ if test -f "$from"; then
++ # If $2 is an absolute path name, then just use that,
++ # otherwise prepend `../'.
++ case "$2" in
++ [\\/]* | ?:[\\/]*) target="$2";;
++ *) target="../$2";;
++ esac
++
++ # We do not want to overwrite a header file if it hasn't
++ # changed. This avoid useless recompilations. However the
++ # parser itself (the first file) should always be updated,
++ # because it is the destination of the .y.c rule in the
++ # Makefile. Divert the output of all other files to a temporary
++ # file so we can compare them to existing versions.
++ if test $first = no; then
++ realtarget="$target"
++ target="tmp-`echo $target | sed s/.*[\\/]//g`"
++ fi
++ # Edit out `#line' or `#' directives.
++ #
++ # We don't want the resulting debug information to point at
++ # an absolute srcdir; it is better for it to just mention the
++ # .y file with no path.
++ #
++ # We want to use the real output file name, not yy.lex.c for
++ # instance.
++ #
++ # We want the include guards to be adjusted too.
++ FROM=`echo "$from" | sed \
++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
++ TARGET=`echo "$2" | sed \
++ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
++ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
++
++ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2,"
\
++ -e "s,$FROM,$TARGET," "$from" >"$target" ||
ret=$?
++
++ # Check whether header files must be updated.
++ if test $first = no; then
++ if test -f "$realtarget" && cmp -s "$realtarget"
"$target"; then
++ echo "$2" is unchanged
++ rm -f "$target"
++ else
++ echo updating "$2"
++ mv -f "$target" "$realtarget"
++ fi
++ fi
++ else
++ # A missing file is only an error for the first file. This
++ # is a blatant hack to let us support using "yacc -d". If -d
++ # is not specified, we don't want an error when the header
++ # file is "missing".
++ if test $first = yes; then
++ ret=1
++ fi
++ fi
++ shift
++ shift
++ first=no
++ done
+ else
+- status=$?
++ ret=$?
+ fi
+
+ # Remove the directory.
+ cd ..
+ rm -rf $dirname
+
+-exit $status
++exit $ret
++
++# Local Variables:
++# mode: shell-script
++# sh-indentation: 2
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "scriptversion="
++# time-stamp-format: "%:y-%02m-%02d.%02H"
++# time-stamp-end: "$"
++# End:
--
Cross-compilation toolchains and environments