|
|
2ff057 |
#!/usr/bin/env bash
|
|
|
2ff057 |
|
|
|
2ff057 |
DESTDIR="${DESTDIR:-/}"
|
|
|
2ff057 |
pkglibdir="${pkglibdir:-/usr/lib/rpm}"
|
|
|
2ff057 |
platformdir="${pkglibdir}/platform"
|
|
|
2ff057 |
|
|
|
2ff057 |
RPMRC="${1:-rpmrc}"
|
|
|
2ff057 |
PLATFORM="${2:-platform}"
|
|
|
2ff057 |
MACROS="${3:-macros}"
|
|
|
2ff057 |
VENDOR="${4}"
|
|
|
2ff057 |
OS="${5}"
|
|
|
2ff057 |
RPMRC_GNU="${6}"
|
|
|
2ff057 |
|
|
|
2ff057 |
for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
|
|
|
2ff057 |
RPMRC_OPTFLAGS="`sed -n 's/^optflags: '$ARCH' //p' $RPMRC`"
|
|
|
2ff057 |
RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e 's, ,\ ,g'`"
|
|
|
2ff057 |
case $RPMRC_OPTFLAGS in
|
|
|
2ff057 |
*-g*) ;;
|
|
|
2ff057 |
*) RPMRC_OPTFLAGS="$RPMRC_OPTFLAGS -g" ;;
|
|
|
2ff057 |
esac
|
|
|
2ff057 |
|
|
|
2ff057 |
ARCH_INSTALL_POST='%{nil}'
|
|
|
2ff057 |
LIB=lib
|
|
|
2ff057 |
|
|
|
2ff057 |
# XXX FIXME: incomplete and quite likely wrong too in places,
|
|
|
2ff057 |
# consult various arch folks for correct names etc.
|
|
|
2ff057 |
ISANAME=
|
|
|
2ff057 |
ISABITS=
|
|
|
2ff057 |
CANONARCH=
|
|
|
2ff057 |
CANONCOLOR=
|
|
|
2ff057 |
FILTER=cat
|
|
|
2ff057 |
case "${ARCH}" in
|
|
|
2ff057 |
sparc64*)
|
|
|
2ff057 |
ISANAME=sparc
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=sparc64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
sparc*)
|
|
|
2ff057 |
ISANAME=sparc
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=sparc
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
s390)
|
|
|
2ff057 |
ISANAME=s390
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=s390
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
s390x)
|
|
|
2ff057 |
ISANAME=s390
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=s390x
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
ppc64|ppc64p7)
|
|
|
2ff057 |
ISANAME=ppc
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=ppc64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
ppc64le)
|
|
|
2ff057 |
ISANAME=ppc
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=ppc64le
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
ppc*)
|
|
|
2ff057 |
ISANAME=ppc
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=ppc
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
i?86|pentium?|athlon|geode)
|
|
|
2ff057 |
ISANAME=x86
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=i386
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
x86_64|amd64|ia32e)
|
|
|
2ff057 |
ISANAME=x86
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=x86_64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
ia64)
|
|
|
2ff057 |
ISANAME=ia
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=ia64
|
|
|
2ff057 |
CANONCOLOR=2
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
sh*)
|
|
|
2ff057 |
ISANAME=sh
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=${ARCH}
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
armv7h*)
|
|
|
2ff057 |
ISANAME=armv7hl
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=arm
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
arm*)
|
|
|
2ff057 |
ISANAME=`echo ${ARCH} | sed "s/^\([^-]*\)-.*/\1/"`
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=arm
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
alpha*)
|
|
|
2ff057 |
ISANAME=alpha
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=alpha
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
aarch64)
|
|
|
2ff057 |
ISANAME=aarch
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=aarch64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mips)
|
|
|
2ff057 |
ISANAME=mips
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=mips
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mipsel)
|
|
|
2ff057 |
ISANAME=mips
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=mipsel
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mips64)
|
|
|
2ff057 |
ISANAME=mips
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=mips64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mips64el)
|
|
|
2ff057 |
ISANAME=mips
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=mips64el
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mipsr6)
|
|
|
2ff057 |
ISANAME=mipsr6
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=mipsr6
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mipsr6el)
|
|
|
2ff057 |
ISANAME=mipsr6
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=mipsr6el
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mips64r6)
|
|
|
2ff057 |
ISANAME=mipsr6
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=mips64r6
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
mips64r6el)
|
|
|
2ff057 |
ISANAME=mipsr6
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=mips64r6el
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
m68k)
|
|
|
2ff057 |
ISANAME=m68k
|
|
|
2ff057 |
ISABITS=32
|
|
|
2ff057 |
CANONARCH=m68k
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
riscv64)
|
|
|
2ff057 |
ISANAME=riscv
|
|
|
2ff057 |
ISABITS=64
|
|
|
2ff057 |
CANONARCH=riscv64
|
|
|
2ff057 |
CANONCOLOR=3
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
noarch)
|
|
|
2ff057 |
CANONARCH=noarch
|
|
|
2ff057 |
CANONCOLOR=0
|
|
|
2ff057 |
FILTER="grep -v -E ^(%optflag|%__isa)"
|
|
|
2ff057 |
;;
|
|
|
2ff057 |
esac
|
|
|
2ff057 |
|
|
|
2ff057 |
# skip architectures for which we dont have full config parameters
|
|
|
2ff057 |
[ -z "$CANONARCH" ] && continue
|
|
|
2ff057 |
|
|
|
2ff057 |
if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then
|
|
|
2ff057 |
LIB=${LIB}64
|
|
|
2ff057 |
fi
|
|
|
2ff057 |
|
|
|
2ff057 |
PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
|
|
|
2ff057 |
[ -d $PPD ] || mkdir -p $PPD
|
|
|
2ff057 |
|
|
|
2ff057 |
cat $PLATFORM \
|
|
|
2ff057 |
| sed -e "s,@RPMRC_OPTFLAGS@,$RPMRC_OPTFLAGS," \
|
|
|
2ff057 |
-e "s,@RPMCANONARCH@,$CANONARCH,g" \
|
|
|
2ff057 |
-e "s,@RPMCANONCOLOR@,$CANONCOLOR," \
|
|
|
2ff057 |
-e "s,@RPMRC_GNU@,$RPMRC_GNU," \
|
|
|
2ff057 |
-e "s,@LIB@,$LIB," \
|
|
|
2ff057 |
-e "s,@ARCH_INSTALL_POST@,$ARCH_INSTALL_POST," \
|
|
|
2ff057 |
-e '/\${\w*:-/!s,\${,%{_,' \
|
|
|
2ff057 |
-e "s,@ISANAME@,$ISANAME," \
|
|
|
2ff057 |
-e "s,@ISABITS@,$ISABITS," \
|
|
|
2ff057 |
-e "s,^@${VENDOR}@,," \
|
|
|
2ff057 |
| grep -v '^@' \
|
|
|
2ff057 |
| ${FILTER} \
|
|
|
2ff057 |
> ${PPD}/macros
|
|
|
2ff057 |
|
|
|
2ff057 |
done
|
|
|
2ff057 |
|
|
|
2ff057 |
# gently adjust undefined autoconf variables to rpm macros...
|
|
|
2ff057 |
cat $MACROS | sed -e 's,${prefix},%{_prefix},g' > ${DESTDIR}/${pkglibdir}/macros
|