Hash :
cc095fee
Author :
Date :
2024-12-18T09:39:53
Build: Generate 32-bit supplementary ppc64 .deb As with x86-64, the Power ISA basically implements 64-bit instructions as extensions of their 32-bit counterparts. Thus, 64-bit Power ISA CPUs can natively execute legacy 32-bit PowerPC instructions when running in big-endian mode. Most Power ISA support has shifted (pun intended) to little-endian mode, so there are few remaining operating systems that support big-endian mode. Debian is one of them, however (albeit unofficially.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
#!/bin/sh
set -u
set -e
trap onexit INT
trap onexit TERM
trap onexit EXIT
TMPDIR=
SUDO=
onexit()
{
if [ ! "$TMPDIR" = "" ]; then
$SUDO rm -rf $TMPDIR
fi
}
uid()
{
id | cut -f2 -d = | cut -f1 -d \(;
}
safedirmove ()
{
if [ "$1" = "$2" ]; then
return 0
fi
if [ "$1" = "" -o ! -d "$1" ]; then
echo safedirmove: source dir $1 is not valid
return 1
fi
if [ "$2" = "" -o -e "$2" ]; then
echo safedirmove: dest dir $2 is not valid
return 1
fi
if [ "$3" = "" -o -e "$3" ]; then
echo safedirmove: tmp dir $3 is not valid
return 1
fi
mkdir -p $3
mv $1/* $3/
rmdir $1
mkdir -p $2
mv $3/* $2/
rmdir $3
return 0
}
makedeb()
{
SUPPLEMENT=$1
DIRNAME=$PKGNAME
if [ $SUPPLEMENT = 1 ]; then
PKGNAME=$PKGNAME\32
if [ "$DEBARCH" = "i386" ]; then
DEBARCH=amd64
elif [ "$DEBARCH" = "ppc" ]; then
DEBARCH=ppc64
else
DEBARCH=arm64
fi
fi
umask 022
rm -f $PKGNAME\_$VERSION\_$DEBARCH.deb
TMPDIR=`mktemp -d /tmp/$PKGNAME-build.XXXXXX`
mkdir $TMPDIR/DEBIAN
if [ $SUPPLEMENT = 1 ]; then
DESTDIR=$TMPDIR @CMAKE_MAKE_PROGRAM@ install
rm -rf $TMPDIR$BINDIR
if [ "$DATAROOTDIR" != "$PREFIX" ]; then
rm -rf $TMPDIR$DATAROOTDIR
fi
if [ "$JAVADIR" != "" ]; then
rm -rf $TMPDIR$JAVADIR
fi
rm -rf $TMPDIR$DOCDIR
rm -rf $TMPDIR$INCLUDEDIR
rm -rf $TMPDIR$MANDIR
else
DESTDIR=$TMPDIR @CMAKE_MAKE_PROGRAM@ install
if [ "$PREFIX" = "@CMAKE_INSTALL_DEFAULT_PREFIX@" -a "$DOCDIR" = "@CMAKE_INSTALL_DEFAULT_PREFIX@/doc" ]; then
safedirmove $TMPDIR/$DOCDIR $TMPDIR/usr/share/doc/$PKGNAME-$VERSION $TMPDIR/__tmpdoc
ln -fs /usr/share/doc/$DIRNAME-$VERSION $TMPDIR$DOCDIR
fi
fi
SIZE=`du -s $TMPDIR | cut -f1`
(cat pkgscripts/deb-control | sed s/{__PKGNAME}/$PKGNAME/g \
| sed s/{__ARCH}/$DEBARCH/g | sed s/{__SIZE}/$SIZE/g \
> $TMPDIR/DEBIAN/control)
/sbin/ldconfig -n $TMPDIR$LIBDIR
$SUDO chown -Rh root:root $TMPDIR/*
dpkg -b $TMPDIR $PKGNAME\_$VERSION\_$DEBARCH.deb
}
PKGNAME=@PKGNAME@
VERSION=@VERSION@
DEBARCH=@DEBARCH@
PREFIX=@CMAKE_INSTALL_PREFIX@
BINDIR=@CMAKE_INSTALL_FULL_BINDIR@
DATAROOTDIR=@CMAKE_INSTALL_FULL_DATAROOTDIR@
DOCDIR=@CMAKE_INSTALL_FULL_DOCDIR@
INCLUDEDIR=@CMAKE_INSTALL_FULL_INCLUDEDIR@
JAVADIR=@CMAKE_INSTALL_FULL_JAVADIR@
LIBDIR=@CMAKE_INSTALL_FULL_LIBDIR@
MANDIR=@CMAKE_INSTALL_FULL_MANDIR@
if [ ! `uid` -eq 0 ]; then
SUDO=sudo
fi
makedeb 0
if [ "$DEBARCH" = "i386" -o "$DEBARCH" = "armel" -o "$DEBARCH" = "armhf" -o \
"$DEBARCH" = "ppc" ]; then
makedeb 1
fi
exit