Update to version 0.3.4
[pkgsrcv2.git] / sysutils / xentools3 / Makefile
1 # $NetBSD: Makefile,v 1.21 2010/02/10 19:17:45 joerg Exp $
2 #
3
4 VERSION=                3.1.4
5 DISTNAME=               xen-${VERSION}
6 PKGNAME=                xentools3-${VERSION}
7 PKGREVISION=            6
8 CATEGORIES=             sysutils
9 MASTER_SITES=   http://bits.xensource.com/oss-xen/release/${VERSION}/
10 EXTRACT_SUFX=           .tar.gz
11
12 MAINTAINER=             bouyer@NetBSD.org
13 HOMEPAGE=               http://xen.org/
14 COMMENT=                Userland Tools for Xen
15
16 PKG_DESTDIR_SUPPORT=    user-destdir
17
18 #DEPENDS+=              ${PYPKGPREFIX}-twisted-[0-9]*:../../net/py-twisted
19 DEPENDS+=               ${PYPKGPREFIX}-readline-[0-9]*:../../devel/py-readline
20
21 MAKE_JOBS_SAFE=         no
22
23 PKG_SYSCONFSUBDIR=      xen
24
25 ONLY_FOR_PLATFORM=      Linux-2.[46]*-i386 Linux-2.[46]*-x86_64
26 ONLY_FOR_PLATFORM+=     NetBSD-*-i386 NetBSD-*-x86_64
27
28 CONFLICTS+=             libxen-[0-9]*
29 CONFLICTS+=             xentools20-[0-9]*
30 CONFLICTS+=             xentools30-* xentools33-*
31
32 WRKSRC=                 ${WRKDIR}/xen-${VERSION}/tools
33 CHECK_PORTABILITY_SKIP= examples/* xm-test/ramdisk/make-release.sh
34
35 EGDIR=                  ${PREFIX}/share/examples/xen
36 MESSAGE_SUBST=          EGDIR=${EGDIR}
37
38 USE_TOOLS+=             perl    #for pod2man
39 USE_TOOLS+=             gmake
40 MAKE_ENV+=              CONFIG_NetBSD=yes
41 MAKE_ENV+=              CONFIG_MBOOTPACK=no
42 MAKE_ENV+=              EGDIR=${EGDIR:Q}
43 MAKE_ENV+=              MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
44 .if ${MACHINE_ARCH} == "i386"
45 MAKE_ENV+=              XEN_TARGET_ARCH="x86_32" XEN_COMPILE_ARCH="x86_32"
46 .elif  ${MACHINE_ARCH} == "x86_64"
47 MAKE_ENV+=              XEN_TARGET_ARCH="x86_64" XEN_COMPILE_ARCH="x86_64"
48 .else
49 MAKE_ENV+=              XEN_TARGET_ARCH="unsupported"
50 .endif
51 PY_PATCHPLIST=          yes
52 PYTHON_PATCH_SCRIPTS+=  misc/xm
53 PYTHON_PATCH_SCRIPTS+=  misc/netfix
54 PYTHON_PATCH_SCRIPTS+=  misc/xen-bugtool
55 PYTHON_PATCH_SCRIPTS+=  misc/xencons
56 PYTHON_PATCH_SCRIPTS+=  misc/xend
57 PYTHON_PATCH_SCRIPTS+=  misc/xensymoops
58 PYTHON_PATCH_SCRIPTS+=  misc/xen-python-path
59 PYTHON_PATCH_SCRIPTS+=  pygrub/src/pygrub
60 PYTHON_PATCH_SCRIPTS+=  python/xen/util/*.py
61 PYTHON_PATCH_SCRIPTS+=  python/xen/xend/*.py
62 PYTHON_PATCH_SCRIPTS+=  python/xen/xm/*.py
63 PYTHON_PATCH_SCRIPTS+=  python/xen/util/*.py
64 PYTHON_PATCH_SCRIPTS+=  python/*.py
65 PYTHON_PATCH_SCRIPTS+=  security/python/xensec_gen/cgi-bin/policy.cgi
66 PYTHON_PATCH_SCRIPTS+=  security/python/xensec_gen/*.py
67 PYTHON_PATCH_SCRIPTS+=  security/python/*.py
68 PYTHON_PATCH_SCRIPTS+=  security/*.py
69 PYTHON_PATCH_SCRIPTS+=  xenmon/*.py
70 PYTHON_PATCH_SCRIPTS+=  xentrace/xentrace_format
71
72 SUBST_CLASSES+=         paths
73 SUBST_STAGE.paths=      pre-configure
74 SUBST_FILES.paths=      ioemu/vl.c
75 SUBST_SED.paths=        -e "s|/usr/sbin|${PREFIX}/sbin|g"
76 SUBST_MESSAGE.paths=    Fixing hardcoded paths.
77
78 SUBST_CLASSES+=         pathsvar
79 SUBST_STAGE.pathsvar=   pre-configure
80 SUBST_FILES.pathsvar=   examples/init.d/sysconfig.xendomains \
81                         examples/xend-config.sxp \
82                         python/xen/xend/server/relocate.py \
83                         python/xen/xend/XendOptions.py \
84                         security/Makefile security/python/xensec_gen/main.py \
85                         xenstore/xs_lib.c
86 SUBST_SED.pathsvar=     -e "s|/var/lib|${VARBASE}/run|g"
87
88 SUBST_CLASSES+=         py
89 SUBST_STAGE.py=         pre-configure
90 SUBST_FILES.py=         pygrub/Makefile
91 SUBST_FILES.py+=        python/Makefile
92 SUBST_FILES.py+=        security/Makefile
93 SUBST_FILES.py+=        ../xen/include/public/foreign/Makefile
94 SUBST_SED.py=           -e "s,python,${PYTHONBIN},g"
95
96 SUBST_CLASSES+=         conf
97 SUBST_STAGE.conf=       pre-configure
98 SUBST_FILES.conf=       python/xen/xend/XendOptions.py
99 SUBST_FILES.conf+=      python/xen/xend/osdep.py
100 SUBST_FILES.conf+=      python/xen/xm/create.py
101 SUBST_FILES.conf+=      python/xen/xm/addlabel.py
102 SUBST_FILES.conf+=      python/xen/xm/getlabel.py
103 SUBST_FILES.conf+=      python/xen/xm/rmlabel.py
104 SUBST_SED.conf=         -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g"
105
106 SUBST_CLASSES+=         prefix
107 SUBST_STAGE.prefix=     pre-configure
108 SUBST_FILES.prefix=     python/xen/util/auxbin.py
109 SUBST_FILES.prefix+=    python/xen/xend/osdep.py
110 SUBST_FILES.prefix+=    misc/xen-python-path
111 SUBST_SED.prefix=       -e "s,@PREFIX@,${PREFIX},g"
112
113 .include "../../mk/bsd.prefs.mk"
114
115 .if ${OPSYS} == "NetBSD"
116 SUBST_CLASSES+=         proc
117 SUBST_STAGE.proc=       pre-configure
118 SUBST_FILES.proc=       python/xen/xend/XendVnet.py
119 SUBST_FILES.proc+=      xenstore/xs_lib.c
120 SUBST_SED.proc=         -e "s|/proc|/kern|g"
121 PROCPATH=               /kern
122 .else
123 PROCPATH=               /proc
124 .endif
125
126 RCD_SCRIPTS=            xend xenbackendd xendomains
127 FILES_SUBST+=           RCD_INTERPRETER=${PYTHONBIN:Q}
128 FILES_SUBST+=           PROCPATH=${PROCPATH:Q}
129 FILES_SUBST+=           PKG_SYSCONFDIR=${PKG_SYSCONFDIR:Q}
130
131 XEND_SCRIPTS=           block vif-bridge vif-ip
132
133 CONF_FILES=             ${EGDIR}/xend-config.sxp \
134                         ${PKG_SYSCONFDIR}/xend-config.sxp
135 .for s in ${XEND_SCRIPTS}
136 CONF_FILES_PERMS+=      ${EGDIR}/${s} ${PKG_SYSCONFDIR}/scripts/${s}    \
137                         ${REAL_ROOT_USER} ${REAL_ROOT_GROUP} 0755
138 .endfor
139
140 OWN_DIRS=               ${PKG_SYSCONFDIR}/scripts /var/log/xen
141
142 pre-build:
143 .if !exists(/usr/include/xen/xenio.h)
144         ${MKDIR} ${WRKSRC}/libxc/xen
145         ${TEST} -f ${WRKSRC}/libxc/xen/xenio.h || \
146                 ${CP} ${FILESDIR}/xenio.h ${WRKSRC}/libxc/xen
147         ${TEST} -f ${WRKSRC}/libxc/xen/xenio3.h || \
148                 ${CP} ${FILESDIR}/xenio3.h ${WRKSRC}/libxc/xen
149 .endif
150         ${CP} ${FILESDIR}/NetBSD.mk ${WRKSRC}/../config/
151         pod2man ${WRKSRC}/../docs/man/xend-config.sxp.pod.5  |\
152             sed -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
153             >${WRKDIR}/xend-config.sxp.5
154         pod2man ${WRKSRC}/../docs/man/xmdomain.cfg.pod.5 |\
155             sed -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
156             >${WRKDIR}/xmdomain.cfg.5
157         pod2man ${WRKSRC}/../docs/man/xm.pod.1 |\
158             sed -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
159             >${WRKDIR}/xm.1
160
161 .if ${OPSYS} == "NetBSD"
162 post-build:
163         cd ${FILESDIR}; for src in *-nbsd; do                           \
164                 dst="$${src%-nbsd}";                                    \
165                 ${SED}  -e "s|@PKG_SYSCONFDIR@|${PKG_SYSCONFDIR}|g"     \
166                         -e "s|@PREFIX@|${PREFIX}|g"                     \
167                         $$src > ${WRKSRC}/examples/$$dst;               \
168         done
169         ${CC} ${CFLAGS}  ${LDFLAGS} \
170             -DVBD_SCRIPT=\"${PKG_SYSCONFDIR}/scripts/block\" \
171             -DLOG_FILE=\"${VARBASE}/log/xenbackendd.log\" \
172             -DPID_FILE=\"${VARBASE}/run/xenbackendd.pid\" \
173             -o ${WRKDIR}/xenbackendd.bin ${FILESDIR}/xenbackendd.c \
174             -I${WRKSRC}/libxc -L${WRKSRC}/libxc \
175             -I${WRKSRC}/xenstore -L${WRKSRC}/xenstore \
176             -lxenctrl -lxenstore
177
178 .endif
179
180 INSTALLATION_DIRS=      ${PKGMANDIR}/man1 ${PKGMANDIR}/man5 ${EGDIR}
181
182 post-install:
183         ${INSTALL_PROGRAM} ${WRKDIR}/xenbackendd.bin ${DESTDIR}${PREFIX}/sbin/xenbackendd
184         for f in xend-config.sxp xmexample1 xmexample2 xmexample3 netbsd1; do \
185                 ${INSTALL_DATA} ${WRKSRC}/examples/$$f ${DESTDIR}${EGDIR}/$$f;  \
186         done
187 .for s in ${XEND_SCRIPTS}
188         ${INSTALL_SCRIPT} ${WRKSRC}/examples/${s} ${DESTDIR}${EGDIR}/${s}
189 .endfor
190         ${RM} -rf ${DESTDIR}${PREFIX}/lib/xen
191         ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
192         ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
193         ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
194
195 .include "../../lang/python/application.mk"
196 .include "../../lang/python/extension.mk"
197 .include "../../textproc/py-xml/buildlink3.mk"
198 #.include "../../devel/zlib/buildlink3.mk"
199 #.include "../../www/curl/buildlink3.mk"
200 .include "../../devel/py-curses/buildlink3.mk"
201 .include "../../devel/ncurses/buildlink3.mk"
202
203 .include "../../mk/bsd.pkg.mk"