make/lib/Lib-jdk.jpackager.gmk
branchJDK-8200758-branch
changeset 57017 1b08af362a30
parent 56957 2f01969ed7cb
child 57027 124983f48645
equal deleted inserted replaced
57016:f63f13da91c0 57017:1b08af362a30
       
     1 #
       
     2 # Copyright (c) 2018, 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 include LibCommon.gmk
       
    27 
       
    28 ################################################################################
       
    29 
       
    30 LIBPACKAGER_SRC_ROOT := $(TOPDIR)/src/jdk.jpackager
       
    31 LIBPACKAGER_SHARED_SRC := $(LIBPACKAGER_SRC_ROOT)/share/native/library/common
       
    32 LIBPACKAGER_PLATFORM_SRC := $(LIBPACKAGER_SRC_ROOT)/$(OPENJDK_TARGET_OS)/native/library
       
    33 
       
    34 BUILD_LIBPACKAGER_SRC :=
       
    35 
       
    36 #FIXME: make separate directories for each platform
       
    37 ifeq ($(OPENJDK_TARGET_OS), macosx)
       
    38   BUILD_LIBPACKAGER_SRC := $(LIBPACKAGER_PLATFORM_SRC)
       
    39 endif
       
    40 BUILD_LIBPACKAGER_SRC += $(LIBPACKAGER_SHARED_SRC)
       
    41 
       
    42 
       
    43 # Output shared library and debug symbols files in the same directory as .obj files.
       
    44 $(eval $(call SetupJdkLibrary, BUILD_LIBPACKAGER, \
       
    45     NAME := jpackager, \
       
    46     SRC := $(BUILD_LIBPACKAGER_SRC), \
       
    47     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjpackager, \
       
    48     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
       
    49     OPTIMIZATION := LOW, \
       
    50     CFLAGS := $(CXXFLAGS_JDKLIB) -I$(LIBPACKAGER_SHARED_SRC), \
       
    51     CFLAGS_windows :=  -nologo -EHsc -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
       
    52     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
       
    53         $(call SET_SHARED_LIBRARY_ORIGIN), \
       
    54     LIBS := $(LIBCXX), \
       
    55     LIBS_windows := user32.lib shell32.lib advapi32.lib ole32.lib, \
       
    56     LIBS_linux := -ldl -lpthread, \
       
    57     CFLAGS_linux :=  -Wextra -Wformat -Wformat-security -c -fPIC, \
       
    58     LDFLAGS_macosx := -dynamiclib -stdlib=libc++, \
       
    59     LIBS_macosx := -ldl -framework Cocoa, \
       
    60     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
       
    61 ))
       
    62 
       
    63 $(BUILD_LIBPACKAGER): $(call FindLib, java.base, java)
       
    64 
       
    65 TARGETS += $(BUILD_LIBPACKAGER)
       
    66 
       
    67 ################################################################################
       
    68 
       
    69 PACKAGERAPPLAUNCHEREXE_SRC := $(TOPDIR)/src/jdk.jpackager/$(OPENJDK_TARGET_OS)/native/launcher
       
    70 
       
    71 
       
    72 # Output executable and debug symbols files in the same directory as .obj files.
       
    73 $(eval $(call SetupJdkExecutable, BUILD_PACKAGERAPPLAUNCHEREXE, \
       
    74     NAME := papplauncher, \
       
    75     SRC := $(PACKAGERAPPLAUNCHEREXE_SRC), \
       
    76     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/papplauncher, \
       
    77     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
       
    78     OPTIMIZATION := LOW, \
       
    79     CFLAGS := $(CXXFLAGS_JDKEXE) -DFULL, \
       
    80     CFLAGS_release := -DPRODUCT, \
       
    81     CFLAGS_linux := -fPIC, \
       
    82     CFLAGS_solaris := -KPIC, \
       
    83     CFLAGS_macosx := -fPIC, \
       
    84     CFLAGS_windows :=  -nologo -EHsc -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
       
    85     DISABLED_WARNINGS_gcc := unused-result implicit-fallthrough, \
       
    86     LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
       
    87         $(call SET_SHARED_LIBRARY_ORIGIN), \
       
    88     LDFLAGS_macosx := -stdlib=libstdc++, \
       
    89     LIBS_macosx := -framework Cocoa, \
       
    90     LIBS := $(LIBCXX), \
       
    91     LIBS_solaris :=  -lc, \
       
    92     LIBS_linux := -ldl, \
       
    93     LIBS_windows :=  user32.lib shell32.lib advapi32.lib, \
       
    94     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
       
    95 ))
       
    96 
       
    97 TARGETS += $(BUILD_PACKAGERAPPLAUNCHEREXE)
       
    98 
       
    99 # Build console version of launcher
       
   100 ifeq ($(OPENJDK_TARGET_OS), windows)
       
   101 
       
   102 PACKAGERAPPLAUNCHERCEXE_SRC := $(TOPDIR)/src/jdk.jpackager/$(OPENJDK_TARGET_OS)/native/launcher
       
   103 
       
   104 # Output executable and debug symbols files in the same directory as .obj files.
       
   105 $(eval $(call SetupJdkExecutable, BUILD_PACKAGERAPPLAUNCHERCEXE, \
       
   106     NAME := papplauncherc, \
       
   107     SRC := $(PACKAGERAPPLAUNCHERCEXE_SRC), \
       
   108     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/papplauncherc, \
       
   109     TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
       
   110     OPTIMIZATION := LOW, \
       
   111     CFLAGS := $(CXXFLAGS_JDKEXE) -DFULL, \
       
   112     CFLAGS_release := -DPRODUCT, \
       
   113     CFLAGS_windows :=  -nologo -EHsc -DLAUNCHERC -D_WINDOWS -DUNICODE -D_UNICODE -DWIN32 -D_LITTLE_ENDIAN -DWIN32_LEAN_AND_MEAN, \
       
   114     LDFLAGS := $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
       
   115         $(call SET_SHARED_LIBRARY_ORIGIN), \
       
   116     LIBS := $(LIBCXX), \
       
   117     LIBS_windows :=  user32.lib shell32.lib advapi32.lib, \
       
   118     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
       
   119 ))
       
   120 
       
   121 TARGETS += $(BUILD_PACKAGERAPPLAUNCHERCEXE)
       
   122 endif
       
   123 
       
   124 ################################################################################
       
   125 
       
   126 
       
   127 # Copy debug symbols to module lib output directory so that JDK build system put them in jdk/bin directory.
       
   128 # Copy binaries to module classes output directory so that JDK build system put them in module resources.
       
   129 
       
   130 ifeq ($(OPENJDK_TARGET_OS), macosx)
       
   131   RESOURCE_SUBDIR := mac
       
   132 else
       
   133   RESOURCE_SUBDIR := $(OPENJDK_TARGET_OS)
       
   134 endif
       
   135 
       
   136 SetupCopyTargetFiles = \
       
   137     $(eval $(call SetupCopyFiles, COPY_DEBUG_SYMBOLS_$1, \
       
   138         SRC := $(dir $(firstword $($1))), \
       
   139         DEST := $(INSTALL_LIBRARIES_HERE), \
       
   140         FILES := $(notdir $(filter %.diz %.pdb %.map, $($1))) \
       
   141     )) \
       
   142     $(eval $(call SetupCopyFiles, COPY_BINARIES_$1, \
       
   143         SRC := $(dir $(firstword $($1))), \
       
   144         DEST := $(JDK_OUTPUTDIR)/modules/$(MODULE)/jdk/jpackager/internal/resources/$(RESOURCE_SUBDIR), \
       
   145         FILES := $(notdir $(firstword $($1))) \
       
   146     )) \
       
   147     $(eval TARGETS += $(COPY_DEBUG_SYMBOLS_$1) $(COPY_BINARIES_$1))
       
   148 
       
   149 $(call SetupCopyTargetFiles,BUILD_LIBPACKAGER)
       
   150 $(call SetupCopyTargetFiles,BUILD_PACKAGERAPPLAUNCHEREXE)
       
   151 
       
   152 ifeq ($(OPENJDK_TARGET_OS), windows)
       
   153 $(call SetupCopyTargetFiles,BUILD_PACKAGERAPPLAUNCHERCEXE)
       
   154 endif