| # |
| # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. |
| # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| # |
| # This code is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License version 2 only, as |
| # published by the Free Software Foundation. Oracle designates this |
| # particular file as subject to the "Classpath" exception as provided |
| # by Oracle in the LICENSE file that accompanied this code. |
| # |
| # This code is distributed in the hope that it will be useful, but WITHOUT |
| # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| # version 2 for more details (a copy is included in the LICENSE file that |
| # accompanied this code). |
| # |
| # You should have received a copy of the GNU General Public License version |
| # 2 along with this work; if not, write to the Free Software Foundation, |
| # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| # |
| # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| # or visit www.oracle.com if you need additional information or have any |
| # questions. |
| # |
| |
| defalt: all |
| |
| include $(SPEC) |
| include MakeBase.gmk |
| include NativeCompilation.gmk |
| |
| # Setup the java compilers for the JDK build. |
| include Setup.gmk |
| |
| # Copy files (can now depend on $(COPY_FILES)) |
| include CopyFiles.gmk |
| |
| # Include the javah generated headers. |
| CFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers |
| CXXFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers |
| |
| # Put the libraries here. Different locations for different host apis. |
| ifeq ($(HOST_OS_API),posix) |
| ifneq ($(HOST_OS),macosx) |
| INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib/$(LIBARCH) |
| LIBARCHDIR=$(LIBARCH)/ |
| else |
| INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib |
| LIBARCHDIR=/ |
| endif |
| else |
| INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/bin |
| endif |
| |
| $(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/%$(SHARED_LIBRARY_SUFFIX) |
| echo Copying $(@F) |
| $(CP) $< $@ |
| |
| BUILD_LIBRARIES= |
| |
| # TODO: Temporary until awt is converted: |
| # OBJDIRNAME is the name of the directory where the object code is to |
| # be placed. It's name depends on whether the data model architecture |
| # is 32-bit or not. |
| ifneq ($(ARCH_DATA_MODEL), 32) |
| OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX) |
| else |
| OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX) |
| endif |
| |
| ########################################################################################## |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBZIP,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/java/util/zip,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \ |
| -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 \ |
| -I$(JDK_TOPDIR)/src/share/native/java/io \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/io,\ |
| CFLAGS_posix:=-DUSE_MMAP,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(EXPORT_ZIP_FUNCS) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libzip/mapfile-vers),\ |
| LDFLAGS_winapi:=-export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ |
| -export:ZIP_ReadEntry -export:ZIP_GetNextEntry,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libzip,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| LIBUNPACK_LIB_FILE := $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX) |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\ |
| EXCLUDE_FILES:=main.cpp,\ |
| LANG:=C++,\ |
| CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \ |
| -DNO_ZLIB -DUNPACK_JNI -DFULL,\ |
| CFLAGS_release:=-DPRODUCT,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB)\ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libunpack/mapfile-vers) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_winapi:=-map:$(JDK_OUTPUTDIR)/newobjs/unpack.map /debug,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| LDFLAGS_SUFFIX_posix:=$(LIBCXX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libunpack,\ |
| LIB:=$(LIBUNPACK_LIB_FILE),\ |
| VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\ |
| RC_FLAGS:=$(RC_FLAGS)\ |
| /D "JDK_FNAME=unpack.dll" \ |
| /D "JDK_INTERNAL_NAME=unpack" \ |
| /D "JDK_FTYPE=0x2L")) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX) |
| |
| ifeq ($(HOST_OS_API),winapi) |
| $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(LIBUNPACK_LIB_FILE) |
| echo Copying $(@F) |
| $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.map,$<) $@ |
| |
| $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(LIBUNPACK_LIB_FILE) |
| echo Copying $(@F) |
| $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.pdb,$<) $@ |
| endif |
| |
| ########################################################################################## |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/common,\ |
| EXCLUDE_FILES:=check_version.c jdk_util.c jio.c jni_util.c verify_stub.c,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_HI} $(SHARED_LIBRARY_FLAGS), \ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libverify/mapfile-vers),\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libverify,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_NONE}\ |
| -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\ |
| CFLAGS_winapi_debug:=-DLOGGING,\ |
| ARFLAGS:=$(ARFLAGS),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libfdlibm,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| LIBATTACH_EXCLUDE_FILES:= |
| ifneq ($(PLATFORM),solaris) |
| LIBATTACH_EXCLUDE_FILES+=SolarisVirtualMachine.c |
| endif |
| ifneq ($(PLATFORM),linux) |
| LIBATTACH_EXCLUDE_FILES+=LinuxVirtualMachine.c |
| endif |
| ifneq ($(PLATFORM),macosx) |
| LIBATTACH_EXCLUDE_FILES+=BsdVirtualMachine.c |
| endif |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBATTACH,\ |
| SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tools/attach,\ |
| EXCLUDE_FILES:=$(LIBATTACH_EXCLUDE_FILES),\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libattach/mapfile-$(PLATFORM)) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_solaris:=-ldoor,\ |
| LDFLAGS_winapi:=psapi.lib advapi32.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libattach,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET,\ |
| SRC:=$(JDK_TOPDIR)/src/share/transport/socket \ |
| $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \ |
| -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \ |
| -I$(JDK_TOPDIR)/src/share/transport/socket \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket \ |
| -I$(JDK_TOPDIR)/src/share/back/export \ |
| -I$(JDK_TOPDIR)/src/share/back,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libdt_socket/mapfile-vers),\ |
| LDFLAGS_SUFFIX_linux:=-lpthread,\ |
| LDFLAGS_SUFFIX_solaris:=-lnsl -lsocket,\ |
| LDFLAGS_SUFFIX_winapi:=-export:jdwpTransport_OnLoad ws2_32.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_socket,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| ifeq ($(HOST_OS_API),winapi) |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM,\ |
| SRC:= $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \ |
| $(JDK_TOPDIR)/src/share/transport/shmem \ |
| $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\ |
| -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \ |
| -I$(JDK_TOPDIR)/src/share/transport/shmem \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem \ |
| -I$(JDK_TOPDIR)/src/share/back/export, \ |
| LDFLAGS:=$(LDFLAGS_JDKLIB),\ |
| LDFLAGS_winapi:=-export:jdwpTransport_OnLoad,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_shmem,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX) |
| |
| endif # PLATFORM |
| |
| ########################################################################################## |
| # JDWP_LOGGING causes log messages to be compiled into the library. These reference the |
| # __FILE__ macro which here expands to the absolute path of the file while the old build |
| # system used a relative path. This causes the binaries to differ in size. |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJDWP,\ |
| SRC:=$(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) -DJDWP_LOGGING $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\ |
| -I$(JDK_TOPDIR)/src/share/transport/export \ |
| -I$(JDK_TOPDIR)/src/share/back/export \ |
| -I$(JDK_TOPDIR)/src/share/npt \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt \ |
| -I$(JDK_TOPDIR)/src/share/back \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back \ |
| -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers,\ |
| LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjdwp/mapfile-vers),\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| LDFLAGS_SUFFIX_linux:=-ldl,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjdwp,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| ifneq ($(PLATFORM),solaris) |
| LIBJAAS_EXCLUDE_FILES:=Solaris.c |
| endif |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJAAS,\ |
| SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/com/sun/security/auth/module,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\ |
| LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_winapi:=netapi32.lib user32.lib mpr.lib advapi32.lib,\ |
| LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjaas/mapfile-vers),\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| EXCLUDE_FILES:=$(LIBJAAS_EXCLUDE_FILES),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjaas,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX) |
| |
| # Oddly enough, it is called jaas_nt.dll under winapi and libjaas_unix.so under posix. |
| ifeq ($(PLATFORM),windows) |
| $(INSTALL_LIBRARIES_HERE)/jaas_nt.dll : $(JDK_OUTPUTDIR)/newobjs/jaas.dll |
| echo Copying $(@F) |
| $(CP) $< $@ |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/jaas_nt.dll |
| else |
| $(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX) |
| echo Copying $(@F) |
| $(CP) $< $@ |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX) |
| endif |
| |
| ########################################################################################## |
| |
| ifeq ($(HOST_OS_API),posix) |
| # TODO make this work on macosx |
| ifneq ($(HOST_OS),macosx) |
| # |
| # NOTE: Change -L flag to point to new lib location after converting libnio. Also |
| # add dependency on nio from sctp. |
| $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\ |
| SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch/sctp,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\ |
| -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \ |
| -I$(JDK_TOPDIR)/src/share/native/java/net \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/net,\ |
| CFLAGS_linux:=-Werror,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) -L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)\ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libsctp/mapfile-vers) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_SUFFIX_linux:=-lpthread,\ |
| LDFLAGS_SUFFIX_posix:=-ldl -lnio -lnet,\ |
| LDFLAGS_SUFFIX_solaris:=-lsocket,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| INCLUDE_FILES:=SctpNet.c SctpChannelImpl.c SctpServerChannelImpl.c,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libsctp,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX) |
| endif |
| endif |
| |
| ########################################################################################## |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJSDT,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace\ |
| $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tracing/dtrace,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\ |
| -I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjsdt/mapfile-vers) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) -ldl,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjsdt,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| ifdef OPENJDK |
| # TODO: Update awt lib path when awt is converted |
| $(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms \ |
| $(JDK_TOPDIR)/src/share/native/sun/java2d/,\ |
| INCLUDE_FILES:=cmscam02.c cmscgats.c cmscnvrt.c cmserr.c \ |
| cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c \ |
| cmsio1.c cmslut.c cmsmd5.c cmsmtrx.c \ |
| cmsnamed.c cmsopt.c cmspack.c cmspcs.c \ |
| cmsplugin.c cmsps2.c cmssamp.c cmssm.c \ |
| cmstypes.c cmsvirt.c cmswtpnt.c cmsxform.c \ |
| LCMS.c,\ |
| LANG:=C,\ |
| CFLAGS:=$(filter-out -xc99=%none,$(CFLAGS_JDKLIB)) $(C_O_FLAG_NORM) \ |
| $(SHARED_LIBRARY_FLAGS) \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug,\ |
| CFLAGS_solaris:=-xc99=no_lib,\ |
| CFLAGS_winapi:=-DCMS_IS_WINDOWS_,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/liblcms/mapfile-vers),\ |
| LDFLAGS_posix:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)xawt,\ |
| LDFLAGS_solaris:=/usr/lib$(ISA_DIR)/libm.so.2,\ |
| LDFLAGS_winapi:=$(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| LDFLAGS_SUFFIX_posix:=-lawt,\ |
| LDFLAGS_SUFFIX_linux:=-lm,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/liblcms,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX) |
| endif |
| |
| ########################################################################################## |
| |
| ifdef OPENJDK |
| BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers |
| else |
| BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers-closed |
| BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg |
| BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) |
| endif |
| |
| ifeq ($(PLATFORM), solaris) |
| ifneq ($(ARCH), amd64) |
| BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(ARCH) |
| $(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers : $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) \ |
| $(BUILD_LIBJPEG_REORDER) |
| $(MKDIR) -p $(@D) |
| $(CAT) $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) > $@ |
| $(SED) -e 's=OUTPUTDIR=$(JDK_OUTPUTDIR)=' $(BUILD_LIBJPEG_REORDER) >> $@ |
| LIBJPEG_MAPFILE:=$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers |
| |
| $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX): \ |
| $(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers |
| endif |
| endif |
| |
| # Suppress gcc warnings like "variable might be clobbered by 'longjmp' |
| # or 'vfork'": this warning indicates that some variable is placed to |
| # a register by optimized compiler and it's value might be lost on longjmp(). |
| # Recommended way to avoid such warning is to declare the variable as |
| # volatile to prevent the optimization. However, this approach does not |
| # work because we have to declare all variables as volatile in result. |
| #ifndef CROSS_COMPILE_ARCH |
| # CC_43_OR_NEWER := \ |
| # $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ |
| # \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) |
| # ifeq ($(CC_43_OR_NEWER),1) |
| # BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered |
| # endif |
| #endif |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\ |
| SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \ |
| $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_HI) $(SHARED_LIBRARY_FLAGS) \ |
| $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\ |
| CFLAGS_solaris:=-xF,\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBJPEG_MAPFILE))\ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_linux:=-ldl,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjpeg,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| ifndef OPENJDK |
| FONT_HEADERS := -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k |
| BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers |
| LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c |
| else |
| FONT_HEADERS := $(FREETYPE2_CFLAGS) |
| BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk |
| BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE2_LIBS) |
| endif |
| |
| ifeq ($(PLATFORM),windows) |
| LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \ |
| X11TextRenderer.c |
| else |
| LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \ |
| lcdglyph.c |
| endif |
| |
| BUILD_LIBFONTMANAGER_CFLAGS_COMMON := $(SHARED_LIBRARY_FLAGS) \ |
| -DLE_STANDALONE -DHEADLESS \ |
| $(FONT_HEADERS) \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/font \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\ |
| SRC:=$(JDK_TOPDIR)/src/share/native/sun/font\ |
| $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font,\ |
| EXCLUDE_FILES:=$(LIBFONTMANAGER_EXCLUDE_FILES) \ |
| AccelGlyphCache.c,\ |
| LANG:=C++,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\ |
| CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\ |
| CFLAGS_posix:=$(C_O_FLAG_HI),\ |
| CXXFLAGS_posix:=$(CXX_O_FLAG_HI),\ |
| CFLAGS_windows=$(C_O_FLAG_NORM)\ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \ |
| -DCC_NOEX, \ |
| LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBFONTMANAGER_MAPFILE)) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_solaris:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)headless,\ |
| LDFLAGS_windows:=advapi32.lib user32.lib gdi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) \ |
| $(BUILD_LIBFONTMANAGER_FONTLIB),\ |
| LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX),\ |
| LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX),\ |
| LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libfontmanager,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX))) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) |
| |
| ########################################################################################## |
| |
| ifndef OPENJDK |
| |
| # ifeq ($(PLATFORM), linux) |
| # ifeq ("$(CC_VER_MAJOR)", "3") |
| # OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic |
| # endif |
| # endif |
| # |
| # The resulting size of the t2k lib file is (at least on linux) dependant on the order of |
| # the input .o files. Because of this the new build will differ in size to the old build. |
| BUILD_LIBT2K_CFLAGS_COMMON:=-I$(JDK_TOPDIR)/src/share/native/sun/font \ |
| -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ |
| -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \ |
| -I$(JDK_TOPDIR)/src/share/share/native/sun/font \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBT2K,\ |
| SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/font \ |
| $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ |
| $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints,\ |
| EXCLUDE_FILES:=orion.c,\ |
| LANG:=C++,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(C_O_FLAG_HI),\ |
| CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(CXX_O_FLAG_HI),\ |
| CFLAGS_windows=-DCC_NOEX, \ |
| CXXFLAGS_windows=-DCC_NOEX, \ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libt2k/mapfile-vers) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_windows:=user32.lib $(JDK_OUTPUTDIR)/newobjs/fontmanager.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| LDFLAGS_SUFFIX_linux:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager,\ |
| LDFLAGS_SUFFIX_solaris:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager -lawt \ |
| -lawt_xawt,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libt2k,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX))) |
| |
| # t2k is linked against fontmanager |
| $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX): \ |
| $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX) |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX) |
| endif |
| |
| ########################################################################################## |
| |
| ifeq ($(PLATFORM), windows) |
| ifeq ($(ARCH_DATA_MODEL), 32) |
| KERNEL32_LIB := kernel32.lib |
| endif |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\ |
| SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows,\ |
| INCLUDE_FILES:=jawt.cpp,\ |
| LANG:=C++,\ |
| CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) \ |
| -EHsc -DUNICODE -D_UNICODE \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ |
| -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ |
| -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d/windows, \ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) \ |
| advapi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX))) |
| |
| $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): \ |
| $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) |
| echo Copying $(@F) |
| $(CP) $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@ |
| |
| BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) |
| |
| else # PLATFORM not windows |
| |
| ifndef BUILD_HEADLESS_ONLY |
| MAWT_AWT_LIB =-lawt_xawt |
| else |
| MAWT_AWT_LIB =-lawt_headless |
| HEADLESS_CFLAG += -DHEADLESS |
| endif |
| |
| $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\ |
| SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt,\ |
| INCLUDE_FILES:=jawt.c,\ |
| LANG:=C,\ |
| CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM), \ |
| CFLAGS_linux:=$(HEADLESS_CFLAG),\ |
| LDFLAGS:=$(LDFLAGS_JDKLIB) \ |
| $(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjawt/mapfile-vers) \ |
| $(call SET_SHARED_LIBRARY_ORIGIN),\ |
| LDFLAGS_solaris:=-L/usr/openwin/sfw/lib$(ISA_DIR) -L/usr/openwin/lib$(ISA_DIR),\ |
| LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(MAWT_AWT_LIB) -lawt,\ |
| LDFLAGS_SUFFIX_solaris:=-lXrender,\ |
| BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\ |
| LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX))) |
| endif # PLATFORM |
| |
| BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX) |
| |
| |
| ########################################################################################## |
| |
| all: $(COPY_FILES) $(BUILD_LIBRARIES) |
| |
| .PHONY: all |