xref: /AOO41X/main/bootstrap.1 (revision fb6b49d1f8971f340a754928d99f78c923e031ed)
1
2# executables are *.exe for WNT. This variable is necessary since Cygwin 1.5.x
3# Use spawn instead of fork when building dmake on cygwin.
4if test "$GUI" = "WNT"; then
5    EXEEXT=".exe"
6else
7    EXEEXT=""
8fi
9export EXEEXT
10
11mkdir -p "$SOLARENV/$OUTPATH/bin"
12
13if test "$GUI" = "WNT" -a ! -x "$SOLARENV/$OUTPATH/bin/guw$EXEEXT"; then
14  echo ""
15  echo "Calling $GNUMAKE in guw"
16  cd "$SRC_ROOT/guw" || exit
17  $GNUMAKE || exit
18  echo ""
19  echo "guw has been successfully made"
20  cp -f "$SRC_ROOT/guw/guw$EXEEXT" "$SOLARENV/$OUTPATH/bin/guw$EXEEXT" || exit
21  echo ""
22  echo "guw copied to $SOLARENV/$OUTPATH/bin/guw$EXEEXT"
23fi
24
25#make sure build.pl is executable
26
27chmod +x "$SRC_ROOT/solenv/bin/build.pl"
28chmod +x "$SRC_ROOT/solenv/bin/build_client.pl"
29chmod +x "$SRC_ROOT/solenv/bin/zipdep.pl"
30chmod +x "$SRC_ROOT/solenv/bin/gccinstlib.pl"
31
32# fetch or update external tarballs
33if [ "$DO_FETCH_TARBALLS" = "yes" ]; then
34	$SRC_ROOT/fetch_tarballs.sh $SRC_ROOT/ooo.lst
35fi
36
37# ------------------------------------------------------------------------------
38# Build dmake
39
40if test -n "$DMAKE_URL" -a  ! -x "$SOLARENV/$OUTPATH/bin/dmake$EXEEXT"; then
41
42    # Assume that the dmake archive has been downloaded by fetch_tarballs.sh
43    # Determine the name of the downloaded file.
44    dmake_package_name=`echo $DMAKE_URL | sed "s/^\(.*\/\)//"`
45
46    tmp_build_dir="$SOLARENV/$OUTPATH/misc/build/"
47    echo "making and entering $tmp_build_dir"
48    # Clean up any residues from a previous and unsuccessful build.
49    rm -rf "$tmp_build_dir"
50    mkdir -p "$tmp_build_dir"
51    cd "$tmp_build_dir" || exit
52
53    dmake_full_package_name="$TARFILE_LOCATION/$dmake_package_name"
54    if test "$GUI" = "WNT"; then
55        dmake_full_package_name=`cygpath -u "$dmake_full_package_name"`
56    fi
57    echo "unpacking $dmake_full_package_name"
58
59    # Unpack it.
60    case $dmake_package_name in
61        *.tar.gz)
62            tar -xzf "$dmake_full_package_name"
63            dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tar.gz\)//"`
64            ;;
65        *.tgz)
66            tar -xzf "$dmake_full_package_name"
67            dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tgz\)//"`
68            ;;
69        *.tar.bz2)
70            tar -xjf "$dmake_full_package_name"
71            dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.tar.bz2\)//"`
72            ;;
73        *.zip)
74            unzip "$dmake_full_package_name"
75            dmake_directory_name=`echo $dmake_package_name | sed "s/\(\.zip\)//"`
76            ;;
77        *)
78            echo "can not unpack the dmake source"
79            dmake_directory_name=
80            exit 1
81            ;;
82    esac
83
84    echo "entering $dmake_directory_name"
85    cd "$dmake_directory_name" || exit
86
87    # Special case! The w32/tcsh build needs CC pointing to the MSVC++ compiler
88    # but we need a cygwin/gcc build dmake to understand the posix paths
89    if test "$GUI" = "WNT"; then
90        CC=""
91        CXX=""
92        export CC
93        export CXX
94        DMAKE_CONF="--enable-spawn"
95    else
96        DMAKE_CONF=""
97    fi
98
99    # For unixy systems
100    if test -f "Makefile" ; then
101        $GNUMAKE distclean || exit
102    fi
103
104    ./configure $DMAKE_CONF || exit
105
106    ## invoke the gnu make command set by configure.
107    $GNUMAKE || exit
108
109
110    # Deploy the dmake executable to solenv
111    cp -f "$tmp_build_dir/$dmake_directory_name/dmake$EXEEXT" "$SOLARENV/$OUTPATH/bin/dmake$EXEEXT" || exit
112    echo ""
113    echo "dmake successfully built and copied to $SOLARENV/$OUTPATH/bin/dmake$EXEEXT"
114    echo ""
115
116    # Clean up.  Note that this is skipped when one of the exits is executed above.
117    rm -rf "$tmp_build_dir"
118
119else
120
121    if test -x "$SOLARENV/$OUTPATH/bin/dmake$EXEEXT"; then
122        echo ""
123        echo "dmake present in $SOLARENV/$OUTPATH/bin/dmake$EXEEXT"
124    fi
125
126fi
127