# New ports collection makefile for:    MySQL-server
# Date created:         Sun Mar 3 12:20:35 CET 2002
# Whom:                 Alex Dupre <sysadmin@alexdupre.com>
#
# $FreeBSD: ports/databases/mysql40-server/Makefile,v 1.161 2003/03/06 19:23:09 ade Exp $
#

PORTNAME?=	mysql
PORTVERSION=	4.0.10
PORTREVISION?=	0
CATEGORIES=	databases
MASTER_SITES=	ftp://mysql.secsup.org/pub/software/mysql/Downloads/MySQL-4.0/ \
		http://mysql.tzone.it/Downloads/MySQL-4.0/ \
		ftp://planetmirror.com/pub/mysql/Downloads/MySQL-4.0/ \
		http://www.softagency.co.jp/MySQL/Downloads/MySQL-4.0/ \
		ftp://sunsite.dk/mirrors/mysql/Downloads/MySQL-4.0/ \
		http://mysql.mediatraffic.fi/Downloads/MySQL-4.0/ \
		ftp://filepile.tiscali.de/mirror/mysql/Downloads/MySQL-4.0/ \
		http://mirrors.tilian.co.uk/mysql.com/Downloads/MySQL-4.0/ \
		ftp://ftp.rtfm.no/pub/mysql/Downloads/MySQL-4.0/ \
		http://www.mysql.cz/Downloads/MySQL-4.0/ \
		ftp://ftp.u-paris10.fr/mysql.com/Downloads/MySQL-4.0/ \
		http://mysql.oms-net.nl/Downloads/MySQL-4.0/ \
		ftp://ftp.free.fr/pub/MySQL/Downloads/MySQL-4.0/
PKGNAMESUFFIX?=	-server
DISTNAME=	${PORTNAME}-${PORTVERSION}-gamma

MAINTAINER=	sysadmin@alexdupre.com
COMMENT?=	Multithreaded SQL database (server)

SLAVEDIRS=	databases/mysql40-client
DB_DIR?=	/var/db/mysql
USE_PERL5_RUN=	yes
USE_LIBTOOL=	yes

GNU_CONFIGURE=	yes
CONFIGURE_ARGS=	--localstatedir=${DB_DIR} \
		--without-debug \
		--without-readline \
		--without-bench \
		--without-extra-tools \
		--with-libwrap \
		--with-mysqlfs \
		--with-vio \
		--with-low-memory \
		--with-comment='FreeBSD port: ${PKGNAME}' \
		--with-server-suffix='' \
		--program-prefix=''

.include <bsd.port.pre.mk>

.if ${MACHINE_ARCH} == "i386"
CONFIGURE_ARGS+=--enable-assembler --with-berkeley-db
.endif
.if defined(WITH_CHARSET) && ${WITH_CHARSET} != ""
CONFIGURE_ARGS+=--with-charset=${WITH_CHARSET}
.endif
.if defined(WITH_XCHARSET) && ${WITH_XCHARSET} != ""
CONFIGURE_ARGS+=--with-extra-charsets=${WITH_XCHARSET}
.endif
.if defined(WITH_OPENSSL)
USE_OPENSSL=	yes
CONFIGURE_ARGS+=--with-openssl
.endif
.if defined(BUILD_STATIC)
CONFIGURE_ARGS+=--with-mysqld-ldflags=-all-static
.endif
.if defined(BUILD_OPTIMIZED)
CFLAGS+=	-mcpu=i686
.endif
.if defined(WITH_LINUXTHREADS)
CONFIGURE_ARGS+=--with-named-thread-libs='-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R
CONFIGURE_ARGS+=-D_THREAD_SAFE -I${LOCALBASE}/include/pthread/linuxthreads
CONFIGURE_ARGS+=-L${LOCALBASE}/lib -llthread -llgcc_r'
CFLAGS+=	-D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE
CFLAGS+=	-I${LOCALBASE}/include/pthread/linuxthreads
.if ${OSVERSION} > 500000
LIB_DEPENDS+=   lthread.3:${PORTSDIR}/devel/linuxthreads
.else
LIB_DEPENDS+=   lthread.2:${PORTSDIR}/devel/linuxthreads
.endif
.endif
.if defined(THREAD_SAFE_CLIENT)
CONFIGURE_ARGS+=--enable-thread-safe-client
.endif

CFLAGS+=	-O3 -fno-omit-frame-pointer
CXXFLAGS=	${CFLAGS} -felide-constructors -fno-rtti

.if ${OSVERSION} >= 400002
CXXFLAGS+=	-fno-exceptions
.endif
.if ${OSVERSION} < 500000
CXX=		${CC}
.endif

# MySQL-Server part
.if !defined(CLIENT_ONLY)
RUN_DEPENDS=	mysql:${PORTSDIR}/databases/mysql40-client \
		${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/${PERL_ARCH}/Mysql.pm:${PORTSDIR}/databases/p5-Mysql

PLIST_SUB=	MYSQL_VERSION=${PORTVERSION}-gamma

ONLY_FOR_ARCHS=	i386 alpha sparc64

DOCS=		manual.html manual.ps manual_toc.html manual.txt manual.texi \
		include.texi

pre-fetch:
	@${ECHO} ""
	@${ECHO} "You may use the following build options:"
	@${ECHO} ""
	@${ECHO} "	WITH_CHARSET=charset	Define the primary built-in charset (latin1)."
	@${ECHO} "	WITH_XCHARSET=list	Define other built-in charsets (may be 'all')."
	@${ECHO} "	WITH_OPENSSL=yes	Enable secure connections."
	@${ECHO} "	DB_DIR=directory	Set alternate directory for database files"
	@${ECHO} "				(default is /var/db/mysql)."
	@${ECHO} "      WITH_LINUXTHREADS=yes	Use the linuxthreads pthread library."
	@${ECHO} "	OVERWRITE_DB=yes	Re-initialize default databases"
	@${ECHO} "	SKIP_DNS_CHECK=yes	Don't run resolveip to do an additional"
	@${ECHO} "				DNS check before inserting local hostname to"
	@${ECHO} "				mysql database"
	@${ECHO} "				(use if your machine has no official DNS entry)."
	@${ECHO} "	BUILD_STATIC=yes	Build a static version of mysqld."
	@${ECHO} "	BUILD_OPTIMIZED=yes	Add -mcpu=i686 to CFLAGS."
	@${ECHO} ""

.if defined(WITH_OPENSSL) && defined(BUILD_STATIC)
pre-configure:
	@${ECHO} "You can't use the BUILD_STATIC option when using OpenSSL."
	@${FALSE}
.endif

post-install:
.if !defined(PACKAGE_BUILDING)
.if exists(${DB_DIR}) && defined(OVERWRITE_DB)
	@${RM} -r ${DB_DIR}/mysql ${DB_DIR}/test 2>/dev/null || true
.endif
.if !exists(${DB_DIR}) || defined(OVERWRITE_DB)
.if defined(SKIP_DNS_CHECK)
	${PREFIX}/bin/mysql_install_db --force
.else
	${PREFIX}/bin/mysql_install_db
.endif
.endif
	@${SETENV} DB_DIR=${DB_DIR} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
.endif
	@${SED} "s|%%PREFIX%%|${PREFIX}|g; s|%%DB_DIR%%|${DB_DIR}|g" < ${FILESDIR}/mysql-server.sh > ${PREFIX}/etc/rc.d/mysql-server.sh
	@${CHMOD} 750 ${PREFIX}/etc/rc.d/mysql-server.sh

.if !defined(NOPORTDOCS)
	${MKDIR} ${DOCSDIR}/Flags
.for doc in ${DOCS}
	${INSTALL_DATA} ${WRKSRC}/Docs/${doc} ${DOCSDIR}
.endfor
	${INSTALL_DATA} ${WRKSRC}/Docs/Flags/*.gif ${DOCSDIR}/Flags
.endif

# MySQL-Client part
.else
MAN1=		isamchk.1 isamlog.1 mysql.1 mysql_zap.1 mysqlaccess.1  \
		mysqladmin.1 mysqld.1 mysqld_multi.1 mysqld_safe.1 mysqldump.1 \
		mysqlshow.1 perror.1 replace.1

INSTALLS_SHLIB=	yes
LDCONFIG_DIRS=	%%PREFIX%%/lib/mysql

CONFIGURE_ARGS+=--without-server
MAKE_ENV=	CLIENT_ONLY="${CLIENT_ONLY}"

post-install:
	@${SED} "s|%%PREFIX%%|${PREFIX}|g" < ${FILESDIR}/mysql-client.sh > ${PREFIX}/etc/rc.d/000.mysql-client.sh
	@${CHMOD} 750 ${PREFIX}/etc/rc.d/000.mysql-client.sh

.endif

.include <bsd.port.post.mk>
