summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Giles <ralph.giles@artifex.com>2003-04-15 14:12:06 +0000
committerRalph Giles <ralph.giles@artifex.com>2003-04-15 14:12:06 +0000
commit9f854a22268b0f11ba4e001a8dc70f07bd52c3c5 (patch)
tree3fc954c4c0b7b3e96ce15d391815de6dc515d39a
parent30c1a47dcf5ff97635b0ebb50eca58d3b96118fc (diff)
downloadghostpdl-9f854a22268b0f11ba4e001a8dc70f07bd52c3c5.tar.gz
Add support for compiling in libjbig2dec statically from source. This makefile
is only good for v0.2. git-svn-id: http://svn.ghostscript.com/ghostscript/trunk@3828 a1074d23-0009-0410-80fe-cf8c14f379e6
-rw-r--r--gs/src/Makefile.in7
-rw-r--r--gs/src/all-arch.mak2
-rw-r--r--gs/src/configure.ac26
-rw-r--r--gs/src/gs.mak9
-rw-r--r--gs/src/jbig2.mak158
-rw-r--r--gs/src/lib.mak4
-rw-r--r--gs/src/unix-gcc.mak7
-rw-r--r--gs/src/unixansi.mak5
8 files changed, 208 insertions, 10 deletions
diff --git a/gs/src/Makefile.in b/gs/src/Makefile.in
index 8176e9371..a14e58293 100644
--- a/gs/src/Makefile.in
+++ b/gs/src/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 1997, 2002 artofcode LLC. All rights reserved.
+# Copyright (C) 1997, 2003 artofcode LLC. All rights reserved.
#
# This software is provided AS-IS with no warranty, either express or
# implied.
@@ -161,6 +161,10 @@ ZSRCDIR=@ZLIBDIR@
#ZLIB_NAME=gz
ZLIB_NAME=z
+# Choose shared or compiled in libjbig2dec and source location
+SHARE_JBIG2=@SHARE_JBIG2@
+JBIG2SRCDIR=@JBIG2DIR@
+
# Define the directory where the icclib source are stored.
# See icclib.mak for more information
@@ -410,6 +414,7 @@ include $(GLSRCDIR)/jpeg.mak
# zlib.mak must precede libpng.mak
include $(GLSRCDIR)/zlib.mak
include $(GLSRCDIR)/libpng.mak
+include $(GLSRCDIR)/jbig2.mak
include $(GLSRCDIR)/icclib.mak
include $(GLSRCDIR)/ijs.mak
include $(GLSRCDIR)/devs.mak
diff --git a/gs/src/all-arch.mak b/gs/src/all-arch.mak
index a0bf7c131..dcb62d72a 100644
--- a/gs/src/all-arch.mak
+++ b/gs/src/all-arch.mak
@@ -184,7 +184,7 @@ COMMON_ARGS = DEVICE_DEVS_EXTRA='$(DEVICE_DEVS_EXTRA)' \
JSRCDIR='$(JSRCDIR)' \
PNGSRCDIR='$(PNGSRCDIR)' \
PSRCDIR='$(PNGSRCDIR)' \
- PVERSION=10204 \
+ PVERSION=10205 \
SHARE_LIBPNG='$(SHARE_LIBPNG)' \
SHARE_ZLIB='$(SHARE_ZLIB)' \
XCFLAGS='$(XCFLAGS)' \
diff --git a/gs/src/configure.ac b/gs/src/configure.ac
index 0495106e1..e26f53932 100644
--- a/gs/src/configure.ac
+++ b/gs/src/configure.ac
@@ -208,17 +208,35 @@ AC_SUBST(IJSDEVS)
dnl look for jbig2dec
AC_ARG_WITH(jbig2dec, AC_HELP_STRING([--with-jbig2dec],[include JBIG2 decode support]))
+JBIG2DIR=src
+SHARE_JBIG2=0
JBIG2DEVS=''
if test x$with_jbig2dec != xno; then
+ AC_MSG_CHECKING([for local jbig2dec library source])
+ for d in jbig2dec jbig2dec-0.2; do
+ test -d "$d" && JBIG2DIR=$d && break
+ done
+ if test "x$JBIG2DIR" != xsrc; then
+ AC_MSG_RESULT([$JBIG2DIR])
+ else
+ AC_MSG_RESULT([no])
AC_CHECK_LIB([jbig2dec], [jbig2_page_out], [
- JBIG2DEVS='$(PSD)jbig2.dev'
- if test x$ac_cv_header_stdint_h != xyes; then
- AC_MSG_WARN([JBIG2 support requires stdint types which do not seem to be available.])
- fi
+ SHARE_JBIG2=1
], [
AC_MSG_WARN([disabling support for JBIG2 files])
+ with_jbig2dec=no
])
+ fi
+fi
+if test x$with_jbig2dec != xno; then
+ JBIG2DEVS='$(PSD)jbig2.dev'
+ if test x$ac_cv_header_stdint_h != xyes; then
+ AC_MSG_WARN([JBIG2 support requires stdint types which do not seem to be available.])
+ fi
fi
+
+AC_SUBST(JBIG2DIR)
+AC_SUBST(SHARE_JBIG2)
AC_SUBST(JBIG2DEVS)
dnl optional X11 for display devices
diff --git a/gs/src/gs.mak b/gs/src/gs.mak
index efeb6c573..acb0bf07a 100644
--- a/gs/src/gs.mak
+++ b/gs/src/gs.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 1989, 1996-9, 2002 artofcode LLC. All rights reserved.
+# Copyright (C) 1989, 1996-2003 artofcode LLC. All rights reserved.
#
# This software is provided AS-IS with no warranty, either express or
# implied.
@@ -54,6 +54,11 @@
# and linking libgz/libz explicitly.
# ZLIB_NAME - the name of the shared zlib, either gz (for libgz, -lgz)
# or z (for libz, -lz).
+# SHARE_JBIG2 - normally 0; if set to 1, asks the linker to use
+# an existing complied libjbig2dec instead of compiling and linking
+# in from a local copy of the source
+# JBIG2SRCDIR - the name of the jbig2dec library source directory
+# typically 'jbig2dec' or 'jbig2dec-/version/'
# ICCSRCDIR - the name of the ICC lib source dir, currently
# always icclib (compiled in statically)
# DEVICE_DEVS - the devices to include in the executable.
@@ -209,6 +214,8 @@ PNGGENDIR=$(GLGENDIR)
PNGOBJDIR=$(GLOBJDIR)
ZGENDIR=$(GLGENDIR)
ZOBJDIR=$(GLOBJDIR)
+JBIG2GENDIR=$(GLGENDIR)
+JBIG2OBJDIR=$(GLOBJDIR)
ICCGENDIR=$(GLGENDIR)
ICCOBJDIR=$(GLOBJDIR)
IJSGENDIR=$(GLGENDIR)
diff --git a/gs/src/jbig2.mak b/gs/src/jbig2.mak
new file mode 100644
index 000000000..835f00c15
--- /dev/null
+++ b/gs/src/jbig2.mak
@@ -0,0 +1,158 @@
+# Copyright (C) 2003 artofcode LLC. All rights reserved.
+#
+# This software is provided AS-IS with no warranty, either express or
+# implied.
+#
+# This software is distributed under license and may not be copied,
+# modified or distributed except as expressly authorized under the terms
+# of the license contained in the file LICENSE in this distribution.
+#
+# For more information about licensing, please refer to
+# http://www.ghostscript.com/licensing/. For information on
+# commercial licensing, go to http://www.artifex.com/licensing/ or
+# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
+# San Rafael, CA 94903, U.S.A., +1(415)492-9861.
+
+# $Id$
+# makefile for jbig2dec library code.
+# Users of this makefile must define the following:
+# SHARE_JBIG2 - whether to compile in or link to the library
+# JBIG2SRCDIR - the library source directory
+#
+# gs.mak and friends define the following:
+# JBIG2OBJDIR - the output obj directory
+# JBIG2GENDIR - generated (.dev) file directory
+# and the usual gs portability stuff.
+
+# This partial makefile compiles the jbig2dec library for use in
+# Ghostscript.
+
+# Define the name of this makefile.
+JBIG2_MAK=$(GLSRC)jbig2.mak
+
+JBIG2SRC=$(JBIG2SRCDIR)$(D)
+JBIG2GEN=$(JBIG2OBJDIR)$(D)
+JBIG2OBJ=$(JBIG2OBJDIR)$(D)
+# This list is only good for jbig2dec v0.2
+
+libjbig2_OBJS=\
+ $(JBIG2OBJ)jbig2.$(OBJ) \
+ $(JBIG2OBJ)jbig2_arith.$(OBJ) \
+ $(JBIG2OBJ)jbig2_arith_iaid.$(OBJ) \
+ $(JBIG2OBJ)jbig2_arith_int.$(OBJ) \
+ $(JBIG2OBJ)jbig2_generic.$(OBJ) \
+ $(JBIG2OBJ)jbig2_huffman.$(OBJ) \
+ $(JBIG2OBJ)jbig2_image.$(OBJ) \
+ $(JBIG2OBJ)jbig2_image_pbm.$(OBJ) \
+ $(JBIG2OBJ)jbig2_image_png.$(OBJ) \
+ $(JBIG2OBJ)jbig2_mmr.$(OBJ) \
+ $(JBIG2OBJ)jbig2_page.$(OBJ) \
+ $(JBIG2OBJ)jbig2_segment.$(OBJ) \
+ $(JBIG2OBJ)jbig2_symbol_dict.$(OBJ) \
+ $(JBIG2OBJ)jbig2_text.$(OBJ) \
+ $(JBIG2OBJ)jbig2_metadata.$(OBJ)
+
+libjbig2_HDRS=\
+ $(JBIG2SRC)jbig2.h \
+ $(JBIG2SRC)jbig2_arith.h \
+ $(JBIG2SRC)jbig2_arith_iaid.h \
+ $(JBIG2SRC)jbig2_arith_int.h \
+ $(JBIG2SRC)jbig2_generic.h \
+ $(JBIG2SRC)jbig2_huffman.h \
+ $(JBIG2SRC)jbig2_hufftab.h \
+ $(JBIG2SRC)jbig2_image.h \
+ $(JBIG2SRC)jbig2_mmr.h \
+ $(JBIG2SRC)jbig2_priv.h \
+ $(JBIG2SRC)jbig2_symbol_dict.h \
+ $(JBIG2SRC)jbig2_metadata.h \
+ $(JBIG2SRC)config_win32.h
+
+jbig2dec_OBJS=$(JBIG2OBJ)getopt.$(OBJ) $(JBIG2OBJ)getopt1.$(OBJ) $(JBIG2OBJ)sha1.$(OBJ)
+jbig2dec_HDRS=$(JBIG2OBJ)getopt.h $(JBIG2OBJ)sha1.h
+
+jbig2.clean : jbig2.config-clean jbig2.clean-not-config-clean
+
+### WRONG. MUST DELETE OBJ AND GEN FILES SELECTIVELY.
+jbig2.clean-not-config-clean :
+ $(EXP)$(ECHOGS_XE) $(JBIG2SRCDIR) $(JBIG2OBJDIR)
+ $(RM_) $(JBIG2OBJDIR)$(D)*..$(OBJ)
+
+jbig2.config-clean :
+ $(RMN_) $(JBIG2GEN)$(D)jbig2*.dev
+
+JBIG2DEP=$(AK)
+
+JBIG2_CC=$(CC_) $(CFLAGS) $(I_)$(JBIG2GENDIR) $(II)$(JBIG2SRCDIR)$(_I)
+JBIG2O_=$(O_)$(JBIG2OBJ)
+
+# switch in the version of libjbig2.dev we're actually using
+$(JBIG2GEN)libjbig2.dev : $(TOP_MAKEFILES) $(JBIG2GEN)libjbig2_$(SHARE_JBIG2).dev
+ $(CP_) $(JBIG2GEN)libjbig2_$(SHARE_JBIG2).dev $(JBIG2GEN)libjbig2.dev
+
+# dev file for shared (separately built) jbig2dec library
+$(JBIG2GEN)libjbig2_1.dev : $(TOP_MAKEFILES) $(JBIG2_MAK) $(ECHOGS_XE)
+ $(SETMOD) $(JBIG2GEN)libjbig2_1 -lib jbig2dec
+
+# dev file for compiling our own from source
+$(JBIG2GEN)libjbig2_0.dev : $(TOP_MAKEFILES) $(JBIG2_MAK) $(ECHOGS_XE) $(libjbig2_OBJS)
+ $(SETMOD) $(JBIG2GEN)libjbig2_0 $(libjbig2_OBJS)
+
+# explicit rules for building the source files.
+
+$(JBIG2OBJ)getopt.$(OBJ) : $(JBIG2SRC)getopt.c $(JBIG2SRC)getopt.h $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)getopt.$(OBJ) $(C_) $(JBIG2SRC)getopt.c
+
+$(JBIG2OBJ)getopt1.$(OBJ) : $(JBIG2SRC)getopt1.c $(JBIG2SRC)getopt.h $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)getopt1.$(OBJ) $(C_) $(JBIG2SRC)getopt1.c
+
+$(JBIG2OBJ)jbig2.$(OBJ) : $(JBIG2SRC)jbig2.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2.$(OBJ) $(C_) $(JBIG2SRC)jbig2.c
+
+$(JBIG2OBJ)jbig2_arith.$(OBJ) : $(JBIG2SRC)jbig2_arith.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_arith.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith.c
+
+$(JBIG2OBJ)jbig2_arith_iaid.$(OBJ) : $(JBIG2SRC)jbig2_arith_iaid.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_arith_iaid.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith_iaid.c
+
+$(JBIG2OBJ)jbig2_arith_int.$(OBJ) : $(JBIG2SRC)jbig2_arith_int.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_arith_int.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith_int.c
+
+$(JBIG2OBJ)jbig2_generic.$(OBJ) : $(JBIG2SRC)jbig2_generic.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_generic.$(OBJ) $(C_) $(JBIG2SRC)jbig2_generic.c
+
+$(JBIG2OBJ)jbig2_huffman.$(OBJ) : $(JBIG2SRC)jbig2_huffman.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_huffman.$(OBJ) $(C_) $(JBIG2SRC)jbig2_huffman.c
+
+$(JBIG2OBJ)jbig2_image.$(OBJ) : $(JBIG2SRC)jbig2_image.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_image.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image.c
+
+$(JBIG2OBJ)jbig2_image_pbm.$(OBJ) : $(JBIG2SRC)jbig2_image_pbm.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_image_pbm.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image_pbm.c
+
+$(JBIG2OBJ)jbig2_image_png.$(OBJ) : $(JBIG2SRC)jbig2_image_png.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_image_png.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image_png.c
+
+$(JBIG2OBJ)jbig2_mmr.$(OBJ) : $(JBIG2SRC)jbig2_mmr.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_mmr.$(OBJ) $(C_) $(JBIG2SRC)jbig2_mmr.c
+
+$(JBIG2OBJ)jbig2_page.$(OBJ) : $(JBIG2SRC)jbig2_page.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_page.$(OBJ) $(C_) $(JBIG2SRC)jbig2_page.c
+
+$(JBIG2OBJ)jbig2_segment.$(OBJ) : $(JBIG2SRC)jbig2_segment.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_segment.$(OBJ) $(C_) $(JBIG2SRC)jbig2_segment.c
+
+$(JBIG2OBJ)jbig2_symbol_dict.$(OBJ) : $(JBIG2SRC)jbig2_symbol_dict.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_symbol_dict.$(OBJ) $(C_) $(JBIG2SRC)jbig2_symbol_dict.c
+
+$(JBIG2OBJ)jbig2_text.$(OBJ) : $(JBIG2SRC)jbig2_text.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_text.$(OBJ) $(C_) $(JBIG2SRC)jbig2_text.c
+
+$(JBIG2OBJ)jbig2_metadata.$(OBJ) : $(JBIG2SRC)jbig2_metadata.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2_metadata.$(OBJ) $(C_) $(JBIG2SRC)jbig2_metadata.c
+
+$(JBIG2OBJ)jbig2dec.$(OBJ) : $(JBIG2SRC)jbig2dec.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)jbig2dec.$(OBJ) $(C_) $(JBIG2SRC)jbig2dec.c
+
+$(JBIG2OBJ)sha1.$(OBJ) : $(JBIG2SRC)sha1.c $(libjbig2_HDRS) $(JBIG2DEP)
+ $(JBIG2_CC) $(JBIG2O_)sha1.$(OBJ) $(C_) $(JBIG2SRC)sha1.c
+
diff --git a/gs/src/lib.mak b/gs/src/lib.mak
index a3e739253..9d5de0581 100644
--- a/gs/src/lib.mak
+++ b/gs/src/lib.mak
@@ -1339,9 +1339,9 @@ $(GLOBJ)sarc4.$(OBJ) : $(GLSRC)sarc4.c $(AK) $(memory__h)\
# ---------------- JBIG2 compression filter ---------------- #
sjbig2_=$(GLOBJ)sjbig2.$(OBJ)
-$(GLD)sjbig2.dev : $(LIB_MAK) $(ECHOGS_XE) $(sjbig2_)
+$(GLD)sjbig2.dev : $(LIB_MAK) $(ECHOGS_XE) $(GLD)libjbig2.dev $(sjbig2_)
$(SETMOD) $(GLD)sjbig2 $(sjbig2_)
- $(ADDMOD) $(GLD)sjbig2 -lib jbig2dec
+ $(ADDMOD) $(GLD)sjbig2 -include $(GLD)libjbig2.dev
$(GLOBJ)sjbig2.$(OBJ) : $(GLSRC)sjbig2.c $(AK) \
$(gserror_h) $(gserrors_h) $(gdebug_h) $(sjbig2_h) $(strimpl_h)
diff --git a/gs/src/unix-gcc.mak b/gs/src/unix-gcc.mak
index d0b3137b6..499506a81 100644
--- a/gs/src/unix-gcc.mak
+++ b/gs/src/unix-gcc.mak
@@ -152,7 +152,7 @@ JPEG_NAME=jpeg
# See libpng.mak for more information.
PSRCDIR=libpng
-PVERSION=10204
+PVERSION=10205
# Choose whether to use a shared version of the PNG library, and if so,
# what its name is.
@@ -174,6 +174,10 @@ SHARE_ZLIB=0
#ZLIB_NAME=gz
ZLIB_NAME=z
+# Choose shared or compiled in libjbig2dec and source location
+SHARE_JBIG2=0
+JBIG2SRCDIR=jbig2dec
+
# Define the directory where the icclib source are stored.
# See icclib.mak for more information
@@ -446,6 +450,7 @@ include $(GLSRCDIR)/jpeg.mak
# zlib.mak must precede libpng.mak
include $(GLSRCDIR)/zlib.mak
include $(GLSRCDIR)/libpng.mak
+include $(GLSRCDIR)/jbig2.mak
include $(GLSRCDIR)/icclib.mak
include $(GLSRCDIR)/ijs.mak
include $(GLSRCDIR)/devs.mak
diff --git a/gs/src/unixansi.mak b/gs/src/unixansi.mak
index 0b9082c93..500b721dd 100644
--- a/gs/src/unixansi.mak
+++ b/gs/src/unixansi.mak
@@ -164,6 +164,10 @@ SHARE_ZLIB=0
#ZLIB_NAME=gz
ZLIB_NAME=z
+# Choose shared or compiled in libjbig2dec and source location
+SHARE_JBIG2=0
+JBIG2SRCDIR=jbig2dec
+
# Define the directory where the icclib source are stored.
# See icclib.mak for more information
@@ -385,6 +389,7 @@ include $(GLSRCDIR)/jpeg.mak
# zlib.mak must precede libpng.mak
include $(GLSRCDIR)/zlib.mak
include $(GLSRCDIR)/libpng.mak
+include $(GLSRCDIR)/jbig2.mak
include $(GLSRCDIR)/icclib.mak
include $(GLSRCDIR)/ijs.mak
include $(GLSRCDIR)/devs.mak