Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Nov 2012 19:51:07 -0500
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        Dave Hayes <dave@jetcafe.org>
Cc:        freebsd-java@freebsd.org
Subject:   Re: openjdk6 also requires nmake?
Message-ID:  <5099B07B.7040803@FreeBSD.org>
In-Reply-To: <5091E40D.2020605@jetcafe.org>
References:  <5091E40D.2020605@jetcafe.org>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2012-10-31 22:53:01 -0400, Dave Hayes wrote:
> # cd /usr/ports/java/openjdk6 # make install clean ... cd
> ./hotspot/make && \ gmake
> JDK_TOPDIR=/usr/ports/java/openjdk6/work/jdk
> JDK_MAKE_SHARED_DIR=/usr/ports/java/openjdk6/work/jdk/make/common/shared
> EXTERNALSANITYCONTROL=true TARGET_CLASS_VERSION=5 MILESTONE=fcs
> BUILD_NUMBER=b26 JDK_BUILD_NUMBER=b26 FULL_VERSION=1.6.0_32-b26
> PREVIOUS_JDK_VERSION=1.6.0 JDK_VERSION=1.6.0_32
> JDK_MKTG_VERSION=6u32 JDK_MAJOR_VERSION=1 JDK_MINOR_VERSION=6
> JDK_MICRO_VERSION=0 ARCH_DATA_MODEL=64
> COOKED_JDK_UPDATE_VERSION=320 COOKED_BUILD_NUMBER=26
> ANT_HOME="/usr/ports/java/openjdk6/work/apache-ant-1.8.4"
> ALT_OUTPUTDIR=/usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/outputdir
> ALT_EXPORT_PATH=/usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/import
> ALT_SLASH_JAVA=/NOT-SET ALT_BOOTDIR=/usr/local/bootstrap-openjdk
> ALT_LANGTOOLS_DIST=/usr/ports/java/openjdk6/work/build/bsd-amd64/langtools/dist
> all_product gmake[2]: Entering directory
> `/usr/ports/java/openjdk6/work/hotspot/make' Makefile:375: target
> `/Xusage.txt' given more than once in the same rule. cd
> /usr/ports/java/openjdk6/work/hotspot/make; \ gmake
> VM_TARGET=product generic_build2
> ALT_OUTPUTDIR=/usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/outputdir
>
> 
gmake[3]: Entering directory `/usr/ports/java/openjdk6/work/hotspot/make'
> Makefile:375: target `/Xusage.txt' given more than once in the same
> rule. mkdir -p
> /usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/outputdir cd
> /usr/ports/java/openjdk6/work/build/bsd-amd64/hotspot/outputdir; \ 
> MAKEFLAGS= MFLAGS= nmake /NOLOGO -f
> \\usr\\ports\\java\\openjdk6\\work\\hotspot\\make\\windows\\build.make
> \ Variant=compiler2 \ 
> WorkSpace=\\usr\\ports\\java\\openjdk6\\work\\hotspot \ 
> BootStrapDir=\\usr\\local\\bootstrap-openjdk \ BuildUser= \ 
> JDK_MKTG_VERSION=6u32 JDK_MAJOR_VER=1 JDK_MINOR_VER=6
> JDK_MICRO_VER=0 JDK_UPDATE_VER=320 JDK_BUILD_NUMBER=26
> BUILD_WIN_SA=1 JAVA_HOME=\\usr\\local\\bootstrap-openjdk
> OUTPUTDIR=\\usr\\ports\\java\\openjdk6\\work\\build\\bsd-amd64\\hotspot\\outputdir
> GAMMADIR=\\usr\\ports\\java\\openjdk6\\work\\hotspot MAKE_VERBOSE=y
> HOTSPOT_RELEASE_VERSION=20.0-b12 JRE_RELEASE_VERSION=1.6.0_32-b26
> HOTSPOT_BUILD_VERSION= product nmake: not found gmake[3]: ***
> [generic_build2] Error 127 gmake[3]: Leaving directory
> `/usr/ports/java/openjdk6/work/hotspot/make' gmake[2]: ***
> [product] Error 2 gmake[2]: Leaving directory
> `/usr/ports/java/openjdk6/work/hotspot/make' gmake[1]: ***
> [hotspot-build] Error 2 gmake[1]: Leaving directory
> `/usr/ports/java/openjdk6/work' gmake: *** [build_product_image]
> Error 2 *** Error code 1
> 
> Stop in /usr/ports/java/openjdk6. *** Error code 1
> 
> Nothing in my /etc/make.conf refers to java. What gives here?

It's failing in hotspot/make/Makefile:

- --------
# Build compiler2 (server) rule, different for platforms
generic_build2:
        $(MKDIR) -p $(OUTPUTDIR)
ifeq ($(OSNAME),windows)
        $(CD) $(OUTPUTDIR); \
            $(NMAKE) -f $(ABS_OS_MAKEFILE) \
                      Variant=compiler2 \
                      WorkSpace=$(ABS_GAMMADIR) \
                      BootStrapDir=$(ABS_BOOTDIR) \
                      BuildUser=$(USERNAME) \
                      $(MAKE_ARGS) $(VM_TARGET)
else
        $(CD) $(OUTPUTDIR); \
            $(MAKE) -f $(ABS_OS_MAKEFILE) \
                      $(MAKE_ARGS) $(VM_TARGET)
endif
- --------

In other words, it should never happen unless the OSNAME is set to
"windows".  In turn, OSNAME comes from hotspot/make/defs.make:

- --------
# Windows should have OS predefined
ifeq ($(OS),)
  OS   := $(shell uname -s)
  ifneq ($(findstring BSD,$(OS)),)
    OS=bsd
  endif
  ifeq ($(OS), Darwin)
    OS=bsd
  endif
  HOST := $(shell uname -n)
endif

# If not SunOS, not Linux and not BSD, assume Windows
ifneq ($(OS), Linux)
  ifneq ($(OS), SunOS)
    ifneq ($(OS), bsd)
      OSNAME=windows
    else
      OSNAME=bsd
    endif
  else
    OSNAME=solaris
  endif
else
  OSNAME=linux
endif
- --------

Again, it should never happen unless OS environment variable is
explicitly set somewhere (your shell?).

Please try:

	env OS=bsd make

i.e., explicitly set the environment variable.

For more extreme paranoia, you may try:

	env -i PATH="${PATH}" make

i.e., ignore all environment variables except for $PATH.

I hope it helps,

Jung-uk Kim
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iEYEARECAAYFAlCZsHsACgkQmlay1b9qnVM/pwCfbZScioenAxR6hIsYgx4Qp5Q+
DH8An1RyDVDvwbISG05pHUiplVdoTc21
=UJHy
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5099B07B.7040803>