15b501c92SAndrew Rist# ************************************************************* 25b501c92SAndrew Rist# 35b501c92SAndrew Rist# Licensed to the Apache Software Foundation (ASF) under one 45b501c92SAndrew Rist# or more contributor license agreements. See the NOTICE file 55b501c92SAndrew Rist# distributed with this work for additional information 65b501c92SAndrew Rist# regarding copyright ownership. The ASF licenses this file 75b501c92SAndrew Rist# to you under the Apache License, Version 2.0 (the 85b501c92SAndrew Rist# "License"); you may not use this file except in compliance 95b501c92SAndrew Rist# with the License. You may obtain a copy of the License at 105b501c92SAndrew Rist# 115b501c92SAndrew Rist# http://www.apache.org/licenses/LICENSE-2.0 125b501c92SAndrew Rist# 135b501c92SAndrew Rist# Unless required by applicable law or agreed to in writing, 145b501c92SAndrew Rist# software distributed under the License is distributed on an 155b501c92SAndrew Rist# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 165b501c92SAndrew Rist# KIND, either express or implied. See the License for the 175b501c92SAndrew Rist# specific language governing permissions and limitations 185b501c92SAndrew Rist# under the License. 195b501c92SAndrew Rist# 205b501c92SAndrew Rist# ************************************************************* 21cdf0e10cSrcweir 22b63233d8Sdamjanif test -z "${SOLARENV}"; then 23b63233d8Sdamjan if test -f ./source_soenv.sh; then . ./source_soenv.sh; fi 24b63233d8Sdamjanfi 25b63233d8Sdamjanif test -z "${SOLARENV}"; then 26b63233d8Sdamjan echo "bootstrap: No environment set!" 27b63233d8Sdamjan exit 1 28b63233d8Sdamjanfi 29b63233d8Sdamjan 30b63233d8Sdamjan# remove aliases set by *Env.Set.sh 31b63233d8Sdamjanunalias mkout 32b63233d8Sdamjanunalias deliver 33b63233d8Sdamjanunalias build 34b63233d8Sdamjanunalias build_client 35b63233d8Sdamjanunalias zipdep 36b63233d8Sdamjanunalias nmake 37b63233d8Sdamjanunalias gunzip 38b63233d8Sdamjan 39cdf0e10cSrcweir# executables are *.exe for WNT. This variable is necessary since Cygwin 1.5.x 40cdf0e10cSrcweir# Use spawn instead of fork when building dmake on cygwin. 41cdf0e10cSrcweirif test "$GUI" = "WNT"; then 42cdf0e10cSrcweir EXEEXT=".exe" 43cdf0e10cSrcweirelse 44cdf0e10cSrcweir EXEEXT="" 45cdf0e10cSrcweirfi 46cdf0e10cSrcweirexport EXEEXT 47cdf0e10cSrcweir 48f0b2c876SAriel Constenla-Hailemkdir -p "$SOLARENV/$INPATH/bin" 49cdf0e10cSrcweir 50cdf0e10cSrcweir#make sure build.pl is executable 51cdf0e10cSrcweir 52cdf0e10cSrcweirchmod +x "$SRC_ROOT/solenv/bin/build.pl" 53cdf0e10cSrcweirchmod +x "$SRC_ROOT/solenv/bin/build_client.pl" 54cdf0e10cSrcweirchmod +x "$SRC_ROOT/solenv/bin/zipdep.pl" 55cdf0e10cSrcweirchmod +x "$SRC_ROOT/solenv/bin/gccinstlib.pl" 56cdf0e10cSrcweir 57566a295dSdamjan# fetch or update external tarballs 58566a295dSdamjanif [ "$DO_FETCH_TARBALLS" = "yes" ]; then 59566a295dSdamjan# check perl include locations 60566a295dSdamjan "$PERL" -e 'print "\nInclude locations: @INC\n\n"'; 611ba082f0SAriel Constenla-Haile "$PERL" "$SOLARENV/bin/download_external_dependencies.pl" $SRC_ROOT/external_deps.lst 6283e0440aSDamjan Jovanovic if [ "$?" != "0" ]; then 6383e0440aSDamjan Jovanovic echo "*** Error downloading external dependencies, please fix the previous problems and try again ***" 6483e0440aSDamjan Jovanovic exit 1 6583e0440aSDamjan Jovanovic fi 6637e6b05aSAndre Fischerfi 67fb6b49d1SJürgen Schmidt 68fb6b49d1SJürgen Schmidt# ------------------------------------------------------------------------------ 69fb6b49d1SJürgen Schmidt# Build dmake 70fb6b49d1SJürgen Schmidt 71f0b2c876SAriel Constenla-Haileif test -n "$DMAKE_URL" -a ! -x "$SOLARENV/$INPATH/bin/dmake$EXEEXT"; then 72fb6b49d1SJürgen Schmidt 73564327c4Sdamjan # Assume that the dmake archive has been downloaded 74fb6b49d1SJürgen Schmidt # Determine the name of the downloaded file. 75fb6b49d1SJürgen Schmidt dmake_package_name=`echo $DMAKE_URL | sed "s/^\(.*\/\)//"` 76fb6b49d1SJürgen Schmidt 77f0b2c876SAriel Constenla-Haile tmp_build_dir="$SOLARENV/$INPATH/misc/build/" 78fb6b49d1SJürgen Schmidt echo "making and entering $tmp_build_dir" 79fb6b49d1SJürgen Schmidt # Clean up any residues from a previous and unsuccessful build. 80fb6b49d1SJürgen Schmidt rm -rf "$tmp_build_dir" 81fb6b49d1SJürgen Schmidt mkdir -p "$tmp_build_dir" 82fb6b49d1SJürgen Schmidt cd "$tmp_build_dir" || exit 83fb6b49d1SJürgen Schmidt 84a6ff3988SAndre Fischer dmake_full_package_name=$(find $TARFILE_LOCATION -type f -name "*-$dmake_package_name") 85a6ff3988SAndre Fischer if [ -z "$dmake_full_package_name" ]; then 86a6ff3988SAndre Fischer echo "can not find the dmake package" 87a6ff3988SAndre Fischer exit 88a6ff3988SAndre Fischer fi 89fb6b49d1SJürgen Schmidt if test "$GUI" = "WNT"; then 90fb6b49d1SJürgen Schmidt dmake_full_package_name=`cygpath -u "$dmake_full_package_name"` 91fb6b49d1SJürgen Schmidt fi 92fb6b49d1SJürgen Schmidt echo "unpacking $dmake_full_package_name" 93fb6b49d1SJürgen Schmidt 94fb6b49d1SJürgen Schmidt # Unpack it. 95fb6b49d1SJürgen Schmidt case $dmake_package_name in 96fb6b49d1SJürgen Schmidt *.tar.gz) 97fb6b49d1SJürgen Schmidt tar -xzf "$dmake_full_package_name" 98fb6b49d1SJürgen Schmidt dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tar.gz\)//"` 99fb6b49d1SJürgen Schmidt ;; 100fb6b49d1SJürgen Schmidt *.tgz) 101fb6b49d1SJürgen Schmidt tar -xzf "$dmake_full_package_name" 102fb6b49d1SJürgen Schmidt dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tgz\)//"` 103fb6b49d1SJürgen Schmidt ;; 104fb6b49d1SJürgen Schmidt *.tar.bz2) 105fb6b49d1SJürgen Schmidt tar -xjf "$dmake_full_package_name" 106fb6b49d1SJürgen Schmidt dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tar.bz2\)//"` 107fb6b49d1SJürgen Schmidt ;; 108fb6b49d1SJürgen Schmidt *.zip) 109fb6b49d1SJürgen Schmidt unzip "$dmake_full_package_name" 110fb6b49d1SJürgen Schmidt dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.zip\)//"` 111fb6b49d1SJürgen Schmidt ;; 112fb6b49d1SJürgen Schmidt *) 113fb6b49d1SJürgen Schmidt echo "can not unpack the dmake source" 114fb6b49d1SJürgen Schmidt dmake_directory_name= 115fb6b49d1SJürgen Schmidt exit 1 116fb6b49d1SJürgen Schmidt ;; 117fb6b49d1SJürgen Schmidt esac 118fb6b49d1SJürgen Schmidt 119fb6b49d1SJürgen Schmidt echo "entering $dmake_directory_name" 120fb6b49d1SJürgen Schmidt cd "$dmake_directory_name" || exit 121fb6b49d1SJürgen Schmidt 122fb6b49d1SJürgen Schmidt # Special case! The w32/tcsh build needs CC pointing to the MSVC++ compiler 123fb6b49d1SJürgen Schmidt # but we need a cygwin/gcc build dmake to understand the posix paths 124fb6b49d1SJürgen Schmidt if test "$GUI" = "WNT"; then 125fb6b49d1SJürgen Schmidt CC="" 126fb6b49d1SJürgen Schmidt CXX="" 127fb6b49d1SJürgen Schmidt export CC 128fb6b49d1SJürgen Schmidt export CXX 129fb6b49d1SJürgen Schmidt DMAKE_CONF="--enable-spawn" 130fb6b49d1SJürgen Schmidt else 131fb6b49d1SJürgen Schmidt DMAKE_CONF="" 132fb6b49d1SJürgen Schmidt fi 133fb6b49d1SJürgen Schmidt 134fb6b49d1SJürgen Schmidt # For unixy systems 135fb6b49d1SJürgen Schmidt if test -f "Makefile" ; then 136fb6b49d1SJürgen Schmidt $GNUMAKE distclean || exit 137fb6b49d1SJürgen Schmidt fi 138fb6b49d1SJürgen Schmidt 139*fc846c7aSMatthias Seidel # config.guess and config.sub for dmake are too old, overwrite with ours: 140d7246584SDamjan Jovanovic cp $SOLARSRC/config.guess . 141*fc846c7aSMatthias Seidel cp $SOLARSRC/config.sub . 142d7246584SDamjan Jovanovic 143fb6b49d1SJürgen Schmidt ./configure $DMAKE_CONF || exit 144fb6b49d1SJürgen Schmidt 145fb6b49d1SJürgen Schmidt ## invoke the gnu make command set by configure. 146fb6b49d1SJürgen Schmidt $GNUMAKE || exit 147fb6b49d1SJürgen Schmidt 148fb6b49d1SJürgen Schmidt 149fb6b49d1SJürgen Schmidt # Deploy the dmake executable to solenv 150f0b2c876SAriel Constenla-Haile cp -f "$tmp_build_dir/$dmake_directory_name/dmake$EXEEXT" "$SOLARENV/$INPATH/bin/dmake$EXEEXT" || exit 151fb6b49d1SJürgen Schmidt echo "" 152f0b2c876SAriel Constenla-Haile echo "dmake successfully built and copied to $SOLARENV/$INPATH/bin/dmake$EXEEXT" 153fb6b49d1SJürgen Schmidt echo "" 154fb6b49d1SJürgen Schmidt 155fb6b49d1SJürgen Schmidt # Clean up. Note that this is skipped when one of the exits is executed above. 156fb6b49d1SJürgen Schmidt rm -rf "$tmp_build_dir" 157fb6b49d1SJürgen Schmidt 158aee29faaSAriel Constenla-Haileelif test "$IS_SYSTEM_DMAKE" = "YES"; then 159aee29faaSAriel Constenla-Haile 160aee29faaSAriel Constenla-Haile echo "" 161aee29faaSAriel Constenla-Haile echo "dmake is located in search path" 162aee29faaSAriel Constenla-Haile echo "" 163aee29faaSAriel Constenla-Haile 164f0b2c876SAriel Constenla-Haileelif test -n "$DMAKE_PATH" -a -x "$DMAKE_PATH" -a ! -x "$SOLARENV/$INPATH/bin/dmake$EXEEXT"; then 165aee29faaSAriel Constenla-Haile 166f0b2c876SAriel Constenla-Haile cp -f "$DMAKE_PATH" "$SOLARENV/$INPATH/bin/dmake$EXEEXT" || exit 167aee29faaSAriel Constenla-Haile 168aee29faaSAriel Constenla-Haile echo "" 169f0b2c876SAriel Constenla-Haile echo "dmake copied to $SOLARENV/$INPATH/bin/dmake$EXEEXT" 170aee29faaSAriel Constenla-Haile echo "" 171aee29faaSAriel Constenla-Haile 172fb6b49d1SJürgen Schmidtelse 173fb6b49d1SJürgen Schmidt 174f0b2c876SAriel Constenla-Haile if test -x "$SOLARENV/$INPATH/bin/dmake$EXEEXT"; then 175fb6b49d1SJürgen Schmidt echo "" 176f0b2c876SAriel Constenla-Haile echo "dmake present in $SOLARENV/$INPATH/bin/dmake$EXEEXT" 177fb6b49d1SJürgen Schmidt fi 178fb6b49d1SJürgen Schmidt 179fb6b49d1SJürgen Schmidtfi 180c6dedb65SAndre Fischer 181c6dedb65SAndre Fischer# Download missing extensions. 1821ba082f0SAriel Constenla-Haile"$PERL" "$SOLARENV/bin/download_missing_extensions.pl" 183