freebsd-ports/print/ghostscript8/Makefile
Andreas Klemm 7aa654686b update to ghostscript v 6.50
- removed port revision, because of new version
- added PCL3 driver (hpdj successor) from Martin Lottermoser
  *both* driver, HPDJ and PCL3, are now compiled in
  reason: PCL3 is still flagged as BETA and author didn't get much response
  Although Martin says, its definitively not ALPHA, its safer to have the
  old drivers around, if things fail for some reason.
  Martin confirmed, that its possible to have both in one gs binary !!!
- disable configure script temporarily, since dialog needs a driver update
  but I don't want to hold back that port any longer.
- enabled as many gs driver as possible
- reorganized MASTER_SITES
  - added mirrors
  - add a note, that russion mirror isn't up to date, so don't add it
  - optimized downloading from 6 different sources by special ordering
- reorganized Makefile completely
  - put only ${GS_SOURCES} into EXTRACT_ONLY variable
    unpacking other 3rd party src's is handled in post-extract target
  - directory creating, patching, unpacking and install actions are
    now handeled within the proper make target. This makes port maintenance
    much easier, i.e.: if you enter make extract, then only extraction
    of things happen, but makefiles are still not patched. Before this
    cleanup, things were not so structured and not easy to maintain.
    Maybe we get a configure script later, to choose between different
    3rd party driver options, then this "sorting" and documenting
    will support the migration process...
  - silence port by hiding actions with "@"
  - insert many informational echoes. This makes port maintenance and
    troubleshooting easier
  - put more unique comments in front of the different 3rd party modules
  - document things better
  - use as many environment variables as necessary, so that "numerical"
    changes only have to happen on some places and not withing make targets
  - use gs version number also in docu directory
  - properly install runtime, info and doc files from 3rd party drivers
  - put not needed stuff into "NOPORTDOCS" section
- keep old font names to avoid fetching unnecessary things
- updated patches as necessary
- added new patch from Nartin Lottermoser
- removed 2 patches that have been incorporated into gs 6.50
- added needed manual pages
- updated pkg-plist
- finally tested port and package building as well as port removal
  new port passes all disciplines ;-)
2001-01-16 22:57:24 +00:00

254 lines
9.1 KiB
Makefile

# New ports collection makefile for: ghostscript
# Date created: Tue Jun 10 21:58:54 CEST 1997
# Whom: Andreas Klemm <andreas@klemm.gtn.com>
#
# $FreeBSD$
#
PORTNAME= ghostscript
PORTVERSION= 6.50
CATEGORIES= print
MASTER_SITES= ftp://ftp.fh-koblenz.de/pub/Ghostscript/aladdin/gs650/ \
ftp://ftp.fh-koblenz.de/pub/Ghostscript/aladdin/fonts/ \
http://www.gelhaus.net/hp880c/1.4beta/ \
http://home.t-online.de/home/Martin.Lottermoser/pcl3dist/ \
http://www.harsch.net/Download/ \
http://www.ozemail.com.au/~geoffk/pdfencrypt/ \
http://download.sourceforge.net/ghostscript/ \
ftp://ftp.cs.wisc.edu/ghost/aladdin/fonts/ \
ftp://ftp.mirror.ac.uk/sites/ftp.cs.wisc.edu/ghost/aladdin/gs650/ \
ftp://ftp.mirror.ac.uk/sites/ftp.cs.wisc.edu/ghost/aladdin/fonts/ \
ftp://ftp.medasys-digital-systems.fr/pub/unix/ghostscript/aladdin/gs650/ \
ftp://ftp.medasys-digital-systems.fr/pub/unix/ghostscript/aladdin/fonts/ \
ftp://munnari.oz.au/ghost/aladdin/gs650/ \
ftp://munnari.oz.au/ghost/aladdin/fonts/ \
ftp://sunsite.cnlab-switch.ch/mirror/ghost/aladdin/gs650/ \
ftp://sunsite.cnlab-switch.ch/mirror/ghost/aladdin/fonts/
# note: russian mirror isn't up to date
DISTFILES= ${GS_SOURCES} ${GS_FONTS_STD} ${GS_FONTS_OTHER} \
${DECRYPT_PDF} ${HP8XX_DRV} ${HPDJ_DRV} ${PCL3_SRC} \
${HP970_DRV}
EXTRACT_ONLY= ${GS_SOURCES}
MAINTAINER= andreas@FreeBSD.org
BUILD_DEPENDS= ${NONEXISTENT}:${PORTSDIR}/graphics/jpeg:extract
LIB_DEPENDS= png.4:${PORTSDIR}/graphics/png
WRKSRC= ${WRKDIR}/gs${PORTVERSION}
ALL_TARGET= all pcl3opts
USE_XLIB= yes
USE_GMAKE= yes
MAKEFILE= src/unix-gcc.mak
PLIST_SUB= GS_VERSION=${PORTVERSION}
# Note: the order that the manpages are listed here matters because
# some of them are symbolic links
MAN1= gs.1 dvipdf.1 font2c.1 eps2eps.1 gsbj.1 gsdj.1 gsdj500.1 \
gslj.1 gslp.1 gsnd.1 pdf2dsc.1 pdfopt.1 pdf2ps.1 pf2afm.1 \
pfbtopfa.1 printafm.1 ps2ascii.1 ps2epsi.1 ps2pdf12.1 \
ps2pdf13.1 ps2pdf.1 ps2pdfwr.1 ps2ps.1 wftopfa.1 \
gs-hpdj.1 gs-pcl3.1 pcl3opts.1
GS_SOURCES= ghostscript-${PORTVERSION}.tar.gz
# Note: the following two are real files that have symlinks with
# later version numbers pointing to them. To avoid unnecessarily
# downloading distfiles, do not change these when upgrading the port
# unless the files really change.
GS_FONTS_STD= ghostscript-fonts-std-6.0.tar.gz
GS_FONTS_OTHER= ghostscript-fonts-other-6.0.tar.gz
# Additional Drivers:
# Ghostscript Driver for HP DeskJet 812C/815C/832C/880C/882C/895C
# http://www.gelhaus.net/hp880c/
# driver names: cdj880
HP8XX_DRV= gdevcd8.tar.gz
# HPDJ, additional driver for HP PCL3 Printers, by Martin Lottermoser
# ftp://ftp.sbs.de/pub/graphics/ghostscript/pcl3/pcl3.html
HPDJ_NAME= hpdj
HPDJ_VERS= 2.6
HPDJ_DIR= ${HPDJ_NAME}-${HPDJ_VERS}
HPDJ_SRC= ${HPDJ_NAME}-${HPDJ_VERS}.tar.gz
HPDJ_MAN1= gs-hpdj.1
# PCL3 (hpdj successor in BETA state)
# additional driver for HP PCL3 Printers, by Martin Lottermoser
# http://home.t-online.de/home/Martin.Lottermoser/pcl3.html
PCL3_NAME= pcl3
PCL3_VERS= 3.0.2
PCL3_DIR= ${PCL3_NAME}-${PCL3_VERS}
PCL3_SRC= ${PCL3_NAME}-${PCL3_VERS}.tar.gz
PCL3_MAN1= gs-pcl3.1 pcl3opts.1
# additional driver for HP DeskJet 970, supports duplex printing
HP970_DRV= gdevdj9.c.gz
# contributed uniprint profiles
CONTRIB_UPP= lqx70ch.upp lqx70cl.upp lqx70cm.upp \
stc740ih.upp stc740p.upp stc740pl.upp
# replacement for pdf_sec.ps, that allows you to read encrypted PDF files
DECRYPT_PDF= pdf_sec.ps
.if defined(A4)
CFLAGS+= -DA4
.endif
pre-fetch:
.if !defined(A4)
@${ECHO_MSG} "Type \"make A4=yes\" if you want -DA4 for compilation."
.else
@${ECHO_MSG} "Using -DA4 for compilation."
.endif
post-extract:
@${ECHO} ">>> in post-extract ..."
@${LN} -s ${WRKDIRPREFIX}${.CURDIR}/../../graphics/jpeg/work/jpeg-6b \
${WRKSRC}/jpeg
# ** 3rd party driver **
# Note: don't forget to add those devices in scripts/configure and
# configure.batch, which update unix-gcc.mak to build gs with these
# new devices !
#
# for HP8XX driver
@${ECHO} ">>> extracting ${HP8XX_DRV} ..."
@${TAR} -C ${WRKSRC}/src -xzf ${DISTDIR}/${HP8XX_DRV}
# for HPDJ driver
@${ECHO} ">>> extracting ${HPDJ_SRC} ..."
@${TAR} -C ${WRKDIR} -xzf ${DISTDIR}/${HPDJ_SRC}
@${TAR} -C ${WRKSRC}/src -xf ${WRKDIR}/${HPDJ_DIR}/${HPDJ_NAME}.tar
# for PCL3 driver
@${ECHO} ">>> extracting ${PCL3_SRC} ..."
@${TAR} -C ${WRKSRC} -xzf ${DISTDIR}/${PCL3_SRC}
@${LN} -s ${PCL3_DIR} ${WRKSRC}/pcl3
@${TAR} -C ${WRKSRC}/${PCL3_DIR} -xf \
${WRKSRC}/${PCL3_DIR}/${PCL3_NAME}.tar
# for HP DeskJet 970 driver
@${ECHO} ">>> extracting ${HP970_DRV} ..."
@${CP} ${DISTDIR}/${HP970_DRV} ${WRKSRC}/src
@${GUNZIP_CMD} ${WRKSRC}/src/${HP970_DRV}
# here we apply unofficial patches from 3rd party drivers
post-patch:
# from PCL3 driver
@${ECHO} ">>> in post-patch ..."
@${ECHO} ">>> applying patches from PCL3 ..."
@${PATCH} -d ${WRKSRC}/src --forward --quiet -E \
< ${WRKSRC}/${PCL3_DIR}/src/zmedia2.c-6.01.diff
# here we apply the modifications necessary to build the 3rd party drivers
# advantage: you see unmodified makefiles after a pure make extract
pre-configure:
@${ECHO} ">>> in pre-configure ..."
# for HPDJ driver
@${ECHO} ">>> adding HPDJ driver to contrib.mak ..."
@${CAT} ${WRKSRC}/src/contrib.mak-5.94.add \
>> ${WRKSRC}/src/contrib.mak
# for PCL3 driver
@${ECHO} ">>> adding PCL3 driver to contrib.mak ..."
@${CAT} ${WRKSRC}/${PCL3_DIR}/src/contrib.mak-6.01.add \
>> ${WRKSRC}/src/contrib.mak
# for HP DeskJet 970 driver
@${ECHO} ">>> adding DJ970 driver to contrib.mak ..."
@${CAT} ${FILESDIR}/dj970.contrib.mak \
>> ${WRKSRC}/src/contrib.mak
do-configure:
@${ECHO} ">>> in do-configure ..."
.if defined(BATCH)
@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.batch
.else
# XXX diable dialog based configure, needs some rework later...
#@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure
@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.batch
.endif
pre-build:
@${ECHO} ">>> in pre-build ..."
@${ECHO} ">>> creating directories for compilation ..."
@${MKDIR} ${WRKSRC}/obj
@${MKDIR} ${WRKSRC}/bin
pre-install:
@${ECHO} ">>> in pre-install ..."
@${ECHO} ">>> creating destdir ..."
@${MKDIR} ${PREFIX}/share/ghostscript
@${ECHO} ">>> extracting gs fonts..."
@${TAR} -C ${PREFIX}/share/ghostscript -xzf ${DISTDIR}/${GS_FONTS_STD}
@${TAR} -C ${PREFIX}/share/ghostscript -xzf ${DISTDIR}/${GS_FONTS_OTHER}
post-install:
@${ECHO} ">>> in post-install ..."
@${ECHO} ">>> stripping gs ..."
@strip ${PREFIX}/bin/gs
@${ECHO} ">>> installing additional scripts ..."
@${INSTALL_SCRIPT} ${WRKSRC}/lib/unix-lpr.sh ${PREFIX}/bin
@${INSTALL_SCRIPT} ${WRKSRC}/lib/lprsetup.sh ${PREFIX}/bin
# for HPDJ driver
@${ECHO} ">>> installing HPDJ manpages ..."
.for i in ${HPDJ_MAN1}
@${INSTALL_MAN} ${WRKSRC}/src/${i} ${PREFIX}/man/man1
.endfor
@${ECHO} ">>> creating HPDJ destdir ..."
@${MKDIR} ${PREFIX}/share/ghostscript/${PORTVERSION}/hpdj
@${ECHO} ">>> installing files in HPDJ destdir ..."
.for i in README.hpdj example.mdf margins-A4.ps margins-A4Rotated.ps \
margins-Letter.ps margins-LetterRotated.ps
@${INSTALL_DATA} ${WRKSRC}/src/${i} \
${PREFIX}/share/ghostscript/${PORTVERSION}/hpdj
.endfor
# for PCL3 driver
@${ECHO} ">>> installing PCL3 manpages ..."
.for i in ${PCL3_MAN1}
@${INSTALL_MAN} ${WRKSRC}/${PCL3_DIR}/doc/${i} ${PREFIX}/man/man1
.endfor
# other pcl3 stuff, which might be interesting for runtime
@${ECHO} ">>> creating PCL3 destdir ..."
@${MKDIR} ${PREFIX}/share/ghostscript/${PORTVERSION}/pcl3
@${ECHO} ">>> installing files in PCL3 destdir ..."
.for i in BETA BUGS README lib/example.mcf lib/if-pcl3 ps/calign.ps \
ps/dumppdd.ps ps/levels-test.ps ps/margins-A4.ps \
ps/margins-A4Rotated.ps ps/margins-Env10Rotated.ps \
ps/margins-EnvDLRotated.ps ps/margins-Letter.ps \
ps/margins-LetterRotated.ps
@${INSTALL_DATA} ${WRKSRC}/${PCL3_DIR}/${i} \
${PREFIX}/share/ghostscript/${PORTVERSION}/pcl3
.endfor
# contributed UPP driver
@${ECHO} ">>> installing contributed UPP profiles ..."
.for i in ${CONTRIB_UPP}
@${INSTALL_DATA} ${FILESDIR}/${i} \
${PREFIX}/share/ghostscript/${PORTVERSION}/lib
.endfor
# for reading encrypted PDFs
@${ECHO} ">>> installing support for encrypted PDF files ..."
@${INSTALL_DATA} ${DISTDIR}/${DECRYPT_PDF} \
${PREFIX}/share/ghostscript/${PORTVERSION}/lib
#
# now NOPORTDOCS dependend stuff
#
.if !defined(NOPORTDOCS)
@${ECHO} ">>> installing PORTDOC stuff ..."
# install hpdj docu, not necessary for runtime
# note: old hpdj driver has its files in ${WRKSRC}/src
@${ECHO} ">>> creating HPDJ docu destdir ..."
@${MKDIR} ${PREFIX}/share/doc/ghostscript/${PORTVERSION}/hpdj
@${ECHO} ">>> installing files in HPDJ docu destdir ..."
.for i in LGPL.txt NEWS hpdj.html
@${INSTALL_DATA} ${WRKSRC}/src/${i} \
${PREFIX}/share/doc/ghostscript/${PORTVERSION}/hpdj
.endfor
# install pcl3 docu, not necessary for runtime
# note: new pcl3 driver has a subdir of its own
@${ECHO} ">>> creating HPDJ docu destdir ..."
@${MKDIR} ${PREFIX}/share/doc/ghostscript/${PORTVERSION}/pcl3
@${ECHO} ">>> installing files in HPDJ docu destdir ..."
.for i in LGPL NEWS doc/gs-pcl3.html doc/how-to-report.txt doc/pcl3opts.html
@${INSTALL_DATA} ${WRKSRC}/${PCL3_DIR}/${i} \
${PREFIX}/share/doc/ghostscript/${PORTVERSION}/pcl3
.endfor
.endif
@${ECHO} "> post-installation tasks completed."
.include <bsd.port.mk>