SUMMARY="An interpreter for the PostScript language and for PDF"
DESCRIPTION="Ghostscript is a suite of software based on an interpreter for \
Adobe Systems' PostScript and Portable Document Format (PDF) page description \
languages. Its main purposes are the rasterization or rendering of such page \
description language files, for the display or printing of document pages, and \
the conversion between PostScript and PDF files."
HOMEPAGE="https://ghostscript.com/"
COPYRIGHT="2001-2021 Artifex Software, Inc."
LICENSE="AGPL-3.0"
REVISION="2"
SOURCE_URI="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${portVersion//./}/ghostscript-$portVersion.tar.xz"
CHECKSUM_SHA256="6ee3057773646d6a2c6d117eb53a17d6752feadc513828e4322f68b7b7789ff6"
SOURCE_DIR="ghostscript-$portVersion"
PATCHES="ghostscript_gpl-$portVersion.patchset"

ARCHITECTURES="all !x86_gcc2 ?x86"
SECONDARY_ARCHITECTURES="x86"

# On x86_gcc2 we don't want to install the commands in bin/<arch>/, but in bin/.
commandBinDir=$binDir
if [ "$targetArchitecture" = x86_gcc2 ]; then
	commandBinDir=$prefix/bin
fi

PROVIDES="
	ghostscript_gpl$secondaryArchSuffix = $portVersion
	cmd:dvipdf
	cmd:eps2eps
	cmd:font2c
	cmd:gs
	cmd:gsc
	cmd:gsbj
	cmd:gsdj
	cmd:gsdj500
	cmd:gslj
	cmd:gslp
	cmd:gsnd
	cmd:gsx
	cmd:lprsetup.sh
	cmd:pfbtopfa
	cmd:pdf2dsc
	cmd:pdf2ps
	cmd:pf2afm
	cmd:pphs
	cmd:printafm
	cmd:ps2ascii
	cmd:ps2epsi
	cmd:ps2pdf
	cmd:ps2pdfwr
	cmd:ps2pdf12
	cmd:ps2pdf13
	cmd:ps2pdf14
	cmd:ps2ps
	cmd:ps2ps2
	cmd:unix_lpr.sh
	cmd:wftopfa
	lib:libgs$secondaryArchSuffix = 9 compat >= 9
	"

REQUIRES="
	haiku$secondaryArchSuffix
	poppler_data
	lib:libfontconfig$secondaryArchSuffix
	lib:libfreetype$secondaryArchSuffix
	lib:libiconv$secondaryArchSuffix
	lib:libidn$secondaryArchSuffix
	lib:libjbig2dec$secondaryArchSuffix
	lib:libjpeg$secondaryArchSuffix
	lib:liblcms2$secondaryArchSuffix
	lib:libopenjp2$secondaryArchSuffix
	lib:libpaper$secondaryArchSuffix
	lib:libpng16$secondaryArchSuffix
	lib:libstdc++$secondaryArchSuffix
#	lib:libtesseract$secondaryArchSuffix
	lib:libtiff$secondaryArchSuffix
	lib:libz$secondaryArchSuffix
	"

PROVIDES_devel="
	ghostscript_gpl${secondaryArchSuffix}_devel = $portVersion
	devel:libgs$secondaryArchSuffix = 9 compat >= 9
	"

REQUIRES_devel="
	ghostscript_gpl$secondaryArchSuffix == $portVersion base
"


BUILD_REQUIRES="
	haiku${secondaryArchSuffix}_devel
	devel:libfontconfig$secondaryArchSuffix
	devel:libfreetype$secondaryArchSuffix
	devel:libiconv$secondaryArchSuffix
	devel:libidn$secondaryArchSuffix
	devel:libjbig2dec$secondaryArchSuffix
	devel:libjpeg$secondaryArchSuffix
	devel:liblcms2$secondaryArchSuffix
	devel:libopenjp2$secondaryArchSuffix
	devel:libpaper$secondaryArchSuffix
	devel:libpng16$secondaryArchSuffix
#	devel:libtesseract$secondaryArchSuffix
	devel:libtiff$secondaryArchSuffix
	devel:libz$secondaryArchSuffix
	"
BUILD_PREREQUIRES="
	cmd:autoconf
	cmd:awk
	cmd:find
	cmd:gcc$secondaryArchSuffix
	cmd:grep
	cmd:make
	cmd:pkg_config$secondaryArchSuffix
	cmd:sed
	"

defineDebugInfoPackage ghostscript_gpl$secondaryArchSuffix \
	"$commandBinDir"/gs \
	"$libDir"/libgs.so.9

BUILD()
{
	# Set up fonts paths
	local FONTPATH
	for path in \
		$(findpaths B_FIND_PATH_FONTS_DIRECTORY otfonts) \
		$(findpaths B_FIND_PATH_FONTS_DIRECTORY psfonts) \
		$(findpaths B_FIND_PATH_FONTS_DIRECTORY ttfonts) \
		$(findpaths B_FIND_PATH_FONTS_DIRECTORY X11)
	do
		FONTPATH="$FONTPATH${FONTPATH:+:}$path"
	done

	# Force configure to use system-libs
	rm -rf {freetype,jbig2dec,jpeg,lcms2mt,libpng,openjpeg,tiff,zlib}

	# using system libtesseract is not (yet) supported
	#rm -rf {leptonica,tesseract}

	autoconf

	# Do configure
	runConfigure --omit-dirs binDir ./configure \
		--bindir=$commandBinDir \
		--with-fontpath="$FONTPATH"

	# Do make
	make $jobArgs
	make so $jobArgs
}

INSTALL()
{
	make install
	make soinstall

	prepareInstalledDevelLib libgs
	packageEntries devel $developDir
}

TEST()
{
	make check
}
