48 # vm.make - to support making "$(MAKE) -v vm.make" in makefiles |
48 # vm.make - to support making "$(MAKE) -v vm.make" in makefiles |
49 # adlc.make - |
49 # adlc.make - |
50 # jvmti.make - generate JVMTI bindings from the spec (JSR-163) |
50 # jvmti.make - generate JVMTI bindings from the spec (JSR-163) |
51 # sa.make - generate SA jar file and natives |
51 # sa.make - generate SA jar file and natives |
52 # env.[ck]sh - environment settings |
52 # env.[ck]sh - environment settings |
53 # test_gamma - script to run the Queens program |
|
54 # |
53 # |
55 # The makefiles are split this way so that "make foo" will run faster by not |
54 # The makefiles are split this way so that "make foo" will run faster by not |
56 # having to read the dependency files for the vm. |
55 # having to read the dependency files for the vm. |
57 |
56 |
58 -include $(SPEC) |
57 -include $(SPEC) |
59 include $(GAMMADIR)/make/scm.make |
58 include $(GAMMADIR)/make/scm.make |
|
59 include $(GAMMADIR)/make/defs.make |
60 include $(GAMMADIR)/make/altsrc.make |
60 include $(GAMMADIR)/make/altsrc.make |
|
61 |
61 |
62 |
62 # 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details. |
63 # 'gmake MAKE_VERBOSE=y' or 'gmake QUIETLY=' gives all the gory details. |
63 QUIETLY$(MAKE_VERBOSE) = @ |
64 QUIETLY$(MAKE_VERBOSE) = @ |
64 |
|
65 # For now, until the compiler is less wobbly: |
|
66 TESTFLAGS = -Xbatch -Xmx32m -showversion |
|
67 |
65 |
68 ### maye ARCH_XXX instead? |
66 ### maye ARCH_XXX instead? |
69 ifdef USE_GCC |
67 ifdef USE_GCC |
70 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).gcc |
68 PLATFORM_FILE = $(GAMMADIR)/make/$(OS_FAMILY)/platform_$(BUILDARCH).gcc |
71 GCC_LIB = /usr/local/lib |
69 GCC_LIB = /usr/local/lib |
332 |
330 |
333 env.sh: $(BUILDTREE_MAKE) |
331 env.sh: $(BUILDTREE_MAKE) |
334 @echo Creating $@ ... |
332 @echo Creating $@ ... |
335 $(QUIETLY) ( \ |
333 $(QUIETLY) ( \ |
336 $(BUILDTREE_COMMENT); \ |
334 $(BUILDTREE_COMMENT); \ |
337 [ -n "$$JAVA_HOME" ] && { echo ": \$${JAVA_HOME:=$${JAVA_HOME}}"; }; \ |
335 { echo "JAVA_HOME=$(JDK_IMPORT_PATH)"; }; \ |
338 { \ |
336 { \ |
339 echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \ |
337 echo "CLASSPATH=$${CLASSPATH:+$$CLASSPATH:}.:\$${JAVA_HOME}/jre/lib/rt.jar:\$${JAVA_HOME}/jre/lib/i18n.jar"; \ |
340 } | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \ |
338 } | sed s:$${JAVA_HOME:--------}:\$${JAVA_HOME}:g; \ |
341 echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \ |
339 echo "HOTSPOT_BUILD_USER=\"$${LOGNAME:-$$USER} in `basename $(GAMMADIR)`\""; \ |
342 echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \ |
340 echo "export JAVA_HOME LD_LIBRARY_PATH CLASSPATH HOTSPOT_BUILD_USER"; \ |
344 |
342 |
345 env.csh: env.sh |
343 env.csh: env.sh |
346 @echo Creating $@ ... |
344 @echo Creating $@ ... |
347 $(QUIETLY) ( \ |
345 $(QUIETLY) ( \ |
348 $(BUILDTREE_COMMENT); \ |
346 $(BUILDTREE_COMMENT); \ |
349 [ -n "$$JAVA_HOME" ] && \ |
347 { echo "setenv JAVA_HOME \"$(JDK_IMPORT_PATH)\""; }; \ |
350 { echo "if (! \$$?JAVA_HOME) setenv JAVA_HOME \"$$JAVA_HOME\""; }; \ |
|
351 sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \ |
348 sed -n 's/^\([A-Za-z_][A-Za-z0-9_]*\)=/setenv \1 /p' $?; \ |
352 ) > $@ |
349 ) > $@ |
353 |
350 |
354 jdkpath.sh: $(BUILDTREE_MAKE) |
351 jdkpath.sh: $(BUILDTREE_MAKE) |
355 @echo Creating $@ ... |
352 @echo Creating $@ ... |
356 $(QUIETLY) ( \ |
353 $(QUIETLY) ( \ |
357 $(BUILDTREE_COMMENT); \ |
354 $(BUILDTREE_COMMENT); \ |
358 echo "JDK=${JAVA_HOME}"; \ |
355 echo "JDK=${JAVA_HOME}"; \ |
359 ) > $@ |
356 ) > $@ |
360 |
357 |
361 .dbxrc: $(BUILDTREE_MAKE) |
|
362 @echo Creating $@ ... |
|
363 $(QUIETLY) ( \ |
|
364 echo "echo '# Loading $(PLATFORM_DIR)/$(TARGET)/.dbxrc'"; \ |
|
365 echo "if [ -f \"\$${HOTSPOT_DBXWARE}\" ]"; \ |
|
366 echo "then"; \ |
|
367 echo " source \"\$${HOTSPOT_DBXWARE}\""; \ |
|
368 echo "elif [ -f \"\$$HOME/.dbxrc\" ]"; \ |
|
369 echo "then"; \ |
|
370 echo " source \"\$$HOME/.dbxrc\""; \ |
|
371 echo "fi"; \ |
|
372 ) > $@ |
|
373 |
|
374 # Skip the test for product builds (which only work when installed in a JDK), to |
|
375 # avoid exiting with an error and causing make to halt. |
|
376 NO_TEST_MSG = \ |
|
377 echo "$@: skipping the test--this build must be tested in a JDK." |
|
378 |
|
379 NO_JAVA_HOME_MSG = \ |
|
380 echo "JAVA_HOME must be set to run this test." |
|
381 |
|
382 DATA_MODE = $(DATA_MODE/$(BUILDARCH)) |
|
383 JAVA_FLAG = $(JAVA_FLAG/$(DATA_MODE)) |
|
384 |
|
385 DATA_MODE/i486 = 32 |
|
386 DATA_MODE/sparc = 32 |
|
387 DATA_MODE/sparcv9 = 64 |
|
388 DATA_MODE/amd64 = 64 |
|
389 DATA_MODE/ia64 = 64 |
|
390 |
|
391 # This bit is needed to enable local rebuilds. |
|
392 # Unless the makefile itself sets LP64, any environmental |
|
393 # setting of LP64 will interfere with the build. |
|
394 LP64_SETTING/32 = LP64 = \#empty |
|
395 LP64_SETTING/64 = LP64 = 1 |
|
396 |
|
397 JAVA_FLAG/32 = -d32 |
|
398 JAVA_FLAG/64 = -d64 |
|
399 |
|
400 WRONG_DATA_MODE_MSG = \ |
|
401 echo "JAVA_HOME must point to a $(DATA_MODE)-bit OpenJDK." |
|
402 |
|
403 CROSS_COMPILING_MSG = \ |
|
404 echo "Cross compiling for ARCH $(CROSS_COMPILE_ARCH), skipping gamma run." |
|
405 |
|
406 test_gamma: $(BUILDTREE_MAKE) $(GAMMADIR)/make/test/Queens.java |
|
407 @echo Creating $@ ... |
|
408 $(QUIETLY) ( \ |
|
409 echo "#!/bin/sh"; \ |
|
410 echo ""; \ |
|
411 $(BUILDTREE_COMMENT); \ |
|
412 echo ""; \ |
|
413 echo "# Include environment settings for gamma run"; \ |
|
414 echo ""; \ |
|
415 echo ". ./env.sh"; \ |
|
416 echo ""; \ |
|
417 echo "# Do not run gamma test for cross compiles"; \ |
|
418 echo ""; \ |
|
419 echo "if [ -n \"$(CROSS_COMPILE_ARCH)\" ]; then "; \ |
|
420 echo " $(CROSS_COMPILING_MSG)"; \ |
|
421 echo " exit 0"; \ |
|
422 echo "fi"; \ |
|
423 echo ""; \ |
|
424 echo "# Make sure JAVA_HOME is set as it is required for gamma"; \ |
|
425 echo ""; \ |
|
426 echo "if [ -z \"\$${JAVA_HOME}\" ]; then "; \ |
|
427 echo " $(NO_JAVA_HOME_MSG)"; \ |
|
428 echo " exit 0"; \ |
|
429 echo "fi"; \ |
|
430 echo ""; \ |
|
431 echo "# Check JAVA_HOME version to be used for the test"; \ |
|
432 echo ""; \ |
|
433 echo "\$${JAVA_HOME}/bin/java $(JAVA_FLAG) -fullversion > /dev/null 2>&1"; \ |
|
434 echo "if [ \$$? -ne 0 ]; then "; \ |
|
435 echo " $(WRONG_DATA_MODE_MSG)"; \ |
|
436 echo " exit 0"; \ |
|
437 echo "fi"; \ |
|
438 echo ""; \ |
|
439 echo "GAMMA_PROG=gamma"; \ |
|
440 echo ""; \ |
|
441 echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ |
|
442 echo " # Ensure architecture for gamma and JAVA_HOME is the same."; \ |
|
443 echo " # NOTE: gamma assumes the OpenJDK directory layout."; \ |
|
444 echo ""; \ |
|
445 echo " GAMMA_ARCH=\"\`file \$${GAMMA_PROG} | awk '{print \$$NF}'\`\""; \ |
|
446 echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/libjava.$(LIBRARY_SUFFIX)\""; \ |
|
447 echo " if [ ! -f \$${JVM_LIB} ]; then"; \ |
|
448 echo " JVM_LIB=\"\$${JAVA_HOME}/jre/lib/$${LIBARCH}/libjava.$(LIBRARY_SUFFIX)\""; \ |
|
449 echo " fi"; \ |
|
450 echo " if [ ! -f \$${JVM_LIB} ] || [ -z \"\`file \$${JVM_LIB} | grep \$${GAMMA_ARCH}\`\" ]; then "; \ |
|
451 echo " $(WRONG_DATA_MODE_MSG)"; \ |
|
452 echo " exit 0"; \ |
|
453 echo " fi"; \ |
|
454 echo "fi"; \ |
|
455 echo ""; \ |
|
456 echo "# Compile Queens program for test"; \ |
|
457 echo ""; \ |
|
458 echo "rm -f Queens.class"; \ |
|
459 echo "\$${JAVA_HOME}/bin/javac -d . $(GAMMADIR)/make/test/Queens.java"; \ |
|
460 echo ""; \ |
|
461 echo "# Set library path solely for gamma launcher test run"; \ |
|
462 echo ""; \ |
|
463 echo "LD_LIBRARY_PATH=.:$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ |
|
464 echo "export LD_LIBRARY_PATH"; \ |
|
465 echo "unset LD_LIBRARY_PATH_32"; \ |
|
466 echo "unset LD_LIBRARY_PATH_64"; \ |
|
467 echo ""; \ |
|
468 echo "if [ \"$(OS_VENDOR)\" = \"Darwin\" ]; then "; \ |
|
469 echo " DYLD_LIBRARY_PATH=.:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/native_threads:\$${JAVA_HOME}/jre/lib:$${DYLD_LIBRARY_PATH:+$$DYLD_LIBRARY_PATH:}\$${JAVA_HOME}/jre/lib/${LIBARCH}/native_threads:\$${JAVA_HOME}/jre/lib/${LIBARCH}:${GCC_LIB}"; \ |
|
470 echo " export DYLD_LIBRARY_PATH"; \ |
|
471 echo "fi"; \ |
|
472 echo ""; \ |
|
473 echo "# Use the gamma launcher and JAVA_HOME to run the test"; \ |
|
474 echo ""; \ |
|
475 echo "./\$${GAMMA_PROG} $(TESTFLAGS) Queens < /dev/null"; \ |
|
476 ) > $@ |
|
477 $(QUIETLY) chmod +x $@ |
|
478 |
|
479 FORCE: |
358 FORCE: |
480 |
359 |
481 .PHONY: all FORCE |
360 .PHONY: all FORCE |