5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe#!/bin/bash
e65b56dc229f063425fac589002e34c8246ad878trawick#
30990c446eca5b0d16d42171a6b30da9456ff6b4trawick# CDDL HEADER START
30990c446eca5b0d16d42171a6b30da9456ff6b4trawick#
30990c446eca5b0d16d42171a6b30da9456ff6b4trawick# The contents of this file are subject to the terms of the
0fd9de72e2a1be5a6134ee70703324be80d816b7trawick# Common Development and Distribution License (the "License").
0fd9de72e2a1be5a6134ee70703324be80d816b7trawick# You may not use this file except in compliance with the License.
0fd9de72e2a1be5a6134ee70703324be80d816b7trawick#
0fd9de72e2a1be5a6134ee70703324be80d816b7trawick# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2213cc395cb461faf7bfeb187ebb61d97cd457efjerenkrantz# or http://www.opensolaris.org/os/licensing.
f36d2c405b5a9bcc22c67577995560e7d1b616c0aaron# See the License for the specific language governing permissions
2213cc395cb461faf7bfeb187ebb61d97cd457efjerenkrantz# and limitations under the License.
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe#
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# When distributing Covered Code, include this CDDL HEADER in each
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# If applicable, add the following below this CDDL HEADER, with the
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# fields enclosed by brackets "[]" replaced with your own identifying
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# information: Portions Copyright [yyyy] [name of copyright owner]
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe#
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# CDDL HEADER END
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe#
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe#
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe#
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wroweunset MAKEFLAGS
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wroweunset MAKELEVEL
854c7bc4128fa2ad9fdfe0fc307d5ef30bcb5bb9wrowe
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport BUILDTYPE=""
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport BUILDMODE=""
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport CONFIG="sunpro.config"
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport TOPLEVELDIR=""
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport BUILDDIR=""
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport LDSOFLAGS="${LDFLAGS}"
75f8e1cae5ca3a16a7400cdddf604815ab06b5a8rederpjexport CXXOPTS="${CXXFLAGS}"
2221ad59a355f17a27727dd12cfa14fdae87975agregamesexport LDOPTS="${LDFLAGS}"
2221ad59a355f17a27727dd12cfa14fdae87975agregamesexport LD="${CXX} ${CXXFLAGS} ${LDFLAGS}"
2221ad59a355f17a27727dd12cfa14fdae87975agregames
2221ad59a355f17a27727dd12cfa14fdae87975agregamesUNKNOWN_ARG=yes
2221ad59a355f17a27727dd12cfa14fdae87975agregamesPRINT_HELP=no
7f481efe04fdc4da7a447c14be62c155cbe00ddbbrianp
7f481efe04fdc4da7a447c14be62c155cbe00ddbbrianpcheck_args() {
7f481efe04fdc4da7a447c14be62c155cbe00ddbbrianp while [ "$#" -gt 0 ] ; do
7f481efe04fdc4da7a447c14be62c155cbe00ddbbrianp UNKNOWN_ARG=no
9ed34e5219ab3506ccfd2ca58751ce4c81b263a8rederpj case "$1" in
9ed34e5219ab3506ccfd2ca58751ce4c81b263a8rederpj -m32)
9ed34e5219ab3506ccfd2ca58751ce4c81b263a8rederpj BUILDTYPE="8d"
9ed34e5219ab3506ccfd2ca58751ce4c81b263a8rederpj BUILDMODE="shared,pthreads"
23b36269d124e7a6aaa5221891f7ae2ef3eeb158jerenkrantz ;;
23b36269d124e7a6aaa5221891f7ae2ef3eeb158jerenkrantz -m64)
23b36269d124e7a6aaa5221891f7ae2ef3eeb158jerenkrantz BUILDTYPE="8D"
d401ff3af66624a7023460054519070a025d31cfwrowe BUILDMODE="shared,pthreads"
d401ff3af66624a7023460054519070a025d31cfwrowe ;;
d401ff3af66624a7023460054519070a025d31cfwrowe -topdir=*)
d401ff3af66624a7023460054519070a025d31cfwrowe TOPLEVELDIR=`echo $1 | sed "s,^-topdir=\(.*\),\1,"`
e65b56dc229f063425fac589002e34c8246ad878trawick ;;
e65b56dc229f063425fac589002e34c8246ad878trawick -builddir=*)
e65b56dc229f063425fac589002e34c8246ad878trawick BUILDDIR=`echo $1 | sed "s,^-builddir=\(.*\),\1,"`
e65b56dc229f063425fac589002e34c8246ad878trawick ;;
306bd64cf6568149964abdf8ca748a617ed98500gregames *)
306bd64cf6568149964abdf8ca748a617ed98500gregames UNKNOWN_ARG=yes
306bd64cf6568149964abdf8ca748a617ed98500gregames ;;
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe esac
ae3d212043d50288748fe9fdf0aa1a3e8f2ff3a6wrowe
ae3d212043d50288748fe9fdf0aa1a3e8f2ff3a6wrowe if [ "$UNKNOWN_ARG" = "yes" ] ; then
ae3d212043d50288748fe9fdf0aa1a3e8f2ff3a6wrowe echo "$1: Invalid argument"
ae3d212043d50288748fe9fdf0aa1a3e8f2ff3a6wrowe PRINT_HELP=yes
ae3d212043d50288748fe9fdf0aa1a3e8f2ff3a6wrowe shift
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick continue
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick fi
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick shift
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick done
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick
766c20b0366e1d0e359e0d9a834669e19a4db3d9trawick export BUILDTYPE BUILDMODE TOPLEVELDIR
2a6e98ba4ffa30ded5d8831664c5cb2a170a56b6coar export BUILDDIR="${TOPLEVELDIR}/build"
2a6e98ba4ffa30ded5d8831664c5cb2a170a56b6coar export LD_LIBRARY_PATH="${BUILDDIR}/lib:${LD_LIBRARY_PATH}"
2a6e98ba4ffa30ded5d8831664c5cb2a170a56b6coar
2a6e98ba4ffa30ded5d8831664c5cb2a170a56b6coar echo "BUILDTYPE: ${BUILDTYPE}"
9a11fa4e07f50f2e5750d078ef3751ddbf441b8ftrawick echo "TOPLEVELDIR: ${TOPLEVELDIR}"
9a11fa4e07f50f2e5750d078ef3751ddbf441b8ftrawick echo "BUILDDIR: ${BUILDDIR}"
9a11fa4e07f50f2e5750d078ef3751ddbf441b8ftrawick
1f279dc92a60df9f61bf58468162aab0eef072e4brianp cd ${TOPLEVELDIR}
1f279dc92a60df9f61bf58468162aab0eef072e4brianp if [ -f config.done ] ; then
1f279dc92a60df9f61bf58468162aab0eef072e4brianp rm -f config.done
1f279dc92a60df9f61bf58468162aab0eef072e4brianp fi
2fd0edbd8b2f47a8458322bedd3b82f825faf336trawick
2fd0edbd8b2f47a8458322bedd3b82f825faf336trawick if [ "x${BUILDTYPE}" = "x" ] || [ "x${TOPLEVELDIR}" = "x" ] ; then
2fd0edbd8b2f47a8458322bedd3b82f825faf336trawick PRINT_HELP=yes
39021cf8b495cdb94013ca73531ccb32658fb793rederpj fi
39021cf8b495cdb94013ca73531ccb32658fb793rederpj
39021cf8b495cdb94013ca73531ccb32658fb793rederpj if [ "$PRINT_HELP" = "yes" ] || [ "$UNKNOWN_ARG" = "yes" ] ; then
39021cf8b495cdb94013ca73531ccb32658fb793rederpj echo "Usage: `basename $0` [ -m32 | -m64 ] --topdir=[ \$(top_srcdir) ]"
39021cf8b495cdb94013ca73531ccb32658fb793rederpj exit 1
39021cf8b495cdb94013ca73531ccb32658fb793rederpj fi
39021cf8b495cdb94013ca73531ccb32658fb793rederpj}
39021cf8b495cdb94013ca73531ccb32658fb793rederpj
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowecheck_directories() {
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe if [ ! -d Solaris ] ; then
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe echo "Expected directory Solaris not found."
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe echo "Make sure this directory exists in the stdcxx toplevel."
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe echo ""
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe exit 1
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe fi
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe}
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowe
fa16f10bc02e46bc5a6c2c2c6371926cd1dbe2edwrowecheck_buildtype() {
db8ac7cbb1fa6cdd6abcc4bb797d4deed32dd269jim if [ "x${BUILDTYPE}" = "x" ] ; then
db8ac7cbb1fa6cdd6abcc4bb797d4deed32dd269jim echo "\$BUILDTYPE [ 8d | 8D ] is not set."
db8ac7cbb1fa6cdd6abcc4bb797d4deed32dd269jim echo ""
db8ac7cbb1fa6cdd6abcc4bb797d4deed32dd269jim exit 1
db8ac7cbb1fa6cdd6abcc4bb797d4deed32dd269jim fi
7b979864a91b52ecebca11d0a9a22e09349e59baminfrin echo "BUILDTYPE: ${BUILDTYPE}."
8d755accbdc5ae15bb0d00169b815d264c7de745minfrin echo "BUILDMODE: ${BUILDMODE}."
8d755accbdc5ae15bb0d00169b815d264c7de745minfrin}
7b979864a91b52ecebca11d0a9a22e09349e59baminfrin
7b979864a91b52ecebca11d0a9a22e09349e59baminfrincheck_compiler_flags() {
7b0a3bcc0e689305df49f7d4da7abc35aa891862brianp if [ "x${CC}" = "x" ] ; then
7b0a3bcc0e689305df49f7d4da7abc35aa891862brianp echo "\$CC is not set."
7b0a3bcc0e689305df49f7d4da7abc35aa891862brianp echo ""
1bae4591a85d90325ecdacedf7e54d1bbfe31037aaron exit 1
1bae4591a85d90325ecdacedf7e54d1bbfe31037aaron fi
1bae4591a85d90325ecdacedf7e54d1bbfe31037aaron echo "CC: ${CC}."
a6f48cc01ab8f5377e570c61826dcdfc36741936trawick export CC=`echo ${CC}`
a6f48cc01ab8f5377e570c61826dcdfc36741936trawick
a6f48cc01ab8f5377e570c61826dcdfc36741936trawick if [ "x${CXX}" = "x" ] ; then
a6f48cc01ab8f5377e570c61826dcdfc36741936trawick echo "\$CXX is not set."
2da345202997f8f5860c801d68f7913c02fc05fctrawick echo ""
2da345202997f8f5860c801d68f7913c02fc05fctrawick exit 1
2da345202997f8f5860c801d68f7913c02fc05fctrawick fi
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe echo "CXX: ${CXX}."
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe export CXX=`echo ${CXX}`
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe if [ "x${CFLAGS}" = "x" ] ; then
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe echo "\$CFLAGS is not set."
5bd562b1d7da51cb5715899d32bb4c79c54459b0wrowe echo ""
1c06e98017400874d5ff6ad79f13145ec4589225striker exit 1
1c06e98017400874d5ff6ad79f13145ec4589225striker fi
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe echo "CFLAGS: ${CFLAGS}."
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe if [ "x${CPPFLAGS}" = "x" ] ; then
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe echo "\$CPPFLAGS is not set."
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe echo ""
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe exit 1
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe fi
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe echo "CPPFLAGS: ${CPPFLAGS}."
99a041314eb3db0b0cca325c9c40d0a6c5fdf04fwrowe
6e119e632566d69798ce6cf4e714ed374b72914frederpj if [ "x${CXXFLAGS}" = "x" ] ; then
6e119e632566d69798ce6cf4e714ed374b72914frederpj echo "\$CXXFLAGS is not set. Make sure you have set -library=no%Cstd."
6e119e632566d69798ce6cf4e714ed374b72914frederpj echo ""
6e119e632566d69798ce6cf4e714ed374b72914frederpj exit 1
6e119e632566d69798ce6cf4e714ed374b72914frederpj fi
bd120542ebe7e09cdbada5daf4924f4690e5ece3trawick echo "CXXFLAGS: ${CXXFLAGS}."
bd120542ebe7e09cdbada5daf4924f4690e5ece3trawick
bd120542ebe7e09cdbada5daf4924f4690e5ece3trawick if [ "x${LDFLAGS}" = "x" ] ; then
bd120542ebe7e09cdbada5daf4924f4690e5ece3trawick echo "\$LDFLAGS is not set."
bd120542ebe7e09cdbada5daf4924f4690e5ece3trawick echo ""
68d439bc0482b2e41053480f748edc2574c2ea7btrawick exit 1
68d439bc0482b2e41053480f748edc2574c2ea7btrawick fi
68d439bc0482b2e41053480f748edc2574c2ea7btrawick echo "LDFLAGS: ${LDFLAGS}."
68d439bc0482b2e41053480f748edc2574c2ea7btrawick}
dddbde8480d265d06c84f2281f01e00f8ef52e94mjc
dddbde8480d265d06c84f2281f01e00f8ef52e94mjccheck_gnu_make() {
dddbde8480d265d06c84f2281f01e00f8ef52e94mjc if [ "x${MAKE}" = "x" ] ; then
a5ca705e053a6c754c5958aafcd6f0aa60a2e67frbb echo "\$MAKE is not set. Please use GNU make to build stdcxx."
e06675c51d084791089d79c3ac18aeae8dd465fcrbb echo ""
e06675c51d084791089d79c3ac18aeae8dd465fcrbb exit 1
e06675c51d084791089d79c3ac18aeae8dd465fcrbb fi
e06675c51d084791089d79c3ac18aeae8dd465fcrbb gnumake=`${MAKE} --version | grep -- "GNU"`
481c1206b6065a8f37ab75ca1fc26c947cb37852ianh if [ "x${gnumake}" = "x" ] ; then
481c1206b6065a8f37ab75ca1fc26c947cb37852ianh echo "\$MAKE is not GNU make. stdcxx requires GNU make."
481c1206b6065a8f37ab75ca1fc26c947cb37852ianh exit 1
a964f7434f5c7f512a5fa0d0178260ccb74c84berbb fi
a964f7434f5c7f512a5fa0d0178260ccb74c84berbb echo "MAKE: ${MAKE}."
a964f7434f5c7f512a5fa0d0178260ccb74c84berbb}
a964f7434f5c7f512a5fa0d0178260ccb74c84berbb
6a7877447bcb8e6ff848d72f82f184c404ef4c0bminfrinfix_ansi_dir() {
6a7877447bcb8e6ff848d72f82f184c404ef4c0bminfrin cd ${TOPLEVELDIR}
6a7877447bcb8e6ff848d72f82f184c404ef4c0bminfrin
9335cbd541cca1ca6038af329bbd1645310aabccminfrin for file in \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin wctype.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin wchar.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin time.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin string.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin stdlib.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin stdio.h \
9335cbd541cca1ca6038af329bbd1645310aabccminfrin stddef.h \
e156db58351d1c040bc72430f3eb072cb6ae7107brianp stdarg.h \
e156db58351d1c040bc72430f3eb072cb6ae7107brianp signal.h \
e156db58351d1c040bc72430f3eb072cb6ae7107brianp setjmp.h \
e156db58351d1c040bc72430f3eb072cb6ae7107brianp math.h \
1c06e98017400874d5ff6ad79f13145ec4589225striker locale.h \
1c06e98017400874d5ff6ad79f13145ec4589225striker limits.h \
1c06e98017400874d5ff6ad79f13145ec4589225striker float.h \
eb1349e4ab58bd2935f7054a1bfc5c86ab5a5fa3striker errno.h \
eb1349e4ab58bd2935f7054a1bfc5c86ab5a5fa3striker ctype.h \
6a94da925498a20a09fde0a66002607be8d83b1astriker assert.h \
6a94da925498a20a09fde0a66002607be8d83b1astriker _cwctype.h \
75161f3b2029c25bdb3f8ab87b85cb1810c479eajerenkrantz _cwchar.h \
7639aa8b39e0d9dbd096f9cc3379bcd3d5e4003bstriker _ctime.h \
8dc5aa056a586ffa920a6ecd5c31048702371ea6brianp _cstring.h \
4c9d27bfdfea41b388dc705f7cc2b49318ab5344jim _cstdlib.h \
4c9d27bfdfea41b388dc705f7cc2b49318ab5344jim _cstdio.h \
4c9d27bfdfea41b388dc705f7cc2b49318ab5344jim _cstddef.h \
e8e8ab3cbc3d90f15eb78e094c381a6e908fd6efjerenkrantz _cstdarg.h \
e8e8ab3cbc3d90f15eb78e094c381a6e908fd6efjerenkrantz _csignal.h \
e8e8ab3cbc3d90f15eb78e094c381a6e908fd6efjerenkrantz _csetjmp.h \
f4c472b8dce3c2e559232dbb5b27ed2466922ea4jerenkrantz _cmath.h \
f4c472b8dce3c2e559232dbb5b27ed2466922ea4jerenkrantz _clocale.h \
8dc5aa056a586ffa920a6ecd5c31048702371ea6brianp _cfloat.h \
8dc5aa056a586ffa920a6ecd5c31048702371ea6brianp _cerrno.h \
8dc5aa056a586ffa920a6ecd5c31048702371ea6brianp _cctype.h \
7e31ef4870c7ef94838585004405e8854fefcc51ianh _cassert.h
7e31ef4870c7ef94838585004405e8854fefcc51ianhdo
7e31ef4870c7ef94838585004405e8854fefcc51ianh if [ -f ./include/ansi/$file ] ; then
7e31ef4870c7ef94838585004405e8854fefcc51ianh rm -f ./include/ansi/$file
7e31ef4870c7ef94838585004405e8854fefcc51ianh fi
bd496a3a7752a55c849e62ed00cacc492d4f6d3erederpjdone
bd496a3a7752a55c849e62ed00cacc492d4f6d3erederpj
bd496a3a7752a55c849e62ed00cacc492d4f6d3erederpjfor file in \
bd496a3a7752a55c849e62ed00cacc492d4f6d3erederpj stdint.h
bd496a3a7752a55c849e62ed00cacc492d4f6d3erederpjdo
a8c401eadf77822e851f19c7740e7ec6dca03daastoddard if [ -f ./include/tr1/$file ] ; then
a8c401eadf77822e851f19c7740e7ec6dca03daastoddard rm -f ./include/tr1/$file
a8c401eadf77822e851f19c7740e7ec6dca03daastoddard fi
a8c401eadf77822e851f19c7740e7ec6dca03daastoddarddone
93d7153aa172665f55b04463b831ad556269c3efbrianp
791781f2ccc1f1f1bc1b1643861d3da23edfd147jerenkrantzfor file in \
791781f2ccc1f1f1bc1b1643861d3da23edfd147jerenkrantz cstdint
2ffa5829cad36f12b0a1fc3481592e85bc210a5bjerenkrantzdo
2ffa5829cad36f12b0a1fc3481592e85bc210a5bjerenkrantz if [ -f ./include/tr1/${file} ] ; then
2ffa5829cad36f12b0a1fc3481592e85bc210a5bjerenkrantz cp -fp ./include/tr1/${file} ./include/ansi/
02e8590d904653a95eca31bdf8e60866642bb592slive fi
02e8590d904653a95eca31bdf8e60866642bb592slivedone
30a5ee06ae5f7f67a83d6852871f654ae3e14aadslive}
02e8590d904653a95eca31bdf8e60866642bb592slive
a97c4ce2bea3dbf8ddc82c796cf93aa6b46765a4brianpmake_config() {
a97c4ce2bea3dbf8ddc82c796cf93aa6b46765a4brianp echo "Configuring ..." `pwd`
a97c4ce2bea3dbf8ddc82c796cf93aa6b46765a4brianp rm -rf ${BUILDDIR}
b7838ae85a698af19d90ba4ebe03e10bdc149eacjerenkrantz echo
b7838ae85a698af19d90ba4ebe03e10bdc149eacjerenkrantz echo "MAKEFLAGS: ${MAKEFLAGS}"
435d2db95b905b0d16d35410e18ff77dc39688aabrianp echo "MAKELEVEL: ${MAKELEVEL}"
435d2db95b905b0d16d35410e18ff77dc39688aabrianp unset MAKEFLAGS
435d2db95b905b0d16d35410e18ff77dc39688aabrianp unset MAKELEVEL
1a7728c0205d607d5d87c6b6bf1b8837a9785a99ianh export LIBDIR="${TOPLEVELDIR}/lib"
a574815e2c6db68b9d8139db89921ededf033decianh rm -rf ${LIBDIR}
a574815e2c6db68b9d8139db89921ededf033decianh mkdir -p ${LIBDIR}
964f539e766a3301b3e2f767baeffddcf9f6092bjerenkrantz
964f539e766a3301b3e2f767baeffddcf9f6092bjerenkrantz for file in \
964f539e766a3301b3e2f767baeffddcf9f6092bjerenkrantz "collapse_static_locals.lib" \
5e538c6ced13aa2f7c358e1a44f651d31dd5fab8brianp "collapse_template_statics.lib" \
5e538c6ced13aa2f7c358e1a44f651d31dd5fab8brianp "collapse_template_locals.lib" \
5e538c6ced13aa2f7c358e1a44f651d31dd5fab8brianp "extern_inline.lib" \
5e538c6ced13aa2f7c358e1a44f651d31dd5fab8brianp "lib_exceptions.lib"
61202a45487668abad788c02e339f626176e645fianh do
61202a45487668abad788c02e339f626176e645fianh echo "${CXX} ${CPPFLAGS} ${CXXFLAGS} -c ${TOPLEVELDIR}/etc/config/src/${file}.cpp -o ${LIBDIR}/${file}.o"
61202a45487668abad788c02e339f626176e645fianh ${CXX} ${CPPFLAGS} ${CXXFLAGS} -c ${TOPLEVELDIR}/etc/config/src/${file}.cpp -o ${LIBDIR}/${file}.o
02c49e1f35a4d1a171df2d319e76af0c5163dc4dmartin echo "${CXX} ${CXXFLAGS} ${LDFLAGS} -G -hlib${file}.so ${LIBDIR}/${file}.o -o ${LIBDIR}/lib${file}.so"
02c49e1f35a4d1a171df2d319e76af0c5163dc4dmartin ${CXX} ${CXXFLAGS} ${LDFLAGS} -G -h${file}.so ${LIBDIR}/${file}.o -o ${LIBDIR}/lib${file}.so
02c49e1f35a4d1a171df2d319e76af0c5163dc4dmartin done
6deb8bcfb8511ac38243a8274fc589842841b398ianh
6deb8bcfb8511ac38243a8274fc589842841b398ianh unset LIBDIR
6deb8bcfb8511ac38243a8274fc589842841b398ianh export LD_OPTIONS="-L${TOPLEVELDIR}/lib -R${TOPLEVELDIR}/lib"
49bbbd1939208be54a3eb00b95e61d90d180a606ianh export LD_OPTIONS="${LD_OPTIONS} -L${BUILDDIR}/include -R${BUILDDIR}/include"
49bbbd1939208be54a3eb00b95e61d90d180a606ianh
93d7153aa172665f55b04463b831ad556269c3efbrianp echo $MAKE SHELL=/bin/bash CC=${CC} CXX=${CXX} LD_OPTIONS="${LD_OPTIONS}" LDFLAGS="${LDFLAGS} ${LD_OPTIONS}" TOPDIR=${TOPLEVELDIR} BUILDTYPE=${BUILDTYPE} BUILDMODE=${BUILDMODE} CONFIG=${CONFIG} config
93d7153aa172665f55b04463b831ad556269c3efbrianp ${MAKE} SHELL=/bin/bash CC="${CC}" CXX="${CXX}" LD_OPTIONS="${LD_OPTIONS}" LDFLAGS="${LDFLAGS} ${LD_OPTIONS}" TOPDIR="${TOPLEVELDIR}" BUILDTYPE="${BUILDTYPE}" BUILDMODE="${BUILDMODE}" CONFIG="${CONFIG}" config
93d7153aa172665f55b04463b831ad556269c3efbrianp unset LD_OPTIONS
93d7153aa172665f55b04463b831ad556269c3efbrianp echo "Configuration finished."
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard}
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard
bc6600a6207e5d15b895294e370e4e3320a803d8stoddardpost_config() {
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard echo "Performing post-configuration updates ... "
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard if [ ! -f ../Solaris/atomic-cxx.d ] ; then
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard echo "atomic-cxx.d not found!"
bc6600a6207e5d15b895294e370e4e3320a803d8stoddard echo "Post-configuration FAILED!!!"
4e21f1a207aefa9796dc758bf7274b0f1fea780fstoddard exit 1
7a23067e782dd5612d4d4b539906e1733b664df7jwoolley fi
5c214a63f9722864ac4983995da11353779515dbrederpj mkdir -p build/lib/.depend
5c214a63f9722864ac4983995da11353779515dbrederpj cp -fp ../Solaris/atomic-cxx.d build/lib/.depend/
5c214a63f9722864ac4983995da11353779515dbrederpj touch -acm build/lib/.depend/atomic-cxx.d
5c214a63f9722864ac4983995da11353779515dbrederpj cd ${BUILDDIR}/include
9f20717d827f2113a23dfa45539813171cf626eaianh if [ -f config.h ] ; then
9f20717d827f2113a23dfa45539813171cf626eaianh mv config.h config.h.orig
9f20717d827f2113a23dfa45539813171cf626eaianh unamep=`uname -p`
9f20717d827f2113a23dfa45539813171cf626eaianh is64bit=`echo ${CXXFLAGS} | grep -- "-m64"`
a0db2f093595083300ad3438314f90921405ccf9wrowe export HEADER_FILE="stdcxx"
a0db2f093595083300ad3438314f90921405ccf9wrowe if [ "x${unamep}" = "xsparc" ] ; then
a0db2f093595083300ad3438314f90921405ccf9wrowe if [ "x${is64bit}" = "x" ] ; then
c66798efb2184ecf904cd8471acd17e65688b1caianh export HEADER_FILE="${HEADER_FILE}_sparc.h"
c66798efb2184ecf904cd8471acd17e65688b1caianh else
fb59f85aab19883025f619727948b8088232cc4brederpj export HEADER_FILE="${HEADER_FILE}_sparcv9.h"
fb59f85aab19883025f619727948b8088232cc4brederpj fi
fb59f85aab19883025f619727948b8088232cc4brederpj else
fb59f85aab19883025f619727948b8088232cc4brederpj if [ "x${is64bit}" = "x" ] ; then
1a1cf0ee9229ee29e5750b25dd94dbb9b04072cfianh export HEADER_FILE="${HEADER_FILE}_i386.h"
1a1cf0ee9229ee29e5750b25dd94dbb9b04072cfianh else
1a1cf0ee9229ee29e5750b25dd94dbb9b04072cfianh export HEADER_FILE="${HEADER_FILE}_amd64.h"
1a1cf0ee9229ee29e5750b25dd94dbb9b04072cfianh fi
61afed048a4d67ed923d52e5c865c0f10a8e9e73trawick fi
0bbb249eafe9ef9508821f0ef58e7440625ecd62trawick
0bbb249eafe9ef9508821f0ef58e7440625ecd62trawick if [ ! -f ../../Solaris/${HEADER_FILE} ] ; then
61afed048a4d67ed923d52e5c865c0f10a8e9e73trawick echo "Required configuration header file ${HEADER_FILE} not found!"
7a23067e782dd5612d4d4b539906e1733b664df7jwoolley exit 1
7a23067e782dd5612d4d4b539906e1733b664df7jwoolley fi
7a23067e782dd5612d4d4b539906e1733b664df7jwoolley
7a23067e782dd5612d4d4b539906e1733b664df7jwoolley echo "Using configuration header file ${HEADER_FILE}"
6032a7c97a25c52f4bdd78ce23f2010e52c9e81arederpj
6032a7c97a25c52f4bdd78ce23f2010e52c9e81arederpj cp -fp ../../Solaris/${HEADER_FILE} .
6032a7c97a25c52f4bdd78ce23f2010e52c9e81arederpj chmod 0644 ${HEADER_FILE}
ba2e14e474516f1c75a96b4f6d1a9dec332175efianh touch -r config.h.orig -acm ${HEADER_FILE}
ba2e14e474516f1c75a96b4f6d1a9dec332175efianh
ec69fc6e323eb1f3112966e06e9e37be608d052cianh if [ -f "${TOPLEVELDIR}/../Solaris/rwconfig_std.h" ] ; then
f0791c5bdfd36969d292a4092df076aa6d1c34ccwrowe cp -fp "${TOPLEVELDIR}/../Solaris/rwconfig_std.h" .
f0791c5bdfd36969d292a4092df076aa6d1c34ccwrowe chmod 0644 rwconfig_std.h
f0791c5bdfd36969d292a4092df076aa6d1c34ccwrowe touch -acm rwconfig_std.h
f0791c5bdfd36969d292a4092df076aa6d1c34ccwrowe ln -sf rwconfig_std.h config.h
749011213737e8d0cd6ca78d5eb532ec6f6b9fdfianh cd ${TOPLEVELDIR}
749011213737e8d0cd6ca78d5eb532ec6f6b9fdfianh echo "Removing configuration phase core files [expected]."
749011213737e8d0cd6ca78d5eb532ec6f6b9fdfianh find . -type f -name "core" -exec rm -f {} \; -print
ec69fc6e323eb1f3112966e06e9e37be608d052cianh echo "Post-configuration succeeded."
ec69fc6e323eb1f3112966e06e9e37be608d052cianh else
e7bf4d6f15d04e86e20002e65f60d7fbf80e5974stoddard echo "Standard configuration file ${TOPLEVELDIR}/../Solaris/rwconfig_std.h not found!"
e7bf4d6f15d04e86e20002e65f60d7fbf80e5974stoddard echo "Post-configuration FAILED!!!"
8ab933f1df663f95c27e2ce5772127d4f3a10e0bstriker exit 1
de42d3dfd83a4cc62f0dd6b79ee5cbcfa69fd503brianp fi
de42d3dfd83a4cc62f0dd6b79ee5cbcfa69fd503brianp else
de42d3dfd83a4cc62f0dd6b79ee5cbcfa69fd503brianp echo "Initial configuration file 'config.h' has not been created."
de42d3dfd83a4cc62f0dd6b79ee5cbcfa69fd503brianp echo "Post-configuration FAILED!!!"
8ab933f1df663f95c27e2ce5772127d4f3a10e0bstriker exit 1
a8dda281113c5038945423320d8c9b42e3d1ddb1jwoolley fi
50e60f30bdc074fbc887f0b98f4d570457ac97c9brianp}
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowefinish() {
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe echo "stdcxx has been configured. You can now type '$MAKE' to build."
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe echo ""
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe cd ${TOPLEVELDIR}
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe touch config.done
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe exit 0
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe}
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowecheck_args $@
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowecheck_directories
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowecheck_buildtype
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowecheck_compiler_flags
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowecheck_gnu_make
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowefix_ansi_dir
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowemake_config
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowepost_config
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowefinish
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe
39dde7f4cd79d701cc14e5beac8ea528bc58d038wrowe