1 #
   2 # Copyright (c) 2011, 2016, 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 $(eval $(call IncludeCustomExtension, gensrc/GensrcIcons.gmk))
  27 
  28 GENSRC_AWT_ICONS :=
  29 GENSRC_AWT_ICONS_SRC :=
  30 GENSRC_AWT_ICONS_TMP := $(SUPPORT_OUTPUTDIR)/gensrc/java.desktop
  31 GENSRC_AWT_ICONS_DST := $(GENSRC_AWT_ICONS_TMP)/sun/awt/
  32 
  33 # Allow this to be overridden from a custom makefile
  34 X11_ICONS_PATH_PREFIX ?= $(TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)
  35 
  36 GENSRC_AWT_ICONS_SRC += \
  37     $(X11_ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon16.png \
  38     $(X11_ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon24.png \
  39     $(X11_ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon32.png \
  40     $(X11_ICONS_PATH_PREFIX)/classes/sun/awt/X11/java-icon48.png
  41 
  42 
  43 AWT_ICONPATH := $(TOPDIR)/src/java.desktop/share/classes/sun/awt/resources
  44 
  45 GENSRC_AWT_ICONS_SRC += \
  46     $(AWT_ICONPATH)/security-icon-bw16.png \
  47     $(AWT_ICONPATH)/security-icon-interim16.png \
  48     $(AWT_ICONPATH)/security-icon-yellow16.png \
  49     $(AWT_ICONPATH)/security-icon-bw24.png \
  50     $(AWT_ICONPATH)/security-icon-interim24.png \
  51     $(AWT_ICONPATH)/security-icon-yellow24.png \
  52     $(AWT_ICONPATH)/security-icon-bw32.png \
  53     $(AWT_ICONPATH)/security-icon-interim32.png \
  54     $(AWT_ICONPATH)/security-icon-yellow32.png \
  55     $(AWT_ICONPATH)/security-icon-bw48.png \
  56     $(AWT_ICONPATH)/security-icon-interim48.png \
  57     $(AWT_ICONPATH)/security-icon-yellow48.png
  58 
  59 GENSRC_AWT_ICONS_FILES := $(notdir $(GENSRC_AWT_ICONS_SRC))
  60 
  61 GENSRC_AWT_ICONS_SHORT_NAME = $(subst .,_,$(subst -,_,$(1)))
  62 GENSRC_AWT_ICONS_DST_NAME = AWTIcon$(2)_$(subst .,_,$(subst -,_,$(1)))
  63 
  64 ################################################################################
  65 
  66 $(GENSRC_AWT_ICONS_TMP)/_the.icons.dir:
  67         $(call LogInfo, Generating icon classes)
  68         $(call MakeDir, $(GENSRC_AWT_ICONS_DST))
  69         $(TOUCH) $@
  70 
  71 ################################################################################
  72 
  73 define SetupGensrcAWTIcon
  74   # param 1 is for src-file
  75   # param 2 is for src-dir
  76   $1_SHORTNAME := $(call GENSRC_AWT_ICONS_SHORT_NAME,$1)
  77   $1_NAME32 := $(call GENSRC_AWT_ICONS_DST_NAME,$1,32)
  78   $1_TARGET32 := $(GENSRC_AWT_ICONS_DST)/$$($1_NAME32).java
  79   $1_NAME64 := $(call GENSRC_AWT_ICONS_DST_NAME,$1,64)
  80   $1_TARGET64 := $(GENSRC_AWT_ICONS_DST)/$$($1_NAME64).java
  81 
  82   $$($1_TARGET32): $2/$1 $(GENSRC_AWT_ICONS_TMP)/_the.icons.dir $(BUILD_TOOLS_JDK)
  83         $(RM) $$@ $$@.tmp
  84         $(ECHO) "package sun.awt;" > $$@.tmp
  85         $(ECHO) "public class $$($1_NAME32) {" >> $$@.tmp
  86         $(ECHO) "public static int[] $$($1_SHORTNAME) = { " >> $$@.tmp
  87         $(CAT) $$< | $(TOOL_AWT_TOBIN) >> $$@.tmp
  88         $(ECHO) "}; }" >> $$@.tmp
  89         $(MV) $$@.tmp $$@
  90 
  91   GENSRC_AWT_ICONS += $$($1_TARGET32)
  92 
  93   $$($1_TARGET64): $2/$1 $(GENSRC_AWT_ICONS_TMP)/_the.icons.dir $(BUILD_TOOLS_JDK)
  94         $(RM) $$@ $$@.tmp
  95         $(ECHO) "package sun.awt;" > $$@.tmp
  96         $(ECHO) "public class $$($1_NAME64) {" >> $$@.tmp
  97         $(ECHO) "public static long[] $$($1_SHORTNAME) = { " >> $$@.tmp
  98         $(CAT) $$< | $(TOOL_AWT_TOBIN) >> $$@.tmp
  99         $(ECHO) "}; }" >> $$@.tmp
 100         $(MV) $$@.tmp $$@
 101 
 102   GENSRC_AWT_ICONS += $$($1_TARGET64)
 103 endef
 104 
 105 $(foreach I, $(GENSRC_AWT_ICONS_SRC), $(eval $(call SetupGensrcAWTIcon,$(notdir $(I)),$(dir $(I)))))
 106 
 107 GENSRC_JAVA_DESKTOP += $(GENSRC_AWT_ICONS)
 108 
 109 ################################################################################
 110 
 111 ifeq ($(OPENJDK_TARGET_OS), macosx)
 112 
 113   GENSRC_OSX_ICONS_DST := $(SUPPORT_OUTPUTDIR)/headers/java.desktop
 114   GENSRC_OSX_ICONS := $(GENSRC_OSX_ICONS_DST)/AWTIconData.h
 115 
 116   GENSRC_OSX_ICONS_SRC ?= $(TOPDIR)/make/data/macosxicons/JavaApp.icns
 117 
 118 
 119   $(GENSRC_OSX_ICONS): $(GENSRC_OSX_ICONS_SRC) $(BUILD_TOOLS_JDK)
 120         $(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $@))
 121         $(call MakeDir, $(@D))
 122         $(RM) $@ $@.tmp
 123         $(ECHO) "static unsigned char sAWTIconData[] = { " >> $@.tmp
 124         $(CAT) $< | $(TOOL_OSX_TOBIN) >> $@.tmp
 125         $(ECHO) "};" >> $@.tmp
 126         $(MV) $@.tmp $@
 127 
 128   GENSRC_JAVA_DESKTOP += $(GENSRC_OSX_ICONS)
 129 endif