make/common/shared/Defs-utils.gmk

Tue, 23 Oct 2012 10:10:39 -0700

author
tbell
date
Tue, 23 Oct 2012 10:10:39 -0700
changeset 406
0a5931be9176
parent 340
f7718662741d
child 412
9094cd4a614f
permissions
-rw-r--r--

7152336: Enable builds on Windows with MinGW/MSYS
Summary: Minimal makefile changes to enable building OpenJDK using MSYS on Windows7
Reviewed-by: ohair, tbell
Contributed-by: volker.simonis@gmail.com

     1 #
     2 # Copyright (c) 2005, 2009, 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 #
    26 #
    27 # Shared variables for standard unix utilties on all platforms.
    28 #
    29 # Assumes Platform.gmk has been included before this file.
    30 #
    31 # These input UTILS_* variables can be defined at anytime, ideally once.
    32 #         Unix Commands: Normally /bin/, /usr/bin/. or C:/mksnt/mksnt/
    33 #            UTILS_COMMAND_PATH
    34 #         /usr/bin/
    35 #            UTILS_USR_BIN_PATH
    36 #         /usr/ccs/bin/ (sccs, m4, lex, yacc, as, ar, strip, mcs)
    37 #            UTILS_CCS_BIN_PATH
    38 #         Dev Tools: zip, unzip, etc that we may have special versions of
    39 #            UTILS_DEVTOOL_PATH
    40 #
    41 # WARNING:  This file cannot assume that any of these utilties are available
    42 #           to be run via their variable names defined here.
    43 #           The paths inside the UTILS_* variables may not be defined yet.
    44 #
    45 # Note: There is no guarantee that all these exist on all platforms.
    46 #       Some only make sense for one platform, but are harmless.
    47 #
    49 ifeq ($(PLATFORM),linux)
    50   UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
    51   UTILS_USR_BIN_PATH=$(USRBIN_PATH)
    52   UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
    53   UTILS_DEVTOOL_PATH=$(USRBIN_PATH)
    54 endif
    56 ifeq ($(PLATFORM),bsd)
    57   UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
    58   UTILS_USR_BIN_PATH=$(USRBIN_PATH)
    59   UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
    60   UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
    61 endif
    63 ifeq ($(PLATFORM),solaris)
    64   UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
    65   UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
    66   UTILS_CCS_BIN_PATH=$(UNIXCCS_PATH)
    67   UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
    68 endif
    70 ifeq ($(PLATFORM),windows)
    71   UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
    72   UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
    73   UTILS_CCS_BIN_PATH=$(UNIXCOMMAND_PATH)
    74   UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
    75 endif
    77 # Utilities
    78 ADB            = $(UTILS_COMMAND_PATH)adb
    79 AR             = $(UTILS_CCS_BIN_PATH)ar
    80 AS             = $(UTILS_CCS_BIN_PATH)as
    81 BASENAME       = $(UTILS_COMMAND_PATH)basename
    82 CAT            = $(UTILS_COMMAND_PATH)cat
    83 CHMOD          = $(UTILS_COMMAND_PATH)chmod
    84 CMP            = $(UTILS_USR_BIN_PATH)cmp
    85 COMM           = $(UTILS_USR_BIN_PATH)comm
    86 COMPRESS       = $(UTILS_USR_BIN_PATH)compress
    87 CP             = $(UTILS_COMMAND_PATH)cp
    88 CPIO           = $(UTILS_COMMAND_PATH)cpio
    89 CUT            = $(UTILS_USR_BIN_PATH)cut
    90 DATE           = $(UTILS_COMMAND_PATH)date
    91 DF             = $(UTILS_COMMAND_PATH)df
    92 DIFF           = $(UTILS_USR_BIN_PATH)diff
    93 DIRNAME        = $(UTILS_USR_BIN_PATH)dirname
    94 ECHO           = $(UTILS_COMMAND_PATH)echo
    95 EGREP          = $(UTILS_COMMAND_PATH)egrep
    96 EXPR           = $(UTILS_USR_BIN_PATH)expr
    97 FILE           = $(UTILS_USR_BIN_PATH)file
    98 FIND           = $(UTILS_USR_BIN_PATH)find
    99 FMT            = $(UTILS_COMMAND_PATH)fmt
   100 GDB            = $(UTILS_USR_BIN_PATH)gdb
   101 GREP           = $(UTILS_COMMAND_PATH)grep
   102 GUNZIP         = $(UTILS_COMMAND_PATH)gunzip
   103 HEAD           = $(UTILS_USR_BIN_PATH)head
   104 ID             = $(UTILS_COMMAND_PATH)id
   105 ISAINFO        = $(UTILS_COMMAND_PATH)isainfo
   106 KSH            = $(UTILS_COMMAND_PATH)ksh
   107 LD             = $(UTILS_CCS_BIN_PATH)ld
   108 LEX            = $(UTILS_CCS_BIN_PATH)lex
   109 LN             = $(UTILS_COMMAND_PATH)ln
   110 LS             = $(UTILS_COMMAND_PATH)ls
   111 MCS            = $(UTILS_CCS_BIN_PATH)mcs
   112 M4             = $(UTILS_CCS_BIN_PATH)m4
   113 MKDIR          = $(UTILS_COMMAND_PATH)mkdir
   114 MKSINFO        = $(UTILS_COMMAND_PATH)mksinfo
   115 MSGFMT         = $(UTILS_USR_BIN_PATH)msgfmt
   116 MV             = $(UTILS_COMMAND_PATH)mv
   117 NAWK           = $(UTILS_USR_BIN_PATH)nawk
   118 NM             = $(UTILS_CCS_BIN_PATH)nm
   119 PKGMK          = $(UTILS_COMMAND_PATH)pkgmk
   120 PRINTF         = $(UTILS_USR_BIN_PATH)printf
   121 PWD            = $(UTILS_COMMAND_PATH)pwd
   122 RC             = $(UTILS_COMMAND_PATH)rc
   123 RMDIR          = $(UTILS_COMMAND_PATH)rmdir
   124 RPM            = $(UTILS_COMMAND_PATH)rpm
   125 RPMBUILD       = $(UTILS_COMMAND_PATH)rpmbuild
   126 SED            = $(UTILS_COMMAND_PATH)sed
   127 SH             = $(UTILS_COMMAND_PATH)sh
   128 SHOWREV        = $(UTILS_USR_BIN_PATH)showrev
   129 SORT           = $(UTILS_COMMAND_PATH)sort
   130 STRIP          = $(UTILS_CCS_BIN_PATH)strip
   131 TAIL           = $(UTILS_USR_BIN_PATH)tail
   132 TAR            = $(UTILS_COMMAND_PATH)tar
   133 TEST           = $(UTILS_USR_BIN_PATH)test
   134 TOUCH          = $(UTILS_COMMAND_PATH)touch
   135 TR             = $(UTILS_USR_BIN_PATH)tr
   136 TRUE           = $(UTILS_COMMAND_PATH)true
   137 UNAME          = $(UTILS_COMMAND_PATH)uname
   138 UNIQ           = $(UTILS_USR_BIN_PATH)uniq
   139 UNZIP          = $(UTILS_USR_BIN_PATH)unzip
   140 UNZIPSFX       = $(UTILS_DEVTOOL_PATH)unzipsfx
   141 WC             = $(UTILS_USR_BIN_PATH)wc
   142 WHICH          = $(UTILS_USR_BIN_PATH)which
   143 YACC           = $(UTILS_CCS_BIN_PATH)yacc
   144 ZIPEXE         = $(UTILS_DEVTOOL_PATH)zip
   146 # Special cases
   147 #RM   is defined by GNU Make as 'rm -f'
   148 CD             = cd # intrinsic unix command
   150 # Windows specific
   151 ifeq ($(PLATFORM),windows)
   152   ifdef USING_CYGWIN
   153     # Intrinsic unix command, with backslash-escaped character interpretation
   154     ECHO     = $(UNIXCOMMAND_PATH)echo -e
   155     ZIPEXE   = $(UNIXCOMMAND_PATH)zip
   156     UNZIP    = $(UNIXCOMMAND_PATH)unzip
   157     # Some CYGWIN nawk versions require BINMODE=w for proper '\r' interpretation
   158     NAWK     = $(UNIXCOMMAND_PATH)awk -v BINMODE=w
   159   else
   160     ifdef USING_MSYS
   161       ECHO   = $(UTILS_COMMAND_PATH)echo -e
   162       ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
   163       UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
   164       NAWK   = $(UNIXCOMMAND_PATH)awk
   165     else
   166       ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
   167       UNZIP  = $(UTILS_DEVTOOL_PATH)unzip
   168       NAWK   = $(UNIXCOMMAND_PATH)awk
   169     endif
   170   endif
   171   # Re-define some utilities
   172   LEX            =# override GNU Make intrinsic: no lex on windows
   173   SHA1SUM        = $(UNIXCOMMAND_PATH)openssl sha1
   174 endif
   176 # Linux specific
   177 ifeq ($(PLATFORM),linux)
   178   # A few redefines
   179   # Allows for builds on Debian GNU Linux, basename is in a different place
   180   BASENAME=$(firstword $(wildcard $(UTILS_COMMAND_PATH)basename) \
   181                        $(wildcard $(UTILS_USR_BIN_PATH)basename))
   182   # RPM 4 has replaced "rpm -b" with an entirely new utility "rpmbuild".
   183   # Also, some distribution (Ubuntu, Debian, others?) place the rpm command
   184   # itself in /usr/bin rather than it's traditional home in /bin.
   185   RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \
   186                   $(wildcard $(UTILS_USR_BIN_PATH)rpm))
   187   RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \
   188                        $(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \
   189                        $(wildcard $(UTILS_COMMAND_PATH)rpm) \
   190                        $(wildcard $(UTILS_USR_BIN_PATH)rpm))
   191   # Most Linux distros have "sort" in /bin.  Ubuntu, Debian and perhaps
   192   # others have it in /usr/bin.
   193   SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \
   194                    $(wildcard $(UTILS_USR_BIN_PATH)sort))
   195   NAWK           = $(USRBIN_PATH)gawk
   196   # Intrinsic unix command, with backslash-escaped character interpretation
   197   ECHO           = /bin/echo -e
   198   # These are really in UTILS_USR_BIN_PATH on Linux (only sccs is not)
   199   AR             = $(UTILS_USR_BIN_PATH)ar
   200   AS             = $(UTILS_USR_BIN_PATH)as
   201   LD             = $(UTILS_USR_BIN_PATH)ld
   202   LEX            = $(UTILS_USR_BIN_PATH)lex
   203   MCS            = $(UTILS_USR_BIN_PATH)mcs
   204   M4             = $(UTILS_USR_BIN_PATH)m4
   205   NM             = $(UTILS_USR_BIN_PATH)nm
   206   STRIP          = $(UTILS_USR_BIN_PATH)strip
   207   YACC           = $(UTILS_USR_BIN_PATH)yacc
   208 endif
   210 # Solaris specific
   211 ifeq ($(PLATFORM),solaris)
   212   # Intrinsic unix command, with backslash-escaped character interpretation
   213   #   (not using -e  will cause build failure when using /bin/bash)
   214   #   (using -e breaks something else)
   215   ECHO           = /usr/bin/echo
   216 endif
   218 # BSD specific
   219 ifeq ($(PLATFORM),bsd)
   220   BASENAME     = $(UTILS_USR_BIN_PATH)basename
   221   EGREP        = $(UTILS_USR_BIN_PATH)egrep
   222   EXPR         = $(UTILS_COMMAND_PATH)expr
   223   FMT          = $(UTILS_USR_BIN_PATH)fmt
   224   GREP         = $(UTILS_USR_BIN_PATH)grep
   225   GUNZIP       = $(UTILS_USR_BIN_PATH)gunzip
   226   ID           = $(UTILS_USR_BIN_PATH)id
   227   MSGFMT       = $(UTILS_DEVTOOL_PATH)msgfmt
   228   SED          = $(UTILS_USR_BIN_PATH)sed
   229   SORT         = $(UTILS_USR_BIN_PATH)sort
   230   TEST         = $(UTILS_COMMAND_PATH)test
   231   TOUCH        = $(UTILS_USR_BIN_PATH)touch
   232   TRUE         = $(UTILS_USR_BIN_PATH)true
   233   UNAME        = $(UTILS_USR_BIN_PATH)uname
   234   # BSD OS_VENDOR specific
   235   ifeq ($(OS_VENDOR), Apple)
   236     NAWK       = $(UTILS_USR_BIN_PATH)awk
   237     UNZIPSFX   = $(UTILS_USR_BIN_PATH)unzipsfx
   238     ZIPEXE     = $(UTILS_USR_BIN_PATH)zip
   239   else
   240     UNZIP      = $(UTILS_DEVTOOL_PATH)unzip
   241   endif
   242   ifeq ($(OS_VENDOR), OpenBSD)
   243     NAWK       = $(UTILS_USR_BIN_PATH)awk
   244   else
   245     CPIO       = $(UTILS_USR_BIN_PATH)cpio
   246     TAR        = $(UTILS_USR_BIN_PATH)tar
   247   endif
   248 endif

mercurial