< prev index next >

make/autoconf/flags.m4

Print this page
rev 59102 : imported patch build


 188 
 189   AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
 190       [extra flags to be used when linking jdk])])
 191 
 192   AC_ARG_WITH(extra-asflags, [AS_HELP_STRING([--with-extra-asflags],
 193       [extra flags to be passed to the assembler])])
 194 
 195   USER_CFLAGS="$with_extra_cflags"
 196   USER_CXXFLAGS="$with_extra_cxxflags"
 197   USER_LDFLAGS="$with_extra_ldflags"
 198   USER_ASFLAGS="$with_extra_asflags"
 199 ])
 200 
 201 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
 202 # that configure can use them while detecting compilers.
 203 # TOOLCHAIN_TYPE is available here.
 204 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
 205 AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
 206 [
 207   if test "x[$]$1SYSROOT" != "x"; then
 208     if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 209       if test "x$OPENJDK_TARGET_OS" = xsolaris; then
 210         # Solaris Studio does not have a concept of sysroot. Instead we must
 211         # make sure the default include and lib dirs are appended to each
 212         # compile and link command line. Must also add -I-xbuiltin to enable
 213         # inlining of system functions and intrinsics.
 214         $1SYSROOT_CFLAGS="-I-xbuiltin -I[$]$1SYSROOT/usr/include"
 215         $1SYSROOT_LDFLAGS="-L[$]$1SYSROOT/usr/lib$OPENJDK_TARGET_CPU_ISADIR \
 216             -L[$]$1SYSROOT/lib$OPENJDK_TARGET_CPU_ISADIR"
 217         # If the devkit contains the ld linker, make sure we use it.
 218         AC_PATH_PROG(SOLARIS_LD, ld, , $DEVKIT_TOOLCHAIN_PATH:$DEVKIT_EXTRA_PATH)
 219         # Make sure this ld is runnable.
 220         if test -f "$SOLARIS_LD"; then
 221           if "$SOLARIS_LD" -V > /dev/null 2> /dev/null; then
 222             $1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -Yl,$(dirname $SOLARIS_LD)"
 223           else
 224             AC_MSG_WARN([Could not run $SOLARIS_LD found in devkit, reverting to system ld])
 225           fi
 226         fi
 227       fi
 228     elif test "x$TOOLCHAIN_TYPE" = xgcc; then
 229       $1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
 230       $1SYSROOT_LDFLAGS="--sysroot=[$]$1SYSROOT"
 231     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 232       $1SYSROOT_CFLAGS="-isysroot [$]$1SYSROOT"
 233       $1SYSROOT_LDFLAGS="-isysroot [$]$1SYSROOT"
 234     fi
 235   fi
 236 
 237   if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 238     # We also need -iframework<path>/System/Library/Frameworks
 239     $1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
 240     $1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
 241     # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
 242     # set this here so it doesn't have to be peppered throughout the forest
 243     $1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
 244     $1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
 245   fi
 246 
 247   AC_SUBST($1SYSROOT_CFLAGS)
 248   AC_SUBST($1SYSROOT_LDFLAGS)
 249 ])
 250 
 251 AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
 252 [
 253   # We should always include user supplied flags
 254   FLAGS_SETUP_USER_SUPPLIED_FLAGS
 255   # The sysroot flags are needed for configure to be able to run the compilers
 256   FLAGS_SETUP_SYSROOT_FLAGS
 257 
 258   # For solstudio and xlc, the word size flag is required for correct behavior.
 259   # For clang/gcc, the flag is only strictly required for reduced builds, but
 260   # set it always where possible (x86, sparc and ppc).
 261   if test "x$TOOLCHAIN_TYPE" = xxlc; then
 262     MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}"
 263   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 264     MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
 265   elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
 266     if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
 267         test "x$OPENJDK_TARGET_CPU" != xx32 ||
 268         test "x$OPENJDK_TARGET_CPU_ARCH" = xsparc ||
 269         test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
 270       MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
 271     fi
 272   fi
 273 
 274   # FIXME: global flags are not used yet...
 275   # The "global" flags will *always* be set. Without them, it is not possible to
 276   # get a working compilation.
 277   GLOBAL_CFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CFLAGS"
 278   GLOBAL_CXXFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CXXFLAGS"
 279   GLOBAL_LDFLAGS="$MACHINE_FLAG $SYSROOT_LDFLAGS $USER_LDFLAGS"
 280   # FIXME: Don't really know how to do with this, but this was the old behavior
 281   GLOBAL_CPPFLAGS="$SYSROOT_CFLAGS"
 282   AC_SUBST(GLOBAL_CFLAGS)
 283   AC_SUBST(GLOBAL_CXXFLAGS)
 284   AC_SUBST(GLOBAL_LDFLAGS)
 285   AC_SUBST(GLOBAL_CPPFLAGS)
 286 
 287   # FIXME: For compatilibity, export this as EXTRA_CFLAGS for now.
 288   EXTRA_CFLAGS="$MACHINE_FLAG $USER_CFLAGS"


 301   CXXFLAGS="$GLOBAL_CXXFLAGS"
 302   LDFLAGS="$GLOBAL_LDFLAGS"
 303   CPPFLAGS="$GLOBAL_CPPFLAGS"
 304 ])
 305 
 306 AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
 307 [
 308   # COMPILER_TARGET_BITS_FLAG  : option for selecting 32- or 64-bit output
 309   # COMPILER_COMMAND_FILE_FLAG : option for passing a command file to the compiler
 310   # COMPILER_BINDCMD_FILE_FLAG : option for specifying a file which saves the binder
 311   #                              commands produced by the link step (currently AIX only)
 312   if test "x$TOOLCHAIN_TYPE" = xxlc; then
 313     COMPILER_TARGET_BITS_FLAG="-q"
 314     COMPILER_COMMAND_FILE_FLAG="-f"
 315     COMPILER_BINDCMD_FILE_FLAG="-bloadmap:"
 316   else
 317     COMPILER_TARGET_BITS_FLAG="-m"
 318     COMPILER_COMMAND_FILE_FLAG="@"
 319     COMPILER_BINDCMD_FILE_FLAG=""
 320 
 321     # The solstudio linker does not support @-files.
 322     if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 323       COMPILER_COMMAND_FILE_FLAG=
 324     fi
 325 
 326     # Check if @file is supported by gcc
 327     if test "x$TOOLCHAIN_TYPE" = xgcc; then
 328       AC_MSG_CHECKING([if @file is supported by gcc])
 329       # Extra emtpy "" to prevent ECHO from interpreting '--version' as argument
 330       $ECHO "" "--version" > command.file
 331       if $CXX @command.file 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
 332         AC_MSG_RESULT(yes)
 333         COMPILER_COMMAND_FILE_FLAG="@"
 334       else
 335         AC_MSG_RESULT(no)
 336         COMPILER_COMMAND_FILE_FLAG=
 337       fi
 338       $RM command.file
 339     fi
 340   fi
 341 
 342   AC_SUBST(COMPILER_TARGET_BITS_FLAG)
 343   AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
 344   AC_SUBST(COMPILER_BINDCMD_FILE_FLAG)
 345 


 359     # When compiling, how to specify the to be created object file.
 360     CC_OUT_OPTION='-o$(SPACE)'
 361     # When linking, how to specify the output
 362     LD_OUT_OPTION='-o$(SPACE)'
 363     # When archiving, how to specify the destination static archive.
 364     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 365       AR_OUT_OPTION='-r -cs$(SPACE)'
 366     else
 367       AR_OUT_OPTION='-rcs$(SPACE)'
 368     fi
 369   fi
 370   AC_SUBST(CC_OUT_OPTION)
 371   AC_SUBST(LD_OUT_OPTION)
 372   AC_SUBST(AR_OUT_OPTION)
 373 
 374   # Generate make dependency files
 375   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 376     C_FLAG_DEPS="-MMD -MF"
 377   elif test "x$TOOLCHAIN_TYPE" = xclang; then
 378     C_FLAG_DEPS="-MMD -MF"
 379   elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
 380     C_FLAG_DEPS="-xMMD -xMF"
 381   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 382     C_FLAG_DEPS="-qmakedep=gcc -MF"
 383   fi
 384   CXX_FLAG_DEPS="$C_FLAG_DEPS"
 385   AC_SUBST(C_FLAG_DEPS)
 386   AC_SUBST(CXX_FLAG_DEPS)
 387 ])
 388 
 389 AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],
 390 [
 391   FLAGS_SETUP_TOOLCHAIN_CONTROL
 392 
 393   if test "x$BUILD_SYSROOT" != x; then
 394     FLAGS_SETUP_SYSROOT_FLAGS([BUILD_])
 395   else
 396     if test "x$COMPILE_TYPE" != "xcross"; then
 397       BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
 398       BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
 399     fi
 400   fi




 188 
 189   AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
 190       [extra flags to be used when linking jdk])])
 191 
 192   AC_ARG_WITH(extra-asflags, [AS_HELP_STRING([--with-extra-asflags],
 193       [extra flags to be passed to the assembler])])
 194 
 195   USER_CFLAGS="$with_extra_cflags"
 196   USER_CXXFLAGS="$with_extra_cxxflags"
 197   USER_LDFLAGS="$with_extra_ldflags"
 198   USER_ASFLAGS="$with_extra_asflags"
 199 ])
 200 
 201 # Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
 202 # that configure can use them while detecting compilers.
 203 # TOOLCHAIN_TYPE is available here.
 204 # Param 1 - Optional prefix to all variables. (e.g BUILD_)
 205 AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
 206 [
 207   if test "x[$]$1SYSROOT" != "x"; then
 208     if test "x$TOOLCHAIN_TYPE" = xgcc; then




















 209       $1SYSROOT_CFLAGS="--sysroot=[$]$1SYSROOT"
 210       $1SYSROOT_LDFLAGS="--sysroot=[$]$1SYSROOT"
 211     elif test "x$TOOLCHAIN_TYPE" = xclang; then
 212       $1SYSROOT_CFLAGS="-isysroot [$]$1SYSROOT"
 213       $1SYSROOT_LDFLAGS="-isysroot [$]$1SYSROOT"
 214     fi
 215   fi
 216 
 217   if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 218     # We also need -iframework<path>/System/Library/Frameworks
 219     $1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
 220     $1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
 221     # These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
 222     # set this here so it doesn't have to be peppered throughout the forest
 223     $1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
 224     $1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
 225   fi
 226 
 227   AC_SUBST($1SYSROOT_CFLAGS)
 228   AC_SUBST($1SYSROOT_LDFLAGS)
 229 ])
 230 
 231 AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
 232 [
 233   # We should always include user supplied flags
 234   FLAGS_SETUP_USER_SUPPLIED_FLAGS
 235   # The sysroot flags are needed for configure to be able to run the compilers
 236   FLAGS_SETUP_SYSROOT_FLAGS
 237 
 238   # For xlc, the word size flag is required for correct behavior.
 239   # For clang/gcc, the flag is only strictly required for reduced builds, but
 240   # set it always where possible (x86 and ppc).
 241   if test "x$TOOLCHAIN_TYPE" = xxlc; then
 242     MACHINE_FLAG="-q${OPENJDK_TARGET_CPU_BITS}"


 243   elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
 244     if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
 245         test "x$OPENJDK_TARGET_CPU" != xx32 ||

 246         test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
 247       MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
 248     fi
 249   fi
 250 
 251   # FIXME: global flags are not used yet...
 252   # The "global" flags will *always* be set. Without them, it is not possible to
 253   # get a working compilation.
 254   GLOBAL_CFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CFLAGS"
 255   GLOBAL_CXXFLAGS="$MACHINE_FLAG $SYSROOT_CFLAGS $USER_CXXFLAGS"
 256   GLOBAL_LDFLAGS="$MACHINE_FLAG $SYSROOT_LDFLAGS $USER_LDFLAGS"
 257   # FIXME: Don't really know how to do with this, but this was the old behavior
 258   GLOBAL_CPPFLAGS="$SYSROOT_CFLAGS"
 259   AC_SUBST(GLOBAL_CFLAGS)
 260   AC_SUBST(GLOBAL_CXXFLAGS)
 261   AC_SUBST(GLOBAL_LDFLAGS)
 262   AC_SUBST(GLOBAL_CPPFLAGS)
 263 
 264   # FIXME: For compatilibity, export this as EXTRA_CFLAGS for now.
 265   EXTRA_CFLAGS="$MACHINE_FLAG $USER_CFLAGS"


 278   CXXFLAGS="$GLOBAL_CXXFLAGS"
 279   LDFLAGS="$GLOBAL_LDFLAGS"
 280   CPPFLAGS="$GLOBAL_CPPFLAGS"
 281 ])
 282 
 283 AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
 284 [
 285   # COMPILER_TARGET_BITS_FLAG  : option for selecting 32- or 64-bit output
 286   # COMPILER_COMMAND_FILE_FLAG : option for passing a command file to the compiler
 287   # COMPILER_BINDCMD_FILE_FLAG : option for specifying a file which saves the binder
 288   #                              commands produced by the link step (currently AIX only)
 289   if test "x$TOOLCHAIN_TYPE" = xxlc; then
 290     COMPILER_TARGET_BITS_FLAG="-q"
 291     COMPILER_COMMAND_FILE_FLAG="-f"
 292     COMPILER_BINDCMD_FILE_FLAG="-bloadmap:"
 293   else
 294     COMPILER_TARGET_BITS_FLAG="-m"
 295     COMPILER_COMMAND_FILE_FLAG="@"
 296     COMPILER_BINDCMD_FILE_FLAG=""
 297 





 298     # Check if @file is supported by gcc
 299     if test "x$TOOLCHAIN_TYPE" = xgcc; then
 300       AC_MSG_CHECKING([if @file is supported by gcc])
 301       # Extra emtpy "" to prevent ECHO from interpreting '--version' as argument
 302       $ECHO "" "--version" > command.file
 303       if $CXX @command.file 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD; then
 304         AC_MSG_RESULT(yes)
 305         COMPILER_COMMAND_FILE_FLAG="@"
 306       else
 307         AC_MSG_RESULT(no)
 308         COMPILER_COMMAND_FILE_FLAG=
 309       fi
 310       $RM command.file
 311     fi
 312   fi
 313 
 314   AC_SUBST(COMPILER_TARGET_BITS_FLAG)
 315   AC_SUBST(COMPILER_COMMAND_FILE_FLAG)
 316   AC_SUBST(COMPILER_BINDCMD_FILE_FLAG)
 317 


 331     # When compiling, how to specify the to be created object file.
 332     CC_OUT_OPTION='-o$(SPACE)'
 333     # When linking, how to specify the output
 334     LD_OUT_OPTION='-o$(SPACE)'
 335     # When archiving, how to specify the destination static archive.
 336     if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 337       AR_OUT_OPTION='-r -cs$(SPACE)'
 338     else
 339       AR_OUT_OPTION='-rcs$(SPACE)'
 340     fi
 341   fi
 342   AC_SUBST(CC_OUT_OPTION)
 343   AC_SUBST(LD_OUT_OPTION)
 344   AC_SUBST(AR_OUT_OPTION)
 345 
 346   # Generate make dependency files
 347   if test "x$TOOLCHAIN_TYPE" = xgcc; then
 348     C_FLAG_DEPS="-MMD -MF"
 349   elif test "x$TOOLCHAIN_TYPE" = xclang; then
 350     C_FLAG_DEPS="-MMD -MF"


 351   elif test "x$TOOLCHAIN_TYPE" = xxlc; then
 352     C_FLAG_DEPS="-qmakedep=gcc -MF"
 353   fi
 354   CXX_FLAG_DEPS="$C_FLAG_DEPS"
 355   AC_SUBST(C_FLAG_DEPS)
 356   AC_SUBST(CXX_FLAG_DEPS)
 357 ])
 358 
 359 AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],
 360 [
 361   FLAGS_SETUP_TOOLCHAIN_CONTROL
 362 
 363   if test "x$BUILD_SYSROOT" != x; then
 364     FLAGS_SETUP_SYSROOT_FLAGS([BUILD_])
 365   else
 366     if test "x$COMPILE_TYPE" != "xcross"; then
 367       BUILD_SYSROOT_CFLAGS="$SYSROOT_CFLAGS"
 368       BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
 369     fi
 370   fi


< prev index next >