Revert "Modify eu-strip option to perform strip in post script of rpm package & add...
[platform/upstream/rpm.git] / installplatform
1 #!/usr/bin/env bash
2
3 DESTDIR="${DESTDIR:-/}"
4 pkglibdir="${pkglibdir:-/usr/lib/rpm}"
5 platformdir="${pkglibdir}/platform"
6
7 RPMRC="${1:-rpmrc}"
8 PLATFORM="${2:-platform}"
9 VENDOR="${3}"
10 OS="${4}"
11 RPMRC_GNU="${5}"
12
13 for ARCH in noarch `grep ^arch_canon $RPMRC | cut -d: -f2`; do
14   RPMRC_OPTFLAGS="`sed -n 's/^optflags: '$ARCH' //p' $RPMRC`"
15   RPMRC_OPTFLAGS="`echo $RPMRC_OPTFLAGS | sed -e 's, ,\ ,g'`"
16   case $RPMRC_OPTFLAGS in
17   *-g*) ;;
18   *) RPMRC_OPTFLAGS="$RPMRC_OPTFLAGS -g" ;;
19   esac
20
21   ARCH_INSTALL_POST='%{nil}'
22   LIB=lib
23
24   # XXX FIXME: incomplete and quite likely wrong too in places,
25   # consult various arch folks for correct names etc.
26   ISANAME=
27   ISABITS=
28   CANONARCH=
29   CANONCOLOR=
30   FILTER=cat
31   case "${ARCH}" in
32     sparc64*) 
33         ISANAME=sparc
34         ISABITS=64
35         CANONARCH=sparc64
36         CANONCOLOR=3
37         ;;
38     sparc*) 
39         ISANAME=sparc
40         ISABITS=32
41         CANONARCH=sparc
42         CANONCOLOR=0
43         ;;
44     s390)
45         ISANAME=s390
46         ISABITS=32
47         CANONARCH=s390
48         CANONCOLOR=0
49         ;;
50     s390x)
51         ISANAME=s390
52         ISABITS=64
53         CANONARCH=s390x
54         CANONCOLOR=3
55         ;;
56     ppc64*)
57         ISANAME=ppc
58         ISABITS=64
59         CANONARCH=ppc64
60         CANONCOLOR=3
61         ;;
62     ppc*)
63         ISANAME=ppc
64         ISABITS=32
65         CANONARCH=ppc
66         CANONCOLOR=0
67         ;;
68     i?86|pentium?|athlon|geode)
69         ISANAME=x86
70         ISABITS=32
71         CANONARCH=i386
72         CANONCOLOR=0
73         ;;
74     x86_64|amd64|ia32e)
75         ISANAME=x86
76         ISABITS=64
77         CANONARCH=x86_64
78         CANONCOLOR=3
79         ;;
80     ia64)
81         ISANAME=ia
82         ISABITS=64
83         CANONARCH=ia64
84         CANONCOLOR=2
85         ;;
86     sh*)
87         ISANAME=sh
88         ISABITS=32
89         CANONARCH=${ARCH}
90         CANONCOLOR=0
91         ;;
92     arm*)
93         ISANAME=`echo ${ARCH} | sed "s/^\([^-]*\)-.*/\1/"`
94         ISABITS=32
95         CANONARCH=arm
96         CANONCOLOR=0
97         ;;
98     alpha*)
99         ISANAME=alpha
100         ISABITS=64
101         CANONARCH=alpha
102         CANONCOLOR=0
103         ;;
104     aarch64)
105         ISANAME=aarch
106         ISABITS=64
107         CANONARCH=aarch64
108         CANONCOLOR=3
109         ;;
110     noarch)
111         CANONARCH=noarch
112         CANONCOLOR=0
113         FILTER="grep -v -E ^(%optflag|%__isa)"
114         ;;
115   esac
116
117   # skip architectures for which we dont have full config parameters
118   [ -z "$CANONARCH" ] && continue
119
120   if [ "$OS" = "linux" ] && [ "$CANONCOLOR" = 3 ]; then
121       LIB=${LIB}64
122   fi
123
124   PPD="${DESTDIR}/${platformdir}/${ARCH}-${OS}"
125   [ -d $PPD ] || mkdir -p $PPD
126
127   cat $PLATFORM \
128   | sed -e "s#@RPMRC_OPTFLAGS@#$RPMRC_OPTFLAGS#" \
129         -e "s,@RPMCANONARCH@,$CANONARCH,g" \
130         -e "s,@RPMCANONCOLOR@,$CANONCOLOR," \
131         -e "s,@RPMRC_GNU@,$RPMRC_GNU," \
132         -e "s,@LIB@,$LIB," \
133         -e "s,@ARCH_INSTALL_POST@,$ARCH_INSTALL_POST," \
134         -e '/\${\w*:-/!s,\${,%{_,' \
135         -e "s,@ISANAME@,$ISANAME," \
136         -e "s,@ISABITS@,$ISABITS," \
137         -e "s,^@${VENDOR}@,," \
138   | grep -v '^@' \
139   | ${FILTER} \
140   > ${PPD}/macros
141
142 done