4680N/A# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved. 0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A# This code is free software; you can redistribute it and/or modify it 0N/A# under the terms of the GNU General Public License version 2 only, as 2362N/A# published by the Free Software Foundation. Oracle designates this 0N/A# particular file as subject to the "Classpath" exception as provided 2362N/A# by Oracle in the LICENSE file that accompanied this code. 0N/A# This code is distributed in the hope that it will be useful, but WITHOUT 0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A# version 2 for more details (a copy is included in the LICENSE file that 0N/A# accompanied this code). 0N/A# You should have received a copy of the GNU General Public License version 0N/A# 2 along with this work; if not, write to the Free Software Foundation, 0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A# Generic makefile for building executables. 0N/A# WARNING: This file is shared with other workspaces. 0N/A# So when it includes other files, it must use JDK_TOPDIR. 0N/A# If building programs, use a normal compile approach 4680N/A# set the platform specific directory for macosx, also this platform shares 4680N/A# substantial family ties with its siblings (solaris and linux), thus we add 4680N/A# solaris src path to its compilation dependencies. 0N/A# Make sure the default rule is all 4058N/A# Work-around for missing processor specific mapfiles 4058N/A # reuse the mapfiles in the launcher's directory, the same should 4058N/A # be applicable to the tool launchers as well. 0N/A# Create a dependency on libjli (Java Launcher Infrastructure) 0N/A# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to 0N/A# do this reliably on Linux takes a different syntax than Solaris. 0N/A# On Windows, this is done by using the same directory as the executable 0N/A# itself, as with all the Windows libraries. 4680N/A else # ! ARCH_DATA_MODEL 64-bit 0N/A# Launcher specific files. 4680N/A # We need more Stack for Windows 64bit 3356N/A $(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
4680N/A # We used a hand-crafted manifest file for all executables. 4680N/A # It is tweaked to embed the build number and executable name. 4680N/A # Use ";#2" for .dll and ";#1" for .exe in the MT command below: 4680N/A # Note that we have to link -lthread even when USE_PTHREADS is true. 4680N/A # This is becuase checkForCorrectLibthread() croaks otherwise. 4680N/A # Needed for linking the various launchers 4680N/A # Default Info.plist file for the command line tools. This gets overridden by 4680N/A # some of the jvmstat tools so that they have task_for_pid() privileges 4680N/A # This rule only applies on unix. It supports quantify and its ilk. 5036N/A# gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. 5036N/A# Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from 5036N/A# empty section headers until a fixed $(OBJCOPY) is available. 5036N/A# An empty section header has sh_addr == 0 and sh_size == 0. 5036N/A# This problem has only been seen on Solaris X64, but we call this tool 5036N/A# on all Solaris builds just in case. 5036N/A# $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. 5036N/A# Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. 4956N/A # implied else here is no stripping at all 4957N/A # save ZIP'ed debug info with rest of the program's build artifacts 4957N/A # save debug info with rest of the program's build artifacts 0N/A# Now include make dependencies (created during compilation, see Rules.gmk) 4680N/A # Workaround: gnumake sometimes says files is empty when it shouldn't 4680N/A # was: files := $(foreach file, $(wildcard */$(ARCH)/*.$(DEPEND_SUFFIX)), $(file)) 0N/A# Default dependencies