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