# New ports collection makefile for:	The Neko Programming Language
# Date created:		08 August 2007
# Whom:			Masanori OZAWA (ozawa@ongs.co.jp)
#
# $FreeBSD: ports/lang/neko/Makefile,v 1.14 2010/02/05 11:40:15 dinoex Exp $
#

PORTNAME=	neko
PORTVERSION=	1.8.1
PORTREVISION=	2
CATEGORIES=	lang
MASTER_SITES=	http://nekovm.org/_media/

MAINTAINER=	ozawa@ongs.co.jp
COMMENT=	The Neko Programming Language

LIB_DEPENDS=	gc-threaded.1:${PORTSDIR}/devel/boehm-gc-threaded

ONLY_FOR_ARCHS=	i386 amd64

USE_AUTOTOOLS=	libtool:22:env
USE_GMAKE=	yes

OPTIONS=	APACHE13 "Build with mod_neko for Apache 1.3.x" off \
		APACHE22 "Build with mod_neko for Apache 2.2.x" off \
		MYSQL4   "Build with MySQL 4.x library" off \
		MYSQL5   "Build with MySQL 5.x library" off \
		SQLITE3  "Build with Sqlite 3.x SQL library" off \
		PCRE     "Build with PCRE library" on \
		GTK2     "Build with Gtk 2.x UI library" on

.include <bsd.port.pre.mk>

CFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib
LIBKEYNAME=

.if defined(WITH_APACHE13) && defined(WITH_APACHE22)
IGNORE= option APACHE13 and APACHE22 conflict
.endif

.if defined(WITH_APACHE13)
BUILD_DEPENDS+=	${LOCALBASE}/sbin/apxs:${PORTSDIR}/www/apache13
RUN_DEPENDS+=	${LOCALBASE}/sbin/apxs:${PORTSDIR}/www/apache13
CFLAGS+=	-I${LOCALBASE}/include/apache
PLIST_SUB+=	APACHE13=
.else
LIBKEYNAME+=	mod_neko mod_tora
PLIST_SUB+=	APACHE13="@comment "
.endif

.if defined(WITH_APACHE22)
BUILD_DEPENDS+=	${LOCALBASE}/sbin/apxs:${PORTSDIR}/www/apache22
RUN_DEPENDS+=	${LOCALBASE}/sbin/apxs:${PORTSDIR}/www/apache22
CFLAGS+=	-I${LOCALBASE}/include/apache22
PLIST_SUB+=	APACHE22=
.else
LIBKEYNAME+=	mod_neko2 mod_tora2
PLIST_SUB+=	APACHE22="@comment "
.endif

.if defined(WITH_MYSQL4) && defined(WITH_MYSQL5)
IGNORE= option MYSQL4 and MYSQL5 conflict
.endif

.if defined(WITH_MYSQL4)
BUILD_DEPENDS+=	mysql:${PORTSDIR}/databases/mysql41-client
RUN_DEPENDS+=	mysql:${PORTSDIR}/databases/mysql41-client
CFLAGS+=	-I${LOCALBASE}/include/mysql
PLIST_SUB+=	MYSQL4=
.else
LIBKEYNAME+=	mysql
PLIST_SUB+=	MYSQL4="@comment "
.endif

.if defined(WITH_MYSQL5)
BUILD_DEPENDS+=	mysql:${PORTSDIR}/databases/mysql51-client
RUN_DEPENDS+=	mysql:${PORTSDIR}/databases/mysql51-client
CFLAGS+=	-I${LOCALBASE}/include/mysql
PLIST_SUB+=	MYSQL5=
.else
LIBKEYNAME+=	mysql5
PLIST_SUB+=	MYSQL5="@comment "
.endif

.if defined(WITH_SQLITE3)
BUILD_DEPENDS+=	sqlite3:${PORTSDIR}/databases/sqlite3
RUN_DEPENDS+=	sqlite3:${PORTSDIR}/databases/sqlite3
PLIST_SUB+=	SQLITE3=
.else
LIBKEYNAME+=	sqlite
PLIST_SUB+=	SQLITE3="@comment "
.endif

.if defined(WITH_PCRE)
BUILD_DEPENDS+=	${LOCALBASE}/include/pcre.h:${PORTSDIR}/devel/pcre
RUN_DEPENDS+=	${LOCALBASE}/include/pcre.h:${PORTSDIR}/devel/pcre
PLIST_SUB+=	PCRE=
.else
LIBKEYNAME+=	regexp
PLIST_SUB+=	PCRE="@comment "
.endif

.if defined(WITH_GTK2)
BUILD_DEPENDS+=	${LOCALBASE}/include/gtk-2.0:${PORTSDIR}/x11-toolkits/gtk20
RUN_DEPENDS+=	${LOCALBASE}/include/gtk-2.0:${PORTSDIR}/x11-toolkits/gtk20
PLIST_SUB+=	GTK2=
.else
LIBKEYNAME+=	ui
PLIST_SUB+=	GTK2="@comment "
.endif

.if ${ARCH} == "amd64"
CFLAGS+=	-D_64BITS -fPIC
.endif

post-patch:
	@${REINPLACE_CMD} \
	    -e '/INSTALL_PREFIX/s,/usr/local,${PREFIX},' \
	    -e '/^CFLAGS =/s,.$$, ${CFLAGS},' \
	    -e '/LIBNEKO_LIBS =/s,[-]ldl,${LDFLAGS},' \
	    -e '/LIBNEKO_LIBS =/s,[-]lgc,-lgc-threaded,' \
	    -e '/NEKOVM_FLAGS =/s,[-]lneko,-L${LOCALBASE}/lib -lneko -lgc-threaded,' \
	    -e '/mkdir/s,\(INSTALL_PREFIX[}]/include\),\1/neko,' \
	    -e '/cp vm[/]neko[*][.]h/s,\(INSTALL_PREFIX[}]/include\),\1/neko,' \
	    ${WRKSRC}/Makefile
	@${REINPLACE_CMD} \
	    -e '/^[#]	include/s,wait.h,sys/wait.h,' \
	    ${WRKSRC}/libs/std/process.c
	@${REINPLACE_CMD} \
	    -e '/^linkcmd =/s,"ld",cc,' \
	    -e 's/= readline[(][)];/= "s";/' \
	    -e 's,/usr/local/include,${PREFIX}/include,' \
	    -e 's,/usr/local/lib,${PREFIX}/lib,' \
	    ${WRKSRC}/src/tools/install.neko
.if !empty(LIBKEYNAME)
.for LKN in ${LIBKEYNAME}
	@${REINPLACE_CMD} \
	    -e '/^	${LKN} =[>]/,/^	[}][,]\{0,1\}.$$/d' \
	    ${WRKSRC}/src/tools/install.neko
.endfor
.endif
.if defined(WITH_APACHE13)
	@${REINPLACE_CMD} \
	    -e 's,"/usr/include/apache-1.3","${PREFIX}/include/apache",' \
	    ${WRKSRC}/src/tools/install.neko
.endif
.if defined(WITH_APACHE22)
	@${REINPLACE_CMD} \
	    -e 's,"/usr/include/apache2","${PREFIX}/include/apache22",' \
	    ${WRKSRC}/src/tools/install.neko
.endif
.if defined(WITH_GTK2)
	@${REINPLACE_CMD} \
	    -e 's,"/usr/include/gtk-2.0","${PREFIX}/include/gtk-2.0",' \
	    ${WRKSRC}/src/tools/install.neko
	@${REINPLACE_CMD} \
	    -e 's,NEKO_LINUX,NEKO_BSD,' ${WRKSRC}/libs/ui/ui.c
.endif
.if ${ARCH} == "amd64" && defined(WITH_MYSQL4)
	@${ECHO_CMD}
	@${ECHO_CMD} "======================================================="
	@${ECHO_CMD}
	@${ECHO_CMD} " Notice: When not building MYSQL with 'CFLAGS+=-fPIC'"
	@${ECHO_CMD} " first, It fails in building of a MYSQL module."
	@${ECHO_CMD}
	@${ECHO_CMD} "======================================================="
	@${ECHO_CMD}
.endif

post-install:
.if defined(WITH_APACHE13) || defined(WITH_APACHE22)
	@${ECHO_CMD}
	@${ECHO_CMD} "======================================================="
	@${ECHO_CMD}
	@${ECHO_CMD} " If you want to use Apache with mod_neko, you need "
	@${ECHO_CMD} " edit the Apache configuration files."
	@${ECHO_CMD} " Please see 'http://nekovm.org/doc/mod_neko' for details."
	@${ECHO_CMD}
	@${ECHO_CMD} "======================================================="
	@${ECHO_CMD}
.endif

.include <bsd.port.post.mk>
