Diff

Differences From Artifact [35b0320bb7]:

To Artifact [f33d7d8aef]:


     1      1   #! /usr/bin/env bash
     2      2   
            3  +# Determine appropriate mode
            4  +mode="build"
            5  +case "$1" in
            6  +	clean|distclean|build|retry)
            7  +		mode="$1"
            8  +		shift
            9  +		;;
           10  +esac
           11  +
           12  +# Determine which Tcl version to build
     3     13   TCLVERS="8.5.14"
     4     14   if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | egrep '^(cvs|fossil)_' >/dev/null; then
     5     15   	TCLVERS="$1"
     6     16   
     7     17   	shift
     8     18   fi
     9     19   export TCLVERS
    10     20   
    11         -# Determine appropriate mode
    12         -mode="build"
    13         -if [ "$1" = "clean" ]; then
    14         -	shift
    15         -
    16         -	mode="clean"
    17         -fi
    18         -if [ "$1" = "distclean" ]; then
    19         -	shift
    20         -
    21         -	mode="distclean"
    22         -fi
    23         -
    24     21   # Verify that "pre.sh" has been run if this is a development snapshot of
    25     22   # KitCreator
    26     23   if [ -f 'build/pre.sh' ]; then
    27     24   	if ! find 'kitsh/buildsrc/' -name configure -type f 2>/dev/null | grep configure >/dev/null; then
    28     25   		echo "Please remember to run 'build/pre.sh' if you expect this build to work." >&2
    29     26   	fi
    30     27   fi
    31     28   
    32     29   # Define the list of all packages, for cleaning purposes
    33     30   KITCREATOR_ALLPKGS="kitsh tcl tclvfs zlib tk itcl mk4tcl thread dbus"
           31  +# Always rebuild kitsh
           32  +rm -f "kitsh/.success"
    34     33   for pkg in ${KITCREATOR_ALLPKGS}; do
    35         -	rm -f "${pkg}/build.log"
    36         -	rm -rf "${pkg}/out" "${pkg}/inst" "${pkg}/build"
           34  +	if [ "${mode}" != "retry" -o ! -f "${pkg}/.success" ]; then
           35  +		rm -f "${pkg}/build.log" "${pkg}/.success"
           36  +		rm -rf "${pkg}/out" "${pkg}/inst" "${pkg}/build"
    37     37   
    38         -	rm -rf "${pkg}/src"/tmp-*
           38  +		rm -rf "${pkg}/src"/tmp-*
           39  +	fi
    39     40   
    40     41   	if [ "${mode}" = "distclean" ]; then
    41     42   		rm -rf "${pkg}/src"
    42     43   	fi
    43     44   done
    44     45   
    45     46   # We're all done if we're in clean or distclean mode
................................................................................
   126    127   done
   127    128   export TCLSH_NATIVE
   128    129   
   129    130   # Do build
   130    131   failedpkgs=""
   131    132   buildfailed="0"
   132    133   for pkg in tcl tclvfs zlib ${KITCREATOR_PKGS} kitsh; do
   133         -	echo -n "Building ${pkg} ..."
   134         -
   135    134   	failed="0"
   136         -	(
   137         -		cd "${pkg}" >/dev/null 2>/dev/null || exit 1
          135  +	if [ -f "${pkg}/.success" ]; then
          136  +		echo -n "Skipping ${pkg} ..."
          137  +	else
          138  +		echo -n "Building ${pkg} ..."
          139  +
          140  +		(
          141  +			cd "${pkg}" >/dev/null 2>/dev/null || exit 1
   138    142   
   139         -		./build.sh 3>&1 4>&2 > build.log 2>&1 || exit 1
   140         -	) || failed="1"
          143  +			./build.sh 3>&1 4>&2 > build.log 2>&1 || exit 1
          144  +		) || failed="1"
          145  +	fi
   141    146   
   142    147   	if [ "${failed}" = "1" ]; then
   143    148   		echo " failed."
   144    149   		failedpkgs="${failedpkgs} ${pkg}"
   145    150   	else
   146    151   		echo " done."
   147    152   	fi
................................................................................
   152    157   			TCLCONFIGDIRTAIL="$(basename "${TCLCONFIGDIR}")"
   153    158   			export TCLCONFIGDIR TCLCONFIGDIRTAIL
   154    159   			;;
   155    160   	esac
   156    161   
   157    162   	if [ "${failed}" = "1" ]; then
   158    163   		buildfailed="1"
          164  +	else
          165  +		touch "${pkg}/.success"
   159    166   	fi
   160    167   done
   161    168   
   162    169   if [ -n "${failedpkgs}" ]; then
   163    170   	echo "Failed to build:${failedpkgs}"
   164    171   fi
   165    172