Subversion Repositories Open64

[/] [trunk/] [install_compiler.sh] - Blame information for rev 3353

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1050 laijx
#!/bin/bash
2
#
3
#
4 3314 dcoakley
#  Copyright (C) 2008-2010 Advanced Micro Devices, Inc.  All Rights Reserved.
5 2322 dcoakley
#
6 1050 laijx
#  Copyright (C) 2000 Silicon Graphics, Inc.  All Rights Reserved.
7
#
8
#  This program is free software; you can redistribute it and/or modify it
9
#  under the terms of version 2 of the GNU General Public License as
10
#  published by the Free Software Foundation.
11
#
12
#  This program is distributed in the hope that it would be useful, but
13
#  WITHOUT ANY WARRANTY; without even the implied warranty of
14
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
#
16
#  Further, this software is distributed without any warranty that it is
17
#  free of the rightful claim of any third person regarding infringement
18
#  or the like.  Any license provided herein, whether implied or
19
#  otherwise, applies only to this software file.  Patent licenses, if
20
#  any, provided herein do not apply to combinations of this program with
21
#  other software, or any other product whatsoever.
22
#
23
#  You should have received a copy of the GNU General Public License along
24
#  with this program; if not, write the Free Software Foundation, Inc., 59
25
#  Temple Place - Suite 330, Boston MA 02111-1307, USA.
26
#
27
#  Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
28
#  Mountain View, CA 94043, or:
29
#
30
#  http://www.sgi.com
31
#
32
#  For further information regarding this notice, see:
33
#
34
#  http://oss.sgi.com/projects/GenInfo/NoticeExplan
35
#
36
#
37
 
38 1081 laijx
VER_MAJOR="4"
39 1411 laijx
VER_MINOR="2"
40 1050 laijx
#PATCH_LEVEL=""
41 2322 dcoakley
VERSION="${OPEN64_FULL_VERSION:-${VER_MAJOR}.${VER_MINOR}}"
42 1050 laijx
 
43
PREBUILT_LIB="./lib"
44
PREBUILT_BIN="./bin"
45
 
46
# get the machine type
47
if [ -z "$1" ]; then
48
    ARCH=`uname -m | sed -e s/i.86/i386/`
49
else
50
    ARCH=$1
51
fi
52
 
53
# set the build host
54
case $ARCH in
55
ia64 )
56 1052 laijx
    BUILD_HOST="ia64"
57 1050 laijx
    TARG_HOST="ia64"
58 1052 laijx
    AREA="osprey/targia64_ia64_nodebug"
59
    PHASE_DIR_PREFIX="ia64"
60 1090 laijx
    PREBUILD_INTERPOS="ia64-linux"
61 1050 laijx
    INSTALL_TYPE="ia64-native"
62
    ;;
63 1411 laijx
i386 )
64 1050 laijx
    BUILD_HOST="ia32"
65
    TARG_HOST="x8664"
66 1052 laijx
    PHASE_DIR_PREFIX="x86_64"
67 1090 laijx
    PREBUILD_INTERPOS="x8664-linux"
68 1052 laijx
    AREA="osprey/targia32_x8664"
69 1050 laijx
    INSTALL_TYPE="x8664-native"
70
    ;;
71 1411 laijx
x86_64 )
72
    BUILD_HOST="x8664"
73
    TARG_HOST="x8664"
74
    PHASE_DIR_PREFIX="x86_64"
75
    PREBUILD_INTERPOS="x8664-linux"
76
    AREA="osprey/targx8664_x8664"
77
    INSTALL_TYPE="x8664-native"
78
    ;;
79 2752 dongyuan
ppc )
80
    BUILD_HOST="ppc32"
81
    TARG_HOST="ppc32"
82
    AREA="osprey/targppc32_ppc32"
83
    PHASE_DIR_PREFIX="ppc32"
84
    PREBUILD_INTERPOS="ppc32-linux"
85
    INSTALL_TYPE="ppc32-native"
86
    ;;
87 1050 laijx
cross )
88
    BUILD_HOST="ia32"
89
    TARG_HOST="ia64"
90 1052 laijx
    PHASE_DIR_PREFIX="ia64"
91 1090 laijx
    PREBUILD_INTERPOS="ia32-linux"
92 1052 laijx
    AREA="osprey/targia32_ia64_nodebug"
93 1050 laijx
    INSTALL_TYPE="ia64-cross"
94
    ;;
95
*)
96
    echo "Error: Unsupport platform: $ARCH"
97
    exit 1
98
    ;;
99
esac
100
 
101 3088 sje
AREA="osprey/targdir"
102
 
103 1050 laijx
# get the TOOLROOT
104
if [ -z ${TOOLROOT} ] ; then
105
    echo "NOTE: \$TOOLROOT is not set! You can either set \$TOOLROOT or specify an install directory."
106
    echo "INSTALL DIRECTORY:"
107
    read  # in $REPLY
108
    [ ! -d $REPLY ] && echo "$REPLY does not exist. Will create." && mkdir -p $REPLY
109
    [ ! -d $REPLY ] && echo "Can not create directory: $REPLY, exit." && exit 1
110
    ORIGIN_DIR=`pwd`
111
    cd $REPLY
112
    TOOLROOT=`pwd`
113
    cd $ORIGIN_DIR
114
    echo "INSTALL to $TOOLROOT"
115
fi
116
 
117
# everything we will install is under $ROOT
118
ROOT=${TOOLROOT}/
119
 
120
# both targ_os and build_os are 'linux' so far
121
TARG_OS="linux"
122
BUILD_OS="linux"
123
 
124
# prepare the source dir
125 3088 sje
GNUFE_AREA="osprey-gcc"
126
GNUFE42_AREA="osprey-gcc-4.2.0"
127
LD_NEW_DIR="osprey/cygnus/ld"
128 1050 laijx
 
129
# prepare the distination dir
130
INTERPOSE=
131
[ "$BUILD_HOST" = "$TARG_HOST" ] &&  INTERPOSE="" ;
132 1071 zx
PHASEPATH=${ROOT}/${INTERPOSE}/lib/gcc-lib/${PHASE_DIR_PREFIX}-open64-linux/${VERSION}/
133 1050 laijx
NATIVE_LIB_DIR=${PHASEPATH}
134 1071 zx
BIN_DIR=${ROOT}/${INTERPOSE}/bin
135
ALT_BIN_DIR=${ROOT}/${INTERPOSE}/altbin
136 1050 laijx
 
137
# install commands
138
INSTALL="/usr/bin/install -D"
139
INSTALL_DATA="/usr/bin/install -D -m 644"
140
 
141
INSTALL_EXEC_SUB () {
142
 
143
    [ $# -ne 2 ] && echo "!!!Component is missing, you probably need to install prebuilt binaries/archives" && return 1
144
 
145
    [ ! -e "$1" ] && echo "$1 does not exist" && return 1
146
 
147
    echo -e "$2 : $1 \n\t${INSTALL} $1 $2\n" | make -f - |\
148
    grep -v "Entering directory\|Leaving directory\|up to date"
149
 
150
    return 0;
151
}
152
 
153
INSTALL_DATA_SUB () {
154
 
155
    [ $# -ne 2 ] && echo "!!!Component is missing, you probably need to install prebuilt binaries/archives" && return 1
156
 
157
    [ ! -e "$1" ] && echo "$1 does not exist" && return 1
158
 
159
    echo -e "$2 : $1 \n\t${INSTALL_DATA} $1 $2\n" | make -f - |\
160
    grep -v "Entering directory\|Leaving directory\|up to date"
161
 
162
    return 0
163
}
164
 
165
# install the driver
166
INSTALL_DRIVER () {
167
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${PHASEPATH}/driver
168 2752 dongyuan
    if [ "$TARG_HOST" = "ia64" ] || [ "$TARG_HOST" = "x8664" ]; then
169 3088 sje
      INSTALL_EXEC_SUB ${TOP_SRCDIR}/osprey/targdir/driver/kdriver  ${PHASEPATH}/kdriver
170 2322 dcoakley
    fi
171 2752 dongyuan
    if [ "$TARG_HOST" = "ppc32" ]; then
172 3088 sje
      INSTALL_EXEC_SUB ${TOP_SRCDIR}/osprey/targdir/driver/kdriver  ${PHASEPATH}/kdriver
173 2752 dongyuan
    fi
174 1050 laijx
 
175
    [ ! -d ${BIN_DIR}       ] && mkdir -p ${BIN_DIR}
176
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/opencc
177
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openCC
178
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openf90
179
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openf95
180
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/opencc-${VERSION}
181
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openCC-${VERSION}
182
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openf90-${VERSION}
183
    INSTALL_EXEC_SUB ${AREA}/driver/driver  ${BIN_DIR}/openf95-${VERSION}
184
 
185 2752 dongyuan
    if [ "$TARG_HOST" = "ia64" ] || [ "$TARG_HOST" = "x8664" ]; then
186 3088 sje
      INSTALL_EXEC_SUB ${TOP_SRCDIR}/osprey/targdir/driver/kdriver ${BIN_DIR}/kopencc
187 2322 dcoakley
    fi
188 2752 dongyuan
    if [ "$TARG_HOST" = "ppc32" ]; then
189 3088 sje
      INSTALL_EXEC_SUB ${TOP_SRCDIR}/osprey/targdir/driver/kdriver ${BIN_DIR}/kopencc
190 2752 dongyuan
    fi
191 1050 laijx
 
192
    return 0
193
}
194
 
195 2722 dcoakley
# Install internal gcc distribution
196
INSTALL_GCC () {
197
    pushd ${GNUFE42_AREA}
198
 
199
    for j in '*/*' '*/*/*' '*/*/*/*' '*/*/*/*/*' '*/*/*/*/*/*' '*/*/*/*/*/*/*' '*/*/*/*/*/*/*/*'; do
200
        for i in open64-gcc-4.2.0/$j; do
201
            if [ -e $i ] && [ ! -d $i ]; then
202
                INSTALL_EXEC_SUB $i ${ROOT}/$i
203
            fi
204
        done
205
    done
206
 
207
    # Make links to gcc runtime libraries
208
    cd ${ROOT}
209 3353 dgilmore
    test -d $PHASEPATH/64 || mkdir $PHASEPATH/64
210 2918 ycwu
    if [ "$TARG_HOST" = "x8664" ]
211
    then
212
  for i in open64-gcc-4.2.0/lib64/lib*.so*; do
213
      if [ -e "$i" ]
214
      then
215 3284 ycwu
    (cd $PHASEPATH/64; ln -sf ../../../../../$i `basename $i`)
216 2918 ycwu
      fi
217
  done
218
  for i in open64-gcc-4.2.0/lib/lib*.so*; do
219
      if [ -e "$i" ]
220
      then
221
    (cd $PHASEPATH/32; ln -sf ../../../../../$i `basename $i`)
222
      fi
223
  done
224
    elif [ "$TARG_HOST" = "ia64" ]
225
    then
226
  for i in open64-gcc-4.2.0/lib/lib*.so*; do
227
      if [ -e "$i" ]
228
      then
229 3284 ycwu
    (cd $PHASEPATH/64; ln -sf ../../../../../$i `basename $i`)
230 2918 ycwu
      fi
231
  done
232
    fi
233 2722 dcoakley
 
234
    popd
235
 
236
    return 0
237
}
238
 
239 1050 laijx
# Install front-end components
240
INSTALL_FE () {
241
 
242 3276 dcoakley
    # optional GNU 3.3 based FE
243
    if [ -f ${AREA}/gccfe/gfec ] ; then
244
      INSTALL_EXEC_SUB ${AREA}/gccfe/gfec  ${PHASEPATH}/gfec
245
      INSTALL_EXEC_SUB ${AREA}/g++fe/gfecc ${PHASEPATH}/gfecc
246
    fi
247
 
248 1411 laijx
    # GNU 4.2.0 based FE
249 3088 sje
    INSTALL_EXEC_SUB ${AREA}/wgen/wgen42 ${PHASEPATH}/wgen42
250 2772 ycwu
    LIBEXEC=libexec/gcc/${PHASE_DIR_PREFIX}-redhat-linux/4.2.0
251 2722 dcoakley
    (cd $PHASEPATH; ln -sf ../../../../open64-gcc-4.2.0/${LIBEXEC}/cc1 cc142)
252
    (cd $PHASEPATH; ln -sf ../../../../open64-gcc-4.2.0/${LIBEXEC}/cc1plus cc1plus42)
253 1050 laijx
 
254
    if [ -f ${AREA}/crayf90/sgi/mfef95 ] ; then
255
      INSTALL_EXEC_SUB ${AREA}/crayf90/sgi/mfef95   ${PHASEPATH}/mfef95
256
      INSTALL_EXEC_SUB ${AREA}/crayf90/sgi/cf95.cat ${PHASEPATH}/cf95.cat
257
    fi
258
    return 0
259
}
260
 
261
# Install back-end components
262
INSTALL_BE () {
263
    INSTALL_EXEC_SUB ${AREA}/be/be  ${PHASEPATH}/be
264
    INSTALL_EXEC_SUB ${AREA}/be/be.so ${PHASEPATH}/be.so
265
 
266
    return 0
267
}
268
 
269
# Install IPA-related components
270
INSTALL_IPA () {
271
 
272
    INSTALL_EXEC_SUB ${AREA}/ipa/ipa.so ${PHASEPATH}/ipa.so
273
    INSTALL_EXEC_SUB ${AREA}/ipl/ipl.so ${PHASEPATH}/ipl.so
274
 
275
    INSTALL_EXEC_SUB ${LD_NEW_DIR}/ld-new  ${PHASEPATH}/ipa_link
276
 
277 2322 dcoakley
    (cd ${PHASEPATH}; ln -sf be ipl)
278 1050 laijx
 
279
    return 0
280
}
281
 
282
# Install CG-related components
283
INSTALL_CG () {
284
    INSTALL_EXEC_SUB ${AREA}/cg/cg.so                ${PHASEPATH}/cg.so
285
    if [ "$TARG_HOST" = "ia64" ]; then
286
        # orc_ict.so and orc_intel.so is only valid on ia64
287
        INSTALL_EXEC_SUB ${AREA}/orc_ict/orc_ict.so      ${PHASEPATH}/orc_ict.so
288
        INSTALL_EXEC_SUB ${AREA}/orc_intel/orc_intel.so  ${PHASEPATH}/orc_intel.so
289
    fi
290
    return 0
291
}
292
 
293
INSTALL_WHIRL_STUFF () {
294
 
295
    INSTALL_EXEC_SUB  ${AREA}/whirl2c/whirl2c    ${PHASEPATH}/whirl2c
296
    INSTALL_EXEC_SUB  ${AREA}/whirl2f/whirl2f    ${PHASEPATH}/whirl2f
297
    INSTALL_EXEC_SUB  ${AREA}/whirl2c/whirl2c.so ${PHASEPATH}/whirl2c.so
298
    INSTALL_EXEC_SUB  ${AREA}/whirl2f/whirl2f.so ${PHASEPATH}/whirl2f.so
299
 
300 2322 dcoakley
    (cd ${PHASEPATH}; ln -sf be whirl2c_be)
301
    (cd ${PHASEPATH}; ln -sf be whirl2f_be)
302 1050 laijx
 
303
    INSTALL_EXEC_SUB  ${AREA}/ir_tools/ir_b2a    ${BIN_DIR}/ir_b2a
304 1411 laijx
    INSTALL_EXEC_SUB  ${AREA}/libspin_4_2_0/gspin42 ${BIN_DIR}/gspin42
305 3276 dcoakley
    (cd ${BIN_DIR}; ln -sf gspin42 gspin)
306 1050 laijx
 
307
    return 0
308
}
309
 
310
 
311
 
312
# Install those archieves that are deemed as part of compiler, so
313
# we put them where the orcc-phases reside.
314
INSTALL_PHASE_SPECIFIC_ARCHIVES () {
315
 
316
    if [ "$TARG_HOST" = "ia64" ] ; then
317
        # These stuffs are only valid on ia64
318 3088 sje
  LIBAREA="osprey/targdir_lib"
319 1359 laijx
 
320 1050 laijx
        # f90 related archieves
321
        INSTALL_DATA_SUB ${AREA}/temp_f90libs/lib.cat  ${PHASEPATH}/lib.cat
322
        INSTALL_DATA_SUB ${AREA}/temp_f90libs/lib.exp  ${PHASEPATH}/lib.exp
323
 
324
        # instrument archieves.
325 1359 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libcginstr/libcginstr.a  ${PHASEPATH}/libcginstr.a
326
        INSTALL_DATA_SUB ${LIBAREA}/libinstr/libinstr.a      ${PHASEPATH}/libinstr.a
327 1050 laijx
 
328
        #  SGI implementation for turning on FLUSH to ZERO
329 1359 laijx
        INSTALL_DATA_SUB ${LIBAREA}/init/ftz.o     ${PHASEPATH}/ftz.o
330 2752 dongyuan
    elif [ "$TARG_HOST" = "ppc32" ] ;  then
331 3088 sje
  LIBAREA="osprey/targdir_lib"
332
  LIB32AREA="osprey/targdir_lib2"
333 2752 dongyuan
        # 64bit libraries
334
        INSTALL_DATA_SUB ${LIBAREA}/libfortran/libfortran.a ${PHASEPATH}/libfortran.a
335
        INSTALL_DATA_SUB ${LIBAREA}/libu/libffio.a          ${PHASEPATH}/libffio.a
336
        INSTALL_DATA_SUB ${LIBAREA}/libm/libmsgi.a       ${PHASEPATH}/libmsgi.a
337
        INSTALL_DATA_SUB ${LIBAREA}/libmv/libmv.a           ${PHASEPATH}/libmv.a
338
      INSTALL_DATA_SUB ${LIBAREA}/libopenmp/libopenmp.a      ${PHASEPATH}/libopenmp.a
339
        # 32bit libraries
340
        INSTALL_DATA_SUB ${LIB32AREA}/libfortran/libfortran.a ${PHASEPATH}/32/libfortran.a
341
        INSTALL_DATA_SUB ${LIB32AREA}/libu/libffio.a          ${PHASEPATH}/32/libffio.a
342
        INSTALL_DATA_SUB ${LIB32AREA}/libm/libmsgi.a       ${PHASEPATH}/32/libmsgi.a
343
        INSTALL_DATA_SUB ${LIB32AREA}/libmv/libmv.a           ${PHASEPATH}/32/libmv.a
344 1359 laijx
    else
345
        # IA32 and x86_64
346 3088 sje
  LIBAREA="osprey/targdir_lib2"
347
  LIB32AREA="osprey/targdir_lib"
348
        HUGETLB=${TOP_SRCDIR}/osprey/libhugetlbfs
349 2322 dcoakley
 
350 1359 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libinstr2/libinstr.a      ${PHASEPATH}/libinstr.a
351
        INSTALL_DATA_SUB ${LIB32AREA}/libinstr2/libinstr.a      ${PHASEPATH}/32/libinstr.a
352 2322 dcoakley
 
353
        INSTALL_DATA_SUB ${LIBAREA}/libopen64rt/libopen64rt.a      ${PHASEPATH}/libopen64rt.a
354
        INSTALL_DATA_SUB ${LIB32AREA}/libopen64rt/libopen64rt.a      ${PHASEPATH}/32/libopen64rt.a
355
 
356
        INSTALL_DATA_SUB ${LIBAREA}/libopen64rt/libopen64rt_shared.a      ${PHASEPATH}/libopen64rt_shared.a
357
        INSTALL_DATA_SUB ${LIB32AREA}/libopen64rt/libopen64rt_shared.a      ${PHASEPATH}/32/libopen64rt_shared.a
358
 
359
        INSTALL_DATA_SUB ${LIBAREA}/libhugetlbfs/obj64/libhugetlbfs_open64.a     ${PHASEPATH}/libhugetlbfs_open64.a
360
        INSTALL_DATA_SUB ${LIB32AREA}/libhugetlbfs/obj32/libhugetlbfs_open64.a   ${PHASEPATH}/32/libhugetlbfs_open64.a
361
 
362
        INSTALL_DATA_SUB ${LIBAREA}/libhugetlbfs/obj64/libhugetlbfs_open64.so    ${PHASEPATH}/libhugetlbfs_open64.so.1
363
        INSTALL_DATA_SUB ${LIB32AREA}/libhugetlbfs/obj32/libhugetlbfs_open64.so  ${PHASEPATH}/32/libhugetlbfs_open64.so.1
364
 
365
        (cd ${PHASEPATH}; ln -sf libhugetlbfs_open64.so.1 libhugetlbfs_open64.so)
366
        (cd ${PHASEPATH}/32; ln -sf libhugetlbfs_open64.so.1 libhugetlbfs_open64.so)
367
 
368 3353 dgilmore
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_x86_64.xB      ${PHASEPATH}/64/elf.xB
369 2322 dcoakley
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_i386.xB        ${PHASEPATH}/32/elf.xB
370
 
371 3353 dgilmore
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_x86_64.xBDT    ${PHASEPATH}/64/elf.xBDT
372 2322 dcoakley
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_i386.xBDT      ${PHASEPATH}/32/elf.xBDT
373
 
374 3353 dgilmore
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_x86_64_1G.xBDT    ${PHASEPATH}/64/elf_1G.xBDT
375 2322 dcoakley
        INSTALL_DATA_SUB ${HUGETLB}/ldscripts/elf_i386_1G.xBDT      ${PHASEPATH}/32/elf_1G.xBDT
376 3314 dcoakley
 
377 3353 dgilmore
        INSTALL_DATA_SUB ${LIBAREA}/libhugetlbfs/elf.xBD    ${PHASEPATH}/64/elf.xBD
378 3314 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libhugetlbfs/elf.xBD      ${PHASEPATH}/32/elf.xBD
379
 
380 3353 dgilmore
        INSTALL_DATA_SUB ${LIBAREA}/libhugetlbfs/elf_1G.xBD    ${PHASEPATH}/64/elf_1G.xBD
381 3314 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libhugetlbfs/elf_1G.xBD      ${PHASEPATH}/32/elf_1G.xBD
382
 
383 1050 laijx
    fi
384
 
385 2322 dcoakley
    # libgcc.a, libstdc++.a and libstdc++.so are deemed as "GNU link" specific archives
386 1233 laijx
    if [ "$ARCH" = "ia64" ] ; then
387 2106 laijx
        for i in libgcc.a libgcc_s.so libstdc++.a libstdc++.so; do
388 1233 laijx
            F=`gcc --print-file-name $i`
389 1950 laijx
            if [ ! -z "$F" ] && [ -e "$F" ]; then
390
              INSTALL_DATA_SUB $F ${PHASEPATH}/$i
391
            fi
392 1233 laijx
        done
393
    fi
394 1050 laijx
    return 0
395
}
396
 
397 1359 laijx
# Install the general propose libraries, libfortran.a, libffio.a, libmsgi.a, libmv.a, libm.a, libopenmp.a
398 1050 laijx
INSTALL_GENERAL_PURPOSE_NATIVE_ARCHIVES () {
399
 
400
    if [ "$TARG_HOST" = "ia64" ] ; then
401 3088 sje
  LIBAREA="osprey/targdir_lib"
402 1050 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libfortran/libfortran.a ${PHASEPATH}/libfortran.a
403
        INSTALL_DATA_SUB ${LIBAREA}/libu/libffio.a          ${PHASEPATH}/libffio.a
404 1359 laijx
        # libmsgi.a is no longer needed
405
        #INSTALL_DATA_SUB ${LIBAREA}/libmsgi/libmsgi.a       ${PHASEPATH}/libmsgi.a
406 1050 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libmv/libmv.a           ${PHASEPATH}/libmv.a
407
        INSTALL_DATA_SUB ${PREBUILT_LIB}/${TARG_HOST}-${TARG_OS}/gnu/libm.a ${PHASEPATH}/libm.a
408 1134 hjz
  INSTALL_DATA_SUB ${LIBAREA}/libopenmp/libopenmp.a      ${PHASEPATH}/libopenmp.a
409 2752 dongyuan
    elif [ "$TARG_HOST" = "ppc32" ] ; then
410 3088 sje
  LIBAREA="osprey/targdir_lib"
411
  LIB32AREA="osprey/targdir_lib2"
412 1050 laijx
    else
413 3088 sje
  LIBAREA="osprey/targdir_lib2"
414
        LIB32AREA="osprey/targdir_lib"
415 1050 laijx
        # 64bit libraries
416
        INSTALL_DATA_SUB ${LIBAREA}/libfortran/libfortran.a ${PHASEPATH}/libfortran.a
417 2722 dcoakley
        INSTALL_DATA_SUB ${LIBAREA}/libfortran/libfortran.so ${PHASEPATH}/libfortran.so
418 3314 dcoakley
        # FMODS="IEEE_ARITHMETIC.mod IEEE_EXCEPTIONS.mod IEEE_FEATURES.mod ISO_C_BINDING.mod ISO_FORTRAN_ENV.mod"
419
  FMODS="ISO_C_BINDING.mod"
420
        for i in $FMODS ; do
421
            INSTALL_DATA_SUB ${LIBAREA}/libfortran/$i ${PHASEPATH}/$i
422
        done
423 1050 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libu/libffio.a          ${PHASEPATH}/libffio.a
424 2722 dcoakley
        INSTALL_DATA_SUB ${LIBAREA}/libu/libffio.so          ${PHASEPATH}/libffio.so
425 1359 laijx
        #INSTALL_DATA_SUB ${LIBAREA}/libm/libmsgi.a       ${PHASEPATH}/libmsgi.a
426 1050 laijx
        INSTALL_DATA_SUB ${LIBAREA}/libmv/libmv.a           ${PHASEPATH}/libmv.a
427 2322 dcoakley
        INSTALL_DATA_SUB ${LIBAREA}/libmv/libmv.so.1           ${PHASEPATH}/libmv.so.1
428
        INSTALL_DATA_SUB ${LIBAREA}/libopenmp/libopenmp.a      ${PHASEPATH}/libopenmp.a
429
        INSTALL_DATA_SUB ${LIBAREA}/libopenmp/libopenmp.so.1      ${PHASEPATH}/libopenmp.so.1
430 2722 dcoakley
        INSTALL_DATA_SUB ${LIBAREA}/libacml_mv/libacml_mv.a ${PHASEPATH}/libacml_mv.a
431 3314 dcoakley
        INSTALL_DATA_SUB ${LIBAREA}/libacml_mv/libacml_mv.so.1 ${PHASEPATH}/libacml_mv.so.1
432 1050 laijx
        # 32bit libraries
433
        INSTALL_DATA_SUB ${LIB32AREA}/libfortran/libfortran.a ${PHASEPATH}/32/libfortran.a
434 2722 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libfortran/libfortran.so ${PHASEPATH}/32/libfortran.so
435 3314 dcoakley
        for i in $FMODS ; do
436
            INSTALL_DATA_SUB ${LIB32AREA}/libfortran/$i ${PHASEPATH}/32/$i
437
        done
438 1050 laijx
        INSTALL_DATA_SUB ${LIB32AREA}/libu/libffio.a          ${PHASEPATH}/32/libffio.a
439 2722 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libu/libffio.so          ${PHASEPATH}/32/libffio.so
440 2322 dcoakley
        #INSTALL_DATA_SUB ${LIB32AREA}/libm/libmsgi.a       ${PHASEPATH}/32/libmsgi.a
441 1050 laijx
        INSTALL_DATA_SUB ${LIB32AREA}/libmv/libmv.a           ${PHASEPATH}/32/libmv.a
442 2322 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libmv/libmv.so.1           ${PHASEPATH}/32/libmv.so.1
443 1359 laijx
        INSTALL_DATA_SUB ${LIB32AREA}/libopenmp/libopenmp.a      ${PHASEPATH}/32/libopenmp.a
444 2322 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libopenmp/libopenmp.so.1      ${PHASEPATH}/32/libopenmp.so.1
445 2722 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libacml_mv/libacml_mv.a ${PHASEPATH}/32/libacml_mv.a
446 3314 dcoakley
        INSTALL_DATA_SUB ${LIB32AREA}/libacml_mv/libacml_mv.so.1 ${PHASEPATH}/32/libacml_mv.so.1
447 2322 dcoakley
 
448
        (cd ${PHASEPATH}; ln -sf libmv.so.1 libmv.so; ln -sf libopenmp.so.1 libopenmp.so)
449 3314 dcoakley
        (cd ${PHASEPATH}; ln -sf libacml_mv.so.1 libacml_mv.so)
450 2322 dcoakley
        (cd ${PHASEPATH}/32; ln -sf libmv.so.1 libmv.so; ln -sf libopenmp.so.1 libopenmp.so)
451 3314 dcoakley
        (cd ${PHASEPATH}/32; ln -sf libacml_mv.so.1 libacml_mv.so)
452 1050 laijx
    fi
453
    return 0
454
}
455
 
456
INSTALL_PREBUILD_GNU_NATIVE_CRT_STARTUP () {
457
 
458 1233 laijx
    if [ "$ARCH" = "ia64" ] ; then
459
        for i in crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o crtendT.o; do
460 1950 laijx
            F=`gcc --print-file-name=$i`
461
            if [ ! -z "F" ] && [ -e "$F" ]; then
462
              INSTALL_DATA_SUB $F ${PHASEPATH}/$i
463
            fi
464 1233 laijx
        done
465
    fi
466 1050 laijx
    return 0
467
}
468
 
469
 
470
INSTALL_PREBUILD_OPEN64_NATIVE_LIB () {
471
 
472 1090 laijx
    [ ! -d ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/open64 ] && return 0
473 1050 laijx
 
474 1090 laijx
    for i in ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/open64/* ; do
475 1050 laijx
 
476
        x=`basename $i`
477
        [ "$x" = "CVS" ] && continue;
478
        [ "$x" = ".svn" ] && continue;
479
 
480
        [ "$x" = "libinstr.a" ] &&
481
            INSTALL_DATA_SUB $i ${PHASEPATH}/$x && continue;
482
        [ "$x" = "libcginstr.a" ] &&
483
            INSTALL_DATA_SUB $i ${PHASEPATH}/$x && continue;
484
 
485
        INSTALL_DATA_SUB $i ${NATIVE_LIB_DIR}/`basename $i`
486
    done
487
 
488
    # install the 32bit prebuild libraries for x8664
489
    [ "$TARG_HOST" != "x8664" ] && return 0
490 1090 laijx
    [ ! -d ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/open64/32 ] && return 0
491
    for i in ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/open64/32/* ; do
492 1050 laijx
 
493
        x=`basename $i`
494
        [ "$x" = "CVS" ] && continue;
495
        [ "$x" = ".svn" ] && continue;
496
 
497 1052 laijx
        INSTALL_DATA_SUB $i ${NATIVE_LIB_DIR}/32/$x
498 1050 laijx
    done
499
 
500
    return 0
501
}
502
 
503
   # Install GNU glic-devel package. this is perform only for cross compilation.
504
   # On native environment, we requires the end user install glibc-devel before
505
   # hand.
506
INSTALL_PREBUILD_GLIBC_NATIVE_LIB () {
507
 
508 1090 laijx
    [ ! -d ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/gnu ] && return 0
509 1050 laijx
 
510 1090 laijx
    for i in ${PREBUILT_LIB}/${PREBUILD_INTERPOS}/gnu/* ; do
511 1050 laijx
        x=`basename $i`
512
        [ "$x" = "CVS" ] && continue;
513
        [ "$x" = ".svn" ] && continue;
514
        [ "$x" = "libstdc++.a" ] && continue;
515
        [ "$x" = "libgcc.a"    ] && continue;
516
        INSTALL_EXEC_SUB $i ${NATIVE_LIB_DIR}/`basename $i`
517
    done
518
 
519
    return 0
520
}
521
 
522
INSTALL_PREBUILD_PHASE () {
523
 
524
    # Some prebuild
525 1090 laijx
    for i in ${PREBUILT_BIN}/${PREBUILD_INTERPOS}/phase/* ; do
526 1050 laijx
  [ ! -e $i ] && continue;
527
        [ "`basename $i`" = "CVS" ] && continue
528
        [ "`basename $i`" = ".svn" ] && continue
529
        INSTALL_EXEC_SUB $i ${PHASEPATH}/`basename $i`
530
    done
531
 
532
    return 0
533
}
534
 
535
INSTALL_CROSS_UTIL () {
536
 
537 1090 laijx
    [ ! -d ${PREBUILT_BIN}/${PREBUILD_INTERPOS}/util ] && return 0
538 1050 laijx
 
539 1090 laijx
    for i in ${PREBUILT_BIN}/${PREBUILD_INTERPOS}/util/* ; do
540 1050 laijx
  [ "`basename $i`" = "CVS" ] && continue
541
        [ "`basename $i`" = ".svn" ] && continue
542
      INSTALL_EXEC_SUB $i ${BIN_DIR}/`basename $i`
543
    done
544
 
545
    return 0
546
}
547
 
548
INSTALL_NATIVE_HEADER () {
549
 
550
    #INSTALL_DATA_SUB osprey/include/nue/stdarg.h  ${PHASEPATH}/include/stdarg.h
551
    #INSTALL_DATA_SUB osprey/include/nue/va-ia64.h  ${PHASEPATH}/include/va-ia64.h
552
    #cp -f -a osprey/include ${PHASEPATH}/
553 3088 sje
    INSTALL_DATA_SUB ${TOP_SRCDIR}/osprey/include/whirl2c.h  ${ROOT}/include/${VERSION}/whirl2c.h
554
    INSTALL_DATA_SUB ${TOP_SRCDIR}/osprey/include/whirl2f.h  ${ROOT}/include/${VERSION}/whirl2f.h
555 1050 laijx
 
556 1071 zx
    INSTALL_DATA_SUB ${AREA}/include/dwarf.h  ${ROOT}/include/${VERSION}/dwarf.h
557
    INSTALL_DATA_SUB ${AREA}/include/libdwarf.h  ${ROOT}/include/${VERSION}/libdwarf.h
558 1050 laijx
 
559 1071 zx
    INSTALL_DATA_SUB ${AREA}/include/libelf/libelf.h  ${ROOT}/include/${VERSION}/libelf/libelf.h
560
    INSTALL_DATA_SUB ${AREA}/include/libelf/sys_elf.h  ${ROOT}/include/${VERSION}/libelf/sys_elf.h
561 1050 laijx
 
562 3088 sje
    INSTALL_DATA_SUB ${TOP_SRCDIR}/osprey/include/omp/omp.h  ${ROOT}/include/${VERSION}/omp.h
563
    INSTALL_DATA_SUB ${TOP_SRCDIR}/osprey/include/omp/omp_lib.h  ${ROOT}/include/${VERSION}/omp_lib.h
564
    INSTALL_DATA_SUB ${TOP_SRCDIR}/osprey/include/omp/omp_lib.f  ${ROOT}/include/${VERSION}/omp_lib.f
565 1117 hjz
 
566 1050 laijx
    return 0
567
}
568
 
569
INSTALL_MAN_PAGE () {
570
 
571
    d1=osprey/man/linux/man1
572
    d2=$ROOT/usr/man/man1
573
 
574
    INSTALL_DATA_SUB $d1/sgicc.1 $d2
575
    INSTALL_DATA_SUB $d1/sgif90.1 $d2
576
 
577 2322 dcoakley
    (cd $d2; ln -sf sgicc.1 sgiCC.1)
578 1050 laijx
 
579
    return 0
580
}
581
 
582
INSTALL_MISC () {
583
    INSTALL_EXEC_SUB ${AREA}/wopt/wopt.so         ${PHASEPATH}/wopt.so
584
    INSTALL_EXEC_SUB ${AREA}/lw_inline/lw_inline  ${PHASEPATH}/inline
585
    INSTALL_EXEC_SUB ${AREA}/lno/lno.so           ${PHASEPATH}/lno.so
586
 
587
    if [ "$TARG_HOST" = "ia64" ]; then
588
        INSTALL_EXEC_SUB ${AREA}/targ_info/itanium.so ${PHASEPATH}/itanium.so
589
        INSTALL_EXEC_SUB ${AREA}/targ_info/itanium2.so ${PHASEPATH}/itanium2.so
590
    fi
591 2752 dongyuan
    if [ "$TARG_HOST" = "ppc32" ]; then
592
        INSTALL_EXEC_SUB ${AREA}/targ_info/ppc.so ${PHASEPATH}/ppc.so
593
    fi
594 1050 laijx
    if [ "$TARG_HOST" = "x8664" ]; then
595
        INSTALL_EXEC_SUB ${AREA}/targ_info/opteron.so ${PHASEPATH}/opteron.so
596
        INSTALL_EXEC_SUB ${AREA}/targ_info/em64t.so ${PHASEPATH}/em64t.so
597 1411 laijx
        INSTALL_EXEC_SUB ${AREA}/targ_info/core.so ${PHASEPATH}/core.so
598 2057 tangwei
        INSTALL_EXEC_SUB ${AREA}/targ_info/wolfdale.so ${PHASEPATH}/wolfdale.so
599 1411 laijx
        INSTALL_EXEC_SUB ${AREA}/targ_info/barcelona.so ${PHASEPATH}/barcelona.so
600 2722 dcoakley
        INSTALL_EXEC_SUB ${AREA}/targ_info/orochi.so ${PHASEPATH}/orochi.so
601 1050 laijx
    fi
602
#    if [ ! -z "$ROOT" ] ; then
603
#        for i in gcc f77 as ld g++ gas as ; do
604
#            x=`which $i 2>/dev/null`
605
#            [ ! -z "$x" ] && ln -s $x $BIN_DIR/`basename $x` 2>/dev/null
606
#        done
607
#    fi
608
 
609
    # install some scripts
610
    [ ! -d ${PREBUILT_BIN}/misc ] && return 0
611
    for i in ${PREBUILT_BIN}/misc/* ; do
612
        [ -f "$i" ] && INSTALL_EXEC_SUB ${i} ${BIN_DIR}/`basename $i`
613
    done
614
 
615
    return 0
616
}
617
 
618 3314 dcoakley
# Create the Fortran module files for the OpenMP interface
619
INSTALL_MODULES () {
620
    if [ ! -e ${ROOT}/include/${VERSION}/OMP_LIB.mod ] ; then
621
        (cd ${ROOT}/include/${VERSION}; ${ROOT}/bin/openf90 -c omp_lib.f)
622
    fi
623
 
624
    return 0
625
}
626
 
627 3088 sje
# cd `dirname $0`
628 1050 laijx
 
629
[ ! -d ${BIN_DIR} ] && mkdir -p ${BIN_DIR}
630
[ ! -d ${NATIVE_LIB_DIR} ] && mkdir -p ${NATIVE_LIB_DIR}
631
if [ "$TARG_HOST" = "x8664" -a ! -d "${NATIVE_LIB_DIR}/32" ]; then
632
    mkdir -p ${NATIVE_LIB_DIR}/32
633
fi
634
 
635
INSTALL_DRIVER
636 2752 dongyuan
if [ "$TARG_HOST" != "ppc32"  ]; then
637 2722 dcoakley
INSTALL_GCC
638 2752 dongyuan
fi
639 1050 laijx
INSTALL_FE
640
INSTALL_BE
641
INSTALL_IPA
642
INSTALL_CG
643
INSTALL_WHIRL_STUFF
644
INSTALL_MISC
645 2076 tangwei
INSTALL_NATIVE_HEADER
646 1050 laijx
 
647
#cat << _EOF_
648
# ------------------------------------------------------------------------
649
# NOTE: Following archives may not present. these archives are built on
650
#   Native or NUE platform (by 'make library'), but do not
651
#   worry, prebuild verion of them are provided.
652
#
653
#   {libcginstr.a libinstr.a ftz.o libfortran.a libffio.a
654
#                 libmsgi.a libmv.a}
655
#
656
#   Normally, you need not to build these archives.
657
# ------------------------------------------------------------------------
658
#_EOF_
659
 
660
# Install archieves
661
INSTALL_PHASE_SPECIFIC_ARCHIVES
662
[ "$INSTALL_TYPE" = "ia64-cross" ] && INSTALL_PREBUILD_GLIBC_NATIVE_LIB
663
[ "$INSTALL_TYPE" = "ia64-cross" ] && INSTALL_NATIVE_HEADER
664 1098 hucheng
INSTALL_GENERAL_PURPOSE_NATIVE_ARCHIVES
665 1050 laijx
INSTALL_PREBUILD_OPEN64_NATIVE_LIB
666
INSTALL_PREBUILD_GNU_NATIVE_CRT_STARTUP
667
[ "$INSTALL_TYPE" = "ia64-cross" ] && INSTALL_CROSS_UTIL
668
INSTALL_PREBUILD_PHASE
669 3314 dcoakley
INSTALL_MODULES
670 1050 laijx
 
671
exit 0
672