common/autoconf/platform.m4

Print this page




 316     AC_SUBST(OPENJDK_TARGET_OS_API_DIR)
 317 
 318     if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
 319         A_LP64="LP64:="
 320         # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in 
 321         # unpack200.exe
 322         if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xmacosx; then
 323             ADD_LP64="-D_LP64=1"
 324         fi
 325     fi
 326     AC_SUBST(LP64,$A_LP64)
 327 
 328     if test "x$COMPILE_TYPE" = "xcross"; then
 329       # FIXME: ... or should this include reduced builds..?
 330       DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$OPENJDK_TARGET_CPU_LEGACY"
 331     else
 332       DEFINE_CROSS_COMPILE_ARCH=""
 333     fi
 334     AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
 335 
 336     # Some Zero and Shark settings.
 337     # ZERO_ARCHFLAG tells the compiler which mode to build for
 338     case "${OPENJDK_TARGET_CPU}" in
 339       s390)
 340         ZERO_ARCHFLAG="-m31"
 341         ;;
 342       *)
 343         ZERO_ARCHFLAG="-m${OPENJDK_TARGET_CPU_BITS}"
 344     esac
 345     PLATFORM_COMPILER_CHECK_ARGUMENTS([$ZERO_ARCHFLAG], [], [ZERO_ARCHFLAG=""])
 346     AC_SUBST(ZERO_ARCHFLAG)
 347 
 348     # ZERO_ARCHDEF is used to enable architecture-specific code
 349     case "${OPENJDK_TARGET_CPU}" in
 350       ppc*)    ZERO_ARCHDEF=PPC   ;;
 351       s390*)   ZERO_ARCHDEF=S390  ;;
 352       sparc*)  ZERO_ARCHDEF=SPARC ;;
 353       x86_64*) ZERO_ARCHDEF=AMD64 ;;
 354       x86)     ZERO_ARCHDEF=IA32  ;;
 355       *)      ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
 356     esac
 357     AC_SUBST(ZERO_ARCHDEF)
 358 
 359 ])
 360 
 361 AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
 362 [
 363     if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
 364        REQUIRED_OS_NAME=SunOS
 365        REQUIRED_OS_VERSION=5.10
 366     fi
 367     if test "x$OPENJDK_TARGET_OS" = "xlinux"; then


 401 PLATFORM_SETUP_TARGET_CPU_BITS
 402 PLATFORM_SET_RELEASE_FILE_OS_VALUES
 403 PLATFORM_SETUP_LEGACY_VARS
 404 ])
 405 
 406 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
 407 [
 408 ###############################################################################
 409 
 410 # Note that this is the build platform OS version!
 411 
 412 OS_VERSION="`uname -r | ${SED} 's!\.! !g' | ${SED} 's!-! !g'`"
 413 OS_VERSION_MAJOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 1 -d ' '`"
 414 OS_VERSION_MINOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 2 -d ' '`"
 415 OS_VERSION_MICRO="`${ECHO} ${OS_VERSION} | ${CUT} -f 3 -d ' '`"
 416 AC_SUBST(OS_VERSION_MAJOR)
 417 AC_SUBST(OS_VERSION_MINOR)
 418 AC_SUBST(OS_VERSION_MICRO)
 419 ])
 420 
 421 # PLATFORM_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
 422 #                                   [RUN-IF-FALSE])
 423 # ------------------------------------------------------------
 424 # Check that the c and c++ compilers support an argument
 425 AC_DEFUN([PLATFORM_COMPILER_CHECK_ARGUMENTS],
 426 [
 427   AC_MSG_CHECKING([if compiler supports "$1"])
 428   supports=yes
 429 
 430   saved_cflags="$CFLAGS"
 431   CFLAGS="$CFLAGS $1"
 432   AC_LANG_PUSH([C])
 433   AC_COMPILE_IFELSE([
 434     AC_LANG_SOURCE([[int i;]])
 435   ], [], [supports=no])
 436   AC_LANG_POP([C])
 437   CFLAGS="$saved_cflags"
 438 
 439   saved_cxxflags="$CXXFLAGS"
 440   CXXFLAGS="$CXXFLAG $1"
 441   AC_LANG_PUSH([C++])
 442   AC_COMPILE_IFELSE([
 443     AC_LANG_SOURCE([[int i;]])
 444   ], [], [supports=no])
 445   AC_LANG_POP([C++])
 446   CXXFLAGS="$saved_cxxflags"
 447 
 448   AC_MSG_RESULT([$supports])
 449   if test "x$supports" = "xyes" ; then
 450     m4_ifval([$2], [$2], [:])
 451   else
 452     m4_ifval([$3], [$3], [:])
 453   fi
 454 ])
 455 
 456 # Check that the compiler supports -mX flags
 457 # Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
 458 AC_DEFUN([PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS],
 459 [
 460   PLATFORM_COMPILER_CHECK_ARGUMENTS([-m${OPENJDK_TARGET_CPU_BITS}],
 461     [COMPILER_SUPPORTS_TARGET_BITS_FLAG=true],
 462     [COMPILER_SUPPORTS_TARGET_BITS_FLAG=false])
 463   AC_SUBST(COMPILER_SUPPORTS_TARGET_BITS_FLAG)
 464 ])
 465 
 466 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
 467 # Add -mX to various FLAGS variables.
 468 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
 469 [
 470   # keep track of c/cxx flags that we added outselves...
 471   #   to prevent emitting warning...
 472   ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 473   ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 474   ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 475 
 476   CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
 477   CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
 478   LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
 479 
 480   CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
 481   CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
 482   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 483 ])
 484 
 485 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
 486 [
 487 ###############################################################################
 488 #
 489 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
 490 # (The JVM can use 32 or 64 bit Java pointers but that decision
 491 # is made at runtime.)
 492 #
 493 
 494 PLATFORM_CHECK_COMPILER_TARGET_BITS_FLAGS
 495 
 496 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 497   # Always specify -m flags on Solaris
 498   PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 499 elif test "x$COMPILE_TYPE" = xreduced; then
 500   if test "x$OPENJDK_TARGET_OS" != xwindows; then
 501     # Specify -m if running reduced on other Posix platforms
 502     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 503   fi
 504 fi
 505 
 506 # Make compilation sanity check
 507 AC_CHECK_HEADERS([stdio.h], , [
 508   AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
 509   if test "x$COMPILE_TYPE" = xreduced; then
 510     AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
 511   elif test "x$COMPILE_TYPE" = xcross; then
 512     AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
 513   fi
 514   AC_MSG_ERROR([Cannot continue.])




 316     AC_SUBST(OPENJDK_TARGET_OS_API_DIR)
 317 
 318     if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
 319         A_LP64="LP64:="
 320         # -D_LP64=1 is only set on linux and mac. Setting on windows causes diff in 
 321         # unpack200.exe
 322         if test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xmacosx; then
 323             ADD_LP64="-D_LP64=1"
 324         fi
 325     fi
 326     AC_SUBST(LP64,$A_LP64)
 327 
 328     if test "x$COMPILE_TYPE" = "xcross"; then
 329       # FIXME: ... or should this include reduced builds..?
 330       DEFINE_CROSS_COMPILE_ARCH="CROSS_COMPILE_ARCH:=$OPENJDK_TARGET_CPU_LEGACY"
 331     else
 332       DEFINE_CROSS_COMPILE_ARCH=""
 333     fi
 334     AC_SUBST(DEFINE_CROSS_COMPILE_ARCH)
 335 












 336     # ZERO_ARCHDEF is used to enable architecture-specific code
 337     case "${OPENJDK_TARGET_CPU}" in
 338       ppc*)    ZERO_ARCHDEF=PPC   ;;
 339       s390*)   ZERO_ARCHDEF=S390  ;;
 340       sparc*)  ZERO_ARCHDEF=SPARC ;;
 341       x86_64*) ZERO_ARCHDEF=AMD64 ;;
 342       x86)     ZERO_ARCHDEF=IA32  ;;
 343       *)      ZERO_ARCHDEF=$(echo "${OPENJDK_TARGET_CPU_LEGACY_LIB}" | tr a-z A-Z)
 344     esac
 345     AC_SUBST(ZERO_ARCHDEF)
 346 
 347 ])
 348 
 349 AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
 350 [
 351     if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
 352        REQUIRED_OS_NAME=SunOS
 353        REQUIRED_OS_VERSION=5.10
 354     fi
 355     if test "x$OPENJDK_TARGET_OS" = "xlinux"; then


 389 PLATFORM_SETUP_TARGET_CPU_BITS
 390 PLATFORM_SET_RELEASE_FILE_OS_VALUES
 391 PLATFORM_SETUP_LEGACY_VARS
 392 ])
 393 
 394 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_OS_VERSION],
 395 [
 396 ###############################################################################
 397 
 398 # Note that this is the build platform OS version!
 399 
 400 OS_VERSION="`uname -r | ${SED} 's!\.! !g' | ${SED} 's!-! !g'`"
 401 OS_VERSION_MAJOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 1 -d ' '`"
 402 OS_VERSION_MINOR="`${ECHO} ${OS_VERSION} | ${CUT} -f 2 -d ' '`"
 403 OS_VERSION_MICRO="`${ECHO} ${OS_VERSION} | ${CUT} -f 3 -d ' '`"
 404 AC_SUBST(OS_VERSION_MAJOR)
 405 AC_SUBST(OS_VERSION_MINOR)
 406 AC_SUBST(OS_VERSION_MICRO)
 407 ])
 408 













































 409 # Support macro for PLATFORM_SETUP_OPENJDK_TARGET_BITS.
 410 # Add -mX to various FLAGS variables.
 411 AC_DEFUN([PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS],
 412 [
 413   # keep track of c/cxx flags that we added outselves...
 414   #   to prevent emitting warning...
 415   ADDED_CFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 416   ADDED_CXXFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 417   ADDED_LDFLAGS=" -m${OPENJDK_TARGET_CPU_BITS}"
 418 
 419   CFLAGS="${CFLAGS}${ADDED_CFLAGS}"
 420   CXXFLAGS="${CXXFLAGS}${ADDED_CXXFLAGS}"
 421   LDFLAGS="${LDFLAGS}${ADDED_LDFLAGS}"
 422 
 423   CFLAGS_JDK="${CFLAGS_JDK}${ADDED_CFLAGS}"
 424   CXXFLAGS_JDK="${CXXFLAGS_JDK}${ADDED_CXXFLAGS}"
 425   LDFLAGS_JDK="${LDFLAGS_JDK}${ADDED_LDFLAGS}"
 426 ])
 427 
 428 AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_BITS],
 429 [
 430 ###############################################################################
 431 #
 432 # Now we check if libjvm.so will use 32 or 64 bit pointers for the C/C++ code.
 433 # (The JVM can use 32 or 64 bit Java pointers but that decision
 434 # is made at runtime.)
 435 #


 436 
 437 if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 438   # Always specify -m flags on Solaris
 439   PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 440 elif test "x$COMPILE_TYPE" = xreduced; then
 441   if test "x$OPENJDK_TARGET_OS" != xwindows; then
 442     # Specify -m if running reduced on other Posix platforms
 443     PLATFORM_SET_COMPILER_TARGET_BITS_FLAGS
 444   fi
 445 fi
 446 
 447 # Make compilation sanity check
 448 AC_CHECK_HEADERS([stdio.h], , [
 449   AC_MSG_NOTICE([Failed to compile stdio.h. This likely implies missing compile dependencies.])
 450   if test "x$COMPILE_TYPE" = xreduced; then
 451     AC_MSG_NOTICE([You are doing a reduced build. Check that you have 32-bit libraries installed.])
 452   elif test "x$COMPILE_TYPE" = xcross; then
 453     AC_MSG_NOTICE([You are doing a cross-compilation. Check that you have all target platform libraries installed.])
 454   fi
 455   AC_MSG_ERROR([Cannot continue.])