summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamfile183
-rw-r--r--base/cpudep.c2
-rw-r--r--mupdf/stream.c2
3 files changed, 119 insertions, 68 deletions
diff --git a/Jamfile b/Jamfile
index 54821b57..c2c23740 100644
--- a/Jamfile
+++ b/Jamfile
@@ -1,23 +1,68 @@
#
-# Jamfile for Fitz
-#
-# mpage -s4 -f -2 -c -H -W110 include/*/*.h */*.c > listing.ps
-# ps2pdf -sPAPERSIZE'='a4 listing.ps
+# Build flags
#
include $(HOME)/.jamrules ;
HDRS = include filter ;
+# HAVE_JBIG2DEC = yes ;
+# HAVE_JASPER = yes ;
+# HAVE_X11 = yes ;
+# HAVE_GTK = yes ;
+
+if $(RELEASE)
+{
+ Echo Release build for $(OS) $(OSPLAT) ;
+ CCFLAGS += -DARCH_$(OSPLAT) ;
+ OPTIM = -O3 ;
+}
+else if $(PROFILE)
+{
+ Echo Profiling build for $(OS) $(OSPLAT) ;
+ OPTIM = -g -pg ;
+}
+else
+{
+ Echo Debug build for $(OS) $(OSPLAT) ;
+ OPTIM = -g ;
+}
+
+if $(OS) = LINUX
+{
+ CCFLAGS += -std=c99 -DHAVE_C99 -Wall ;
+ CCFLAGS += -DNEED_STRLCPY -DNEED_GETOPT -DNEED_MATH ;
+}
+
+if $(OS) = MACOSX
+{
+ CCFLAGS += -std=c99 -DHAVE_C99 -Wall -faltivec ;
+}
+
+if $(OS) = NT
+{
+ NOARSCAN = true ;
+ CCFLAGS += -std=c99 -DHAVE_C99 -Wall ;
+ CCFLAGS += -DNEED_STRLCPY -DNEED_STRSEP -DNEED_GETOPT ;
+}
+
+LINKLIBS = -lfreetype -ljpeg -lz -lm ;
+
+if $(HAVE_JBIG2DEC) { CCFLAGS += -DHAVE_JBIG2DEC ; LINKLIBS += -ljbig2dec ; }
+if $(HAVE_JASPER) { CCFLAGS += -DHAVE_JASPER ; LINKLIBS += -ljasper ; }
+
+#
+# Libraries
+#
+
+Library libfitz :
+ util/getopt.c
+ util/strsep.c
+ util/strlcpy.c
+ util/strlcat.c
+ ;
+
Library libfitz :
- # util stuff
- #util/cleanname.c
- #util/getopt.c
- #util/strsep.c
- #util/strlcpy.c
- #util/strlcat.c
-
- # base runtime
base/cpudep.c
base/error.c
base/memory.c
@@ -27,25 +72,25 @@ Library libfitz :
base/matrix.c
base/hash.c
base/rune.c
+ ;
- # object
+Library libfitz :
object/simple.c
object/array.c
object/dict.c
object/print.c
object/parse.c
+ ;
- # filter
+Library libfitz :
filter/buffer.c
filter/filter.c
filter/filec.c # unistd.h
filter/filer.c # unistd.h
filter/filew.c # unistd.h
-
filter/null.c
filter/arc4filter.c
filter/pipeline.c
-
filter/ahxd.c
filter/ahxe.c
filter/a85d.c
@@ -55,35 +100,31 @@ Library libfitz :
filter/predict.c
filter/lzwd.c
filter/lzwe.c
-
filter/faxd.c
filter/faxdtab.c
filter/faxe.c
filter/faxetab.c
-
filter/flate.c # libz
filter/dctd.c # libjpeg
filter/dcte.c # libjpeg
- filter/jbig2d.c # jbig2dec
- filter/jpxd.c # jasper
+ ;
- # tree
+Library libfitz :
tree/cmap.c
tree/font.c
tree/colorspace.c
tree/image.c
tree/shade.c
-
tree/tree.c
tree/node1.c
tree/node2.c
tree/text.c
tree/path.c
-
tree/debug.c
tree/optimize.c
+ ;
- # render
+Library libfitz :
render/glyphcache.c
render/pixmap.c
render/porterduff.c
@@ -95,11 +136,14 @@ Library libfitz :
render/pathfill.c
render/pathstroke.c
render/render.c
+ ;
+
+if $(HAVE_JBIG2DEC) { Library libfitz : filter/jbig2d.c ; }
+if $(HAVE_JASPER) { Library libfitz : filter/jpxd.c ; }
- render/archppc.c
- render/archsparc.c
- render/archx86.c
-;
+if $(OSPLAT) = PPC { Library libfitz : render/archppc.c ; }
+if $(OSPLAT) = SPARC { Library libfitz : render/archsparc.c ; }
+if $(OSPLAT) = X86 { Library libfitz : render/archx86.c ; }
Library libmupdf :
mupdf/debug.c
@@ -127,26 +171,28 @@ Library libmupdf :
mupdf/xobject.c
mupdf/image.c
mupdf/pattern.c
- mupdf/shade.c
- mupdf/shade1.c
- mupdf/shade2.c
- mupdf/shade3.c
- mupdf/shade4.c
mupdf/cmap.c
mupdf/unicode.c
mupdf/fontagl.c
mupdf/fontenc.c
mupdf/fontfile.c
-# mupdf/fontfilefc.c
-# mupdf/fontfilems.c
mupdf/font.c
mupdf/type3.c
mupdf/page.c
mupdf/build.c
mupdf/interpret.c
+
+ mupdf/shade.c
+ mupdf/shade1.c
+ mupdf/shade2.c
+ mupdf/shade3.c
+ mupdf/shade4.c
;
+# Library libmupdf : mupdf/fontfilefc.c ;
+# Library libmupdf : mupdf/fontfilems.c ;
+
rule HexDump
{
DEPENDS $(<) : $(>) ;
@@ -174,7 +220,7 @@ HexDump data/NimbusSanL-ReguItal.c : data/NimbusSanL-ReguItal.cff ;
HexDump data/StandardSymL.c : data/StandardSymL.cff ;
HexDump data/URWChanceryL-MediItal.c : data/URWChanceryL-MediItal.cff ;
-Library libfonts :
+Library libmupdf :
data/Dingbats.c
data/NimbusMonL-Bold.c
data/NimbusMonL-BoldObli.c
@@ -192,40 +238,43 @@ Library libfonts :
data/URWChanceryL-MediItal.c
;
-LINKLIBS =
- -lfreetype
- -ljbig2dec
- -ljasper
- -ljpeg
- -lz
- -lm
- ;
-
-LINKLIBS on x11pdf$(SUFEXE) = -lX11 -lXext $(LINKLIBS) ;
-LINKLIBS on w32pdf$(SUFEXE) = -lgdi32 $(LINKLIBS) ;
-
-Main pdfclean : test/pdfclean.c ;
-Main pdfdebug : test/pdfdebug.c ;
-# Main pdfmerge : test/pdfmerge.c ;
-Main pdfrip : test/pdfrip.c ;
-# Main pdffunction : test/pdffunction.c ;
+#
+# Applications
+#
-Main x11pdf : test/x11pdf.c test/ximage.c ;
+if $(OS) = NT
+{
+ Main w32pdf : test/w32pdf.c ;
+ LinkLibraries w32pdf : libmupdf libfitz ;
+ LINKLIBS on w32pdf$(SUFEXE) = -lgdi32 $(LINKLIBS) ;
+}
-CCFLAGS += `pkg-config --cflags gtk+ gthread` ;
-LINKLIBS on gtkpdf = $(LINKLIBS) `pkg-config --libs gtk+ gmodule gthread` ;
+if $(OS) = MACOSX
+{
+ Main carbonpdf : macpdf/carbonpdf.c macpdf/view.c ;
+ LinkLibraries carbonpdf : libmupdf libfitz ;
+ LINKLIBS on carbonpdf = -framework Carbon $(LINKLIBS) ;
+ File macpdf/carbonpdf.app/Contents/MacOS/carbonpdf : carbonpdf ;
+ MODE on macpdf/carbonpdf.app/Contents/MacOS/carbonpdf = 755 ;
+}
-LINKLIBS on carbonpdf = $(LINKLIBS) -framework Carbon ;
+if $(HAVE_X11)
+{
+ Main x11pdf : test/x11pdf.c test/ximage.c ;
+ LinkLibraries x11pdf : libmupdf libfitz ;
+ LINKLIBS on x11pdf$(SUFEXE) = -lX11 -lXext $(LINKLIBS) ;
+}
-Main gtkpdf : test/gtkpdf.c ;
+if $(HAVE_GTK)
+{
+ Main gtkpdf : test/gtkpdf.c ;
+ LinkLibraries x11pdf : libmupdf libfitz ;
+ CCFLAGS += `pkg-config --cflags gtk+ gthread` ;
+ LINKLIBS on gtkpdf$(SUFEXE) = `pkg-config --libs gtk+ gmodule gthread` $(LINKLIBS) ;
+}
-LinkLibraries
- pdfclean
- pdfdebug
- pdfmerge
- pdfrip
- pdffunction
- x11pdf
- gtkpdf
- : libmupdf libfonts libfitz ;
+Main pdfclean : test/pdfclean.c ;
+Main pdfdebug : test/pdfdebug.c ;
+Main pdfrip : test/pdfrip.c ;
+LinkLibraries pdfclean pdfdebug pdfrip : libmupdf libfitz ;
diff --git a/base/cpudep.c b/base/cpudep.c
index 779ebbb0..ec19fe92 100644
--- a/base/cpudep.c
+++ b/base/cpudep.c
@@ -7,6 +7,8 @@ Glenn Kennard <d98gk@efd.lth.se>
#include <fitz.h>
+#include <setjmp.h>
+
#ifdef WIN32
#define sigjmp_buf jmp_buf
#define sigsetjmp(a,b) setjmp(a)
diff --git a/mupdf/stream.c b/mupdf/stream.c
index c0a99d6d..01958853 100644
--- a/mupdf/stream.c
+++ b/mupdf/stream.c
@@ -104,7 +104,7 @@ buildonefilter(fz_filter **fp, fz_obj *f, fz_obj *p)
return fz_newlzwd(fp, p);
}
-#ifdef HAVE_JBIG2
+#ifdef HAVE_JBIG2DEC
if (!strcmp(s, "JBIG2Decode"))
{
/* TODO: extract and feed JBIG2Global */