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