1 #
   2 # Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 ################################################################################
  27 #
  28 # Setup flags for other tools than C/C++ compiler
  29 #
  30 
  31 AC_DEFUN([FLAGS_SETUP_ARFLAGS],
  32 [
  33   # FIXME: figure out if we should select AR flags depending on OS or toolchain.
  34   if test "x$OPENJDK_TARGET_OS" = xaix; then
  35     ARFLAGS="-X64"
  36   elif test "x$OPENJDK_TARGET_OS" = xwindows; then
  37     # lib.exe is used as AR to create static libraries.
  38     ARFLAGS="-nologo -NODEFAULTLIB:MSVCRT"
  39   else
  40     ARFLAGS=""
  41   fi
  42 
  43   AC_SUBST(ARFLAGS)
  44 ])
  45 
  46 AC_DEFUN([FLAGS_SETUP_STRIPFLAGS],
  47 [
  48   ## Setup strip.
  49   # FIXME: should this really be per platform, or should it be per toolchain type?
  50   # strip is not provided by clang or solstudio; so guessing platform makes most sense.
  51   # FIXME: we should really only export STRIPFLAGS from here, not POST_STRIP_CMD.
  52   if test "x$OPENJDK_TARGET_OS" = xlinux; then
  53     STRIPFLAGS="-g"
  54   elif test "x$OPENJDK_TARGET_OS" = xsolaris; then
  55     STRIPFLAGS="-x"
  56   elif test "x$OPENJDK_TARGET_OS" = xmacosx; then
  57     STRIPFLAGS="-S"
  58   elif test "x$OPENJDK_TARGET_OS" = xaix; then
  59     STRIPFLAGS="-X32_64"
  60   fi
  61 
  62   AC_SUBST(STRIPFLAGS)
  63 ])
  64 
  65 AC_DEFUN([FLAGS_SETUP_RCFLAGS],
  66 [
  67   # On Windows, we need to set RC flags.
  68   if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
  69     RC_FLAGS="-nologo -l0x409"
  70     JVM_RCFLAGS="-nologo"
  71     if test "x$DEBUG_LEVEL" = xrelease; then
  72       RC_FLAGS="$RC_FLAGS -DNDEBUG"
  73       JVM_RCFLAGS="$JVM_RCFLAGS -DNDEBUG"
  74     fi
  75 
  76     # The version variables used to create RC_FLAGS may be overridden
  77     # in a custom configure script, or possibly the command line.
  78     # Let those variables be expanded at make time in spec.gmk.
  79     # The \$ are escaped to the shell, and the $(...) variables
  80     # are evaluated by make.
  81     RC_FLAGS="$RC_FLAGS \
  82         -D\"JDK_VERSION_STRING=\$(VERSION_STRING)\" \
  83         -D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
  84         -D\"JDK_FILEDESC=\$(JDK_RC_NAME) binary\" \
  85         -D\"JDK_VER=\$(VERSION_NUMBER)\" \
  86         -D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
  87         -D\"JDK_NAME=\$(JDK_RC_NAME) \$(VERSION_FEATURE)\" \
  88         -D\"JDK_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
  89 
  90     JVM_RCFLAGS="$JVM_RCFLAGS \
  91         -D\"HS_VERSION_STRING=\$(VERSION_STRING)\" \
  92         -D\"HS_COMPANY=\$(COMPANY_NAME)\" \
  93         -D\"HS_VER=\$(VERSION_NUMBER_FOUR_POSITIONS)\" \
  94         -D\"HS_INTERNAL_NAME=jvm\" \
  95         -D\"HS_COPYRIGHT=Copyright $COPYRIGHT_YEAR\" \
  96         -D\"HS_FNAME=jvm.dll\" \
  97         -D\"HS_NAME=\$(PRODUCT_NAME) \$(VERSION_SHORT)\" \
  98         -D\"HS_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
  99   fi
 100   AC_SUBST(RC_FLAGS)
 101   AC_SUBST(JVM_RCFLAGS)
 102 ])
 103 
 104 ################################################################################
 105 # platform independent
 106 AC_DEFUN([FLAGS_SETUP_ASFLAGS],
 107 [
 108   if test "x$OPENJDK_TARGET_OS" = xmacosx; then
 109     JVM_BASIC_ASFLAGS="-x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
 110   fi
 111 ])
 112 
 113 ################################################################################
 114 # $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
 115 #      conditionals against.
 116 # $2 - Optional prefix for each variable defined.
 117 AC_DEFUN([FLAGS_SETUP_ASFLAGS_CPU_DEP],
 118 [
 119   # Misuse EXTRA_CFLAGS to mimic old behavior
 120   $2JVM_ASFLAGS="$JVM_BASIC_ASFLAGS ${$2EXTRA_CFLAGS}"
 121 
 122   if test "x$1" = "xTARGET" && \
 123       test "x$TOOLCHAIN_TYPE" = xgcc && \
 124       test "x$OPENJDK_TARGET_CPU" = xarm; then
 125     $2JVM_ASFLAGS="${$2JVM_ASFLAGS} $ARM_ARCH_TYPE_ASFLAGS $ARM_FLOAT_TYPE_ASFLAGS"
 126   fi
 127 
 128   AC_SUBST($2JVM_ASFLAGS)
 129 ])
 130