work on missing value handling
[pspp] / Windows / build-dependencies
index 236b1d8bdcfb696312236ebd7c2ea393f6cfb528..e758f1be7026710aa95232d3adf9ae48d9d67a49 100755 (executable)
@@ -41,6 +41,8 @@ while test $# -gt 0; do
             SANDBOX=${1##--sandbox=};;
         --tarballs=*)
             SRC_TARBALL_DIR=${1##--tarballs=};;
+        --no-clean)
+            noclean=yes;;
         *)
             printf "Usage: $0 --arch=<arch> --sandbox=<dir> [--tarballs=<dir>]\n";
             exit 1;
@@ -49,7 +51,7 @@ while test $# -gt 0; do
     shift 1;
 done
 
-if test -z "$SANDBOX" || -z "$arch"; then
+if test -z "$SANDBOX" -o -z "$arch"; then
             printf "Usage: $0 --arch=<arch> --sandbox=<dir> [--tarballs=<dir>]\n";
     exit 1;
 fi
@@ -62,7 +64,7 @@ fi
 
 SRC_TARBALL_DIR=`eval echo $SRC_TARBALL_DIR`
 
-rm -rIf $SANDBOX
+test "x$noclean" = "xyes" || rm -rIf $SANDBOX
 
 default_build_procs=$(expr $(cat /proc/cpuinfo | grep -c '^processor') + 1)
 
@@ -280,6 +282,11 @@ for t in $tarballs ; do
             pre_configure=""
             prefix=$SANDBOX/Install
             case $pkg in
+                cairo-*)
+                    extra_cflags="-fstack-protector";;
+                gsl-*)
+                    extra_config_flags="GSL_LDFLAGS=-XCClinker -fstack-protector";
+                    extra_cflags="-fstack-protector";;
                 librsvg-*)
                     extra_config_flags="--disable-tools --enable-introspection=no --disable-gtk-doc-html"
                     build_procs=1
@@ -328,6 +335,8 @@ for t in $tarballs ; do
                     ;;
                 pango-1.48.*)
                     build_system="meson";
+                    extra_cflags="-fstack-protector";
+                    extra_ldflags="-fstack-protector";
                     ;;
                 spread-sheet-widget-*)
                     ;;
@@ -343,7 +352,7 @@ for t in $tarballs ; do
                                      meson setup --prefix=$prefix \
                                      --libdir=lib \
                                      --cross-file=$SANDBOX/cross-file.txt \
-                                     -Dc_link_args=-L$SANDBOX/Install/lib \
+                                     -Dc_link_args="-L$SANDBOX/Install/lib $extra_ldflags" \
                                      -Dc_args="-I$SANDBOX/Install/include $extra_cflags" \
                                      --wrap-mode=nodownload \
                                      $meson_opts \
@@ -357,9 +366,10 @@ for t in $tarballs ; do
                         $SANDBOX/Source/$pkg/configure \
                             --host="$arch" \
                             --prefix="$prefix" \
-                            $extra_config_flags \
-                            CPPFLAGS="-I $depdir/include" \
-                            LDFLAGS="-L$depdir/lib" \
+                            "$extra_config_flags" \
+                            CFLAGS="$extra_cflags" \
+                            CPPFLAGS="-I $depdir/include $extra_cppflags" \
+                            LDFLAGS="-L$depdir/lib $extra_ldflags" \
                             PKG_CONFIG_LIBDIR="$depdir/lib/pkgconfig" &&
                         make -j $build_procs && make install && $extra_build
                     ;;