common/autoconf/flags.m4

Print this page




 102     # The version variables used to create RC_FLAGS may be overridden
 103     # in a custom configure script, or possibly the command line.
 104     # Let those variables be expanded at make time in spec.gmk.
 105     # The \$ are escaped to the shell, and the $(...) variables
 106     # are evaluated by make.
 107     RC_FLAGS="$RC_FLAGS \
 108         -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \
 109         -d \"JDK_COMPANY=\$(COMPANY_NAME)\" \
 110         -d \"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
 111         -d \"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
 112         -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
 113         -d \"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
 114         -d \"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
 115   fi
 116   AC_SUBST(RC_FLAGS)
 117 
 118   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 119     # FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
 120     CCXXFLAGS="$CCXXFLAGS -nologo"
 121   fi

























 122 ])
 123 
 124 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
 125 [
 126   ###############################################################################
 127   #
 128   # How to compile shared libraries.
 129   #
 130 
 131   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 132     PICFLAG="-fPIC"
 133     C_FLAG_REORDER=''
 134     CXX_FLAG_REORDER=''
 135 
 136     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 137       # Linking is different on MacOSX
 138       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
 139       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
 140       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 141       SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'


 404   fi
 405 
 406   if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
 407     AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
 408   fi
 409 
 410   AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
 411       [extra flags to be used when compiling jdk c-files])])
 412 
 413   AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
 414       [extra flags to be used when compiling jdk c++-files])])
 415 
 416   AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
 417       [extra flags to be used when linking jdk])])
 418 
 419   CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
 420   CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
 421   LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
 422 
 423   # Hotspot needs these set in their legacy form
 424   LEGACY_EXTRA_CFLAGS=$with_extra_cflags
 425   LEGACY_EXTRA_CXXFLAGS=$with_extra_cxxflags
 426   LEGACY_EXTRA_LDFLAGS=$with_extra_ldflags
 427 
 428   AC_SUBST(LEGACY_EXTRA_CFLAGS)
 429   AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
 430   AC_SUBST(LEGACY_EXTRA_LDFLAGS)
 431 
 432   ###############################################################################
 433   #
 434   # Now setup the CFLAGS and LDFLAGS for the JDK build.
 435   # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
 436   #
 437 
 438   # Setup compiler/platform specific flags to CFLAGS_JDK,
 439   # CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
 440   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 441     # these options are used for both C and C++ compiles
 442     CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
 443         -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
 444     case $OPENJDK_TARGET_CPU_ARCH in
 445       arm )
 446         # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing


 504 
 505   # Setup LP64
 506   CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
 507 
 508   # Set some common defines. These works for all compilers, but assume
 509   # -D is universally accepted.
 510 
 511   # Setup endianness
 512   if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then
 513     # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
 514     #   Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
 515     #   (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
 516     #   Note: -Dmacro         is the same as    #define macro 1
 517     #         -Dmacro=        is the same as    #define macro
 518     if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 519       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
 520     else
 521       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
 522     fi
 523   else





 524     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"

 525   fi
 526   
 527   # Setup target OS define. Use OS target name but in upper case.
 528   OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 529   CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
 530 
 531   # Setup target CPU
 532   CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
 533   
 534   # Setup debug/release defines
 535   if test "x$DEBUG_LEVEL" = xrelease; then
 536     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
 537     if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 538       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
 539     fi
 540   else
 541     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
 542   fi
 543 
 544   # Setup release name




 102     # The version variables used to create RC_FLAGS may be overridden
 103     # in a custom configure script, or possibly the command line.
 104     # Let those variables be expanded at make time in spec.gmk.
 105     # The \$ are escaped to the shell, and the $(...) variables
 106     # are evaluated by make.
 107     RC_FLAGS="$RC_FLAGS \
 108         -d \"JDK_BUILD_ID=\$(FULL_VERSION)\" \
 109         -d \"JDK_COMPANY=\$(COMPANY_NAME)\" \
 110         -d \"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
 111         -d \"JDK_VER=\$(JDK_MINOR_VERSION).\$(JDK_MICRO_VERSION).\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0).\$(COOKED_BUILD_NUMBER)\" \
 112         -d \"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
 113         -d \"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(JDK_MINOR_VERSION) \$(JDK_UPDATE_META_TAG)\" \
 114         -d \"JDK_FVER=\$(JDK_MINOR_VERSION),\$(JDK_MICRO_VERSION),\$(if \$(JDK_UPDATE_VERSION),\$(JDK_UPDATE_VERSION),0),\$(COOKED_BUILD_NUMBER)\""
 115   fi
 116   AC_SUBST(RC_FLAGS)
 117 
 118   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
 119     # FIXME: likely bug, should be CCXXFLAGS_JDK? or one for C or CXX.
 120     CCXXFLAGS="$CCXXFLAGS -nologo"
 121   fi
 122 
 123   if test "x$SYSROOT" != "x"; then
 124     if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 125       if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 126         # Solaris Studio does not have a concept of sysroot. Instead we must
 127         # make sure the default include and lib dirs are appended to each 
 128         # compile and link command line.
 129         SYSROOT_CFLAGS="-I$SYSROOT/usr/include"
 130         SYSROOT_LDFLAGS="-L$SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
 131             -L$SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR"
 132       fi
 133     elif test "x$TOOLCHAIN_TYPE" = xgcc; then
 134       SYSROOT_CFLAGS="--sysroot=\"$SYSROOT\""
 135       SYSROOT_LDFLAGS="--sysroot=\"$SYSROOT\""
 136     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 137       SYSROOT_CFLAGS="-isysroot \"$SYSROOT\""
 138       SYSROOT_LDFLAGS="-isysroot \"$SYSROOT\""
 139     fi
 140     # Propagate the sysroot args to hotspot
 141     LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $SYSROOT_CFLAGS"
 142     LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $SYSROOT_CFLAGS"
 143     LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $SYSROOT_LDFLAGS"
 144   fi
 145   AC_SUBST(SYSROOT_CFLAGS)
 146   AC_SUBST(SYSROOT_LDFLAGS)
 147 ])
 148 
 149 AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_LIBS],
 150 [
 151   ###############################################################################
 152   #
 153   # How to compile shared libraries.
 154   #
 155 
 156   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 157     PICFLAG="-fPIC"
 158     C_FLAG_REORDER=''
 159     CXX_FLAG_REORDER=''
 160 
 161     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 162       # Linking is different on MacOSX
 163       SHARED_LIBRARY_FLAGS="-dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0 $PICFLAG"
 164       SET_EXECUTABLE_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.'
 165       SET_SHARED_LIBRARY_ORIGIN="$SET_EXECUTABLE_ORIGIN"
 166       SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1'


 429   fi
 430 
 431   if test "x$LDFLAGS" != "x${ADDED_LDFLAGS}"; then
 432     AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
 433   fi
 434 
 435   AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
 436       [extra flags to be used when compiling jdk c-files])])
 437 
 438   AC_ARG_WITH(extra-cxxflags, [AS_HELP_STRING([--with-extra-cxxflags],
 439       [extra flags to be used when compiling jdk c++-files])])
 440 
 441   AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
 442       [extra flags to be used when linking jdk])])
 443 
 444   CFLAGS_JDK="${CFLAGS_JDK} $with_extra_cflags"
 445   CXXFLAGS_JDK="${CXXFLAGS_JDK} $with_extra_cxxflags"
 446   LDFLAGS_JDK="${LDFLAGS_JDK} $with_extra_ldflags"
 447 
 448   # Hotspot needs these set in their legacy form
 449   LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS $with_extra_cflags"
 450   LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS $with_extra_cxxflags"
 451   LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS $with_extra_ldflags"
 452 
 453   AC_SUBST(LEGACY_EXTRA_CFLAGS)
 454   AC_SUBST(LEGACY_EXTRA_CXXFLAGS)
 455   AC_SUBST(LEGACY_EXTRA_LDFLAGS)
 456 
 457   ###############################################################################
 458   #
 459   # Now setup the CFLAGS and LDFLAGS for the JDK build.
 460   # Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
 461   #
 462 
 463   # Setup compiler/platform specific flags to CFLAGS_JDK,
 464   # CXXFLAGS_JDK and CCXXFLAGS_JDK (common to C and CXX?)
 465   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 466     # these options are used for both C and C++ compiles
 467     CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
 468         -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
 469     case $OPENJDK_TARGET_CPU_ARCH in
 470       arm )
 471         # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing


 529 
 530   # Setup LP64
 531   CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
 532 
 533   # Set some common defines. These works for all compilers, but assume
 534   # -D is universally accepted.
 535 
 536   # Setup endianness
 537   if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then
 538     # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
 539     #   Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
 540     #   (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
 541     #   Note: -Dmacro         is the same as    #define macro 1
 542     #         -Dmacro=        is the same as    #define macro
 543     if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 544       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
 545     else
 546       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
 547     fi
 548   else
 549     # Same goes for _BIG_ENDIAN. Do we really need to set *ENDIAN on Solaris if they
 550     # are defined in the system?
 551     if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 552       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN="
 553     else
 554       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
 555     fi
 556   fi
 557   
 558   # Setup target OS define. Use OS target name but in upper case.
 559   OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
 560   CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D$OPENJDK_TARGET_OS_UPPERCASE"
 561 
 562   # Setup target CPU
 563   CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
 564   
 565   # Setup debug/release defines
 566   if test "x$DEBUG_LEVEL" = xrelease; then
 567     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
 568     if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 569       CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
 570     fi
 571   else
 572     CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
 573   fi
 574 
 575   # Setup release name