Add files from parent branch HEAD:
[pkgsrc.git] / mk / java-env.mk
1 # $NetBSD: java-env.mk,v 1.2 2004/05/23 10:19:28 jmmv Exp $
2 #
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.
5 #
6 # The following variables can be defined in package Makefiles to tune the
7 # behavior of this file:
8 #
9 #       JAVA_CLASSPATH  Classpath that will be prepended on all invocations
10 #                       to this implementation.  Optional.
11 #
12 #       JAVA_HOME       Path to the directory holding the Java implementation.
13 #                       Required.
14 #
15 #       JAVA_NAME       Base name of the Java implementation.  This will be
16 #                       used as part of wrappers' names.  Required.
17 #
18 #       JAVA_UNLIMIT    List of resources to be unlimited at runtime.
19 #                       Can include any of cmdsize, datasize and stacksize.
20 #                       Optional.
21 #
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
26 #                       useless).
27 #
28
29 .if !defined(JAVA_ENV_MK)
30 JAVA_ENV_MK=            # defined
31
32 JAVA_NAME?=             # undefined
33 JAVA_HOME?=             # undefined
34 JAVA_CLASSPATH?=        # empty
35 JAVA_UNLIMIT?=          # empty
36 JAVA_WRAPPERS?=         # empty
37
38 .if !empty(JAVA_WRAPPERS)
39 INSTALLATION_DIRS+=     bin
40 .endif
41
42 .for w in ${JAVA_WRAPPERS}
43
44 JAVA_WRAPPER_BIN.${w}?= ${JAVA_HOME}/bin/${w}
45
46 post-build:             ${WRKDIR}/${w}
47
48 .PHONY:                 install-java-wrapper-${w}
49 post-install:           install-java-wrapper-${w}
50
51 .  if !target(${WRKDIR}/${w})
52 ${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' \
60                 >>${WRKDIR}/${w}
61 .    endif
62 .    for f in ${JAVA_UNLIMIT}
63         @${ECHO} '${ULIMIT_CMD_${f}}' >>${WRKDIR}/${w}
64 .    endfor
65 .    undef f
66         @${ECHO} '${JAVA_WRAPPER_BIN.${w}} "$$@"' >>${WRKDIR}/${w}
67 .  endif
68
69 install-java-wrapper-${w}:
70         ${INSTALL_SCRIPT} ${WRKDIR}/${w} ${PREFIX}/bin/${JAVA_NAME}-${w}
71
72 .endfor
73 .undef w
74
75 # Handle the ${PREFIX}/java shared directory automatically.
76 USE_PKGINSTALL=         YES
77 MAKE_DIRS+=             ${PREFIX}/java
78 PRINT_PLIST_AWK+=       /^@dirrm java$$/ { next; }
79
80 .endif  # JAVA_ENV_MK