< prev index next >

common/autoconf/basics.m4

Print this page

        

*** 234,343 **** AC_MSG_NOTICE([configure script generated at timestamp $DATE_WHEN_GENERATED.]) ]) # Test that variable $1 denoting a program is not empty. If empty, exit with an error. # $1: variable to check - # $2: executable name to print in warning (optional) AC_DEFUN([BASIC_CHECK_NONEMPTY], [ if test "x[$]$1" = x; then ! if test "x$2" = x; then ! PROG_NAME=translit($1,A-Z,a-z) else ! PROG_NAME=$2 fi ! AC_MSG_NOTICE([Could not find $PROG_NAME!]) ! AC_MSG_ERROR([Cannot continue]) fi ]) ! # Does AC_PATH_PROG followed by BASIC_CHECK_NONEMPTY. ! # Arguments as AC_PATH_PROG: # $1: variable to set ! # $2: executable name to look for ! AC_DEFUN([BASIC_REQUIRE_PROG], [ ! AC_PATH_PROGS($1, $2) ! BASIC_CHECK_NONEMPTY($1, $2) ]) # Setup the most fundamental tools that relies on not much else to set up, # but is used by much of the early bootstrap code. AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS], [ - # Start with tools that do not need have cross compilation support # and can be expected to be found in the default PATH. These tools are # used by configure. Nor are these tools expected to be found in the # devkit from the builddeps server either, since they are # needed to download the devkit. # First are all the simple required tools. ! BASIC_REQUIRE_PROG(BASENAME, basename) ! BASIC_REQUIRE_PROG(BASH, bash) ! BASIC_REQUIRE_PROG(CAT, cat) ! BASIC_REQUIRE_PROG(CHMOD, chmod) ! BASIC_REQUIRE_PROG(CMP, cmp) ! BASIC_REQUIRE_PROG(COMM, comm) ! BASIC_REQUIRE_PROG(CP, cp) ! BASIC_REQUIRE_PROG(CPIO, cpio) ! BASIC_REQUIRE_PROG(CUT, cut) ! BASIC_REQUIRE_PROG(DATE, date) ! BASIC_REQUIRE_PROG(DIFF, [gdiff diff]) ! BASIC_REQUIRE_PROG(DIRNAME, dirname) ! BASIC_REQUIRE_PROG(ECHO, echo) ! BASIC_REQUIRE_PROG(EXPR, expr) ! BASIC_REQUIRE_PROG(FILE, file) ! BASIC_REQUIRE_PROG(FIND, find) ! BASIC_REQUIRE_PROG(HEAD, head) ! BASIC_REQUIRE_PROG(LN, ln) ! BASIC_REQUIRE_PROG(LS, ls) ! BASIC_REQUIRE_PROG(MKDIR, mkdir) ! BASIC_REQUIRE_PROG(MKTEMP, mktemp) ! BASIC_REQUIRE_PROG(MV, mv) ! BASIC_REQUIRE_PROG(PRINTF, printf) ! BASIC_REQUIRE_PROG(RM, rm) ! BASIC_REQUIRE_PROG(SH, sh) ! BASIC_REQUIRE_PROG(SORT, sort) ! BASIC_REQUIRE_PROG(TAIL, tail) ! BASIC_REQUIRE_PROG(TAR, tar) ! BASIC_REQUIRE_PROG(TEE, tee) ! BASIC_REQUIRE_PROG(TOUCH, touch) ! BASIC_REQUIRE_PROG(TR, tr) ! BASIC_REQUIRE_PROG(UNAME, uname) ! BASIC_REQUIRE_PROG(UNIQ, uniq) ! BASIC_REQUIRE_PROG(WC, wc) ! BASIC_REQUIRE_PROG(WHICH, which) ! BASIC_REQUIRE_PROG(XARGS, xargs) # Then required tools that require some special treatment. ! AC_PROG_AWK ! BASIC_CHECK_NONEMPTY(AWK) ! AC_PROG_GREP ! BASIC_CHECK_NONEMPTY(GREP) ! AC_PROG_EGREP ! BASIC_CHECK_NONEMPTY(EGREP) ! AC_PROG_FGREP ! BASIC_CHECK_NONEMPTY(FGREP) ! AC_PROG_SED ! BASIC_CHECK_NONEMPTY(SED) ! ! AC_PATH_PROGS(NAWK, [nawk gawk awk]) ! BASIC_CHECK_NONEMPTY(NAWK) # Always force rm. RM="$RM -f" # pwd behaves differently on various platforms and some don't support the -L flag. # Always use the bash builtin pwd to get uniform behavior. THEPWDCMD=pwd # These are not required on all platforms ! AC_PATH_PROG(CYGPATH, cygpath) ! AC_PATH_PROG(READLINK, readlink) ! AC_PATH_PROG(DF, df) ! AC_PATH_PROG(SETFILE, SetFile) ]) # Setup basic configuration paths, and platform-specific stuff related to PATHs. AC_DEFUN_ONCE([BASIC_SETUP_PATHS], [ --- 234,420 ---- AC_MSG_NOTICE([configure script generated at timestamp $DATE_WHEN_GENERATED.]) ]) # Test that variable $1 denoting a program is not empty. If empty, exit with an error. # $1: variable to check AC_DEFUN([BASIC_CHECK_NONEMPTY], [ if test "x[$]$1" = x; then ! AC_MSG_ERROR([Could not find required tool for $1]) ! fi ! ]) ! ! # Check that there are no unprocessed overridden variables left. ! # If so, they are an incorrect argument and we will exit with an error. ! AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN], ! [ ! if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then ! # Replace the separating ! with spaces before presenting for end user. ! unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ } ! AC_MSG_ERROR([The following variables are unknown to configure: $unknown_variables]) ! fi ! ]) ! ! # Setup a tool for the given variable. If correctly specified by the user, ! # use that value, otherwise search for the tool using the supplied code snippet. ! # $1: variable to set ! # $2: code snippet to call to look for the tool ! AC_DEFUN([BASIC_SETUP_TOOL], ! [ ! # Publish this variable in the help. ! AC_ARG_VAR($1, [Override default value for $1]) ! ! if test "x[$]$1" = x; then ! # The variable is not set by user, try to locate tool using the code snippet ! $2 else ! # The variable is set, but is it from the command line or the environment? ! ! # Try to remove the string !$1! from our list. ! try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!$1!/} ! if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then ! # If it failed, the variable was not from the command line. Ignore it, ! # but warn the user (except for BASH, which is always set by the calling BASH). ! if test "x$1" != xBASH; then ! AC_MSG_WARN([Ignoring value of $1 from the environment. Use command line variables instead.]) fi ! # Try to locate tool using the code snippet ! $2 ! else ! # If it succeeded, then it was overridden by the user. We will use it ! # for the tool. ! ! # First remove it from the list of overridden variables, so we can test ! # for unknown variables in the end. ! CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var" ! ! # Check if the provided tool contains a complete path. ! tool_specified="[$]$1" ! tool_basename="${tool_specified##*/}" ! if test "x$tool_basename" = "x$tool_specified"; then ! # A command without a complete path is provided, search $PATH. ! AC_MSG_NOTICE([Will search for user supplied tool $1=$tool_basename]) ! AC_PATH_PROG($1, $tool_basename) ! if test "x[$]$1" = x; then ! AC_MSG_ERROR([User supplied tool $tool_basename could not be found]) ! fi ! else ! # Otherwise we believe it is a complete path. Use it as it is. ! AC_MSG_NOTICE([Will use user supplied tool $1=$tool_specified]) ! AC_MSG_CHECKING([for $1]) ! if test ! -x "$tool_specified"; then ! AC_MSG_RESULT([not found]) ! AC_MSG_ERROR([User supplied tool $1=$tool_specified does not exist or is not executable]) fi + AC_MSG_RESULT([$tool_specified]) + fi + fi + fi + ]) + + # Call BASIC_SETUP_TOOL with AC_PATH_PROGS to locate the tool + # $1: variable to set + # $2: executable name (or list of names) to look for + AC_DEFUN([BASIC_PATH_PROGS], + [ + BASIC_SETUP_TOOL($1, [AC_PATH_PROGS($1, $2)]) + ]) + + # Call BASIC_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool + # $1: variable to set + # $2: executable name (or list of names) to look for + AC_DEFUN([BASIC_CHECK_TOOLS], + [ + BASIC_SETUP_TOOL($1, [AC_CHECK_TOOLS($1, $2)]) ]) ! # Like BASIC_PATH_PROGS but fails if no tool was found. # $1: variable to set ! # $2: executable name (or list of names) to look for ! AC_DEFUN([BASIC_REQUIRE_PROGS], [ ! BASIC_PATH_PROGS($1, $2) ! BASIC_CHECK_NONEMPTY($1) ! ]) ! ! # Like BASIC_SETUP_TOOL but fails if no tool was found. ! # $1: variable to set ! # $2: autoconf macro to call to look for the special tool ! AC_DEFUN([BASIC_REQUIRE_SPECIAL], ! [ ! BASIC_SETUP_TOOL($1, [$2]) ! BASIC_CHECK_NONEMPTY($1) ]) # Setup the most fundamental tools that relies on not much else to set up, # but is used by much of the early bootstrap code. AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS], [ # Start with tools that do not need have cross compilation support # and can be expected to be found in the default PATH. These tools are # used by configure. Nor are these tools expected to be found in the # devkit from the builddeps server either, since they are # needed to download the devkit. # First are all the simple required tools. ! BASIC_REQUIRE_PROGS(BASENAME, basename) ! BASIC_REQUIRE_PROGS(BASH, bash) ! BASIC_REQUIRE_PROGS(CAT, cat) ! BASIC_REQUIRE_PROGS(CHMOD, chmod) ! BASIC_REQUIRE_PROGS(CMP, cmp) ! BASIC_REQUIRE_PROGS(COMM, comm) ! BASIC_REQUIRE_PROGS(CP, cp) ! BASIC_REQUIRE_PROGS(CPIO, cpio) ! BASIC_REQUIRE_PROGS(CUT, cut) ! BASIC_REQUIRE_PROGS(DATE, date) ! BASIC_REQUIRE_PROGS(DIFF, [gdiff diff]) ! BASIC_REQUIRE_PROGS(DIRNAME, dirname) ! BASIC_REQUIRE_PROGS(ECHO, echo) ! BASIC_REQUIRE_PROGS(EXPR, expr) ! BASIC_REQUIRE_PROGS(FILE, file) ! BASIC_REQUIRE_PROGS(FIND, find) ! BASIC_REQUIRE_PROGS(HEAD, head) ! BASIC_REQUIRE_PROGS(LN, ln) ! BASIC_REQUIRE_PROGS(LS, ls) ! BASIC_REQUIRE_PROGS(MKDIR, mkdir) ! BASIC_REQUIRE_PROGS(MKTEMP, mktemp) ! BASIC_REQUIRE_PROGS(MV, mv) ! BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk]) ! BASIC_REQUIRE_PROGS(PRINTF, printf) ! BASIC_REQUIRE_PROGS(RM, rm) ! BASIC_REQUIRE_PROGS(SH, sh) ! BASIC_REQUIRE_PROGS(SORT, sort) ! BASIC_REQUIRE_PROGS(TAIL, tail) ! BASIC_REQUIRE_PROGS(TAR, tar) ! BASIC_REQUIRE_PROGS(TEE, tee) ! BASIC_REQUIRE_PROGS(TOUCH, touch) ! BASIC_REQUIRE_PROGS(TR, tr) ! BASIC_REQUIRE_PROGS(UNAME, uname) ! BASIC_REQUIRE_PROGS(UNIQ, uniq) ! BASIC_REQUIRE_PROGS(WC, wc) ! BASIC_REQUIRE_PROGS(WHICH, which) ! BASIC_REQUIRE_PROGS(XARGS, xargs) # Then required tools that require some special treatment. ! BASIC_REQUIRE_SPECIAL(AWK, [AC_PROG_AWK]) ! BASIC_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP]) ! BASIC_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP]) ! BASIC_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP]) ! BASIC_REQUIRE_SPECIAL(SED, [AC_PROG_SED]) # Always force rm. RM="$RM -f" # pwd behaves differently on various platforms and some don't support the -L flag. # Always use the bash builtin pwd to get uniform behavior. THEPWDCMD=pwd # These are not required on all platforms ! BASIC_PATH_PROGS(CYGPATH, cygpath) ! BASIC_PATH_PROGS(READLINK, [greadlink readlink]) ! BASIC_PATH_PROGS(DF, df) ! BASIC_PATH_PROGS(SETFILE, SetFile) ]) # Setup basic configuration paths, and platform-specific stuff related to PATHs. AC_DEFUN_ONCE([BASIC_SETUP_PATHS], [
*** 626,668 **** BASIC_CHECK_FIND_DELETE # These tools might not be installed by default, # need hint on how to install them. ! BASIC_REQUIRE_PROG(UNZIP, unzip) ! BASIC_REQUIRE_PROG(ZIP, zip) # Non-required basic tools ! AC_PATH_PROG(LDD, ldd) if test "x$LDD" = "x"; then # List shared lib dependencies is used for # debug output and checking for forbidden dependencies. # We can build without it. LDD="true" fi ! AC_PATH_PROGS(READELF, [readelf greadelf]) ! AC_PATH_PROG(HG, hg) ! AC_PATH_PROG(STAT, stat) ! AC_PATH_PROG(TIME, time) # Check if it's GNU time IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'` if test "x$IS_GNU_TIME" != x; then IS_GNU_TIME=yes else IS_GNU_TIME=no fi AC_SUBST(IS_GNU_TIME) if test "x$OPENJDK_TARGET_OS" = "xwindows"; then ! BASIC_REQUIRE_PROG(COMM, comm) fi if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then ! BASIC_REQUIRE_PROG(DSYMUTIL, dsymutil) ! BASIC_REQUIRE_PROG(XATTR, xattr) ! AC_PATH_PROG(CODESIGN, codesign) if test "x$CODESIGN" != "x"; then # Verify that the openjdk_codesign certificate is present AC_MSG_CHECKING([if openjdk_codesign certificate is present]) rm -f codesign-testfile touch codesign-testfile --- 703,745 ---- BASIC_CHECK_FIND_DELETE # These tools might not be installed by default, # need hint on how to install them. ! BASIC_REQUIRE_PROGS(UNZIP, unzip) ! BASIC_REQUIRE_PROGS(ZIP, zip) # Non-required basic tools ! BASIC_PATH_PROGS(LDD, ldd) if test "x$LDD" = "x"; then # List shared lib dependencies is used for # debug output and checking for forbidden dependencies. # We can build without it. LDD="true" fi ! BASIC_PATH_PROGS(READELF, [readelf greadelf]) ! BASIC_PATH_PROGS(HG, hg) ! BASIC_PATH_PROGS(STAT, stat) ! BASIC_PATH_PROGS(TIME, time) # Check if it's GNU time IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'` if test "x$IS_GNU_TIME" != x; then IS_GNU_TIME=yes else IS_GNU_TIME=no fi AC_SUBST(IS_GNU_TIME) if test "x$OPENJDK_TARGET_OS" = "xwindows"; then ! BASIC_REQUIRE_PROGS(COMM, comm) fi if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then ! BASIC_REQUIRE_PROGS(DSYMUTIL, dsymutil) ! BASIC_REQUIRE_PROGS(XATTR, xattr) ! BASIC_PATH_PROGS(CODESIGN, codesign) if test "x$CODESIGN" != "x"; then # Verify that the openjdk_codesign certificate is present AC_MSG_CHECKING([if openjdk_codesign certificate is present]) rm -f codesign-testfile touch codesign-testfile
*** 720,729 **** --- 797,809 ---- fi ]) AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES], [ + # Did user specify any unknown variables? + BASIC_CHECK_LEFTOVER_OVERRIDDEN + AC_MSG_CHECKING([if build directory is on local disk]) BASIC_CHECK_DIR_ON_LOCAL_DISK($OUTPUT_ROOT, [OUTPUT_DIR_IS_LOCAL="yes"], [OUTPUT_DIR_IS_LOCAL="no"]) AC_MSG_RESULT($OUTPUT_DIR_IS_LOCAL)
< prev index next >