#!/bin/sh
+set -e
+
# Make sure we're in our directory (i.e., where this shell script is)
echo $0
cd `dirname $0`
+# Default sed: whatever's in $PATH; set by the buildsystem to be the
+# host-built sed tool we know supports the syntax we use
+: ${SED=sed}
+
# Configure fetch method
URL="http://www.minix3.org/distfiles-minix/gcc-4.5.3.tar.bz2"
BACKUP_URL="ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2"
FETCH=ftp
-which curl >/dev/null
-if [ $? -eq 0 ]; then
+if which curl >/dev/null
+then
FETCH="curl -O -f"
fi
fi
fi
- tar -oxjf gcc-4.5.3.tar.bz2 && \
- mv gcc-4.5.3 dist && \
- cd dist && \
- rm -rf $DELETEDIRS && \
- cat ../patches/* | patch -p1 && \
- cp ../files/minix.h gcc/config/ && \
- cp ../files/t-minix gcc/config/ && \
- cp ../files/minix-spec.h gcc/config/ && \
- cp ../files/arm-minix.h gcc/config/arm/minix.h && \
- cp ../files/i386-minix.h gcc/config/i386/minix.h && \
+ tar -oxjf gcc-4.5.3.tar.bz2
+ mv gcc-4.5.3 dist
+ cd dist
+ rm -rf $DELETEDIRS
+ for f in gcc/doc/gccinstall.info gcc/doc/gccint.info
+ do # This is a hack to remove NUL characters in these .info
+ # files. They make some patch(1)es fail.
+ $SED 's/^..\[index..\]$/[index]/' <$f >k && mv k $f
+ done
+ cat ../patches/* | patch -p1
+ cp ../files/minix.h gcc/config/
+ cp ../files/t-minix gcc/config/
+ cp ../files/minix-spec.h gcc/config/
+ cp ../files/arm-minix.h gcc/config/arm/minix.h
+ cp ../files/i386-minix.h gcc/config/i386/minix.h
cp ../files/gcov-minix-fs-wrapper.h gcc/
fi
# the corresponding ${.CURDIR}, which also conveniently hides from git.
.if exists(${GNUHOSTDIST:H}/fetch.sh)
${GNUHOSTDIST:H}/.gitignore: ${GNUHOSTDIST:H}/fetch.sh
- ${HOST_SH} ${GNUHOSTDIST:H}/fetch.sh
+ SED=${TOOL_SED} ${HOST_SH} ${GNUHOSTDIST:H}/fetch.sh
@test -e ${GNUHOSTDIST}/configure
@echo "${MODULE:U${.CURDIR:T}:C,gcc[0-9]*,gcc,}-*.tar.*z*" >> $@
@echo ${GNUHOSTDIST:T} >> $@