1 #
   2 # Copyright (c) 2011, 2012, 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 AC_DEFUN_ONCE([SRCDIRS_SETUP_TOPDIRS],
  27 [
  28 
  29 # Where are the sources. Any of these can be overridden
  30 # using --with-override-corba and the likes.
  31 LANGTOOLS_TOPDIR="$SRC_ROOT/langtools"
  32 CORBA_TOPDIR="$SRC_ROOT/corba"
  33 JAXP_TOPDIR="$SRC_ROOT/jaxp"
  34 JAXWS_TOPDIR="$SRC_ROOT/jaxws"
  35 HOTSPOT_TOPDIR="$SRC_ROOT/hotspot"
  36 JDK_TOPDIR="$SRC_ROOT/jdk"
  37 AC_SUBST(LANGTOOLS_TOPDIR)
  38 AC_SUBST(CORBA_TOPDIR)
  39 AC_SUBST(JAXP_TOPDIR)
  40 AC_SUBST(JAXWS_TOPDIR)
  41 AC_SUBST(HOTSPOT_TOPDIR)
  42 AC_SUBST(JDK_TOPDIR)
  43 ])
  44 
  45 
  46 AC_DEFUN_ONCE([SRCDIRS_SETUP_ALTERNATIVE_TOPDIRS],
  47 [
  48 
  49 ###############################################################################
  50 #
  51 # Pickup additional source for a component from outside of the source root
  52 # or override source for a component. 
  53 #
  54 AC_ARG_WITH(add-source-root, [AS_HELP_STRING([--with-add-source-root],
  55     [for each and every source directory, look in this additional source root for
  56      the same directory; if it exists and have files in it, include it in the build])])                             
  57                              
  58 AC_ARG_WITH(override-source-root, [AS_HELP_STRING([--with-override-source-root],
  59     [for each and every source directory, look in this override source root for
  60      the same directory; if it exists, use that directory instead and
  61      ignore the directory in the original source root])])
  62 
  63 AC_ARG_WITH(adds-and-overrides, [AS_HELP_STRING([--with-adds-and-overrides],
  64     [use the subdirs 'adds' and 'overrides' in the specified directory as
  65      add-source-root and override-source-root])])
  66 
  67 if test "x$with_adds_and_overrides" != x; then
  68     with_add_source_root="$with_adds_and_overrides/adds"
  69     with_override_source_root="$with_adds_and_overrides/overrides"
  70 fi
  71 
  72 if test "x$with_add_source_root" != x; then
  73     if ! test -d $with_add_source_root; then
  74        AC_MSG_ERROR([Trying to use a non-existant add-source-root $with_add_source_root])
  75     fi
  76     CURDIR="$PWD"
  77     cd "$with_add_source_root"
  78     ADD_SRC_ROOT="`pwd`"
  79     cd "$CURDIR"
  80     # Verify that the addon source root does not have any root makefiles.
  81     # If it does, then it is usually an error, prevent this.
  82     if test -f $with_add_source_root/langtools/makefiles/Makefile || \
  83        test -f $with_add_source_root/langtools/make/Makefile; then
  84         AC_MSG_ERROR([Your add source root seems to contain a full langtools repo! An add source root should only contain additional sources.])
  85     fi
  86     if test -f $with_add_source_root/corba/makefiles/Makefile || \
  87        test -f $with_add_source_root/corba/make/Makefile; then
  88         AC_MSG_ERROR([Your add source root seems to contain a full corba repo! An add source root should only contain additional sources.])
  89     fi
  90     if test -f $with_add_source_root/jaxp/makefiles/Makefile || \
  91        test -f $with_add_source_root/jaxp/make/Makefile; then
  92         AC_MSG_ERROR([Your add source root seems to contain a full jaxp repo! An add source root should only contain additional sources.])
  93     fi
  94     if test -f $with_add_source_root/jaxws/makefiles/Makefile || \
  95        test -f $with_add_source_root/jaxws/make/Makefile; then
  96         AC_MSG_ERROR([Your add source root seems to contain a full jaxws repo! An add source root should only contain additional sources.])
  97     fi
  98     if test -f $with_add_source_root/hotspot/makefiles/Makefile || \
  99        test -f $with_add_source_root/hotspot/make/Makefile; then
 100         AC_MSG_ERROR([Your add source root seems to contain a full hotspot repo! An add source root should only contain additional sources.])
 101     fi
 102     if test -f $with_add_source_root/jdk/makefiles/Makefile || \
 103        test -f $with_add_source_root/jdk/make/Makefile; then
 104         AC_MSG_ERROR([Your add source root seems to contain a full JDK repo! An add source root should only contain additional sources.])
 105     fi
 106 fi
 107 AC_SUBST(ADD_SRC_ROOT)
 108 
 109 if test "x$with_override_source_root" != x; then
 110     if ! test -d $with_override_source_root; then
 111        AC_MSG_ERROR([Trying to use a non-existant override-source-root $with_override_source_root])
 112     fi
 113     CURDIR="$PWD"
 114     cd "$with_override_source_root"
 115     OVERRIDE_SRC_ROOT="`pwd`"
 116     cd "$CURDIR"
 117     if test -f $with_override_source_root/langtools/makefiles/Makefile || \
 118        test -f $with_override_source_root/langtools/make/Makefile; then
 119         AC_MSG_ERROR([Your override source root seems to contain a full langtools repo! An override source root should only contain sources that override.])
 120     fi
 121     if test -f $with_override_source_root/corba/makefiles/Makefile || \
 122        test -f $with_override_source_root/corba/make/Makefile; then
 123         AC_MSG_ERROR([Your override source root seems to contain a full corba repo! An override source root should only contain sources that override.])
 124     fi
 125     if test -f $with_override_source_root/jaxp/makefiles/Makefile || \
 126        test -f $with_override_source_root/jaxp/make/Makefile; then
 127         AC_MSG_ERROR([Your override source root seems to contain a full jaxp repo! An override source root should only contain sources that override.])
 128     fi
 129     if test -f $with_override_source_root/jaxws/makefiles/Makefile || \
 130        test -f $with_override_source_root/jaxws/make/Makefile; then
 131         AC_MSG_ERROR([Your override source root seems to contain a full jaxws repo! An override source root should only contain sources that override.])
 132     fi
 133     if test -f $with_override_source_root/hotspot/makefiles/Makefile || \
 134        test -f $with_override_source_root/hotspot/make/Makefile; then
 135         AC_MSG_ERROR([Your override source root seems to contain a full hotspot repo! An override source root should only contain sources that override.])
 136     fi
 137     if test -f $with_override_source_root/jdk/makefiles/Makefile || \
 138        test -f $with_override_source_root/jdk/make/Makefile; then
 139         AC_MSG_ERROR([Your override source root seems to contain a full JDK repo! An override source root should only contain sources that override.])
 140     fi
 141 fi
 142 AC_SUBST(OVERRIDE_SRC_ROOT)
 143 
 144 ###############################################################################
 145 #
 146 # Override a repo completely, this is used for example when you have 3 small
 147 # development sandboxes of the langtools sources and want to avoid having 3 full
 148 # OpenJDK sources checked out on disk.
 149 #
 150 # Assuming that the 3 langtools sandboxes are located here:
 151 # /home/fredrik/sandbox1/langtools
 152 # /home/fredrik/sandbox2/langtools
 153 # /home/fredrik/sandbox3/langtools
 154 #
 155 # From the source root you create build subdirs manually:
 156 #     mkdir -p build1 build2 build3 
 157 # in each build directory run:
 158 #     (cd build1 && ../configure --with-override-langtools=/home/fredrik/sandbox1 && make)
 159 #     (cd build2 && ../configure --with-override-langtools=/home/fredrik/sandbox2 && make)
 160 #     (cd build3 && ../configure --with-override-langtools=/home/fredrik/sandbox3 && make)
 161 #
 162 
 163 AC_ARG_WITH(override-langtools, [AS_HELP_STRING([--with-override-langtools],
 164     [use this langtools dir for the build])])
 165 
 166 AC_ARG_WITH(override-corba, [AS_HELP_STRING([--with-override-corba],
 167     [use this corba dir for the build])])
 168 
 169 AC_ARG_WITH(override-jaxp, [AS_HELP_STRING([--with-override-jaxp],
 170         [use this jaxp dir for the build])])
 171 
 172 AC_ARG_WITH(override-jaxws, [AS_HELP_STRING([--with-override-jaxws],
 173         [use this jaxws dir for the build])])
 174 
 175 AC_ARG_WITH(override-hotspot, [AS_HELP_STRING([--with-override-hotspot],
 176         [use this hotspot dir for the build])])
 177 
 178 AC_ARG_WITH(override-jdk, [AS_HELP_STRING([--with-override-jdk],
 179         [use this jdk dir for the build])])
 180 
 181 if test "x$with_override_langtools" != x; then
 182     CURDIR="$PWD"
 183     cd "$with_override_langtools"
 184     LANGTOOLS_TOPDIR="`pwd`"
 185     cd "$CURDIR"
 186     if ! test -f $LANGTOOLS_TOPDIR/makefiles/Makefile; then
 187         AC_MSG_ERROR([You have to override langtools with a full langtools repo!])
 188     fi
 189     AC_MSG_CHECKING([if langtools should be overridden])
 190     AC_MSG_RESULT([yes with $LANGTOOLS_TOPDIR])
 191 fi    
 192 if test "x$with_override_corba" != x; then
 193     CURDIR="$PWD"
 194     cd "$with_override_corba"
 195     CORBA_TOPDIR="`pwd`"
 196     cd "$CURDIR"
 197     if ! test -f $CORBA_TOPDIR/makefiles/Makefile; then
 198         AC_MSG_ERROR([You have to override corba with a full corba repo!])
 199     fi
 200     AC_MSG_CHECKING([if corba should be overridden])
 201     AC_MSG_RESULT([yes with $CORBA_TOPDIR])
 202 fi    
 203 if test "x$with_override_jaxp" != x; then
 204     CURDIR="$PWD"
 205     cd "$with_override_jaxp"
 206     JAXP_TOPDIR="`pwd`"
 207     cd "$CURDIR"
 208     if ! test -f $JAXP_TOPDIR/makefiles/Makefile; then
 209         AC_MSG_ERROR([You have to override jaxp with a full jaxp repo!])
 210     fi
 211     AC_MSG_CHECKING([if jaxp should be overridden])
 212     AC_MSG_RESULT([yes with $JAXP_TOPDIR])
 213 fi    
 214 if test "x$with_override_jaxws" != x; then
 215     CURDIR="$PWD"
 216     cd "$with_override_jaxws"
 217     JAXWS_TOPDIR="`pwd`"
 218     cd "$CURDIR"
 219     if ! test -f $JAXWS_TOPDIR/makefiles/Makefile; then
 220         AC_MSG_ERROR([You have to override jaxws with a full jaxws repo!])
 221     fi
 222     AC_MSG_CHECKING([if jaxws should be overridden])
 223     AC_MSG_RESULT([yes with $JAXWS_TOPDIR])
 224 fi    
 225 if test "x$with_override_hotspot" != x; then
 226     CURDIR="$PWD"
 227     cd "$with_override_hotspot"
 228     HOTSPOT_TOPDIR="`pwd`"
 229     cd "$CURDIR"
 230     if ! test -f $HOTSPOT_TOPDIR/make/Makefile && \
 231        ! test -f $HOTSPOT_TOPDIR/makefiles/Makefile; then
 232         AC_MSG_ERROR([You have to override hotspot with a full hotspot repo!])
 233     fi
 234     AC_MSG_CHECKING([if hotspot should be overridden])
 235     AC_MSG_RESULT([yes with $HOTSPOT_TOPDIR])
 236 fi    
 237 if test "x$with_override_jdk" != x; then
 238     CURDIR="$PWD"
 239     cd "$with_override_jdk"
 240     JDK_TOPDIR="`pwd`"
 241     cd "$CURDIR"
 242     if ! test -f $JDK_TOPDIR/makefiles/Makefile; then
 243         AC_MSG_ERROR([You have to override JDK with a full JDK repo!])
 244     fi
 245     AC_MSG_CHECKING([if JDK should be overridden])
 246     AC_MSG_RESULT([yes with $JDK_TOPDIR])
 247 fi    
 248 
 249 ])
 250 
 251 AC_DEFUN_ONCE([SRCDIRS_SETUP_OUTPUT_DIRS],
 252 [
 253 LANGTOOLS_OUTPUTDIR="$OUTPUT_ROOT/langtools"
 254 CORBA_OUTPUTDIR="$OUTPUT_ROOT/corba"
 255 JAXP_OUTPUTDIR="$OUTPUT_ROOT/jaxp"
 256 JAXWS_OUTPUTDIR="$OUTPUT_ROOT/jaxws"
 257 HOTSPOT_OUTPUTDIR="$OUTPUT_ROOT/hotspot"
 258 JDK_OUTPUTDIR="$OUTPUT_ROOT/jdk"
 259 IMAGES_OUTPUTDIR="$OUTPUT_ROOT/images"
 260 
 261 AC_SUBST(LANGTOOLS_OUTPUTDIR)
 262 AC_SUBST(CORBA_OUTPUTDIR)
 263 AC_SUBST(JAXP_OUTPUTDIR)
 264 AC_SUBST(JAXWS_OUTPUTDIR)
 265 AC_SUBST(HOTSPOT_OUTPUTDIR)
 266 AC_SUBST(JDK_OUTPUTDIR)
 267 AC_SUBST(IMAGES_OUTPUTDIR)
 268 
 269 LANGTOOLS_DIST="$OUTPUT_ROOT/langtools/dist"
 270 CORBA_DIST="$OUTPUT_ROOT/corba/dist"
 271 JAXP_DIST="$OUTPUT_ROOT/jaxp/dist"
 272 JAXWS_DIST="$OUTPUT_ROOT/jaxws/dist"
 273 HOTSPOT_DIST="$OUTPUT_ROOT/hotspot/dist"
 274 
 275 AC_SUBST(LANGTOOLS_DIST)
 276 AC_SUBST(CORBA_DIST)
 277 AC_SUBST(JAXP_DIST)
 278 AC_SUBST(JAXWS_DIST)
 279 AC_SUBST(HOTSPOT_DIST)
 280 ])