# New ports collection makefile for:	chromium
# Date created:				September 30 2009
# Whom:					Florent Thoumie <flz@FreeBSD.org>
#
# $FreeBSD$
#

PORTNAME=	chromium
SVNREVISION=	r32163
PORTVERSION=	${SVNREVISION}
CATEGORIES=	www
MASTER_SITES=	http://build.chromium.org/buildbot/archives/
EXTRACT_SUFX=	.tgz
DISTNAME=	${PORTNAME}.${PORTVERSION}

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Google Chromium Web Browser

BUILD_DEPENDS=	/usr/local/bin/flex:${PORTSDIR}/textproc/flex	\
		/usr/local/bin/bison:${PORTSDIR}/devel/bison	\
		/usr/local/bin/gperf:${PORTSDIR}/devel/gperf	\
		/usr/local/bin/bash:${PORTSDIR}/shells/bash

LIB_DEPENDS=	execinfo.1:${PORTSDIR}/devel/libexecinfo	\
		nss3.1:${PORTSDIR}/security/nss			\
		nspr4.1:${PORTSDIR}/devel/nspr			\
		cairo.2:${PORTSDIR}/graphics/cairo		\
		dbus-1.3:${PORTSDIR}/devel/dbus			\
		freetype.9:${PORTSDIR}/print/freetype2		\
		xml.5:${PORTSDIR}/textproc/libxml		\
#		avcodec.1:${PORTSDIR}/multimedia/ffmpeg		\
#		jpeg.10:${PORTSDIR}/graphics/jpeg		\
#		png.5:${PORTSDIR}/graphics/png			\
#		xslt.2:${PORTSDIR}/textproc/libxslt		\
#		sqlite3.8:${PORTSDIR}/databases/sqlite3

#RUN_DEPENDS=	msttcorefonts # XXX - port doesn't exist yet.

WRKSRC=		${WRKDIR}/home/chrome-svn/tarball/${PORTNAME}/src

USE_GMAKE=	yes
USE_GNOME=	glib20 gtk20 gconf2
USE_PYTHON=	2.4+	# XXX - might be just needed at build time.
USE_PERL5=	yes	# XXX - might be just needed at build time.

ALL_TARGET=	chrome

EXTRACT_AFTER_ARGS=	| /usr/bin/tar --exclude .svn -xf -

.include <bsd.port.pre.mk>

.if ${ARCH} == "amd64"
GYP_DEFINES+=	target_arch=x64
.endif

#GYP_DEFINES+=	use_system_bzip2=1
#GYP_DEFINES+=	use_system_ffmpeg=1
#GYP_DEFINES+=	use_system_libjpeg=1
#GYP_DEFINES+=	use_system_libpng=1
GYP_DEFINES+=	use_system_libxml=1
#GYP_DEFINES+=	use_system_libxslt=1
#GYP_DEFINES+=	use_system_sqlite=1
#GYP_DEFINES+=	use_system_zlib=1
		

.if !defined(WITH_DEBUG)
GYP_DEFINES+=	remove_webcore_debug_symbols=1
BUILDTYPE=	Release
.else
BUILDTYPE=	Debug
.endif

MAKE_ENV+=	V=1
MAKE_ENV+=	BUILDTYPE=${BUILDTYPE}

dry-patch:
	@if [ -d ${PATCHDIR} ]; then \
		if [ "`${ECHO_CMD} ${PATCHDIR}/patch-*`" != "${PATCHDIR}/patch-*" ]; then \
			${ECHO_MSG} "===>  Dry-Applying ${OPSYS} patches for ${PKGNAME}" ; \
			PATCHES_APPLIED="" ; \
			for i in ${PATCHDIR}/patch-*; do \
				case $$i in \
					*.orig|*.rej|*~|*,v) \
						${ECHO_MSG} "===>   Ignoring patchfile $$i" ; \
						;; \
					*) \
						if [ ${PATCH_DEBUG_TMP} = yes ]; then \
							${ECHO_MSG} "===>   Dry-Applying ${OPSYS} patch $$i" ; \
						fi; \
						if ${PATCH} -C ${PATCH_ARGS} < $$i ; then \
							PATCHES_APPLIED="$$PATCHES_APPLIED $$i" ; \
						else \
							${ECHO_MSG} `${ECHO_CMD} "=> Patch $$i failed to apply cleanly." | ${SED} "s|${PATCHDIR}/||"` ; \
							if [ x"$$PATCHES_APPLIED" != x"" ]; then \
								${ECHO_MSG} `${ECHO_CMD} "=> Patch(es) $$PATCHES_APPLIED applied cleanly." | ${SED} "s|${PATCHDIR}/||g"` ; \
							fi; \
							${FALSE} ; \
						fi; \
						;; \
				esac; \
			done; \
		fi; \
	fi

post-patch:
	@${REINPLACE_CMD} -e "s|freebsd7|freebsd${OSREL:C/..$//}|" \
		${WRKSRC}/chrome/app/generated_resources.grd

do-configure:
	cd ${WRKSRC} && \
		${SETENV} GYP_GENERATORS="make" GYP_DEFINES="${GYP_DEFINES}" ${PYTHON_CMD} ./build/gyp_chromium \
			-D 'OS=freebsd' build/all.gyp

do-install:
	${MKDIR} ${DATADIR}
	cd ${WRKSRC}/out/${BUILDTYPE} && \
		${FIND} . \( -name \*.d -o -name obj\* \) -prune -o -print | \
		${CPIO} -dump ${DATADIR}
	${LN} -s ${DATADIR}/chrome ${PREFIX}/bin/

.include <bsd.port.post.mk>
