# $OpenBSD: Makefile,v 1.30 2010/11/26 14:17:17 espie Exp $
#
# Credits to Matt Jibson. He did the initial work on this port and many
# tools it depends on.

SHARED_ONLY=		Yes

BROKEN-hppa=		SIGILL during build

COMMENT-main=		text based music notation system
COMMENT-docs=		lilypond documentation

VERSION=		2.12.3
DISTNAME=		lilypond-${VERSION}
DISTNAME-docs=		${DISTNAME}-1.documentation
PKGNAME-main=		lilypond-${VERSION}
REVISION-main =		1
PKGNAME-docs=		lilypond-docs-${VERSION}
CATEGORIES=		print

DISTFILES=		${DISTNAME}.tar.gz ${DISTNAME-docs}.tar.bz2:0
EXTRACT_ONLY=		${DISTNAME}.tar.gz

MULTI_PACKAGES=		-main -docs

HOMEPAGE=		http://lilypond.org/web/

MAINTAINER=		Matthias Kilian <kili@openbsd.org>

# GPLv2
PERMIT_PACKAGE_FTP=	Yes
PERMIT_PACKAGE_CDROM=	Yes
PERMIT_DISTFILES_FTP=	Yes
PERMIT_DISTFILES_CDROM=	Yes

MASTER_BASE=		http://download.linuxaudio.org/lilypond/
MASTER_SITES=		${MASTER_BASE}sources/v${VERSION:C,\.[0-9]*$,,}/
MASTER_SITES0=		${MASTER_BASE}binaries/documentation/

# We don't use the standard autoconf mechanisms from the ports
# system, because it doesn't work for lilypond. Instead, we use
# autogen.sh and add AUTOCONV_VERSION to the environment.
AUTOCONF_VERSION=	2.61
CONFIGURE_STYLE=	gnu
CONFIGURE_SCRIPT=	autogen.sh
CONFIGURE_ENV=		AUTOCONF_VERSION=${AUTOCONF_VERSION} \
			BASH=/bin/sh \
			GREP=/usr/bin/grep \
			LDFLAGS=-L${LOCALBASE}/lib
CONFIGURE_ARGS+=	--disable-{debugging,optimising,pipe} \
			--with-ncsb-dir=${LOCALBASE}/share/ghostscript/fonts
USE_GMAKE=		Yes
USE_GROFF =		Yes
MAKE_FILE=		GNUmakefile

# Stupid fontforge writes autosave data to ~/.PfaEdit, even in
# scripting mode, so give it a HOME to stop systrace warnings.
PORTHOME=		${WRKDIR}

PKG_ARCH-docs=		*
WANTLIB-docs =
LIB_DEPENDS-docs=
RUN_DEPENDS-docs=

WANTLIB-main=		X11 c expat fontconfig freetype gmp gthread-2.0 ltdl m \
			pthread stdc++ z guile>=20 glib-2.0>=1000 \
			gmodule-2.0>=1000 gobject-2.0>=1000 \
			pango-1.0>=1200 pangoft2-1.0>=1200 ${WANTLIB}
MODULES=		devel/gettext lang/python
LIB_DEPENDS-main=	${LIB_DEPENDS} \
			lang/guile \
			devel/glib2 \
			devel/pango
RUN_DEPENDS=		print/ghostscript/gnu
BUILD_DEPENDS= 		print/mftrace \
			devel/bison \
			archivers/bzip2 \
			devel/autoconf/${AUTOCONF_VERSION} \
			textproc/texi2html \
			${RUN_DEPENDS}

SUBST_VARS+=		VERSION

# Extract the documentation distfiles.
# Remove files generated by bison to avoid some recompilations
# during fake stage.
post-extract:
	@bzip2 -cd ${FULLDISTDIR}/${DISTNAME-docs}.tar.bz2 | \
		pax -rs '!^\.!${WRKDIR}/docs!'
	@rm -rf ${WRKSRC}/lily/out

post-install:
	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/lilypond/${VERSION}
	umask 022 && cp -R ${WRKDIR}/docs/share/doc/lilypond/html/* \
		${PREFIX}/share/doc/lilypond/${VERSION}

REGRESS_DEPENDS=	print/lilypond-test-baseline:patch

pre-regress:
.for d in input/regression input/regression/musicxml
	-@mv ${WRKDIR}/print/lilypond-test-baseline/${DISTNAME}/$d/out-test-baseline ${WRKBUILD}/$d
.endfor

post-regress:
	@echo Please check ${WRKBUILD}/out/test-results/index.html for \
		any graphical anomalities.

# Build a new lilypond-test-baseline-*.tar.bz2
test-baseline:	build
	@cd ${WRKBUILD} && exec ${_SYSTRACE_CMD} ${SETENV} ${MAKE_ENV} \
		${MAKE_PROGRAM} ${MAKE_FLAGS} -f ${MAKE_FILE} test-baseline
	cd ${WRKDIR} && pax -wjf ${DISTNAME:C/-.*//}-test-baseline-${VERSION}.tar.bz2 \
		${DISTNAME}/input/regression/out-test-baseline \
		${DISTNAME}/input/regression/musicxml/out-test-baseline

.include <bsd.port.mk>
