2 # Copyright (c) 2013 Vojtech Horky
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # - Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # - Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # - The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 # This harbour is based on scripts and patches from HelenOS
31 # source tree. Thanks to Petr Koupy for creating the original
32 # binutils port and for figuring most of the difficult stuff out.
37 mirror_="ftp://ftp.gnu.org/gnu/binutils/"
38 shipsources="$mirror_/$shipname-$shipversion.tar.bz2 pex-helenos.c"
44 run tar xjf ${shipname}-${shipversion}.tar.bz2
46 msg "Weakening some symbols..."
47 # Prevent name clashes in getopt.c
49 -e '1i#pragma weak optind' \
50 -e '1i#pragma weak optarg' \
51 -e '1i#pragma weak opterr' \
52 -e '1i#pragma weak optopt' \
53 -e '1i#pragma weak getopt' \
54 -i "${shipname}-${shipversion}/libiberty/getopt.c"
56 -e '1i#pragma weak getopt_long' \
57 -i "${shipname}-${shipversion}/libiberty/getopt1.c"
59 -e '1i#pragma weak strncmp' \
60 -i "${shipname}-${shipversion}/libiberty/strncmp.c"
62 -e '1i#pragma weak fnmatch' \
63 -i "${shipname}-${shipversion}/libiberty/fnmatch.c"
66 # PEX implementation copied from GCC harbour
67 msg "Providing our pex implementation..."
68 run cp pex-helenos.c "${shipname}-${shipversion}/libiberty/"
70 -e 's/@pexecute@/pex-helenos/' \
71 -e 's/pex-msdos/pex-helenos/g' \
72 -i "${shipname}-${shipversion}/libiberty/Makefile.in"
74 cd ${shipname}-${shipversion}
75 cp "$HSCT_CONFIG_SUB" .
78 $HSCT_CONFIGURE_ARGS \
79 --target="$HSCT_REAL_TARGET" \
92 run make all-gas all-ld -j$shipfunnels STATIC_ONLY=y
96 cd ${shipname}-${shipversion}
98 run make install-gas install-ld "DESTDIR=$PWD/PKG"
100 run mkdir -p "$HSCT_MY_DIR/app/"
102 run cp PKG/usr/local/bin/$app "$HSCT_MY_DIR/app/"