make/bsd/makefiles/universal.gmk

Fri, 29 Mar 2019 15:03:32 +0000

author
andrew
date
Fri, 29 Mar 2019 15:03:32 +0000
changeset 9634
d1520f0c3524
parent 7138
63bae08b051e
child 7535
7ae4e26cb1e0
permissions
-rw-r--r--

8189761: COMPANY_NAME, IMPLEMENTOR, BUNDLE_VENDOR, VENDOR, but no configure flag
Reviewed-by: erikj, dholmes

     1 #
     2 # Copyright (c) 2006, 2014, 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.
     8 #
     9 # This code is distributed in the hope that it will be useful, but WITHOUT
    10 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12 # version 2 for more details (a copy is included in the LICENSE file that
    13 # accompanied this code).
    14 #
    15 # You should have received a copy of the GNU General Public License version
    16 # 2 along with this work; if not, write to the Free Software Foundation,
    17 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18 #
    19 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20 # or visit www.oracle.com if you need additional information or have any
    21 # questions.
    22 #
    23 #
    25 # macosx universal builds
    26 universal_product:
    27 	$(MAKE) MACOSX_UNIVERSAL=true all_product_universal
    28 universal_optimized:
    29 	$(MAKE) MACOSX_UNIVERSAL=true all_optimized_universal
    30 universal_fastdebug:
    31 	$(MAKE) MACOSX_UNIVERSAL=true all_fastdebug_universal
    32 universal_debug:
    33 	$(MAKE) MACOSX_UNIVERSAL=true all_debug_universal
    36 # Universal builds include 1 or more architectures in a single binary
    37 all_product_universal:
    38 #	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_PRODUCT_TARGETS)
    39 	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_PRODUCT_TARGETS)
    40 	$(QUIETLY) $(MAKE) BUILD_FLAVOR=product EXPORT_SUBDIR= universalize
    41 all_optimized_universal:
    42 #	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_OPTIMIZED_TARGETS)
    43 	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_OPTIMIZED_TARGETS)
    44 	$(QUIETLY) $(MAKE) BUILD_FLAVOR=optimized EXPORT_SUBDIR=/optimized universalize
    45 all_fastdebug_universal:
    46 #	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_FASTDEBUG_TARGETS)
    47 	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_FASTDEBUG_TARGETS)
    48 	$(QUIETLY) $(MAKE) BUILD_FLAVOR=fastdebug EXPORT_SUBDIR=/fastdebug universalize
    49 all_debug_universal:
    50 #	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=32 $(COMMON_VM_DEBUG_TARGETS)
    51 	$(QUIETLY) $(MAKE) ARCH_DATA_MODEL=64 $(COMMON_VM_DEBUG_TARGETS)
    52 	$(QUIETLY) $(MAKE) BUILD_FLAVOR=debug EXPORT_SUBDIR=/debug universalize
    55 # Consolidate architecture builds into a single Universal binary
    56 universalize: $(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)
    57 	$(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
    60 # Package built libraries in a universal binary
    61 $(UNIVERSAL_LIPO_LIST):
    62 	BUILT_LIPO_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) 2>/dev/null`"; \
    63 	if [ -n "$${BUILT_LIPO_FILES}" ]; then \
    64 	  $(MKDIR) -p $(shell dirname $@); \
    65 	  lipo -create -output $@ $${BUILT_LIPO_FILES}; \
    66 	fi
    69 # Copy built non-universal binaries in place
    70 # - copies directories; including empty dirs
    71 # - copies files, symlinks, other non-directory files
    72 $(UNIVERSAL_COPY_LIST):
    73 	BUILT_COPY_FILES="`find $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@) -prune 2>/dev/null`"; \
    74 	if [ -n "$${BUILT_COPY_FILES}" ]; then \
    75 	  for i in $${BUILT_COPY_FILES}; do \
    76 	    $(MKDIR) -p $(shell dirname $@); \
    77 	    $(CP) -R $${i} $@; \
    78 	  done; \
    79 	fi
    82 # Replace arch specific binaries with universal binaries
    83 # Do not touch jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
    84 # That symbolic link belongs to the 'jdk' build.
    85 export_universal:
    86 	$(RM) -r $(EXPORT_PATH)/jre/lib/{i386,amd64}
    87 	$(RM) -r $(JDK_IMAGE_DIR)/jre/lib/{i386,amd64}
    88 	($(CD) $(EXPORT_PATH) && \
    89 	  $(TAR) -cf - *) | \
    90 	  ($(CD) $(JDK_IMAGE_DIR) && $(TAR) -xpf -)
    93 # Overlay universal binaries
    94 # Do not touch jre/lib/{client,server}/libjsig.$(LIBRARY_SUFFIX)
    95 # That symbolic link belongs to the 'jdk' build.
    96 copy_universal:
    97 	$(RM) -r $(JDK_IMAGE_DIR)$(COPY_SUBDIR)/jre/lib/{i386,amd64}
    98 	($(CD) $(EXPORT_PATH)$(COPY_SUBDIR) && \
    99 	  $(TAR) -cf - *) | \
   100 	  ($(CD) $(JDK_IMAGE_DIR)$(COPY_SUBDIR) && $(TAR) -xpf -)
   103 # Additional processing for universal builds
   104 export_product_jdk::
   105 	$(MAKE) EXPORT_SUBDIR=           export_universal
   106 export_optimized_jdk::
   107 	$(MAKE) EXPORT_SUBDIR=/optimized export_universal
   108 export_fastdebug_jdk::
   109 	$(MAKE) EXPORT_SUBDIR=/fastdebug export_universal
   110 export_debug_jdk::
   111 	$(MAKE) EXPORT_SUBDIR=/debug     export_universal
   112 copy_product_jdk::
   113 	$(MAKE) COPY_SUBDIR=             copy_universal
   114 copy_optimized_jdk::
   115 	$(MAKE) COPY_SUBDIR=/optimized   copy_universal
   116 copy_fastdebug_jdk::
   117 	$(MAKE) COPY_SUBDIR=/fastdebug   copy_universal
   118 copy_debug_jdk::
   119 	$(MAKE) COPY_SUBDIR=/debug       copy_universal
   121 .PHONY:	universal_product universal_fastdebug universal_debug \
   122 	all_product_universal all_fastdebug_universal all_debug_universal \
   123 	universal_optimized all_optimized_universal \
   124 	universalize export_universal copy_universal \
   125 	$(UNIVERSAL_LIPO_LIST) $(UNIVERSAL_COPY_LIST)

mercurial