jdk/make/CompileDemos.gmk
changeset 21805 c7d7946239de
parent 20547 453837141fac
child 21847 8d279ff7e53e
equal deleted inserted replaced
21804:07b686da11c4 21805:c7d7946239de
       
     1 
       
     2 #
       
     3 # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
       
     4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     5 #
       
     6 # This code is free software; you can redistribute it and/or modify it
       
     7 # under the terms of the GNU General Public License version 2 only, as
       
     8 # published by the Free Software Foundation.  Oracle designates this
       
     9 # particular file as subject to the "Classpath" exception as provided
       
    10 # by Oracle in the LICENSE file that accompanied this code.
       
    11 #
       
    12 # This code is distributed in the hope that it will be useful, but WITHOUT
       
    13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    14 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    15 # version 2 for more details (a copy is included in the LICENSE file that
       
    16 # accompanied this code).
       
    17 #
       
    18 # You should have received a copy of the GNU General Public License version
       
    19 # 2 along with this work; if not, write to the Free Software Foundation,
       
    20 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    21 #
       
    22 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    23 # or visit www.oracle.com if you need additional information or have any
       
    24 # questions.
       
    25 #
       
    26 
       
    27 default: all
       
    28 
       
    29 include $(SPEC)
       
    30 include MakeBase.gmk
       
    31 include JavaCompilation.gmk
       
    32 include NativeCompilation.gmk
       
    33 
       
    34 # Setup the java compilers for the JDK build.
       
    35 include Setup.gmk
       
    36 
       
    37 # Prepare the find cache. Only used if running on windows.
       
    38 $(eval $(call FillCacheFind, $(JDK_TOPDIR)/src))
       
    39 
       
    40 # Append demo goals to this variable.
       
    41 BUILD_DEMOS =
       
    42 
       
    43 # The demo structure and contents should really be cleaned up.
       
    44 # Now every other demo has its own quirks where to put the
       
    45 # READMEs and other files.
       
    46 
       
    47 ##################################################################################################
       
    48 
       
    49 define SetupAppletDemo
       
    50   $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1, \
       
    51       SETUP := GENERATE_USINGJDKBYTECODE, \
       
    52       SRC := $(JDK_TOPDIR)/src/$3share/demo/applets/$1, \
       
    53       BIN := $(JDK_OUTPUTDIR)/demo/applets/$1, \
       
    54       COPY := .html .java .xyz .obj .au .gif, \
       
    55       DISABLE_SJAVAC := $2))
       
    56       BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1)
       
    57 endef
       
    58 
       
    59 $(eval $(call SetupAppletDemo,ArcTest))
       
    60 $(eval $(call SetupAppletDemo,BarChart))
       
    61 $(eval $(call SetupAppletDemo,Blink))
       
    62 $(eval $(call SetupAppletDemo,CardTest))
       
    63 $(eval $(call SetupAppletDemo,Clock))
       
    64 $(eval $(call SetupAppletDemo,DitherTest))
       
    65 $(eval $(call SetupAppletDemo,DrawTest))
       
    66 $(eval $(call SetupAppletDemo,Fractal))
       
    67 $(eval $(call SetupAppletDemo,GraphicsTest))
       
    68 $(eval $(call SetupAppletDemo,NervousText))
       
    69 $(eval $(call SetupAppletDemo,SimpleGraph))
       
    70 $(eval $(call SetupAppletDemo,SortDemo))
       
    71 $(eval $(call SetupAppletDemo,SpreadSheet))
       
    72 
       
    73 ifndef OPENJDK
       
    74   $(eval $(call SetupAppletDemo,Animator,,closed/))
       
    75   $(eval $(call SetupAppletDemo,GraphLayout,true,closed/))
       
    76   $(eval $(call SetupAppletDemo,JumpingBox,,closed/))
       
    77   $(eval $(call SetupAppletDemo,TicTacToe,,closed/))
       
    78 endif
       
    79 
       
    80 ##################################################################################################
       
    81 
       
    82 PATTERNS_TO_COPY = .html .txt .properties .js .gif .jpg .theme .data .opt README .c .h .png .ttf .xyz .obj
       
    83 
       
    84 define SetupDemo
       
    85   # Param 1 = Name of the demo
       
    86   # Param 2 = Subdirectory of the demo below the demo directory.
       
    87   # Param 3 = Additional javac flags.
       
    88   # Param 4 = The main class for the jar.
       
    89   # Param 5 = Additional source directory.
       
    90   # Param 6 = Extra dir below $(JDK_TOPDIR)/src (closed)
       
    91   # Param 7 = List of files to copy
       
    92   # Param 8 = Base name of jar file. Defaults to $1
       
    93   # Param 9 = Exclude list
       
    94   # Param 10 = Extra copy patterns
       
    95   # Param 11 = Extra manifest attribute
       
    96   # Param 12 = Suffix for compiler setup name
       
    97 
       
    98   # In some demos the source is found in a subdir called src.
       
    99   $1_MAIN_SRC := $$(wildcard $(JDK_TOPDIR)/src/$6share/demo/$2/$1/src)
       
   100   ifeq ($$($1_MAIN_SRC), )
       
   101     $1_MAIN_SRC := $(JDK_TOPDIR)/src/$6share/demo/$2/$1
       
   102   endif
       
   103 
       
   104   ifneq ($8, )
       
   105     $1_JARFILE := $8.jar
       
   106   else
       
   107     $1_JARFILE := $1.jar
       
   108   endif
       
   109 
       
   110   ifeq ($(findstring $1,Laffy SwingSet3), )
       
   111     $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1, \
       
   112         SETUP := GENERATE_USINGJDKBYTECODE, \
       
   113         ADD_JAVAC_FLAGS := $3, \
       
   114         SRC := $$($1_MAIN_SRC) $5, \
       
   115         BIN := $(JDK_OUTPUTDIR)/democlasses/$2/$1, \
       
   116         COPY := $(PATTERNS_TO_COPY) $(10), \
       
   117         JAR := $(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE), \
       
   118         JARMAIN := $4, \
       
   119         MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \
       
   120         EXTRA_MANIFEST_ATTR := $(11), \
       
   121         SRCZIP := $(JDK_OUTPUTDIR)/demo/$2/$1/src.zip, \
       
   122         EXCLUDE_FILES := $9, \
       
   123         DISABLE_SJAVAC := $(12)))
       
   124 
       
   125     BUILD_DEMOS += $$(BUILD_DEMO_$1) \
       
   126         $(JDK_OUTPUTDIR)/demo/$2/$1/$$($1_JARFILE) \
       
   127         $(JDK_OUTPUTDIR)/demo/$2/$1/src.zip
       
   128   endif
       
   129 
       
   130   # Copy files.
       
   131   $1_COPY_TARGETS := $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%, \
       
   132       $(JDK_OUTPUTDIR)/demo/$2/$1/%, \
       
   133       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/, $7)))
       
   134   ifneq ($7, )
       
   135     $(JDK_OUTPUTDIR)/demo/$2/$1/%: $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
       
   136 	$$(call install-file)
       
   137 	$(CHMOD) -f ug+w $$@
       
   138 
       
   139     BUILD_DEMOS += $$($1_COPY_TARGETS)
       
   140   endif
       
   141 
       
   142 endef
       
   143 
       
   144 $(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html))
       
   145 $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services: \
       
   146     $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar \
       
   147     $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor
       
   148 	(cd $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM && \
       
   149 	$(MKDIR) -p _the.tmp/META-INF/services && \
       
   150 	$(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \
       
   151 	cd _the.tmp && \
       
   152 	$(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \
       
   153 	cd META-INF/services && \
       
   154 	$(JAR) uf $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor)
       
   155 	$(RM) -r $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.tmp
       
   156 	$(TOUCH) $@
       
   157 
       
   158 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jfc/CodePointIM/_the.services
       
   159 
       
   160 $(eval $(call SetupDemo,MoleculeViewer,applets,,XYZChemModel,,,example*.html XYZApp.java))
       
   161 $(eval $(call SetupDemo,WireFrame,applets,,ThreeD,,,example*.html ThreeD.java))
       
   162 $(eval $(call SetupDemo,FileChooserDemo,jfc,,FileChooserDemo,,,README*))
       
   163 $(eval $(call SetupDemo,Font2DTest,jfc,,Font2DTest,,,*.html *.txt))
       
   164 $(eval $(call SetupDemo,Metalworks,jfc,,Metalworks,,,README*))
       
   165 $(eval $(call SetupDemo,Notepad,jfc,,Notepad,,,README*))
       
   166 $(eval $(call SetupDemo,SampleTree,jfc,,SampleTree,,,README*))
       
   167 $(eval $(call SetupDemo,SwingApplet,jfc,,SwingApplet,,,README* *.html))
       
   168 $(eval $(call SetupDemo,TableExample,jfc,,TableExample,,,README*))
       
   169 $(eval $(call SetupDemo,TransparentRuler,jfc,,transparentruler.Ruler,,,README*))
       
   170 $(eval $(call SetupDemo,jconsole-plugin,scripting,,,,,*.xml *.txt,,,,Main-Class: \n))
       
   171 $(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
       
   172 $(eval $(call SetupDemo,JTop,management,,JTop,,,README*))
       
   173 $(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
       
   174 $(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
       
   175 $(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java,,,,Main-Class: \n))
       
   176 
       
   177 ifndef OPENJDK
       
   178   $(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
       
   179   $(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*))
       
   180 
       
   181   $(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo))
       
   182   $(eval $(call SetupDemo,Stylepad,jfc,,Stylepad, \
       
   183       $(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt))
       
   184   $(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT, \
       
   185       SplashScreen-Image: resources/images/splash.png,true))
       
   186 
       
   187   BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%, \
       
   188       $(JDK_OUTPUTDIR)/demo/nbproject/%, \
       
   189       $(call CacheFind, $(JDK_TOPDIR)/src/closed/share/demo/nbproject))
       
   190 
       
   191   $(JDK_OUTPUTDIR)/demo/nbproject/%: $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
       
   192 	$(call install-file)
       
   193 	$(CHMOD) -f ug+w $@
       
   194 endif
       
   195 
       
   196 ##################################################################################################
       
   197 
       
   198 # In the old makefiles, j2dbench was not compiled.
       
   199 #$(eval $(call SetupDemo,J2DBench, java2d, /src, , j2dbench/J2DBench))
       
   200 
       
   201 # JVMTI demos are a bit strange and share some files, but be careful the
       
   202 # shared files are just the *.c and *.h files, not the README or sample
       
   203 # makefiles. So we always exclude the README.txt and sample.makefile.txt
       
   204 # from the extra sources.
       
   205 define SetupJVMTIDemo
       
   206   # Param 1 = Name of the demo
       
   207   # Param 2 = add these directories to the includes, default is agent_util
       
   208   # Param 3 = extra CFLAGS
       
   209   # Param 4 = C or C++ (defaults to C)
       
   210   # Param 5 = libs for posix
       
   211   # Param 6 = libs for windows
       
   212   # Param 7 = libs for solaris
       
   213   BUILD_DEMO_JVMTI_$1_EXTRA_SRC := \
       
   214       $$(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/$1) \
       
   215       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2))
       
   216   BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE := \
       
   217       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/README.txt) \
       
   218       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/sample.makefile.txt)
       
   219   BUILD_DEMO_JVMTI_$1_EXTRA_INC := $$(addprefix -I, $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC))
       
   220   BUILD_DEMO_JVMTI_$1_LANG := C
       
   221   ifneq (, $4)
       
   222     BUILD_DEMO_JVMTI_$1_LANG := $4
       
   223   endif
       
   224   ifeq (C++, $4)
       
   225     $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
       
   226   endif
       
   227 
       
   228   $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
       
   229       $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 \
       
   230       $(CXXFLAGS_DEBUG_SYMBOLS)
       
   231   ifeq ($1-$(OPENJDK_TARGET_CPU_ARCH), waiters-sparc)
       
   232     $1_FILTER := -xregs=no%appl
       
   233     $1_CXXFLAGS := $$(filter-out $$($1_FILTER), $$($1_CXXFLAGS))
       
   234   endif
       
   235 
       
   236   # Workaround for CFLAGS_JDKLIB containing ',' on solaris. If this is added as 'CFLAGS' to the
       
   237   # eval call below, the comma gets expanded too early.
       
   238   BUILD_DEMO_JVMTI_$1_CFLAGS := $(CFLAGS_JDKLIB) $(CFLAGS_DEBUG_SYMBOLS) \
       
   239       -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3
       
   240 
       
   241   # Remove the -incremental:no setting to get .ilk-files like in the old build.
       
   242   $$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1, \
       
   243       SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
       
   244       LANG := $$(BUILD_DEMO_JVMTI_$1_LANG), \
       
   245       OPTIMIZATION := LOW, \
       
   246       CXXFLAGS := $$($1_CXXFLAGS), \
       
   247       LDFLAGS := $(filter-out -incremental:no -opt:ref, $(LDFLAGS_JDKLIB)), \
       
   248       LDFLAGS_macosx := $(call SET_EXECUTABLE_ORIGIN), \
       
   249       LDFLAGS_SUFFIX := $$($1_EXTRA_CXX), \
       
   250       LDFLAGS_SUFFIX_posix := $5, \
       
   251       LDFLAGS_SUFFIX_windows := $6, \
       
   252       LDFLAGS_SUFFIX_solaris := $7 -lc, \
       
   253       LDFLAGS_SUFFIX_linux := $8, \
       
   254       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
       
   255       RC_FLAGS := $$(RC_FLAGS) \
       
   256           -D "JDK_FNAME=$1.dll" \
       
   257           -D "JDK_INTERNAL_NAME=$1" \
       
   258           -D "JDK_FTYPE=0x2L", \
       
   259       OBJECT_DIR := $(JDK_OUTPUTDIR)/demoobjs/jvmti/$1, \
       
   260       OUTPUT_DIR := $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib, \
       
   261       LIBRARY := $1))
       
   262 
       
   263   $$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1, \
       
   264       SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC), \
       
   265       EXCLUDE_FILES := $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE), \
       
   266       ZIP := $(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip))
       
   267 
       
   268   $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt: $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
       
   269 	$$(call install-file)
       
   270 	$(CHMOD) -f ug+w $$@
       
   271 
       
   272   ifneq (, $$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
       
   273     $$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA, \
       
   274         SETUP := GENERATE_USINGJDKBYTECODE, \
       
   275         SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/$1, \
       
   276         BIN := $(JDK_OUTPUTDIR)/democlasses/jvmti/$1, \
       
   277         COPY := $(PATTERNS_TO_COPY), \
       
   278         JAR := $(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar, \
       
   279         EXTRA_MANIFEST_ATTR := Main-Class: \n, \
       
   280         MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf))
       
   281 
       
   282     BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jvmti/$1/$1.jar
       
   283   endif
       
   284 
       
   285   BUILD_DEMOS += $$(BUILD_DEMO_JVMTI_$1) \
       
   286       $(JDK_OUTPUTDIR)/demo/jvmti/$1/src.zip \
       
   287       $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt
       
   288 
       
   289   ifeq ($(OPENJDK_TARGET_OS), windows)
       
   290     # These files normally end up in OBJECT_DIR but for demos they
       
   291     # are supposed to be included in the distro.
       
   292     $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.lib: $$(BUILD_DEMO_JVMTI_$1)
       
   293 	$(CP) $(JDK_OUTPUTDIR)/demoobjs/jvmti/$1/$1.lib $$@
       
   294 
       
   295     $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.exp: $$(BUILD_DEMO_JVMTI_$1)
       
   296 	$(CP) $(JDK_OUTPUTDIR)/demoobjs/jvmti/$1/$1.exp $$@
       
   297 
       
   298     BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.lib \
       
   299         $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.exp
       
   300   endif
       
   301 endef
       
   302 
       
   303 $(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util))
       
   304 $(eval $(call SetupJVMTIDemo,gctest, agent_util))
       
   305 $(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo))
       
   306 $(eval $(call SetupJVMTIDemo,heapViewer, agent_util))
       
   307 $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \
       
   308     -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, C, \
       
   309     -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread))
       
   310 
       
   311 $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo))
       
   312 $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo))
       
   313 $(eval $(call SetupJVMTIDemo,waiters, agent_util, , C++))
       
   314 $(eval $(call SetupJVMTIDemo,versionCheck, agent_util))
       
   315 
       
   316 ##################################################################################################
       
   317 
       
   318 # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes.
       
   319 # At least, we do not need to compile the jpda demo, just jar/zip up the sources.
       
   320 JPDA_SOURCES := $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example)
       
   321 # The number of files are few enough so that we can use echo safely below to list them.
       
   322 JPDA_FILES := $(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
       
   323 
       
   324 $(JDK_OUTPUTDIR)/demo/jpda/src.zip: $(JPDA_SOURCES)
       
   325 	$(MKDIR) -p $(@D)
       
   326 	(cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
       
   327 
       
   328 $(JDK_OUTPUTDIR)/demo/jpda/examples.jar: $(JPDA_SOURCES)
       
   329 	$(MKDIR) -p $(@D)
       
   330 	$(RM) $(@D)/_the.sources
       
   331 	$(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
       
   332 	$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
       
   333 	    -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf > $(@D)/_the.manifest
       
   334 	$(ECHO) "Main-Class: " >> $(@D)/_the.manifest
       
   335 	(cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources)
       
   336 	(cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
       
   337 
       
   338 $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README: $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
       
   339 	$(call install-file)
       
   340 	$(CHMOD) -f ug+w $@
       
   341 
       
   342 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jpda/src.zip $(JDK_OUTPUTDIR)/demo/jpda/examples.jar \
       
   343     $(JDK_OUTPUTDIR)/demo/jpda/com/sun/tools/example/README
       
   344 
       
   345 ##################################################################################################
       
   346 
       
   347 $(JDK_OUTPUTDIR)/demo/management/index.html: $(JDK_TOPDIR)/src/share/demo/management/index.html
       
   348 	$(call install-file)
       
   349 	$(CHMOD) -f ug+w $@
       
   350 
       
   351 $(JDK_OUTPUTDIR)/demo/jvmti/index.html: $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
       
   352 	$(call install-file)
       
   353 	$(CHMOD) -f ug+w $@
       
   354 
       
   355 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/management/index.html \
       
   356     $(JDK_OUTPUTDIR)/demo/jvmti/index.html
       
   357 
       
   358 ##################################################################################################
       
   359 
       
   360 # The netbeans project files are copied into the demo directory.
       
   361 BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/share/demo/nbproject/%, \
       
   362     $(JDK_OUTPUTDIR)/demo/nbproject/%, \
       
   363     $(call CacheFind, $(JDK_TOPDIR)/src/share/demo/nbproject))
       
   364 
       
   365 $(JDK_OUTPUTDIR)/demo/nbproject/%: $(JDK_TOPDIR)/src/share/demo/nbproject/%
       
   366 	$(call install-file)
       
   367 	$(CHMOD) -f ug+w $@
       
   368 
       
   369 ##################################################################################################
       
   370 
       
   371 $(JDK_OUTPUTDIR)/demo/README: $(JDK_TOPDIR)/src/share/demo/README
       
   372 	$(call install-file)
       
   373 
       
   374 BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/README
       
   375 
       
   376 ##################################################################################################
       
   377 
       
   378 ifeq ($(OPENJDK_TARGET_OS), solaris)
       
   379 
       
   380   $(JDK_OUTPUTDIR)/democlasses/jni/Poller/%: $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/%
       
   381 	$(call install-file)
       
   382 	$(CHMOD) -f ug+w $@
       
   383 
       
   384   $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt: $(JDK_TOPDIR)/src/solaris/demo/jni/Poller/README.txt
       
   385 	$(call install-file)
       
   386 	$(CHMOD) -f ug+w $@
       
   387 
       
   388   $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar: \
       
   389       $(JDK_OUTPUTDIR)/democlasses/jni/Poller/README.txt $(JDK_OUTPUTDIR)/democlasses/jni/Poller/Poller.c
       
   390 
       
   391   $(eval $(call SetupJavaCompilation,BUILD_DEMO_POLLER_JAR, \
       
   392       SETUP := GENERATE_USINGJDKBYTECODE, \
       
   393       SRC := $(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
       
   394       BIN := $(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
       
   395       HEADERS := $(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
       
   396       JAR := $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar, \
       
   397       MANIFEST := $(JDK_TOPDIR)/make/data/mainmanifest/manifest.mf, \
       
   398       SRCZIP := $(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip, \
       
   399       COPY := README.txt Poller.c, \
       
   400       JARMAIN := Client))
       
   401 
       
   402 
       
   403 
       
   404   BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar $(JDK_OUTPUTDIR)/demo/jni/Poller/src.zip \
       
   405       $(JDK_OUTPUTDIR)/demo/jni/Poller/README.txt
       
   406 
       
   407   $(eval $(call SetupNativeCompilation,BUILD_LIBPOLLER, \
       
   408       SRC := $(JDK_TOPDIR)/src/solaris/demo/jni/Poller, \
       
   409       LANG := C, \
       
   410       OPTIMIZATION := LOW, \
       
   411       CFLAGS := $(CFLAGS_JDKLIB) $(SHARED_LIBRARY_FLAGS) \
       
   412           -I$(JDK_OUTPUTDIR)/democlasses/jni/Poller, \
       
   413       LDFLAGS := $(LDFLAGS_JDKLIB), \
       
   414       LDFLAGS_SUFFIX_solaris := -lc, \
       
   415       OBJECT_DIR := $(JDK_OUTPUTDIR)/demoobjs/jni/Poller, \
       
   416       OUTPUT_DIR := $(JDK_OUTPUTDIR)/demoobjs, \
       
   417       LIBRARY := Poller))
       
   418 
       
   419   #
       
   420   # We can only compile native code after jar has been build (since we depend on generated .h files)
       
   421   #
       
   422   $(JDK_OUTPUTDIR)/demoobjs/jni/Poller/Poller.o: $(JDK_OUTPUTDIR)/demo/jni/Poller/Poller.jar
       
   423 
       
   424   $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX): \
       
   425       $(JDK_OUTPUTDIR)/demoobjs/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
       
   426 	$(call install-file)
       
   427 
       
   428   BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jni/Poller/lib/$(LIBRARY_PREFIX)Poller$(SHARED_LIBRARY_SUFFIX)
       
   429 
       
   430 endif
       
   431 
       
   432 ##################################################################################################
       
   433 
       
   434 ifndef OPENJDK
       
   435   DB_DEMO_ZIPFILE := $(wildcard $(JDK_TOPDIR)/src/closed/share/db/*.zip)
       
   436 
       
   437   $(JDK_OUTPUTDIR)/demo/_the.db.unzipped: $(DB_DEMO_ZIPFILE)
       
   438 	$(MKDIR) -p $(@D)
       
   439 	$(RM) -r $(JDK_OUTPUTDIR)/demo/db $(JDK_OUTPUTDIR)/demo/demo
       
   440 	$(CD) $(JDK_OUTPUTDIR)/demo && $(UNZIP) -q -o $<
       
   441 	$(MV) $(JDK_OUTPUTDIR)/demo/db-derby-*-bin/demo $(JDK_OUTPUTDIR)/demo/db
       
   442 	$(CD) $(JDK_OUTPUTDIR)/demo && $(RM) -r db-derby-*-bin
       
   443 	$(TOUCH) $@
       
   444 
       
   445   # Copy this after the unzip above to avoid race with directory creation and mv command.
       
   446   $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html: \
       
   447       $(JDK_TOPDIR)/src/closed/share/db/README-JDK-DEMOS.html \
       
   448       | $(JDK_OUTPUTDIR)/demo/_the.db.unzipped
       
   449 	$(MKDIR) -p $(@D)
       
   450 	$(CAT) $< | $(SED) "s/XXXX/$(shell cat $(JDK_TOPDIR)/src/closed/share/db/COPYRIGHTYEAR)/" > $@
       
   451 
       
   452   BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/_the.db.unzipped $(JDK_OUTPUTDIR)/demo/db/README-JDK-DEMOS.html
       
   453 endif
       
   454 
       
   455 ##################################################################################################
       
   456 
       
   457 all: $(BUILD_DEMOS)
       
   458 
       
   459 .PHONY: all