aboutsummaryrefslogtreecommitdiffstats
path: root/net/generic-nqs/Makefile
blob: c43eb2009bcb13efb0aa1449ef60b56b0f24e2b9 (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
137
138
139
140
141
142
# New ports collection makefile for:    nqs (Generic NQS)
# Date created:         01 May 1998
# Whom:                 tonym
#
# $FreeBSD$
#
# View this file with tabstop=4
#

PORTNAME=           Generic-NQS
PORTVERSION=        3.50.9
PORTREVISION=       2
CATEGORIES=         net
MASTER_SITES=       ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= fenner

MAINTAINER=     ports@FreeBSD.org
COMMENT=        Generic Network Queuing System

USE_BZIP2=      yes
IS_INTERACTIVE= yes
NO_PACKAGE=     have to build on site due to the descriptors created in\
                /var/spool/nqs (default location) and the configuration\
                procedure

#
# NQS gets configured, built and installed via its own SETUP script
#
# can call with --config, --compile or --install (in that order)
# and provided the previous steps have been done and it then goes thru
# everything from the called argument
#
# In order to fit in with the FreeBSD ports, modified SETUP so it has
# 3 new targets --fbconfig, --fbcompile, --fbinstall
# these differ in that they only do the current stage and *not* everything
# from there on in
#

HOSTNAME=   `uname -n`
RELEASE=    `uname -r | cut -d'-' -f 1`
HARDWARE=   `uname -m`

HAS_CONFIGURE=      yes
CONFIGURE_SCRIPT=   SETUP
CONFIGURE_ARGS=     --fbconfig

#
# In the files directory we have:
#

DUMMYMAKE=  Makefile
STARTUP=    nqs.sh
TEMPLATE=   i386-unknown-freebsd2.2.6

#
# We rename TEMPLATE (which is known to work for 2.2.6 up to and including
#   4.0 current Mar 07) to the release number of this machine.
# Maybe this is a mistake. NQS will auto generate a file from a similar
#   Platorm description file, but you would have to run make twice
#   in this case.
#

PLATFORMDIR=${WRKSRC}/SETUPDir/Platforms
PLATFORM=   ${HARDWARE}-unknown-freebsd${RELEASE}

#
# NQS configure generates a config file in
#   Build-Tree/${PLATFORM}/${HOSTNAME}/SETUP/General.h
# We can use this to extract what was actually configured such as
#   where the nqsdaemon resides. We just want the NQS_ROOTDIR
#   out of it for the post-install when we put in system startup file.
#

CONFIGFILE= ${WRKSRC}/Build-Tree/${PLATFORM}/${HOSTNAME}/SETUP/General.h
MANDIR=     ${WRKSRC}/Source-Tree/man/man1/all-systems
RCDIR=      ${PREFIX}/etc/rc.d
SYSINST=    ${SCRIPTDIR}/create-nqs-rc.sh
SYSLOGFIX=  ${SCRIPTDIR}/syslog-add.sh
PLISTFIX=   ${SCRIPTDIR}/fix-PLIST.mktmp.sh
CREATEQ=    ${SCRIPTDIR}/create-example-batch-queues

MAN1=       nmapmgr.1 nqs.1 nqsconfig.1 nqsgs.1 nqsrn.1\
            qacct.1 qalter.1 qcat.1 qcmplx.1 qdel.1 qdev.1\
            qhold.1 qjob.1 qlimit.1 qmgr.1m qmsg.1 qpr.1\
            qresume.1 qrls.1 qstat.1 qstatc.1 qsub.1 qsuspend.1
#
# Thus ends the definitions
#

#
# Ok get a working platform description file in there.
# We need a dummy top level Makefile as NQS will put its Makefile
# in Build-Tree/${PLATFORM}/${HOSTNAME}
# Need to have the SETUP scripts executable.
# Remove the dross *.man files qcat.man and list_nqs_queues.man
# Rename man page to fit BSD extensions
#

post-patch:
    @${MV} ${WRKSRC}/SETUPDir/GSetup-Scripts/GPort-Scripts/1020-Is-gcc.sh \
    ${WRKSRC}/SETUPDir/GSetup-Scripts/GPort-Scripts/1020-Is-gcc.sh.orig ; \
    ${SED} -e 's|-O6 -fno-strength-reduce|${CFLAGS}|' \
    ${WRKSRC}/SETUPDir/GSetup-Scripts/GPort-Scripts/1020-Is-gcc.sh.orig \
    > ${WRKSRC}/SETUPDir/GSetup-Scripts/GPort-Scripts/1020-Is-gcc.sh
    @${REINPLACE_CMD} -e 's#<malloc.h>#<stdlib.h>#;' `${FIND} ${WRKSRC} -type f`

pre-configure:
    @ ${SED} -e 's|XX_CFLAGS_XX|${CFLAGS}|' ${FILESDIR}/${TEMPLATE} > ${PLATFORMDIR}/${PLATFORM}; \
    ${CP}   ${FILESDIR}/${DUMMYMAKE} ${WRKSRC}; \
    ${CHMOD} 555 ${WRKSRC}/Source-Tree/SETUP/all-systems/*
    ${RM} -f ${MANDIR}/*.man ; \
    ${MV}   ${MANDIR}/nmapmgr.1m ${MANDIR}/nmapmgr.1

#
# Install system boot startup file but need to find out exactly where
#   the nqs stuff was installed as this is set in nqs' own install script
# Modify syslog.conf to handle nqs
#

post-install:
    @ ${STRIP_CMD} ${PREFIX}/sbin/loaddaemon    ${PREFIX}/sbin/finish_autoinst \
            ${PREFIX}/sbin/lpserver     ${PREFIX}/sbin/netclient \
            ${PREFIX}/sbin/netdaemon    ${PREFIX}/sbin/netserver \
            ${PREFIX}/sbin/nqsdaemon    ${PREFIX}/sbin/nqsexejob \
            ${PREFIX}/sbin/nqsmkdirs    ${PREFIX}/sbin/nqsmkfile \
            ${PREFIX}/sbin/nqsmktrans   ${PREFIX}/sbin/nqssetargv \
            ${PREFIX}/sbin/pipeclient   ${PREFIX}/sbin/shlexefai; \
    ${STRIP_CMD}    ${PREFIX}/bin/nmapmgr       ${PREFIX}/bin/qacct \
            ${PREFIX}/bin/qalter        ${PREFIX}/bin/qcat \
            ${PREFIX}/bin/qdel          ${PREFIX}/bin/qdev \
            ${PREFIX}/bin/qhold         ${PREFIX}/bin/qlimit \
            ${PREFIX}/bin/qmgr          ${PREFIX}/bin/qmsg \
            ${PREFIX}/bin/qpr           ${PREFIX}/bin/qrls \
            ${PREFIX}/bin/qstat         ${PREFIX}/bin/qsub \
            ${PREFIX}/bin/qsuspend; \
    ${SH} ${SYSINST} ${CONFIGFILE} ${FILESDIR}/${STARTUP} ${RCDIR}/${STARTUP}; \
    ${SH} ${SYSLOGFIX}; \
    ${SH} ${PLISTFIX} ${CONFIGFILE} ${WRKDIR}; \
    ${ECHO} "You may want run ${SH} ${CREATEQ} to actually make some queues"; \
    ${ECHO} ""

.include <bsd.port.mk>