makefiles/CompileDemos.gmk

Print this page
rev 8822 : 8024854: PPC64: Basic changes and files to build the class library on AIX
Reviewed-by: alanb, prr, sla, chegar, michaelm, mullan, art
Contributed-by: luchsh@linux.vnet.ibm.com, spoole@linux.vnet.ibm.com, thomas.stuefe@sap.com


 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 


 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)




 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   # Param 8 = libs for linux
 214   # Param 9 = extra directories with required sources
 215   BUILD_DEMO_JVMTI_$1_EXTRA_SRC := \
 216       $$(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/$1) \
 217       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)) \
 218       $9
 219   BUILD_DEMO_JVMTI_$1_EXTRA_SRC_EXCLUDE := \
 220       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/README.txt) \
 221       $$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/, $2)/sample.makefile.txt)
 222   BUILD_DEMO_JVMTI_$1_EXTRA_INC := $$(addprefix -I, $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC))
 223   BUILD_DEMO_JVMTI_$1_LANG := C
 224   ifneq (, $4)
 225     BUILD_DEMO_JVMTI_$1_LANG := $4
 226   endif
 227   ifeq (C++, $4)
 228     $1_EXTRA_CXX := $(LDFLAGS_CXX_JDK) $(LIBCXX)
 229   endif
 230 
 231   $1_CXXFLAGS := $(CXXFLAGS_JDKLIB) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 \
 232       $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3 \
 233       $(CXXFLAGS_DEBUG_SYMBOLS)
 234   ifeq ($1-$(OPENJDK_TARGET_CPU_ARCH), waiters-sparc)
 235     $1_FILTER := -xregs=no%appl
 236     $1_CXXFLAGS := $$(filter-out $$($1_FILTER), $$($1_CXXFLAGS))
 237   endif
 238 


 290       $(JDK_OUTPUTDIR)/demo/jvmti/$1/README.txt
 291 
 292   ifeq ($(OPENJDK_TARGET_OS), windows)
 293     # These files normally end up in OBJECT_DIR but for demos they
 294     # are supposed to be included in the distro.
 295     $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.lib: $$(BUILD_DEMO_JVMTI_$1)
 296         $(CP) $(JDK_OUTPUTDIR)/demoobjs/jvmti/$1/$1.lib $$@
 297 
 298     $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.exp: $$(BUILD_DEMO_JVMTI_$1)
 299         $(CP) $(JDK_OUTPUTDIR)/demoobjs/jvmti/$1/$1.exp $$@
 300 
 301     BUILD_DEMOS += $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.lib \
 302         $(JDK_OUTPUTDIR)/demo/jvmti/$1/lib/$1.exp
 303   endif
 304 endef
 305 
 306 $(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util))
 307 $(eval $(call SetupJVMTIDemo,gctest, agent_util))
 308 $(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo))
 309 $(eval $(call SetupJVMTIDemo,heapViewer, agent_util))
 310 
 311 # On AIX, hprof requires 'dladdr' from src/aix/porting/porting_aix.cpp
 312 BUILD_LIBHPROF_AIX_EXTRA_SRC :=
 313 BUILD_LIBHPROF_AIX_EXTRA_CFLAGS :=
 314 ifeq ($(OPENJDK_TARGET_OS), aix)
 315   BUILD_LIBHPROF_AIX_EXTRA_SRC += $(JDK_TOPDIR)/src/aix/porting
 316   BUILD_LIBHPROF_AIX_EXTRA_CFLAGS += -I$(JDK_TOPDIR)/src/aix/porting
 317 endif
 318 
 319 $(eval $(call SetupJVMTIDemo,hprof, java_crw_demo, \
 320     -I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
 321     $(BUILD_LIBHPROF_AIX_EXTRA_CFLAGS), C, \
 322     -ldl, ws2_32.lib winmm.lib, -lsocket -lnsl, -lpthread, $(BUILD_LIBHPROF_AIX_EXTRA_SRC)))
 323 
 324 $(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo))
 325 $(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo))
 326 $(eval $(call SetupJVMTIDemo,waiters, agent_util, , C++))
 327 $(eval $(call SetupJVMTIDemo,versionCheck, agent_util))
 328 
 329 ##################################################################################################
 330 
 331 # The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes.
 332 # At least, we do not need to compile the jpda demo, just jar/zip up the sources.
 333 JPDA_SOURCES := $(call CacheFind, $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example)
 334 # The number of files are few enough so that we can use echo safely below to list them.
 335 JPDA_FILES := $(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
 336 
 337 $(JDK_OUTPUTDIR)/demo/jpda/src.zip: $(JPDA_SOURCES)
 338         $(MKDIR) -p $(@D)
 339         (cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
 340 
 341 $(JDK_OUTPUTDIR)/demo/jpda/examples.jar: $(JPDA_SOURCES)
 342         $(MKDIR) -p $(@D)