X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=bootstrap.sh;h=25cc175a1717d53553bfc5f86064456933b2bc6c;hb=d61d9f95bb372c0691ece9632382c62c7b3c1b46;hp=abb117f7a21f35d8a01e94049255030e96acd3c8;hpb=0e40facad567ea11474b62f597c34faeea5c86fe;p=awesomized%2Flibmemcached diff --git a/bootstrap.sh b/bootstrap.sh index abb117f7..25cc175a 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -38,7 +38,7 @@ # LIBTOOLIZE # MAKE # PREFIX -# TESTS_ENVIRONMENT +# LOG_COMPILER # VERBOSE # WARNINGS # @@ -191,6 +191,9 @@ set_VENDOR_DISTRIBUTION () opensuse) VENDOR_DISTRIBUTION='opensuse' ;; + arch) + VENDOR_DISTRIBUTION='arch' + ;; *) die "attempt to set an invalid VENDOR_DISTRIBUTION=$dist" ;; @@ -223,8 +226,16 @@ set_VENDOR_RELEASE () echo "mountain_lion" VENDOR_RELEASE='mountain_lion' ;; + 10.9) + echo "mavericks" + VENDOR_RELEASE='mavericks' + ;; + 10.9.*) + echo "mavericks" + VENDOR_RELEASE='mavericks' + ;; *) - echo $VENDOR_RELEASE + echo $release VENDOR_RELEASE='unknown' ;; esac @@ -254,11 +265,14 @@ set_VENDOR_RELEASE () opensuse) VENDOR_RELEASE="$release" ;; + arch) + VENDOR_RELEASE="" + ;; unknown) die "attempt to set VENDOR_RELEASE without setting VENDOR_DISTRIBUTION" ;; *) - die "attempt to set with an invalid VENDOR_DISTRIBUTION=$VENDOR_DISTRIBUTION" + die "attempt to set VENDOR_RELEASE with an invalid VENDOR_DISTRIBUTION=$VENDOR_DISTRIBUTION" ;; esac } @@ -303,8 +317,11 @@ set_VENDOR () suse) VENDOR='suse' ;; + arch) + VENDOR='arch' + ;; *) - die "An attempt was made to set an invalid VENDOR=$_vendor" + die "An attempt was made to set an invalid VENDOR=$vendor" ;; esac @@ -364,7 +381,7 @@ determine_target_platform () elif [[ -x '/usr/bin/lsb_release' ]]; then local _ID="$(/usr/bin/lsb_release -s -i)" local _VERSION="$(/usr/bin/lsb_release -s -r)" - set_VENDOR $_ID $_ID $_VERSION_ID + set_VENDOR $_ID $_ID $_VERSION elif [[ -f '/etc/lsb-release' ]]; then source '/etc/lsb-release' set_VENDOR 'canonical' $DISTRIB_ID $DISTRIB_CODENAME @@ -420,10 +437,6 @@ run_configure () ret=1; # If we are executing on OSX use CLANG, otherwise only use it if we find it in the ENV case $HOST_OS in - *-darwin-*) - run CC=clang CXX=clang++ $CONFIGURE "$BUILD_CONFIGURE_ARG" || die "Cannot execute CC=clang CXX=clang++ configure $BUILD_CONFIGURE_ARG" - ret=$? - ;; rhel-5*) command_exists 'gcc44' || die "Could not locate gcc44" run CC=gcc44 CXX=gcc44 $top_srcdir/configure "$BUILD_CONFIGURE_ARG" || die "Cannot execute CC=gcc44 CXX=gcc44 configure $BUILD_CONFIGURE_ARG" @@ -482,8 +495,8 @@ save_BUILD () die "OLD_MAKE($OLD_MAKE) was set on push, programmer error!" fi - if [[ -n "$OLD_TESTS_ENVIRONMENT" ]]; then - die "OLD_TESTS_ENVIRONMENT($OLD_TESTS_ENVIRONMENT) was set on push, programmer error!" + if [[ -n "$OLD_LOG_COMPILER" ]]; then + die "OLD_LOG_COMPILER($OLD_LOG_COMPILER) was set on push, programmer error!" fi if [[ -n "$CONFIGURE" ]]; then @@ -498,8 +511,8 @@ save_BUILD () OLD_MAKE=$MAKE fi - if [[ -n "$TESTS_ENVIRONMENT" ]]; then - OLD_TESTS_ENVIRONMENT=$TESTS_ENVIRONMENT + if [[ -n "$LOG_COMPILER" ]]; then + OLD_LOG_COMPILER=$LOG_COMPILER fi } @@ -521,15 +534,15 @@ restore_BUILD () MAKE=$OLD_MAKE fi - if [[ -n "$OLD_TESTS_ENVIRONMENT" ]]; then - TESTS_ENVIRONMENT=$OLD_TESTS_ENVIRONMENT + if [[ -n "$OLD_LOG_COMPILER" ]]; then + LOG_COMPILER=$OLD_LOG_COMPILER fi OLD_CONFIGURE= OLD_CONFIGURE_ARG= OLD_PREFIX= OLD_MAKE= - OLD_TESTS_ENVIRONMENT= + OLD_LOG_COMPILER= export -n CC CXX } @@ -563,9 +576,9 @@ make_valgrind () # If we don't have a configure, then most likely we will be missing libtool assert_file 'configure' if [[ -x 'libtool' ]]; then - TESTS_ENVIRONMENT="./libtool --mode=execute $VALGRIND_COMMAND" + LOG_COMPILER="./libtool --mode=execute $VALGRIND_COMMAND" else - TESTS_ENVIRONMENT="$VALGRIND_COMMAND" + LOG_COMPILER="$VALGRIND_COMMAND" fi make_target 'all' @@ -699,11 +712,11 @@ make_skeleton () else if [[ -n "$DISPLAY" ]]; then if command_exists 'wine'; then - TESTS_ENVIRONMENT='wine' + LOG_COMPILER='wine' fi fi - if [[ -n "$TESTS_ENVIRONMENT" ]]; then + if [[ -n "$LOG_COMPILER" ]]; then make_target 'check' 'warn' || warn "$MAKE check failed" ret=$? fi @@ -931,9 +944,9 @@ make_gdb () # If we don't have a configure, then most likely we will be missing libtool assert_file 'configure' if [[ -f 'libtool' ]]; then - TESTS_ENVIRONMENT="./libtool --mode=execute $GDB_COMMAND" + LOG_COMPILER="./libtool --mode=execute $GDB_COMMAND" else - TESTS_ENVIRONMENT="$GDB_COMMAND" + LOG_COMPILER="$GDB_COMMAND" fi make_target 'check' @@ -970,9 +983,9 @@ make_target () run_configure fi - if [ -n "$TESTS_ENVIRONMENT" ]; then + if [ -n "$LOG_COMPILER" ]; then if $verbose; then - echo "TESTS_ENVIRONMENT=$TESTS_ENVIRONMENT" + echo "LOG_COMPILER=$LOG_COMPILER" fi fi @@ -1006,14 +1019,16 @@ make_rpm () { if command_exists 'rpmbuild'; then if [ -f 'rpm.am' -o -d 'rpm' ]; then - mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} - mkdir -p ~/rpmbuild/RPMS/{i386,i486,i586,i686,noarch,athlon} - run_configure_if_required - make_target 'rpm' + make_target 'dist-rpm' if $jenkins_build_environment; then - make_target 'clean' + mkdir artifacts + mv *.tar.gz *.rpm artifacts + + make_target 'maintainer-clean' + mv artifacts/* . + rmdir artifacts fi fi @@ -1094,7 +1109,11 @@ run_autoreconf () if $use_libtool; then assert $BOOTSTRAP_LIBTOOLIZE - run "$BOOTSTRAP_LIBTOOLIZE" '--copy' '--install' '--force' || die "Cannot execute $BOOTSTRAP_LIBTOOLIZE" + if $jenkins_build_environment; then + run "$BOOTSTRAP_LIBTOOLIZE" '--copy' '--install' || die "Cannot execute $BOOTSTRAP_LIBTOOLIZE" + else + run "$BOOTSTRAP_LIBTOOLIZE" '--copy' '--install' '--force' || die "Cannot execute $BOOTSTRAP_LIBTOOLIZE" + fi fi run "$AUTORECONF" "$AUTORECONF_ARGS" || die "Cannot execute $AUTORECONF" @@ -1235,7 +1254,11 @@ autoreconf_setup () fi if [[ -z "$GNU_BUILD_FLAGS" ]]; then - GNU_BUILD_FLAGS="--install --force" + if $jenkins_build_environment; then + GNU_BUILD_FLAGS="--install" + else + GNU_BUILD_FLAGS="--install --force" + fi fi if $verbose; then @@ -1382,16 +1405,16 @@ print_setup () echo "MAKE=$MAKE" fi - if [[ -n "$MAKE_TARGET" ]]; then - echo "MAKE_TARGET=$MAKE_TARGET" + if [[ -n "$BOOTSTRAP_TARGET" ]]; then + echo "BOOTSTRAP_TARGET=$BOOTSTRAP_TARGET" fi if [[ -n "$PREFIX" ]]; then echo "PREFIX=$PREFIX" fi - if [[ -n "$TESTS_ENVIRONMENT" ]]; then - echo "TESTS_ENVIRONMENT=$TESTS_ENVIRONMENT" + if [[ -n "$LOG_COMPILER" ]]; then + echo "LOG_COMPILER=$LOG_COMPILER" fi if [[ -n "$VCS_CHECKOUT" ]]; then @@ -1507,7 +1530,7 @@ check_make_target() execute_job () { # We should always have a target by this point - assert MAKE_TARGET + assert BOOTSTRAP_TARGET determine_target_platform @@ -1531,8 +1554,8 @@ execute_job () fi fi - # Use OLD_TESTS_ENVIRONMENT for tracking the state of the variable - local OLD_TESTS_ENVIRONMENT= + # Use OLD_LOG_COMPILER for tracking the state of the variable + local OLD_LOG_COMPILER= # Set ENV PREFIX in order to set --prefix for ./configure if [[ -n "$PREFIX" ]]; then @@ -1543,17 +1566,18 @@ execute_job () make_maintainer_clean fi - local MAKE_TARGET_ARRAY - MAKE_TARGET_ARRAY=( $MAKE_TARGET ) + local BOOTSTRAP_TARGET_ARRAY + BOOTSTRAP_TARGET_ARRAY=( $BOOTSTRAP_TARGET ) - for target in "${MAKE_TARGET_ARRAY[@]}" + for target in "${BOOTSTRAP_TARGET_ARRAY[@]}" do # If we are running inside of Jenkins, we want to only run some of the possible tests if $jenkins_build_environment; then check_make_target $target ret=$? if [ $ret -ne 0 ]; then - die "Unknown MAKE_TARGET option: $target" + warn "Unknown BOOTSTRAP_TARGET option: $target" + target="jenkins" fi fi @@ -1659,7 +1683,7 @@ main () declare -x VCS_CHECKOUT= # Variables we control globally - local -a MAKE_TARGET= + local -a BOOTSTRAP_TARGET= local CONFIGURE= local use_libtool=false local verbose=false @@ -1684,7 +1708,7 @@ main () local OLD_CONFIGURE_ARG= local OLD_PREFIX= local OLD_MAKE= - local OLD_TESTS_ENVIRONMENT= + local OLD_LOG_COMPILER= # If we call autoreconf on the platform or not local AUTORECONF_REBUILD_HOST=false @@ -1722,47 +1746,18 @@ main () local OPT_TARGET= parse_command_line_options "$@" - nassert MAKE_TARGET + nassert BOOTSTRAP_TARGET if [ -n "$OPT_TARGET" ]; then - MAKE_TARGET="$OPT_TARGET" - fi - - # If we are running under Jenkins we predetermine what tests we will run against - # This MAKE_TARGET can be overridden by parse_command_line_options based MAKE_TARGET changes. - # We don't want Jenkins overriding other variables, so we NULL them. - if [ -z "$MAKE_TARGET" ]; then - if $jenkins_build_environment; then - if [[ -n "$JENKINS_TARGET" ]]; then - MAKE_TARGET="$JENKINS_TARGET" - else - if [[ -n "$label" ]]; then - check_make_target $label - if [ $? -eq 0 ]; then - MAKE_TARGET="$label" - fi - fi - - if [[ -n "$LABEL" ]]; then - check_make_target $LABEL - if [ $? -eq 0 ]; then - MAKE_TARGET="$LABEL" - fi - fi - - if [ -z "$MAKE_TARGET" ]; then - MAKE_TARGET='jenkins' - fi - fi - fi + BOOTSTRAP_TARGET="$OPT_TARGET" fi - if [ -z "$MAKE_TARGET" ]; then - MAKE_TARGET="make_default" + if [ -z "$BOOTSTRAP_TARGET" ]; then + BOOTSTRAP_TARGET="make_default" fi # We should always have a target by this point - assert MAKE_TARGET + assert BOOTSTRAP_TARGET execute_job local ret=$? @@ -1878,7 +1873,7 @@ bootstrap () export LIBTOOLIZE_OPTIONS export MAKE export PREFIX_ARG - export TESTS_ENVIRONMENT + export LOG_COMPILER export VERBOSE export WARNINGS