1 # 2 # Copyright (c) 2011, 2015, 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 ################################################################################ 27 # Build demos for the JDK into $(SUPPORT_OUTPUTDIR)/demos/image. 28 ################################################################################ 29 30 default: all 31 32 include $(SPEC) 33 include MakeBase.gmk 34 include JavaCompilation.gmk 35 include NativeCompilation.gmk 36 include SetupJavaCompilers.gmk 37 include TextFileProcessing.gmk 38 include ZipArchive.gmk 39 40 # Prepare the find cache. 41 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src)) 42 43 # Append demo goals to this variable. 44 TARGETS = 45 46 # The demo structure and contents should really be cleaned up. 47 # Now every other demo has its own quirks where to put the 48 # READMEs and other files. 49 50 DEMO_SHARE_SRC := $(JDK_TOPDIR)/src/demo/share 51 GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc 52 53 DEMO_MANIFEST := $(SUPPORT_OUTPUTDIR)/demos/java-main-manifest.mf 54 55 # This rule will be depended on due to the MANIFEST line in SetupBuildDemo 56 # and SetupBuildJvmtiDemo. 57 $(eval $(call SetupTextFileProcessing, BUILD_JAVA_MANIFEST, \ 58 SOURCE_FILES := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \ 59 OUTPUT_FILE := $(DEMO_MANIFEST), \ 60 REPLACEMENTS := \ 61 @@VERSION_SPECIFICATION@@ => $(VERSION_SPECIFICATION) ; \ 62 @@VERSION_SHORT@@ => $(VERSION_SHORT) ; \ 63 @@COMPANY_NAME@@ => $(COMPANY_NAME) , \ 64 )) 65 66 ################################################################################ 67 # Build applet demos. 68 69 # Setup make rules for building a demo applet. 70 # 71 # Parameter 1 is the name of the rule. This name is used as variable prefix, 72 # and the targets generated are listed in a variable by that name. It is also 73 # used to locate the name of the applet subdir, and to determine the name 74 # of the output directory. 75 # 76 # Remaining parameters are named arguments. These include: 77 # SRC_DIR Alternative source directory to use for the demos. 78 # DISABLE_SJAVAC Passed to SetupJavaCompilation 79 80 SetupBuildAppletDemo = $(NamedParamsMacroTemplate) 81 define SetupBuildAppletDemoBody 82 ifeq ($$($1_SRC_DIR), ) 83 $1_SRC_DIR := $(DEMO_SHARE_SRC)/applets 84 endif 85 86 $$(eval $$(call SetupJavaCompilation, BUILD_DEMO_APPLET_$1, \ 87 SETUP := GENERATE_USINGJDKBYTECODE, \ 88 SRC := $$($1_SRC_DIR)/$1, \ 89 BIN := $(SUPPORT_OUTPUTDIR)/demos/image/applets/$1, \ 90 COPY := .html .java .xyz .obj .au .gif, \ 91 DISABLE_SJAVAC := $$($1_DISABLE_SJAVAC), \ 92 )) 93 94 $1 := $$(BUILD_DEMO_APPLET_$1) 95 96 TARGETS += $$($1) 97 endef 98 99 ifneq ($(OPENJDK_TARGET_OS), solaris) 100 $(eval $(call SetupBuildAppletDemo, ArcTest)) 101 $(eval $(call SetupBuildAppletDemo, BarChart)) 102 $(eval $(call SetupBuildAppletDemo, Blink)) 103 $(eval $(call SetupBuildAppletDemo, CardTest)) 104 $(eval $(call SetupBuildAppletDemo, Clock)) 105 $(eval $(call SetupBuildAppletDemo, DitherTest)) 106 $(eval $(call SetupBuildAppletDemo, DrawTest)) 107 $(eval $(call SetupBuildAppletDemo, Fractal)) 108 $(eval $(call SetupBuildAppletDemo, GraphicsTest)) 109 $(eval $(call SetupBuildAppletDemo, NervousText)) 110 $(eval $(call SetupBuildAppletDemo, SimpleGraph)) 111 $(eval $(call SetupBuildAppletDemo, SortDemo)) 112 $(eval $(call SetupBuildAppletDemo, SpreadSheet)) 113 endif 114 115 ################################################################################ 116 # Build normal demos. 117 118 COPY_TO_JAR := .html .txt .properties .js .gif .jpg .theme .data .opt .c .h \ 119 .png .ttf .xyz .obj README COPYRIGHT 120 121 COPY_TO_IMAGE := *.html *.txt *.png *.xml README* 122 123 # Setup make rules for building a demo. 124 # 125 # Parameter 1 is the name of the rule. This name is used as variable prefix, 126 # and the targets generated are listed in a variable by that name. 127 # 128 # Remaining parameters are named arguments. These include: 129 # DEMO_SUBDIR The name of the subdir of the demo, below the demo top dir. 130 # EXTRA_SRC_DIR Additional source directory. 131 # SRC_SUB_DIR Optional subdir to locate source code in 132 # SRC_DIR Alternative source directory to use for the demos. 133 # EXCLUDE_FILES Exclude file list 134 # JAR_NAME Base name of jar file. Defaults to $1. 135 # MAIN_CLASS The main class for the jar. Defaults to $1. 136 # EXTRA_COPY_TO_JAR Additional files to copy to jar (as patterns) 137 # EXTRA_COPY_TO_IMAGE Additional files to copy to images (as wildcards) 138 # EXTRA_MANIFEST_ATTR Extra manifest attribute 139 # SKIP_COMPILATION Skip Java compilation iff true 140 # DISABLE_SJAVAC Passed to SetupJavaCompilation 141 SetupBuildDemo = $(NamedParamsMacroTemplate) 142 define SetupBuildDemoBody 143 ifeq ($$($1_SRC_DIR), ) 144 $1_SRC_DIR := $(DEMO_SHARE_SRC) 145 endif 146 147 $1_SRC_BASE := $$($1_SRC_DIR)/$$($1_DEMO_SUBDIR)/$1 148 149 # In some demos the source is found in a subdir 150 ifneq ($$($1_SRC_SUB_DIR), ) 151 $1_MAIN_SRC := $$($1_SRC_BASE)/$$($1_SRC_SUB_DIR) 152 else 153 # for allmost all 154 $1_MAIN_SRC := $$($1_SRC_BASE) 155 endif 156 157 # Default is to use demo name as jar file name. 158 ifeq ($$($1_JAR_NAME), ) 159 $1_JAR_NAME := $1 160 endif 161 162 # Default is to use demo name as jar main class. 163 ifeq ($$($1_MAIN_CLASS), ) 164 $1_MAIN_CLASS := $1 165 else ifeq ($$($1_MAIN_CLASS), NONE) 166 $1_MAIN_CLASS := 167 $1_EXTRA_MANIFEST_ATTR += Main-Class: \n 168 endif 169 170 ifneq ($$($1_SKIP_COMPILATION), true) 171 $$(eval $$(call SetupJavaCompilation, BUILD_DEMO_$1, \ 172 SETUP := GENERATE_USINGJDKBYTECODE, \ 173 SRC := $$($1_MAIN_SRC) $$($1_EXTRA_SRC_DIR), \ 174 BIN := $(SUPPORT_OUTPUTDIR)/demos/classes/$$($1_DEMO_SUBDIR)/$1, \ 175 COPY := $(COPY_TO_JAR) $$($1_EXTRA_COPY_TO_JAR), \ 176 JAR := $(SUPPORT_OUTPUTDIR)/demos/image/$$($1_DEMO_SUBDIR)/$1/$$($1_JAR_NAME).jar, \ 177 JARMAIN := $$($1_MAIN_CLASS), \ 178 MANIFEST := $(DEMO_MANIFEST), \ 179 EXTRA_MANIFEST_ATTR := $$($1_EXTRA_MANIFEST_ATTR), \ 180 SRCZIP := $(SUPPORT_OUTPUTDIR)/demos/image/$$($1_DEMO_SUBDIR)/$1/src.zip, \ 181 EXCLUDE_FILES := $$($1_EXCLUDE_FILES), \ 182 DISABLE_SJAVAC := $$($1_DISABLE_SJAVAC), \ 183 )) 184 185 $1 += $$(BUILD_DEMO_$1) 186 endif 187 188 # Copy files. Sort is needed to remove duplicates. 189 $1_COPY_FILES := $$(sort $$(wildcard $$(addprefix $$($1_SRC_BASE)/, \ 190 $(COPY_TO_IMAGE) $$($1_EXTRA_COPY_TO_IMAGE)))) 191 $$(eval $$(call SetupCopyFiles, COPY_DEMO_$1, \ 192 SRC := $$($1_SRC_BASE), \ 193 DEST := $(SUPPORT_OUTPUTDIR)/demos/image/$$($1_DEMO_SUBDIR)/$1, \ 194 FILES := $$($1_COPY_FILES), \ 195 )) 196 197 $1 += $$(COPY_DEMO_$1) 198 199 TARGETS += $$($1) 200 endef 201 202 CODEPOINT_SERVICE := java.awt.im.spi.InputMethodDescriptor 203 CODEPOINT_METAINF_SERVICE_FILE := \ 204 $(SUPPORT_OUTPUTDIR)/demos/classes/jfc/CodePointIM/META-INF/services/$(CODEPOINT_SERVICE) 205 206 $(eval $(call SetupBuildDemo, CodePointIM, \ 207 DEMO_SUBDIR := jfc, \ 208 EXTRA_COPY_TO_JAR := $(CODEPOINT_SERVICE), \ 209 )) 210 211 # We also need to copy the CODEPOINT_SERVICE file to the META-INF/services 212 # location, and make sure the jar depends on that file to get it included. 213 $(CODEPOINT_METAINF_SERVICE_FILE): $(DEMO_SHARE_SRC)/jfc/CodePointIM/$(CODEPOINT_SERVICE) 214 $(call install-file) 215 216 $(BUILD_DEMO_CodePointIM_JAR): $(CODEPOINT_METAINF_SERVICE_FILE) 217 218 ifneq ($(OPENJDK_TARGET_OS), solaris) 219 $(eval $(call SetupBuildDemo, MoleculeViewer, \ 220 DEMO_SUBDIR := applets, \ 221 MAIN_CLASS := XYZChemModel, \ 222 EXTRA_COPY_TO_IMAGE := *.java, \ 223 )) 224 225 $(eval $(call SetupBuildDemo, WireFrame, \ 226 DEMO_SUBDIR := applets, \ 227 MAIN_CLASS := ThreeD, \ 228 EXTRA_COPY_TO_IMAGE := *.java, \ 229 )) 230 231 $(eval $(call SetupBuildDemo, SwingApplet, \ 232 DEMO_SUBDIR := jfc, \ 233 )) 234 endif 235 236 $(eval $(call SetupBuildDemo, FileChooserDemo, \ 237 DEMO_SUBDIR := jfc, \ 238 )) 239 240 $(eval $(call SetupBuildDemo, Font2DTest, \ 241 DEMO_SUBDIR := jfc, \ 242 )) 243 244 $(eval $(call SetupBuildDemo, Metalworks, \ 245 DEMO_SUBDIR := jfc, \ 246 )) 247 248 $(eval $(call SetupBuildDemo, Notepad, \ 249 DEMO_SUBDIR := jfc, \ 250 )) 251 252 $(eval $(call SetupBuildDemo, SampleTree, \ 253 DEMO_SUBDIR := jfc, \ 254 )) 255 256 $(eval $(call SetupBuildDemo, TableExample, \ 257 DEMO_SUBDIR := jfc, \ 258 )) 259 260 $(eval $(call SetupBuildDemo, TransparentRuler, \ 261 DEMO_SUBDIR := jfc, \ 262 MAIN_CLASS := transparentruler.Ruler, \ 263 )) 264 265 $(eval $(call SetupBuildDemo, jconsole-plugin, \ 266 DEMO_SUBDIR := scripting, \ 267 SRC_SUB_DIR := src, \ 268 MAIN_CLASS := NONE, \ 269 )) 270 271 $(eval $(call SetupBuildDemo, FullThreadDump, \ 272 DEMO_SUBDIR := management, \ 273 )) 274 275 $(eval $(call SetupBuildDemo, JTop, \ 276 DEMO_SUBDIR := management, \ 277 )) 278 279 $(eval $(call SetupBuildDemo, MemoryMonitor, \ 280 DEMO_SUBDIR := management, \ 281 )) 282 283 $(eval $(call SetupBuildDemo, VerboseGC, \ 284 DEMO_SUBDIR := management, \ 285 )) 286 287 ################################################################################ 288 # Build JVMTI demos. 289 290 # Setup make rules for building a JVMTI demo. 291 # 292 # Parameter 1 is the name of the rule. This name is used as variable prefix, 293 # and the targets generated are listed in a variable by that name. 294 # 295 # Remaining parameters are named arguments. These include: 296 # EXTRA_SRC_SUBDIR Also include these subdirectories 297 # TOOLCHAIN Optionally specify toolchain to use 298 SetupBuildJvmtiDemo = $(NamedParamsMacroTemplate) 299 define SetupBuildJvmtiDemoBody 300 $1_SRC := \ 301 $(DEMO_SHARE_SRC)/jvmti/$1 \ 302 $$(wildcard $$(addprefix $(DEMO_SHARE_SRC)/jvmti/, \ 303 agent_util $$($1_EXTRA_SRC_SUBDIR))) 304 305 ### Build the native lib 306 $1_CFLAGS_INCLUDE := $$(addprefix -I, $$($1_SRC)) 307 308 $1_CXXFLAGS := $$($1_CFLAGS_INCLUDE) $(CXXFLAGS_JDKLIB) $(CXXFLAGS_DEBUG_SYMBOLS) 309 310 ifeq ($$($1_TOOLCHAIN), TOOLCHAIN_LINK_CXX) 311 # For C++, we also need some special treatment. 312 $1_LDFLAGS := $$(LDFLAGS_CXX_JDK) 313 $1_LIBS := $(LIBCXX) 314 315 ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) 316 $1_CXXFLAGS := $$(filter-out -xregs=no%appl, $$($1_CXXFLAGS)) 317 endif 318 endif 319 320 # Remove the -incremental:no setting to get .ilk-files like in the old build. 321 $$(eval $$(call SetupNativeCompilation, BUILD_DEMO_JVMTI_NATIVE_$1, \ 322 SRC := $$($1_SRC), \ 323 TOOLCHAIN := $$($1_TOOLCHAIN), \ 324 OPTIMIZATION := LOW, \ 325 CFLAGS := $$($1_CFLAGS_INCLUDE) $$(CFLAGS_JDKLIB) $$(CFLAGS_DEBUG_SYMBOLS), \ 326 CXXFLAGS := $$($1_CXXFLAGS), \ 327 LDFLAGS := $(filter-out -incremental:no -opt:ref, $$(LDFLAGS_JDKLIB)) \ 328 $$($1_LDFLAGS), \ 329 LDFLAGS_macosx := $$(call SET_EXECUTABLE_ORIGIN), \ 330 LIBS := $$($1_LIBS), \ 331 LIBS_solaris := -lc, \ 332 VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \ 333 RC_FLAGS := $$(RC_FLAGS) \ 334 -D "JDK_FNAME=$1.dll" \ 335 -D "JDK_INTERNAL_NAME=$1" \ 336 -D "JDK_FTYPE=0x2L", \ 337 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native/jvmti/$1, \ 338 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/lib, \ 339 LIBRARY := $1, \ 340 )) 341 342 $1 += $$(BUILD_DEMO_JVMTI_NATIVE_$1) 343 344 ### Build the jar, if we have java sources 345 ifneq ($$(wildcard $(DEMO_SHARE_SRC)/jvmti/$1/*.java), ) 346 $$(eval $$(call SetupJavaCompilation, BUILD_DEMO_JVMTI_JAVA_$1, \ 347 SETUP := GENERATE_USINGJDKBYTECODE, \ 348 SRC := $(DEMO_SHARE_SRC)/jvmti/$1, \ 349 BIN := $(SUPPORT_OUTPUTDIR)/demos/classes/jvmti/$1, \ 350 COPY := $(COPY_TO_JAR), \ 351 JAR := $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/$1.jar, \ 352 EXTRA_MANIFEST_ATTR := Main-Class: \n, \ 353 MANIFEST := $(DEMO_MANIFEST), \ 354 )) 355 356 $1 += $$(BUILD_DEMO_JVMTI_JAVA_$1_JAR) 357 endif 358 359 ### Build the source zip 360 $1_EXCLUDE_FILES := \ 361 $$(wildcard $$(patsubst %, $(DEMO_SHARE_SRC)/jvmti/%/README.txt, \ 362 agent_util $$($1_EXTRA_SRC_SUBDIR))) \ 363 $$(wildcard $$(patsubst %, $(DEMO_SHARE_SRC)/jvmti/%/sample.makefile.txt, \ 364 agent_util $$($1_EXTRA_SRC_SUBDIR))) 365 366 $$(eval $$(call SetupZipArchive, BUILD_DEMO_JVMTI_SRC_$1, \ 367 SRC := $$($1_SRC), \ 368 EXCLUDE_FILES := $$($1_EXCLUDE_FILES), \ 369 ZIP := $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/src.zip, \ 370 )) 371 372 $1 += $$(BUILD_DEMO_JVMTI_SRC_$1) 373 374 # Copy files to image 375 $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/README.txt: $(DEMO_SHARE_SRC)/jvmti/$1/README.txt 376 $$(call install-file) 377 $(CHMOD) -f ug+w $$@ 378 379 $1 += $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/README.txt 380 381 ifeq ($(OPENJDK_TARGET_OS), windows) 382 # These lib and exp files normally end up in OBJECT_DIR but for demos they 383 # are supposed to be included in the distro. Since they are created as 384 # a side-effect of the library compilation, make does not know about them. 385 $1_SUPPORT_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/demos/native/jvmti/$1 386 $1_IMAGE_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/$1/lib 387 388 $$($1_SUPPORT_OUTPUTDIR)/$1.lib: $$(BUILD_DEMO_JVMTI_NATIVE_$1) 389 390 $$($1_SUPPORT_OUTPUTDIR)/$1.exp: $$(BUILD_DEMO_JVMTI_NATIVE_$1) 391 392 $$($1_IMAGE_OUTPUTDIR)/$1.lib: $$($1_SUPPORT_OUTPUTDIR)/$1.lib 393 $$(call install-file) 394 395 $$($1_IMAGE_OUTPUTDIR)/$1.exp: $$($1_SUPPORT_OUTPUTDIR)/$1.exp 396 $$(call install-file) 397 398 $1 += $$($1_IMAGE_OUTPUTDIR)/$1.lib $$($1_IMAGE_OUTPUTDIR)/$1.exp 399 endif 400 401 TARGETS += $$($1) 402 endef 403 404 $(eval $(call SetupBuildJvmtiDemo, compiledMethodLoad)) 405 $(eval $(call SetupBuildJvmtiDemo, gctest)) 406 $(eval $(call SetupBuildJvmtiDemo, heapViewer)) 407 $(eval $(call SetupBuildJvmtiDemo, versionCheck)) 408 409 $(eval $(call SetupBuildJvmtiDemo, heapTracker, \ 410 EXTRA_SRC_SUBDIR := java_crw_demo, \ 411 )) 412 413 $(eval $(call SetupBuildJvmtiDemo, minst, \ 414 EXTRA_SRC_SUBDIR := java_crw_demo, \ 415 )) 416 417 $(eval $(call SetupBuildJvmtiDemo, mtrace, \ 418 EXTRA_SRC_SUBDIR := java_crw_demo, \ 419 )) 420 421 $(eval $(call SetupBuildJvmtiDemo, waiters, \ 422 TOOLCHAIN := TOOLCHAIN_LINK_CXX, \ 423 )) 424 425 ################################################################################ 426 # Build the Poller demo (on Solaris only). 427 428 ifeq ($(OPENJDK_TARGET_OS), solaris) 429 DEMO_SOLARIS_SRC := $(JDK_TOPDIR)/src/demo/solaris 430 431 $(eval $(call SetupJavaCompilation, BUILD_DEMO_JAVA_Poller, \ 432 SETUP := GENERATE_USINGJDKBYTECODE, \ 433 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \ 434 BIN := $(SUPPORT_OUTPUTDIR)/demos/classes/jni/Poller, \ 435 HEADERS := $(SUPPORT_OUTPUTDIR)/demos/classes/jni/Poller, \ 436 JAR := $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/Poller.jar, \ 437 MANIFEST := $(SUPPORT_OUTPUTDIR)/demos/java-main-manifest.mf, \ 438 SRCZIP := $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/src.zip, \ 439 COPY := README.txt Poller.c, \ 440 JARMAIN := Client, \ 441 )) 442 443 TARGETS += $(BUILD_DEMO_JAVA_Poller) 444 445 $(eval $(call SetupNativeCompilation, BUILD_DEMO_NATIVE_Poller, \ 446 SRC := $(DEMO_SOLARIS_SRC)/jni/Poller, \ 447 OPTIMIZATION := LOW, \ 448 CFLAGS := $(CFLAGS_JDKLIB) \ 449 -I$(SUPPORT_OUTPUTDIR)/demos/classes/jni/Poller, \ 450 LDFLAGS := $(LDFLAGS_JDKLIB), \ 451 LIBS_solaris := -lc, \ 452 OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native/jni/Poller, \ 453 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/demos/native, \ 454 LIBRARY := Poller, \ 455 )) 456 457 TARGETS += $(BUILD_DEMO_NATIVE_Poller) 458 459 # We can only compile native code after java has been compiled (since we 460 # depend on generated .h files) 461 $(SUPPORT_OUTPUTDIR)/demos/native/jni/Poller/Poller.o: \ 462 $(BUILD_DEMO_JAVA_Poller) 463 464 # Copy to image 465 $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/README.txt: \ 466 $(DEMO_SOLARIS_SRC)/jni/Poller/README.txt 467 $(call install-file) 468 $(CHMOD) -f ug+w $@ 469 470 TARGETS += $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/README.txt 471 472 $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/lib/libPoller.so: \ 473 $(SUPPORT_OUTPUTDIR)/demos/native/libPoller.so 474 $(call install-file) 475 476 TARGETS += $(SUPPORT_OUTPUTDIR)/demos/image/jni/Poller/lib/libPoller.so 477 endif 478 479 ################################################################################ 480 # Copy html and README files. 481 482 $(SUPPORT_OUTPUTDIR)/demos/image/management/index.html: $(DEMO_SHARE_SRC)/management/index.html 483 $(call install-file) 484 $(CHMOD) -f ug+w $@ 485 486 $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/index.html: $(DEMO_SHARE_SRC)/jvmti/index.html 487 $(call install-file) 488 $(CHMOD) -f ug+w $@ 489 490 $(SUPPORT_OUTPUTDIR)/demos/image/README: $(DEMO_SHARE_SRC)/README 491 $(call install-file) 492 493 TARGETS += $(SUPPORT_OUTPUTDIR)/demos/image/management/index.html \ 494 $(SUPPORT_OUTPUTDIR)/demos/image/jvmti/index.html \ 495 $(SUPPORT_OUTPUTDIR)/demos/image/README 496 497 ################################################################################ 498 # Copy netbeans project files. 499 500 $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%: $(DEMO_SHARE_SRC)/nbproject/% 501 $(call install-file) 502 $(CHMOD) -f ug+w $@ 503 504 ifeq ($(OPENJDK_TARGET_OS), solaris) 505 TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \ 506 $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \ 507 $(filter-out $(DEMO_SHARE_SRC)/nbproject/jfc/SwingApplet%, \ 508 $(call CacheFind, $(DEMO_SHARE_SRC)/nbproject))) 509 else 510 TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \ 511 $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \ 512 $(call CacheFind, $(DEMO_SHARE_SRC)/nbproject)) 513 endif 514 515 ################################################################################ 516 517 # Hook to include the corresponding custom file, if present. 518 $(eval $(call IncludeCustomExtension, jdk, CompileDemos.gmk)) 519 520 all: $(TARGETS) 521 522 .PHONY: all