253 FIND_DELETE="-exec $RM \{\} \+"
254 fi
255 AC_MSG_RESULT([no])
256 else
257 AC_MSG_RESULT([yes])
258 fi
259 $RMDIR $DELETEDIR
260 AC_SUBST(FIND_DELETE)
261 ])
262
263 ###############################################################################
264 AC_DEFUN([BASIC_CHECK_TAR],
265 [
266 # Test which kind of tar was found
267 if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
268 TAR_TYPE="gnu"
269 elif test "x$($TAR --version | $GREP "bsdtar")" != "x"; then
270 TAR_TYPE="bsd"
271 elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
272 TAR_TYPE="bsd"
273 elif test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
274 TAR_TYPE="solaris"
275 elif test "x$OPENJDK_BUILD_OS" = "xaix"; then
276 TAR_TYPE="aix"
277 fi
278 AC_MSG_CHECKING([what type of tar was found])
279 AC_MSG_RESULT([$TAR_TYPE])
280
281 TAR_CREATE_FILE_PARAM=""
282
283 if test "x$TAR_TYPE" = "xgnu"; then
284 TAR_INCLUDE_PARAM="T"
285 TAR_SUPPORTS_TRANSFORM="true"
286 if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
287 # When using gnu tar for Solaris targets, need to use compatibility mode
288 TAR_CREATE_EXTRA_PARAM="--format=ustar"
289 fi
290 elif test "x$TAR_TYPE" = "aix"; then
291 # -L InputList of aix tar: name of file listing the files and directories
292 # that need to be archived or extracted
293 TAR_INCLUDE_PARAM="L"
294 TAR_SUPPORTS_TRANSFORM="false"
295 else
296 TAR_INCLUDE_PARAM="I"
297 TAR_SUPPORTS_TRANSFORM="false"
298 fi
299 AC_SUBST(TAR_TYPE)
300 AC_SUBST(TAR_CREATE_EXTRA_PARAM)
301 AC_SUBST(TAR_INCLUDE_PARAM)
302 AC_SUBST(TAR_SUPPORTS_TRANSFORM)
303 ])
304
305 ###############################################################################
306 AC_DEFUN([BASIC_CHECK_GREP],
307 [
308 # Test that grep supports -Fx with a list of pattern which includes null pattern.
309 # This is a problem for the grep resident on AIX.
310 AC_MSG_CHECKING([that grep ($GREP) -Fx handles empty lines in the pattern list correctly])
311 # Multiple subsequent spaces..
312 STACK_SPACES='aaa bbb ccc'
313 # ..converted to subsequent newlines, causes STACK_LIST to be a list with some empty
314 # patterns in it.
315 STACK_LIST=${STACK_SPACES// /$'\n'}
316 NEEDLE_SPACES='ccc bbb aaa'
317 NEEDLE_LIST=${NEEDLE_SPACES// /$'\n'}
318 RESULT="$($GREP -Fvx "$STACK_LIST" <<< "$NEEDLE_LIST")"
319 if test "x$RESULT" == "x"; then
320 AC_MSG_RESULT([yes])
342 # Since zip uses "ZIP" as a environment variable for passing options, we need
343 # to name our variable differently, hence ZIPEXE.
344 UTIL_REQUIRE_PROGS(ZIPEXE, zip)
345
346 # Non-required basic tools
347
348 UTIL_PATH_PROGS(LDD, ldd)
349 if test "x$LDD" = "x"; then
350 # List shared lib dependencies is used for
351 # debug output and checking for forbidden dependencies.
352 # We can build without it.
353 LDD="true"
354 fi
355 UTIL_PATH_PROGS(READELF, [greadelf readelf])
356 UTIL_PATH_PROGS(DOT, dot)
357 UTIL_PATH_PROGS(HG, hg)
358 UTIL_PATH_PROGS(GIT, git)
359 UTIL_PATH_PROGS(STAT, stat)
360 UTIL_PATH_PROGS(TIME, time)
361 UTIL_PATH_PROGS(FLOCK, flock)
362 # Dtrace is usually found in /usr/sbin on Solaris, but that directory may not
363 # be in the user path.
364 UTIL_PATH_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
365 UTIL_PATH_PROGS(PATCH, [gpatch patch])
366 # Check if it's GNU time
367 IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
368 if test "x$IS_GNU_TIME" != x; then
369 IS_GNU_TIME=yes
370 else
371 IS_GNU_TIME=no
372 fi
373 AC_SUBST(IS_GNU_TIME)
374
375 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
376 UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
377 UTIL_REQUIRE_PROGS(MIG, mig)
378 UTIL_REQUIRE_PROGS(XATTR, xattr)
379 UTIL_PATH_PROGS(CODESIGN, codesign)
380
381 if test "x$CODESIGN" != "x"; then
382 # Check for user provided code signing identity.
398 $RM codesign-testfile
399 if test "x$CODESIGN" = x; then
400 AC_MSG_RESULT([no])
401 else
402 AC_MSG_RESULT([yes])
403 # Verify that the codesign has --option runtime
404 AC_MSG_CHECKING([if codesign has --option runtime])
405 $RM codesign-testfile
406 $TOUCH codesign-testfile
407 $CODESIGN --option runtime -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile \
408 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD || CODESIGN=
409 $RM codesign-testfile
410 if test "x$CODESIGN" = x; then
411 AC_MSG_ERROR([codesign does not have --option runtime. macOS 10.13.6 and above is required.])
412 else
413 AC_MSG_RESULT([yes])
414 fi
415 fi
416 fi
417 UTIL_REQUIRE_PROGS(SETFILE, SetFile)
418 elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
419 UTIL_REQUIRE_PROGS(ELFEDIT, elfedit)
420 fi
421 if ! test "x$OPENJDK_TARGET_OS" = "xwindows"; then
422 UTIL_REQUIRE_BUILTIN_PROGS(ULIMIT, ulimit)
423 fi
424 ])
425
426 ###############################################################################
427 # Check for support for specific options in bash
428 AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
429 [
430 # Check bash version
431 # Extra [ ] to stop m4 mangling
432 [ BASH_VER=`$BASH --version | $SED -n -e 's/^.*bash.*ersion *\([0-9.]*\).*$/\1/ p'` ]
433 AC_MSG_CHECKING([bash version])
434 AC_MSG_RESULT([$BASH_VER])
435
436 BASH_MAJOR=`$ECHO $BASH_VER | $CUT -d . -f 1`
437 BASH_MINOR=`$ECHO $BASH_VER | $CUT -d . -f 2`
438 if test $BASH_MAJOR -lt 3 || (test $BASH_MAJOR -eq 3 && test $BASH_MINOR -lt 2); then
439 AC_MSG_ERROR([bash version 3.2 or better is required])
|
253 FIND_DELETE="-exec $RM \{\} \+"
254 fi
255 AC_MSG_RESULT([no])
256 else
257 AC_MSG_RESULT([yes])
258 fi
259 $RMDIR $DELETEDIR
260 AC_SUBST(FIND_DELETE)
261 ])
262
263 ###############################################################################
264 AC_DEFUN([BASIC_CHECK_TAR],
265 [
266 # Test which kind of tar was found
267 if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
268 TAR_TYPE="gnu"
269 elif test "x$($TAR --version | $GREP "bsdtar")" != "x"; then
270 TAR_TYPE="bsd"
271 elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
272 TAR_TYPE="bsd"
273 elif test "x$OPENJDK_BUILD_OS" = "xaix"; then
274 TAR_TYPE="aix"
275 fi
276 AC_MSG_CHECKING([what type of tar was found])
277 AC_MSG_RESULT([$TAR_TYPE])
278
279 if test "x$TAR_TYPE" = "xgnu"; then
280 TAR_INCLUDE_PARAM="T"
281 TAR_SUPPORTS_TRANSFORM="true"
282 elif test "x$TAR_TYPE" = "aix"; then
283 # -L InputList of aix tar: name of file listing the files and directories
284 # that need to be archived or extracted
285 TAR_INCLUDE_PARAM="L"
286 TAR_SUPPORTS_TRANSFORM="false"
287 else
288 TAR_INCLUDE_PARAM="I"
289 TAR_SUPPORTS_TRANSFORM="false"
290 fi
291 AC_SUBST(TAR_TYPE)
292 AC_SUBST(TAR_INCLUDE_PARAM)
293 AC_SUBST(TAR_SUPPORTS_TRANSFORM)
294 ])
295
296 ###############################################################################
297 AC_DEFUN([BASIC_CHECK_GREP],
298 [
299 # Test that grep supports -Fx with a list of pattern which includes null pattern.
300 # This is a problem for the grep resident on AIX.
301 AC_MSG_CHECKING([that grep ($GREP) -Fx handles empty lines in the pattern list correctly])
302 # Multiple subsequent spaces..
303 STACK_SPACES='aaa bbb ccc'
304 # ..converted to subsequent newlines, causes STACK_LIST to be a list with some empty
305 # patterns in it.
306 STACK_LIST=${STACK_SPACES// /$'\n'}
307 NEEDLE_SPACES='ccc bbb aaa'
308 NEEDLE_LIST=${NEEDLE_SPACES// /$'\n'}
309 RESULT="$($GREP -Fvx "$STACK_LIST" <<< "$NEEDLE_LIST")"
310 if test "x$RESULT" == "x"; then
311 AC_MSG_RESULT([yes])
333 # Since zip uses "ZIP" as a environment variable for passing options, we need
334 # to name our variable differently, hence ZIPEXE.
335 UTIL_REQUIRE_PROGS(ZIPEXE, zip)
336
337 # Non-required basic tools
338
339 UTIL_PATH_PROGS(LDD, ldd)
340 if test "x$LDD" = "x"; then
341 # List shared lib dependencies is used for
342 # debug output and checking for forbidden dependencies.
343 # We can build without it.
344 LDD="true"
345 fi
346 UTIL_PATH_PROGS(READELF, [greadelf readelf])
347 UTIL_PATH_PROGS(DOT, dot)
348 UTIL_PATH_PROGS(HG, hg)
349 UTIL_PATH_PROGS(GIT, git)
350 UTIL_PATH_PROGS(STAT, stat)
351 UTIL_PATH_PROGS(TIME, time)
352 UTIL_PATH_PROGS(FLOCK, flock)
353 # Dtrace is usually found in /usr/sbin, but that directory may not
354 # be in the user path.
355 UTIL_PATH_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
356 UTIL_PATH_PROGS(PATCH, [gpatch patch])
357 # Check if it's GNU time
358 IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
359 if test "x$IS_GNU_TIME" != x; then
360 IS_GNU_TIME=yes
361 else
362 IS_GNU_TIME=no
363 fi
364 AC_SUBST(IS_GNU_TIME)
365
366 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
367 UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
368 UTIL_REQUIRE_PROGS(MIG, mig)
369 UTIL_REQUIRE_PROGS(XATTR, xattr)
370 UTIL_PATH_PROGS(CODESIGN, codesign)
371
372 if test "x$CODESIGN" != "x"; then
373 # Check for user provided code signing identity.
389 $RM codesign-testfile
390 if test "x$CODESIGN" = x; then
391 AC_MSG_RESULT([no])
392 else
393 AC_MSG_RESULT([yes])
394 # Verify that the codesign has --option runtime
395 AC_MSG_CHECKING([if codesign has --option runtime])
396 $RM codesign-testfile
397 $TOUCH codesign-testfile
398 $CODESIGN --option runtime -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile \
399 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD || CODESIGN=
400 $RM codesign-testfile
401 if test "x$CODESIGN" = x; then
402 AC_MSG_ERROR([codesign does not have --option runtime. macOS 10.13.6 and above is required.])
403 else
404 AC_MSG_RESULT([yes])
405 fi
406 fi
407 fi
408 UTIL_REQUIRE_PROGS(SETFILE, SetFile)
409 fi
410 if ! test "x$OPENJDK_TARGET_OS" = "xwindows"; then
411 UTIL_REQUIRE_BUILTIN_PROGS(ULIMIT, ulimit)
412 fi
413 ])
414
415 ###############################################################################
416 # Check for support for specific options in bash
417 AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
418 [
419 # Check bash version
420 # Extra [ ] to stop m4 mangling
421 [ BASH_VER=`$BASH --version | $SED -n -e 's/^.*bash.*ersion *\([0-9.]*\).*$/\1/ p'` ]
422 AC_MSG_CHECKING([bash version])
423 AC_MSG_RESULT([$BASH_VER])
424
425 BASH_MAJOR=`$ECHO $BASH_VER | $CUT -d . -f 1`
426 BASH_MINOR=`$ECHO $BASH_VER | $CUT -d . -f 2`
427 if test $BASH_MAJOR -lt 3 || (test $BASH_MAJOR -eq 3 && test $BASH_MINOR -lt 2); then
428 AC_MSG_ERROR([bash version 3.2 or better is required])
|