#
# Copyright (c) 2024, 2025, 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.
#

include MakeFileStart.gmk

################################################################################

include CopyFiles.gmk
include DebugInfoUtils.gmk
include Modules.gmk
include modules/LauncherCommon.gmk
include Execute.gmk

################################################################################
#
# Create the static java launcher
#
################################################################################

STATIC_JDK_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/static-jdk
STATIC_LAUNCHER_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/static-native/launcher
HOTSPOT_STATIC_LIB_PATH := $(HOTSPOT_OUTPUTDIR)/*/libjvm/objs/static

ifneq ($(word 2, $(wildcard $(HOTSPOT_STATIC_LIB_PATH))), )
  $(error Cannot perform static linking when building more than one JVM library)
endif

# Find all modules with static libraries
STATIC_LIB_MODULES := $(patsubst $(SUPPORT_OUTPUTDIR)/modules_static-libs/%, \
    %, $(wildcard $(SUPPORT_OUTPUTDIR)/modules_static-libs/*))

# Filter out known broken libraries. This is a temporary measure until
# proper support for these libraries can be provided.
ifeq ($(call isTargetOs, linux), true)
  # libsplashscreen has a name conflict with libawt in the function
  # BitmapToYXBandedRectangles, so we exclude it for now.
  BROKEN_STATIC_LIBS += splashscreen
else ifeq ($(call isTargetOs, macosx), true)
  # libosxsecurity has a name conflict with libosxapp in the function
  # JavaStringToNSString, so we exclude it for now.
  BROKEN_STATIC_LIBS += osxsecurity
else ifeq ($(call isTargetOs, windows), true)
  # libsplashscreen has a name conflict with libawt in the function
  # BitmapToYXBandedRectangles, so we exclude it for now.
  BROKEN_STATIC_LIBS += splashscreen
  # libsspi_bridge has name conflicts with sunmscapi
  BROKEN_STATIC_LIBS += sspi_bridge
  # dt_shmem define jdwpTransport_OnLoad which conflict with dt_socket
  BROKEN_STATIC_LIBS += dt_shmem
else ifeq ($(call isTargetOs, aix), true)
  # libsplashscreen has a name conflict with libawt in the function
  # BitmapToYXBandedRectangles, so we exclude it for now.
  BROKEN_STATIC_LIBS += splashscreen
endif

$(foreach module, $(STATIC_LIB_MODULES), \
    $(eval LIBS_$(module) := $(filter-out $(BROKEN_STATIC_LIBS), $(shell cat \
    $(SUPPORT_OUTPUTDIR)/modules_static-libs/$(module)/module-included-libs.txt))) \
)

STATIC_LIB_FILES := $(foreach module, $(STATIC_LIB_MODULES), \
    $(foreach lib, $(LIBS_$(module)), \
    $(SUPPORT_OUTPUTDIR)/native/$(module)/lib$(lib)/static/$(LIBRARY_PREFIX)$(lib)$(STATIC_LIBRARY_SUFFIX)))

# Add Hotspot
STATIC_LIB_FILES += $(wildcard $(HOTSPOT_STATIC_LIB_PATH)/$(LIBRARY_PREFIX)jvm$(STATIC_LIBRARY_SUFFIX))

# Figure out what external libraries are required to link these static JDK
# libraries.
LIB_FLAGS_FILES := $(addsuffix .lib-flags.txt, $(STATIC_LIB_FILES))

# Gather the lib flags from all individual libraries. There are many duplicates,
# so sort and just keep unique instances. On macOS, a common pattern is
# "-framework FooFramework", so we must make sure we keep the two words together.
EXTERNAL_LIBS := $(strip $(shell $(CAT) $(LIB_FLAGS_FILES) | \
    $(SED) -e 's/-framework /-framework_/g' | $(TR) ' ' '\n' | $(SORT) -u | \
    $(SED) -e 's/-framework_/-framework /g'))

ifeq ($(call isTargetOs, macosx), true)
  STATIC_LIBS := $(addprefix -force_load$(SPACE), $(STATIC_LIB_FILES))
else ifeq ($(call isTargetOs, linux), true)
  STATIC_LIBS := -Wl,--export-dynamic -Wl,--whole-archive $(STATIC_LIB_FILES) -Wl,--no-whole-archive
else ifeq ($(call isTargetOs, windows), true)
  STATIC_LIBS := $(addprefix -wholearchive:, $(STATIC_LIB_FILES))
else ifeq ($(call isTargetOs, aix), true)
  # on AIX we have to generate export files for all static libs, because we have no whole-archive linker flag
  $(foreach lib, $(STATIC_LIB_FILES), \
    $(eval $(call SetupExecute, generate_export_list_$(notdir $(lib)), \
      INFO := Generating export list for $(notdir $(lib)), \
      DEPS :=  $(lib), \
      OUTPUT_FILE := $(lib).exp, \
      COMMAND := ( $(AR) $(ARFLAGS) -w $(lib) | $(GREP) -v '^\.' | $(AWK) '{print $$1}' | $(SORT) -u > $(lib).exp ), \
    )) \
    $(eval STATIC_LIB_EXPORT_FILES += $(lib).exp) \
  )
  STATIC_LIBS := -Wl,-bexpfull $(STATIC_LIB_FILES) $(addprefix -Wl$(COMMA)-bE:, $(STATIC_LIB_EXPORT_FILES))
  ifeq ($(DEBUG_LEVEL), slowdebug)
    STATIC_LIBS += -Wl,-bbigtoc
  endif
else
  $(error Unsupported platform)
endif

$(eval $(call SetupBuildLauncher, java, \
    ENABLE_ARG_FILES := true, \
    EXPAND_CLASSPATH_WILDCARDS := true, \
    EXTRA_RCFLAGS := $(JAVA_RCFLAGS), \
    VERSION_INFO_RESOURCE := $(JAVA_VERSION_INFO_RESOURCE), \
    OPTIMIZATION := HIGH, \
    STATIC_LAUNCHER := true, \
    LDFLAGS := $(LDFLAGS_STATIC_JDK), \
    LIBS := $(STATIC_LIBS) $(EXTERNAL_LIBS), \
    LINK_TYPE := C++, \
    OUTPUT_DIR := $(STATIC_LAUNCHER_OUTPUT_DIR), \
    OBJECT_DIR := $(STATIC_LAUNCHER_OUTPUT_DIR), \
))

$(java): $(STATIC_LIB_FILES)
ifeq ($(call isTargetOs, aix), true)
  $(java): $(STATIC_LIB_EXPORT_FILES)
endif

TARGETS += $(java)

JAVA_LAUNCHER := $(BUILD_LAUNCHER_java_TARGET)

static-launcher: $(java)

################################################################################
#
# Create the static-jdk image with the statically built java launcher
#
################################################################################

# Until we get proper support in jlink for generating an image with static
# builds, we need to create the image ourselves. We base it on a normal
# dynamically linked JDK image.

# All these files/dirs should be copied as-is
JDK_IMAGE_COPY_FILES := $(addprefix $(JDK_IMAGE_DIR)/, conf demo include jmods \
    legal man/man1/java.1 release README)

# We need to copy some files from lib, but not the dynamic libraries themselves
ALL_LIB_FILES := $(call FindFiles, $(JDK_IMAGE_DIR)/lib)

# Remove all dynamic libraries from the list
JDK_IMAGE_COPY_LIB_FILES := $(filter-out %$(SHARED_LIBRARY_SUFFIX), $(ALL_LIB_FILES))
# Remove all debug files from the list
ifeq ($(call isTargetOs, macosx), true)
  JDK_IMAGE_COPY_LIB_FILES := $(call not-containing, .dSYM, $(JDK_IMAGE_COPY_LIB_FILES))
else
  JDK_IMAGE_COPY_LIB_FILES := $(filter-out %.debuginfo %.pdb %.map, $(JDK_IMAGE_COPY_LIB_FILES))
endif

static-jdk-info:
	$(call LogWarn, Creating static-jdk image)

$(eval $(call SetupCopyFiles, copy-from-jdk-image, \
    SRC := $(JDK_IMAGE_DIR), \
    DEST := $(STATIC_JDK_IMAGE_DIR), \
    FILES := $(call FindFiles, $(JDK_IMAGE_COPY_FILES)) \
        $(JDK_IMAGE_COPY_LIB_FILES), \
))

TARGETS += $(copy-from-jdk-image)

$(copy-from-jdk-image): | static-jdk-info

$(eval $(call SetupCopyFiles, copy-static-launcher, \
    FILES := $(JAVA_LAUNCHER), \
    DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
))

TARGETS += $(copy-static-launcher)

$(eval $(call SetupCopyFiles, copy-static-launcher-debuginfo, \
    SRC := $(STATIC_LAUNCHER_OUTPUT_DIR), \
    DEST := $(STATIC_JDK_IMAGE_DIR)/bin, \
    FILES := $(call FindDebuginfoFiles, $(STATIC_LAUNCHER_OUTPUT_DIR)), \
))

TARGETS += $(copy-static-launcher-debuginfo)

static-jdk-image: $(copy-from-jdk-image) $(copy-static-launcher) $(copy-static-launcher-debuginfo)

TARGETS += static-jdk-image

.PHONY: static-launcher static-jdk-image

################################################################################

include MakeFileEnd.gmk
