ports/print/ghostscript9/files/patch-base-unix-gcc.mak
Hiroki Sato cef5efef69 Add print/ghostscript9, an interpreter of PostScript and PDF page
description languages.  Changes from 8.x series include:

- This release includes a move to an ICC-based color rendering
  workflow. The design allows easy integration of 3rd party color
  management modules (CMMs) and management of DeviceN and spot source
  colors with ICC profiles as well as with non-ICC proprietary
  methods. The default CMM is the well known littleCMS.  Postscript
  color objects and non-ICC CIE-based PDF color spaces are converted
  to equivalent ICC profiles enabling complete color management for
  all color spaces by an ICC-based CMM. New command line options
  enable the specification of gray, rgb and cmyk default ICC profiles
  as well as output device ICC profiles. The new work flow provides
  performance improvements in the rendering of images, shadings and
  transparencies. In addition, the color conversions are designed to
  work efficiently in multithreaded display list (c-list) rendering
  through the use of a shared link cache. Finally, proper ICC based
  rendering now occurs for ALL XPS objects including Named colors,
  N-Channel colors and images with internally embedded ICC profiles.

- The second major change in this release is that glyph rendering for
  all font types except Type 3 is now handled by Freetype (via a much
  improved and enhanced Font API). The most obvious benefit of this is
  a complete, and proven implementation of the TrueType byte code
  interpreter (now unencumbered by patents).

- Another major change is that the Postscript interpreter's graphics
  state now stores two separate colour space settings for stroking and
  filling, to better support the stroke and fill colours required by
  the PDF interpreter.

- Support for optional content has been added to the PDF interpreter.

- This release also includes a number of improvements to the pdfwrite
  device to improve reliability and quality with PCL and XPS
  input. Many improvements to the support of JPX images in PDF files,
  PDF annotation rendering and the usual number of general bug and
  robustness fixes.

- For security reasons, Ghostscript no longer searches the current
  directory by default. Use -P option to revert to old behavior.

- For monochrome devices, there is a new halftone technique for
  sampled image data. The existing technique is very efficient (and is
  is still used) for large areas of color, such as an area fill, but
  encountered performance problems dealing with sampled image data
  where a given colour value only covered a few pixels at a time. The
  new approach applies the halftone threshold array directly to the
  image samples.

- A new, robust CFF parser implemented in C (replacing the previous
  Poscript one)

- tiffscaled device - this renders internally as tiffgray, but then
 downsamples by an integer scale factor (specified by
 -dDownScaleFactor=n) and error diffuses to 1bpp output. The
 tiffscaled device also implements limited minimum feature size
 functionality; by setting -dMinFeatureSize to 1, 2 or 3, the device
 output is guaranteed to generate minimum dot sizes as multiples of
 the final resolution, useful for devices that offer finer position
 control than dot size control.

- Add DSC compatible output in ps2write.
2011-05-23 20:58:46 +00:00

209 lines
6.1 KiB
Makefile

--- base/unix-gcc.mak.orig 2011-03-04 05:23:43.000000000 +0900
+++ base/unix-gcc.mak 2011-05-23 14:31:00.000000000 +0900
@@ -21,15 +21,18 @@
# source, generated intermediate file, and object directories
# for the graphics library (GL) and the PostScript/PDF interpreter (PS).
+.CURDIR?=.
BINDIR=./bin
-GLSRCDIR=./base
-GLGENDIR=./obj
-GLOBJDIR=./obj
-PSSRCDIR=./psi
-PSLIBDIR=./lib
-PSRESDIR=./Resource
-PSGENDIR=./obj
-PSOBJDIR=./obj
+BINDIR=${.CURDIR}/bin
+GLSRCDIR=${.CURDIR}/base
+GLGENDIR=${.CURDIR}/obj
+GLOBJDIR=${.CURDIR}/obj
+PSSRCDIR=${.CURDIR}/psi
+PSLIBDIR=${.CURDIR}/lib
+PSRESDIR=${.CURDIR}/Resource
+PSGENDIR=${.CURDIR}/obj
+PSOBJDIR=${.CURDIR}/obj
+CONTRIBDIR=${.CURDIR}/contrib
# Do not edit the next group of lines.
@@ -48,11 +51,10 @@
# the directories also define the default search path for the
# initialization files (gs_*.ps) and the fonts.
-INSTALL = $(GLSRCDIR)/instcopy -c
-INSTALL_PROGRAM = $(INSTALL) -m 755
-INSTALL_DATA = $(INSTALL) -m 644
+INSTALL_PROGRAM = ${BSD_INSTALL_SCRIPT}
+INSTALL_DATA = ${BSD_INSTALL_DATA}
-prefix = /usr/local
+prefix = ${PREFIX}
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
scriptdir = $(bindir)
@@ -104,7 +106,7 @@
# -DHAVE_HYPOT
# use the system hypot() call
-CAPOPT= -DHAVE_MKSTEMP
+CAPOPT= -DHAVE_MKSTEMP -DHAVE_HYPOT
# Define the name of the executable file.
@@ -138,7 +140,7 @@
# some older JPEG streams that violate the standard. If the JPEG
# library built from local sources, the patch will be applied.
-SHARE_JPEG=0
+SHARE_JPEG=1
JPEG_NAME=jpeg
# Define the directory where the PNG library sources are stored,
@@ -152,13 +154,13 @@
# what its name is.
# See gs.mak and Make.htm for more information.
-SHARE_LIBPNG=0
+SHARE_LIBPNG=1
LIBPNG_NAME=png
# Define whether to use a shared version of libtiff and where
# it is stored and what its name is.
-SHARE_LIBTIFF=0
+SHARE_LIBTIFF=1
TIFFSRCDIR=tiff
TIFFPLATFORM=unix
TIFFCONFIG_SUFFIX=.unix
@@ -173,15 +175,23 @@
# what its name is (usually libz, but sometimes libgz).
# See gs.mak and Make.htm for more information.
-SHARE_ZLIB=0
+SHARE_ZLIB=1
#ZLIB_NAME=gz
ZLIB_NAME=z
# Choose shared or compiled in libjbig2dec and source location
-SHARE_JBIG2=0
+SHARE_JBIG2=1
JBIG2_LIB=jbig2dec
JBIG2SRCDIR=jbig2dec
+# Choose the library to use for (JPXDecode support)
+# whether to link to an external build or compile in from source
+# and source location and configuration flags for compiling in
+JPX_LIB=jasper
+SHARE_JPX=0
+JPXSRCDIR=jasper
+JPX_CFLAGS=-DJAS_CONFIGURE
+
# Define the directory where the icclib source are stored.
# See icclib.mak for more information
ICCSRCDIR=icclib
@@ -217,7 +227,7 @@
# Define the name of the C compiler.
-CC=gcc
+CC?=cc
# Define the name of the linker for the final link step.
# Normally this is the same as the C compiler.
@@ -234,7 +244,7 @@
# Define the added flags for standard, debugging, profiling
# and shared object builds.
-CFLAGS_STANDARD=-O2
+CFLAGS_STANDARD?=-O2
CFLAGS_DEBUG=-g -O0
CFLAGS_PROFILE=-pg -O2
CFLAGS_SO=-fPIC
@@ -250,7 +260,8 @@
# We don't include -ansi, because this gets in the way of the platform-
# specific stuff that <math.h> typically needs; nevertheless, we expect
# gcc to accept ANSI-style function prototypes and function definitions.
-XCFLAGS=-DGS_DEVS_SHARED -DGS_DEVS_SHARED_DIR=\"$(gssharedir)\"
+#XCFLAGS+=-DGS_DEVS_SHARED -DGS_DEVS_SHARED_DIR=\"$(gssharedir)\"
+XCFLAGS+=-DUPD_SIGNAL=0 -I${JPXSRCDIR}/src/libjasper/include -I${LOCALBASE}/include/libpng -I${LOCALBASE}/include
CFLAGS=$(CFLAGS_STANDARD) $(GCFLAGS) $(XCFLAGS)
@@ -261,7 +272,7 @@
# -R /usr/local/xxx/lib:/usr/local/lib
# giving the full path names of the shared library directories.
# XLDFLAGS can be set from the command line.
-XLDFLAGS=
+XLDFLAGS+=-L${LOCALBASE}/lib
LDFLAGS=$(XLDFLAGS)
@@ -272,7 +283,7 @@
# Solaris may need -lnsl -lsocket -lposix4.
# (Libraries required by individual drivers are handled automatically.)
-EXTRALIBS=-rdynamic -ldl
+EXTRALIBS+=-Wl,-export-dynamic
# Define the standard libraries to search at the end of linking.
# Most platforms require -lpthread for the POSIX threads library;
@@ -294,7 +305,7 @@
# Note that x_.h expects to find the header files in $(XINCLUDE)/X11,
# not in $(XINCLUDE).
-XINCLUDE=-I/usr/X11R6/include
+XINCLUDE=-I${LOCALBASE}/include
# Define the directory/ies and library names for the X11 library files.
# XLIBDIRS is for ld and should include -L; XLIBDIR is for LD_RUN_PATH
@@ -309,26 +320,26 @@
#XLIBS=Xt SM ICE Xext X11
#XLIBDIRS=-L/usr/local/X/lib
-XLIBDIRS=-L/usr/X11R6/lib
+XLIBDIRS=-L${LOCALBASE}/lib
XLIBDIR=
-XLIBS=Xt Xext X11
+XLIBS=Xt SM ICE Xext X11
# Define the .dev module that implements thread and synchronization
# primitives for this platform.
# If POSIX sync primitives are used, also change the STDLIBS to include
# the pthread library.
-#SYNC=posync
+SYNC=posync
# Default is No sync primitives since some platforms don't have it (HP-UX)
-SYNC=nosync
+#SYNC=nosync
SOC_LOADER=dxmainc.c
# ------ Devices and features ------ #
# Choose the language feature(s) to include. See gs.mak for details.
-FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(GLD)pipe.dev $(PSD)fapi.dev
+FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(GLD)pipe.dev $(PSD)fapi.dev $(PSD)jbig2.dev $(PSD)jpx.dev
#FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev
# The following is strictly for testing.
FEATURE_DEVS_ALL=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)rasterop.dev $(PSD)double.dev $(PSD)trapping.dev $(PSD)stocht.dev $(GLD)pipe.dev
@@ -460,6 +471,9 @@
include $(GLSRCDIR)/png.mak
include $(GLSRCDIR)/tiff.mak
include $(GLSRCDIR)/jbig2.mak
+include $(GLSRCDIR)/jasper.mak
+include $(GLSRCDIR)/ldf_jb2.mak
+include $(GLSRCDIR)/lwf_jp2.mak
include $(GLSRCDIR)/icclib.mak
include $(GLSRCDIR)/lcms.mak
include $(GLSRCDIR)/ijs.mak
@@ -470,6 +484,7 @@
include $(GLSRCDIR)/unix-dll.mak
include $(GLSRCDIR)/unix-end.mak
include $(GLSRCDIR)/unixinst.mak
+include $(CONTRIBDIR)/contrib.mak
# This has to come last so it won't be taken as the default target.
$(AK):