diff options
author | Tor Andersson <tor@ghostscript.com> | 2005-01-11 18:47:38 +0100 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2005-01-11 18:47:38 +0100 |
commit | f2105f20cbd9ca7e8ebed81e165b296230d997f1 (patch) | |
tree | 55d4308ada414abdb86ebcfa46ed77dab259db62 | |
parent | 4a6def1aebcb61599f9d975e92079aad5bb423c6 (diff) | |
download | mupdf-f2105f20cbd9ca7e8ebed81e165b296230d997f1.tar.xz |
fix jamfile & co for win32
-rw-r--r-- | Jamfile | 104 | ||||
-rw-r--r-- | Makefile | 200 | ||||
-rw-r--r-- | apps/pdffunction.c | 263 | ||||
-rw-r--r-- | apps/showcmap.c | 22 | ||||
-rw-r--r-- | base/cpudep.c | 6 | ||||
-rw-r--r-- | mupdf/nametree.c | 2 | ||||
-rw-r--r-- | util/strlcat.c | 4 | ||||
-rw-r--r-- | util/strlcpy.c | 4 | ||||
-rw-r--r-- | util/strsep.c | 4 |
9 files changed, 59 insertions, 550 deletions
@@ -11,56 +11,63 @@ HDRS = include filter ; # 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 ; -} +# CCFLAGS += -DARCH_$(OSPLAT) ; -if $(OS) = LINUX +switch $(BUILD) { - CCFLAGS += -std=c99 -DHAVE_C99 -Wall ; - CCFLAGS += -DNEED_STRLCPY -DNEED_GETOPT -DNEED_MATH ; + case RELEASE : + Echo Release build for $(OS) $(OSPLAT) ; + OPTIM = -O3 ; + case PROFILE : + Echo Profiling build for $(OS) $(OSPLAT) ; + OPTIM = -g -pg ; + case * : + Echo Debug build for $(OS) $(OSPLAT) ; + OPTIM = -g ; } -if $(OS) = MACOSX +switch $(OS) { - CCFLAGS += -std=c99 -DHAVE_C99 -Wall -faltivec ; + case LINUX : + CCFLAGS += -std=c89 -Wall ; + CCFLAGS += -DNEED_GETOPT ; + CCFLAGS += -DNEED_STRLCPY ; + CCFLAGS += -DNEED_STRLCAT ; + case MACOSX : + CCFLAGS += -std=gnu99 -DHAVE_C99 -Wall -faltivec ; + case NT : + NOARSCAN = true ; + CCFLAGS += -std=gnu99 -DHAVE_C99 -Wall -DWIN32 ; + CCFLAGS += -DNEED_GETOPT ; + CCFLAGS += -DNEED_STRSEP ; + CCFLAGS += -DNEED_STRLCPY ; + CCFLAGS += -DNEED_STRLCAT ; + case SOLARIS : + CCFLAGS += -std=c89 -Wall ; } -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 - ; +if -DNEED_GETOPT in $(CCFLAGS) { Library libfitz : util/getopt.c ; } +if -DNEED_STRSEP in $(CCFLAGS) { Library libfitz : util/strsep.c ; } +if -DNEED_STRLCPY in $(CCFLAGS) { Library libfitz : util/strlcpy.c ; } +if -DNEED_STRLCAT in $(CCFLAGS) { Library libfitz : util/strlcat.c ; } + +if $(HAVE_JASPER) +{ + CCFLAGS += -DHAVE_JASPER ; + LINKLIBS += -ljasper ; + Library libfitz : filter/jpxd.c ; +} + +if $(HAVE_JBIG2DEC) +{ + CCFLAGS += -DHAVE_JBIG2DEC ; + LINKLIBS += -ljbig2dec ; + Library libfitz : filter/jbig2d.c ; +} Library libfitz : base/cpudep.c @@ -138,9 +145,6 @@ Library libfitz : render/render.c ; -if $(HAVE_JBIG2DEC) { Library libfitz : filter/jbig2d.c ; } -if $(HAVE_JASPER) { Library libfitz : filter/jpxd.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 ; } @@ -242,11 +246,13 @@ Library libmupdf : # Applications # +LINKLIBS = -lfreetype -ljpeg -lz -lm ; + if $(OS) = NT { Main w32pdf : apps/w32pdf.c ; LinkLibraries w32pdf : libmupdf libfitz ; - LINKLIBS on w32pdf$(SUFEXE) = -lgdi32 $(LINKLIBS) ; + LINKLIBS on w32pdf$(SUFEXE) = $(LINKLIBS) -lgdi32 ; } if $(OS) = MACOSX @@ -254,22 +260,24 @@ if $(OS) = MACOSX MACPDF = apps/macpdf.app/Contents/MacOS/macpdf ; Main $(MACPDF) : apps/macpdf.app/macpdf.c apps/macpdf.app/view.c ; LinkLibraries $(MACPDF) : libmupdf libfitz ; - LINKLIBS on $(MACPDF) = -framework Carbon $(LINKLIBS) ; + LINKLIBS on $(MACPDF) = $(LINKLIBS) -framework Carbon ; } if $(HAVE_X11) { Main x11pdf : apps/x11pdf.c apps/ximage.c ; LinkLibraries x11pdf : libmupdf libfitz ; - LINKLIBS on x11pdf$(SUFEXE) = -lX11 -lXext $(LINKLIBS) ; + LINKLIBS on x11pdf$(SUFEXE) = $(LINKLIBS) -lX11 -lXext ; } if $(HAVE_GTK) { Main gtkpdf : apps/gtkpdf.c ; - LinkLibraries x11pdf : libmupdf libfitz ; - CCFLAGS += `pkg-config --cflags gtk+ gthread` ; - LINKLIBS on gtkpdf$(SUFEXE) = `pkg-config --libs gtk+ gmodule gthread` $(LINKLIBS) ; + CCFLAGS on apps/gtkpdf.c = + $(CCFLAGS) `pkg-config --cflags gtk+ gthread` ; + LinkLibraries gtkpdf : libmupdf libfitz ; + LINKLIBS on gtkpdf$(SUFEXE) = + $(LINKLIBS) `pkg-config --libs gtk+ gmodule gthread` ; } Main pdfclean : apps/pdfclean.c ; diff --git a/Makefile b/Makefile deleted file mode 100644 index 1724b7ce..00000000 --- a/Makefile +++ /dev/null @@ -1,200 +0,0 @@ -# -# requires: gtk-config freetype-config xxd sed -# - -CFLAGS = -Wall -O3 -std=c89 -Iinclude `freetype-config --cflags` -LDLIBS = `freetype-config --libs` -ljpeg -lz -lm - -X11DIR = /usr/X11R6 - -all: libfitz.a libmupdf.a libfonts.a pdfrip pdfclean pdfdebug x11pdf gtkpdf - -# util/strlcpy.o util/strlcat.o \ -# util/getopt.o \ -# util/strsep.o \ - -libfitz.a: \ - base/cpudep.o \ - base/error.o \ - base/memory.o \ - base/md5.o \ - base/arc4.o \ - base/rect.o \ - base/matrix.o \ - base/hash.o \ - base/rune.o \ - object/simple.o \ - object/array.o \ - object/dict.o \ - object/print.o \ - object/parse.o \ - filter/buffer.o \ - filter/filter.o \ - filter/filec.o \ - filter/filer.o \ - filter/filew.o \ - filter/null.o \ - filter/arc4filter.o \ - filter/pipeline.o \ - filter/ahxd.o \ - filter/ahxe.o \ - filter/a85d.o \ - filter/a85e.o \ - filter/rld.o \ - filter/rle.o \ - filter/predict.o \ - filter/lzwd.o \ - filter/lzwe.o \ - filter/faxd.o \ - filter/faxdtab.o \ - filter/faxe.o \ - filter/faxetab.o \ - filter/flate.o \ - filter/dctd.o \ - filter/dcte.o \ - tree/cmap.o \ - tree/font.o \ - tree/colorspace.o \ - tree/image.o \ - tree/shade.o \ - tree/tree.o \ - tree/node1.o \ - tree/node2.o \ - tree/text.o \ - tree/path.o \ - tree/debug.o \ - tree/optimize.o \ - render/glyphcache.o \ - render/pixmap.o \ - render/porterduff.o \ - render/meshdraw.o \ - render/imagedraw.o \ - render/imageunpack.o \ - render/imagescale.o \ - render/pathscan.o \ - render/pathfill.o \ - render/pathstroke.o \ - render/render.o - ar cru $(@) $(?) - ranlib $(@) - -libmupdf.a: \ - mupdf/debug.o \ - mupdf/lex.o \ - mupdf/parse.o \ - mupdf/crypt.o \ - mupdf/open.o \ - mupdf/repair.o \ - mupdf/save.o \ - mupdf/xref.o \ - mupdf/stream.o \ - mupdf/doctor.o \ - mupdf/nametree.o \ - mupdf/outline.o \ - mupdf/annot.o \ - mupdf/pagetree.o \ - mupdf/store.o \ - mupdf/resources.o \ - mupdf/function.o \ - mupdf/colorspace1.o \ - mupdf/colorspace2.o \ - mupdf/xobject.o \ - mupdf/image.o \ - mupdf/pattern.o \ - mupdf/shade.o \ - mupdf/shade1.o \ - mupdf/shade2.o \ - mupdf/shade3.o \ - mupdf/shade4.o \ - mupdf/cmap.o \ - mupdf/unicode.o \ - mupdf/fontagl.o \ - mupdf/fontenc.o \ - mupdf/fontfile.o \ - mupdf/font.o \ - mupdf/type3.o \ - mupdf/page.o \ - mupdf/build.o \ - mupdf/interpret.o - ar cru $(@) $(?) - ranlib $(@) - -%.c: %.cff - xxd -i $(<) | sed -e 's/data_//g;s/, /,/g' > $(@) - -data/Dingbats.c: data/Dingbats.cff -data/NimbusMonL-Bold.c: data/NimbusMonL-Bold.cff -data/NimbusMonL-BoldObli.c: data/NimbusMonL-BoldObli.cff -data/NimbusMonL-Regu.c: data/NimbusMonL-Regu.cff -data/NimbusMonL-ReguObli.c: data/NimbusMonL-ReguObli.cff -data/NimbusRomNo9L-Medi.c: data/NimbusRomNo9L-Medi.cff -data/NimbusRomNo9L-MediItal.c: data/NimbusRomNo9L-MediItal.cff -data/NimbusRomNo9L-Regu.c: data/NimbusRomNo9L-Regu.cff -data/NimbusRomNo9L-ReguItal.c: data/NimbusRomNo9L-ReguItal.cff -data/NimbusSanL-Bold.c: data/NimbusSanL-Bold.cff -data/NimbusSanL-BoldItal.c: data/NimbusSanL-BoldItal.cff -data/NimbusSanL-Regu.c: data/NimbusSanL-Regu.cff -data/NimbusSanL-ReguItal.c: data/NimbusSanL-ReguItal.cff -data/StandardSymL.c: data/StandardSymL.cff -data/URWChanceryL-MediItal.c: data/URWChanceryL-MediItal.cff - -.FONTS: \ - data/Dingbats.c \ - data/NimbusMonL-Bold.c \ - data/NimbusMonL-BoldObli.c \ - data/NimbusMonL-Regu.c \ - data/NimbusMonL-ReguObli.c \ - data/NimbusRomNo9L-Medi.c \ - data/NimbusRomNo9L-MediItal.c \ - data/NimbusRomNo9L-Regu.c \ - data/NimbusRomNo9L-ReguItal.c \ - data/NimbusSanL-Bold.c \ - data/NimbusSanL-BoldItal.c \ - data/NimbusSanL-Regu.c \ - data/NimbusSanL-ReguItal.c \ - data/StandardSymL.c \ - data/URWChanceryL-MediItal.c - -libfonts.a: \ - data/Dingbats.o \ - data/NimbusMonL-Bold.o \ - data/NimbusMonL-BoldObli.o \ - data/NimbusMonL-Regu.o \ - data/NimbusMonL-ReguObli.o \ - data/NimbusRomNo9L-Medi.o \ - data/NimbusRomNo9L-MediItal.o \ - data/NimbusRomNo9L-Regu.o \ - data/NimbusRomNo9L-ReguItal.o \ - data/NimbusSanL-Bold.o \ - data/NimbusSanL-BoldItal.o \ - data/NimbusSanL-Regu.o \ - data/NimbusSanL-ReguItal.o \ - data/StandardSymL.o \ - data/URWChanceryL-MediItal.o - ar cru $(@) $(?) - ranlib $(@) - -test/ximage.o: test/ximage.c - $(CC) -c $(CFLAGS) -o $(@) $(^) -I$(X11DIR)/include - -test/x11pdf.o: test/x11pdf.c - $(CC) -c $(CFLAGS) -o $(@) $(^) -I$(X11DIR)/include - -x11pdf: test/x11pdf.o test/ximage.o - $(CC) -o $(@) $(^) libmupdf.a libfonts.a libfitz.a $(LDLIBS) -L$(X11DIR)/lib -lX11 -lXext - -test/gtkpdf.o: test/gtkpdf.c - $(CC) -c $(CFLAGS) -o $(@) $(^) `gtk-config --cflags` - -gtkpdf: test/gtkpdf.o - $(CC) -o $(@) $(^) libmupdf.a libfonts.a libfitz.a $(LDLIBS) `gtk-config --libs gthread` - -pdfrip: test/pdfrip.o - $(CC) -o $(@) $(^) libmupdf.a libfonts.a libfitz.a $(LDLIBS) - -pdfdebug: test/pdfdebug.o - $(CC) -o $(@) $(^) libmupdf.a libfonts.a libfitz.a $(LDLIBS) - -pdfclean: test/pdfclean.o - $(CC) -o $(@) $(^) libmupdf.a libfonts.a libfitz.a $(LDLIBS) - diff --git a/apps/pdffunction.c b/apps/pdffunction.c deleted file mode 100644 index 20dabf1e..00000000 --- a/apps/pdffunction.c +++ /dev/null @@ -1,263 +0,0 @@ -#include <fitz.h> -#include <mupdf.h> - -static char *password = ""; -static int dodecode = 0; -static int dorepair = 0; -static int doprintxref = 0; - -typedef struct psobj_s psobj; - -struct pdf_function_s -{ - unsigned short type; /* 0=sample 2=exponential 3=stitching 4=postscript */ - int m; /* number of input values */ - int n; /* number of output values */ - float *domain; /* even index : min value, odd index : max value */ - float *range; /* even index : min value, odd index : max value */ - union - { - struct { - unsigned short bps; - unsigned short order; - int *size; /* the num of samples in each input dimension */ - float *encode; - float *decode; - int *samples; - } sa; - struct { - float n; - float *c0; - float *c1; - } e; - struct { - int k; - pdf_function **funcs; - float *bounds; - float *encode; - } st; - struct { - psobj *code; - int cap; - } p; - }u; -}; - -void usage() -{ - fprintf(stderr, "usage: pdffunction [-drxs] [-u password] file.pdf oid [input ...]\n"); - exit(1); -} - -static int safecol = 0; - -void printsafe(unsigned char *buf, int n) -{ - int i; - for (i = 0; i < n; i++) { - if (buf[i] == '\r' || buf[i] == '\n') { - printf("\n"); - safecol = 0; - } - else if (buf[i] < 32 || buf[i] > 126) { - printf("."); - safecol ++; - } - else { - printf("%c", buf[i]); - safecol ++; - } - if (safecol == 79) { - printf("\n"); - safecol = 0; - } - } -} - -void decodestream(pdf_xref *xref, int oid, int gid) -{ - fz_error *error; - unsigned char buf[512]; - - safecol = 0; - - error = pdf_openstream(xref, oid, gid); - if (error) fz_abort(error); - - while (1) - { - int n = fz_read(xref->stream, buf, sizeof buf); - if (n == 0) - break; - if (n < 0) - fz_abort(fz_ferror(xref->stream)); - printsafe(buf, n); - } - - pdf_closestream(xref); -} - -void copystream(pdf_xref *xref, int oid, int gid) -{ - fz_error *error; - unsigned char buf[512]; - - safecol = 0; - - error = pdf_openrawstream(xref, oid, gid); - if (error) fz_abort(error); - - while (1) - { - int n = fz_read(xref->stream, buf, sizeof buf); - if (n == 0) - break; - if (n < 0) - fz_abort(fz_ferror(xref->stream)); - printsafe(buf, n); - } - - pdf_closestream(xref); -} - -void printobject(pdf_xref *xref, int oid, int gid) -{ - fz_error *error; - fz_obj *obj; - - error = pdf_loadobject(&obj, xref, oid, gid); - if (error) fz_abort(error); - - printf("%d %d obj\n", oid, gid); - fz_debugobj(obj); - printf("\n"); - - if (xref->table[oid].stmofs) { - printf("stream\n"); - if (dodecode) - decodestream(xref, oid, gid); - else - copystream(xref, oid, gid); - printf("endstream\n"); - } - - printf("endobj\n"); - - fz_dropobj(obj); -} - -int main(int argc, char **argv) -{ - fz_error *error; - char *filename; - pdf_xref *xref; - int c; - - while ((c = getopt(argc, argv, "drxopu:")) != -1) - { - switch (c) - { - case 'd': - dodecode ++; - break; - case 'r': - dorepair ++; - break; - case 'x': - doprintxref ++; - break; - case 'u': - password = optarg; - break; - default: - usage(); - } - } - - if (argc - optind == 0) - usage(); - - filename = argv[optind++]; - - if (dorepair) - error = pdf_repairpdf(&xref, filename); - else - error = pdf_openpdf(&xref, filename); - if (error) - fz_abort(error); - - error = pdf_decryptpdf(xref); - if (error) - fz_abort(error); - - if (xref->crypt) - { - error = pdf_setpassword(xref->crypt, password); - if (error) fz_abort(error); - } - - if (optind == argc) - { - printf("trailer\n"); - fz_debugobj(xref->trailer); - printf("\n"); - } - else - { - int oid = atoi(argv[optind++]); - if(optind == argc) - printobject(xref, oid, 0); - else - { - float *in = nil, *out = nil; - pdf_function *func; - fz_obj *funcobj; - int i; - - /* type 0 and type 4 funcs must be indirect to read stream */ - error = fz_newindirect(&funcobj,oid,0); - if(error) fz_abort(error); - error = pdf_loadfunction(&func,xref,funcobj); - if(error) fz_abort(error); - in = fz_malloc(func->m * sizeof(float)); - out = fz_malloc(func->n * sizeof(float)); - - if(!in || !out) - fz_abort(fz_outofmem); - - for(i = 0; optind < argc; optind++, i++) - { - if(i >= func->m) - fz_abort(fz_throw("too much input values")); - - in[i] = atof(argv[optind]); - } - - if(i < func->m) - fz_abort(fz_throw("too few input values")); - - error = pdf_evalfunction(func, in, func->m, out, func->n); - if(error) fz_abort(error); - - for(i = 0; i < func->n; ++i) - fprintf(stderr, "output[%d] : %f\n", i, out[i]); - - fz_dropobj(funcobj); - pdf_dropfunction(func); - } - } - - for ( ; optind < argc; optind++) - { - printobject(xref, atoi(argv[optind]), 0); - printf("\n"); - } - - if (doprintxref) - pdf_debugpdf(xref); - - pdf_closepdf(xref); - - return 0; -} - diff --git a/apps/showcmap.c b/apps/showcmap.c deleted file mode 100644 index 3e6e5e8e..00000000 --- a/apps/showcmap.c +++ /dev/null @@ -1,22 +0,0 @@ -#include <fitz.h> -#include <mupdf.h> - -int main(int argc, char **argv) -{ - fz_error *err; - fz_cmap *cmap; - fz_file *file; - - err = fz_openfile(&file, argv[1], FZ_READ); - if (err) - fz_abort(err); - - err = pdf_parsecmap(&cmap, file); - if (err) - fz_abort(err); - - fz_debugcmap(cmap); - - return 0; -} - diff --git a/base/cpudep.c b/base/cpudep.c index ec19fe92..616a3563 100644 --- a/base/cpudep.c +++ b/base/cpudep.c @@ -7,7 +7,8 @@ Glenn Kennard <d98gk@efd.lth.se> #include <fitz.h> -#include <setjmp.h> +#include <signal.h> /* signal/sigaction */ +#include <setjmp.h> /* sigsetjmp/siglongjmp */ #ifdef WIN32 #define sigjmp_buf jmp_buf @@ -95,9 +96,6 @@ static const featuretest features[1] = { }; #endif -#include <signal.h> /* signal/sigaction */ -#include <setjmp.h> /* sigsetjmp/siglongjmp */ - /* global run-time constant */ unsigned fz_cpuflags = 0; diff --git a/mupdf/nametree.c b/mupdf/nametree.c index 1b766e64..04b5192b 100644 --- a/mupdf/nametree.c +++ b/mupdf/nametree.c @@ -85,7 +85,7 @@ pdf_loadnametree(fz_obj **dictp, pdf_xref *xref, fz_obj *root) return error; } -// fz_sortdict(tree); + fz_sortdict(tree); *dictp = tree; return nil; diff --git a/util/strlcat.c b/util/strlcat.c index 46edd434..c659b73a 100644 --- a/util/strlcat.c +++ b/util/strlcat.c @@ -4,8 +4,6 @@ * Returns strlen(src); if retval >= siz, truncation occurred. */ -#ifdef NEED_STRLCAT - #include <string.h> int strlcat(char *dst, const char *src, int siz) @@ -35,5 +33,3 @@ int strlcat(char *dst, const char *src, int siz) return dlen + (s - src); /* count does not include NUL */ } -#endif - diff --git a/util/strlcpy.c b/util/strlcpy.c index 72e45d6b..73416ae1 100644 --- a/util/strlcpy.c +++ b/util/strlcpy.c @@ -3,8 +3,6 @@ * Returns strlen(src); if retval >= siz, truncation occurred. */ -#ifdef NEED_STRLCPY - #include <string.h> int strlcpy(char *dst, const char *src, int siz) @@ -32,5 +30,3 @@ int strlcpy(char *dst, const char *src, int siz) return(s - src - 1); /* count does not include NUL */ } -#endif - diff --git a/util/strsep.c b/util/strsep.c index e3592c2a..e54903ce 100644 --- a/util/strsep.c +++ b/util/strsep.c @@ -1,5 +1,3 @@ -#ifdef NEED_STRSEP - #include <string.h> char *strsep(char **stringp, const char *delim) @@ -11,5 +9,3 @@ char *strsep(char **stringp, const char *delim) return ret; } -#endif - |