aboutsummaryrefslogtreecommitdiff
path: root/sysutils/openipmi/Makefile
blob: 75fed09801ea9c41a28773e1008d02a2de77212d (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
# Created by: Alex Deiter <alex.deiter@gmail.com>
# $FreeBSD$

PORTNAME=	openipmi
PORTVERSION=	2.0.28
CATEGORIES=	sysutils
MASTER_SITES=	SF/${PORTNAME}/OpenIPMI%202.0%20Library
DISTNAME=	OpenIPMI-${PORTVERSION}

MAINTAINER=	egypcio@FreeBSD.org
COMMENT=	Complex IPMI management software

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libpopt.so:devel/popt

USES=		gmake libtool localbase:ldflags ncurses pathfix \
		pkgconfig readline
USE_LDCONFIG=	yes

GNU_CONFIGURE=	yes
INSTALL_TARGET=	install-strip

OPTIONS_DEFINE=	GDBM GLIB20 PERL PYTHON SNMP SSL TCL TKINTER
TKINTER_IMPLIES=	PYTHON

SSL_DESC=	IPMI 2.0 RMCP+ encryption and authentication
SNMP_DESC=	SNMP trap support for the sample programs
PERL_DESC=	Perl interface for OpenIPMI library
PYTHON_DESC=	Python interface for OpenIPMI library
TCL_DESC=	TCL interface for OpenIPMI library
TKINTER_DESC=	GUI for OpenIPMI, written in Python
GDBM_DESC=	Local SDR caching on startup
GLIB20_DESC=	Simply OS handler for glib 2.0

.include <bsd.port.options.mk>

.if exists(${LOCALBASE}/lib/libgdbm.so.3)
PORT_OPTIONS+=	GDBM
.endif

.if ${PORT_OPTIONS:MSNMP}
PORT_OPTIONS+=		SSL
LIB_DEPENDS+=		libnetsnmp.so:net-mgmt/net-snmp
CONFIGURE_ARGS+=	--with-ucdsnmp=${LOCALBASE}
.else
CONFIGURE_ARGS+=	--with-ucdsnmp=no
.endif

.if ${PORT_OPTIONS:MSSL}
USES+=	ssl
CONFIGURE_ARGS+=	--with-openssl=${OPENSSLBASE}
.else
CONFIGURE_ARGS+=	--with-openssl=no
.endif

.if ${PORT_OPTIONS:MTKINTER}
USES+=			shebangfix
SHEBANG_FILES=		swig/python/openipmigui.py
BUILD_DEPENDS+=		${PYTHON_PKGNAMEPREFIX}tkinter>0:x11-toolkits/py-tkinter@${PY_FLAVOR} \
			${LOCALBASE}/lib/Tix8.4.3/Tix.tcl:x11-toolkits/tix
CONFIGURE_ARGS+=	--with-tkinter
PLIST_SUB+=		TKINTER=""
.else
CONFIGURE_ARGS+=	--with-tkinter=no
PLIST_SUB+=		TKINTER="@comment "
.endif

.if ${PORT_OPTIONS:MPERL}
WITH_SWIG=		yes
USES+=			perl5
CONFIGURE_ARGS+=	--with-perl ac_cv_path_perlprog=${PERL}
LDFLAGS+=		-L${SITE_ARCH}
LIBS+=			-L${SITE_ARCH}
PLIST_SUB+=		OIPMIPERL=""
EXTRA_PATCHES+=		${PATCHDIR}/extra-patch-swig_perl_Makefile.in
.else
CONFIGURE_ARGS+=	--with-perl=no
PLIST_SUB+=		OIPMIPERL="@comment "
.endif

.if ${PORT_OPTIONS:MPYTHON}
USES+=			python
USE_PYTHON=		py3kplist
CONFIGURE_ARGS+=	--with-python --with-swig
CONFIGURE_ENV+=	ac_cv_path_pythonprog=${PYTHON_CMD}
BUILD_DEPENDS+=		swig:devel/swig
PLIST_SUB+=		OIPMIPYTHON=""
.else
CONFIGURE_ARGS+=	--with-python=no --with-swig=no
PLIST_SUB+=		OIPMIPYTHON="@comment "
.endif

.if ${PORT_OPTIONS:MTCL}
USES+=			tcl
CONFIGURE_ARGS+=	--with-tcl \
			--with-tclcflags=-I${TCL_INCLUDEDIR} \
			--with-tcllibs=-ltcl${TCL_SHLIB_VER}
PLIST_SUB+=		TCL=""
.else
CONFIGURE_ARGS+=	--with-tcl=no
PLIST_SUB+=		TCL="@comment "
.endif

.if ${PORT_OPTIONS:MGDBM}
LIB_DEPENDS+=		libgdbm.so:databases/gdbm
.endif

.if ${PORT_OPTIONS:MGLIB20}
USES+=			gnome
USE_GNOME+=		glib20
CONFIGURE_ARGS+=	--with-glib --with-glibver=2.0
PLIST_SUB+=		GLIB=""
.else
PLIST_SUB+=		GLIB="@comment "
.endif

post-patch:
	${REINPLACE_CMD} '/libOpenIPMIutils_la_LIBADD =/s/$$/ -lexecinfo/' \
		${WRKSRC}/utils/Makefile.in
	${REINPLACE_CMD} 's|malloc.h|stdlib.h|' \
		${WRKSRC}/lanserv/sdrcomp/sdrcomp.c \
		${WRKSRC}/lanserv/extcmd.c \
		${WRKSRC}/lanserv/bmc_app.c \
		${WRKSRC}/lanserv/bmc_storage.c \
		${WRKSRC}/lanserv/bmc_picmg.c \
		${WRKSRC}/lanserv/bmc_sensor.c
	${REINPLACE_CMD} 's|-ldl||' \
		${WRKSRC}/lanserv/Makefile.in
	${REINPLACE_CMD} 's|editline/readline.h|edit/readline/readline.h|' \
		${WRKSRC}/sample/ipmi_serial_bmc_emu.c

do-install-PYTHON-on:
	@${PYTHON_CMD} -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR} && \
	  ${PYTHON_CMD} -O -m compileall -d ${PYTHON_SITELIBDIR} ${STAGEDIR}${PYTHON_SITELIBDIR}

.include <bsd.port.mk>