1 # $NetBSD: java-env.mk,v 1.2 2004/05/23 10:19:28 jmmv Exp $
3 # This Makefile fragment handles Java wrappers and is meant to be included
4 # by packages that provide a Java build-time and/or run-time environment.
6 # The following variables can be defined in package Makefiles to tune the
7 # behavior of this file:
9 # JAVA_CLASSPATH Classpath that will be prepended on all invocations
10 # to this implementation. Optional.
12 # JAVA_HOME Path to the directory holding the Java implementation.
15 # JAVA_NAME Base name of the Java implementation. This will be
16 # used as part of wrappers' names. Required.
18 # JAVA_UNLIMIT List of resources to be unlimited at runtime.
19 # Can include any of cmdsize, datasize and stacksize.
22 # JAVA_WRAPPERS List of wrappers to be created under ${PREFIX}/bin,
23 # pointing to binaries under ${JAVA_HOME}/bin. The
24 # names must match files in the later directory.
25 # Required (if empty, the inclusion of this file is
29 .if !defined(JAVA_ENV_MK)
30 JAVA_ENV_MK= # defined
32 JAVA_NAME?= # undefined
33 JAVA_HOME?= # undefined
34 JAVA_CLASSPATH?= # empty
35 JAVA_UNLIMIT?= # empty
36 JAVA_WRAPPERS?= # empty
38 .if !empty(JAVA_WRAPPERS)
39 INSTALLATION_DIRS+= bin
42 .for w in ${JAVA_WRAPPERS}
44 JAVA_WRAPPER_BIN.${w}?= ${JAVA_HOME}/bin/${w}
46 post-build: ${WRKDIR}/${w}
48 .PHONY: install-java-wrapper-${w}
49 post-install: install-java-wrapper-${w}
51 . if !target(${WRKDIR}/${w})
53 @${ECHO} 'Generating ${w} wrapper...'
54 @${ECHO} '#! ${SH}' >${WRKDIR}/${w}
55 @${ECHO} 'PATH=${JAVA_HOME}/bin:$${PATH}; export PATH' >>${WRKDIR}/${w}
56 @${ECHO} 'JAVA_HOME=${JAVA_HOME}; export JAVA_HOME' >>${WRKDIR}/${w}
57 @${ECHO} 'JVM_HOME=${JAVA_HOME}; export JVM_HOME' >>${WRKDIR}/${w}
58 . if !empty(JAVA_CLASSPATH)
59 @${ECHO} 'CLASSPATH=${JAVA_CLASSPATH}:$${CLASSPATH}; export CLASSPATH' \
62 . for f in ${JAVA_UNLIMIT}
63 @${ECHO} '${ULIMIT_CMD_${f}}' >>${WRKDIR}/${w}
66 @${ECHO} '${JAVA_WRAPPER_BIN.${w}} "$$@"' >>${WRKDIR}/${w}
69 install-java-wrapper-${w}:
70 ${INSTALL_SCRIPT} ${WRKDIR}/${w} ${PREFIX}/bin/${JAVA_NAME}-${w}
75 # Handle the ${PREFIX}/java shared directory automatically.
77 MAKE_DIRS+= ${PREFIX}/java
78 PRINT_PLIST_AWK+= /^@dirrm java$$/ { next; }