aboutsummaryrefslogtreecommitdiffstats
path: root/www/jakarta-tomcat4/Makefile
blob: f6b3c8f87c76076a6ecc952d075bc05567a64d96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# New ports collection makefile for:    jakarta-tomcat
# Date created:     20 Oct 2000
# Whom:         des
#
# $FreeBSD$
#

PORTNAME=   jakarta-tomcat
PORTVERSION=    3.2.4
PORTREVISION=   2
CATEGORIES= www java
MASTER_SITES=   http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
        http://www.metaverse.nl/~ernst/ \
        ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= znerd

MAINTAINER= znerd@FreeBSD.org

RUN_DEPENDS=    ${JAVA_HOME}/bin/javac:${JAVA_PORT}

NO_BUILD=   YES

WRKSRC=     ${WRKDIR}/${PORTNAME}-${PORTVERSION}
APP_HOME?=  ${PREFIX}/${PKGBASE}${PORTVERSION}
LOG_DIR=    ${APP_HOME}/logs
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///}
APP_TITLE=  Jakarta Tomcat
APP_SHORTNAME=  tomcat
CONTROL_SCRIPT_NAME=    ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
JAVA_PORT?= ${PORTSDIR}/java/jdk13
USER_NAME=  www
GROUP_NAME= www
PW?=        /usr/sbin/pw
LISTEN_PORT?=   8080
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?=    NO

pre-install:
    @${ECHO_CMD} "Installation settings:"
    @${ECHO_CMD} "   Destination directory:   ${APP_HOME}"
    @${ECHO_CMD} "   Control script location: ${CONTROL_SCRIPT}"
    @${ECHO_CMD} "   Startup script location: ${STARTUP_SCRIPT}"
    @${ECHO_CMD} "   Location of JDK:         ${JAVA_HOME}"
    @${ECHO_CMD} "   Location of Java port:   ${JAVA_PORT}"
    @${ECHO_CMD} "   Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
    @${ECHO_CMD} "   Port to listen at:       ${LISTEN_PORT}"
    @${ECHO_CMD} "   Logfile stdout:          ${STDOUT_LOG}"
    @${ECHO_CMD} "   Logfile stderr:          ${STDERR_LOG}"
    @${ECHO_CMD} "   Starting after install:  ${AUTO_START}"

do-install:
    @# Create the destination directory
    ${MKDIR} ${APP_HOME}

    @# Copy all files except .bat and .orig files
    ${RM} -f `${FIND} ${WRKSRC} -name '*.bat'`
    ${RM} -f `${FIND} ${WRKSRC} -name '*.orig'`
    ${CP} -R ${WRKSRC}/* ${APP_HOME}
    ${CHMOD} 755 `find ${APP_HOME} -type d`

    @# Install the workers.properties file after processing it
    ${CAT} ${WRKSRC}/conf/workers.properties \
    | ${SED} "/%%TOMCAT_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
    | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
    > ${WRKDIR}/workers.properties
    ${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties

    @# Install the startup script
    ${CAT} ${FILESDIR}/${PORTNAME}.sh \
    | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
    | ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
    | ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
    > ${STARTUP_SCRIPT}
    ${CHMOD} 0554 ${STARTUP_SCRIPT}

    @# Install the control script
    ${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
    | ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
    | ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
    | ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
    | ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
    | ${SED} "/%%LOG_DIR%%/s//${LOG_DIR:S/\//\\\//g}/" \
    | ${SED} "/%%STARTUP_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \
    | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
    | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
    | ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
    | ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
    > ${CONTROL_SCRIPT}
    ${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
    ${CHMOD} 6554 ${CONTROL_SCRIPT}

    @# Create the directories that the application will create at the
    @# first run
    ${MKDIR} ${LOG_DIR}
    ${CHMOD} 6775 ${LOG_DIR}

    @# Install the server.xml file after processing it
    ${CAT} ${WRKSRC}/conf/server.xml \
    | ${SED} "/%%LISTEN_PORT%%/s//${LISTEN_PORT}/" \
    > ${WRKDIR}/server.xml
    ${MV} ${WRKDIR}/server.xml ${APP_HOME}/conf/server.xml

    @# Change ownership for the files
    ${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${APP_HOME}

    @# Change the execute permissions for all shell scripts
    ${CHMOD} 0554 ${APP_HOME}/bin/*

    @# Install the man page
.if !defined(NOPORTDOCS)
    ${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
    | ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
    | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
    | ${SED} "/%%CONTROL_SCRIPT_NAME%%/s//${CONTROL_SCRIPT_NAME}/" \
    | ${SED} "/%%STARTUP_ORDER%%/s//${STARTUP_ORDER}.sh/" \
    > ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
    ${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
.endif

post-install:
    @${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
    @${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
.if !defined(NOPORTDOCS)
    @${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
    @${ECHO_CMD} "Starting ${APP_TITLE}..."
    @${CONTROL_SCRIPT} start || true
.endif

.include <bsd.port.mk>