home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-12-16 | 58.2 KB | 1,539 lines |
- Newsgroups: comp.sources.misc
- From: jpeg-info@uunet.uu.net (Independent JPEG Group)
- Subject: v34i070: jpeg - JPEG image compression, Part16/18
- Message-ID: <1992Dec17.165119.6877@sparky.imd.sterling.com>
- X-Md4-Signature: 60e32a087ee2e85a9dad1b12087b1186
- Date: Thu, 17 Dec 1992 16:51:19 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: jpeg-info@uunet.uu.net (Independent JPEG Group)
- Posting-number: Volume 34, Issue 70
- Archive-name: jpeg/part16
- Environment: UNIX, VMS, MS-DOS, Mac, Amiga, Atari, Cray
- Supersedes: jpeg: Volume 29, Issue 1-18
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # Contents: cjpeg.1 codingrules jddeflts.c jmemname.c makefile.ansi
- # makefile.bcc makefile.mms makefile.unix
- # Wrapped by kent@sparky on Wed Dec 16 20:52:31 1992
- PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 16 (of 18)."'
- if test -f 'cjpeg.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cjpeg.1'\"
- else
- echo shar: Extracting \"'cjpeg.1'\" \(7838 characters\)
- sed "s/^X//" >'cjpeg.1' <<'END_OF_FILE'
- X.TH CJPEG 1 "4 November 1992"
- X.SH NAME
- Xcjpeg \- compress an image file to a JPEG file
- X.SH SYNOPSIS
- X.B cjpeg
- X[
- X.BI \-quality " N"
- X]
- X[
- X.B \-grayscale
- X]
- X[
- X.B \-optimize
- X]
- X[
- X.B \-targa
- X]
- X[
- X.BI \-maxmemory " N"
- X]
- X[
- X.BI \-restart " N"
- X]
- X[
- X.BI \-smooth " N"
- X]
- X[
- X.B \-verbose
- X]
- X[
- X.B \-debug
- X]
- X[
- X.B \-arithmetic
- X]
- X[
- X.B \-nointerleave
- X]
- X[
- X.BI \-qtables " file"
- X]
- X[
- X.BI \-sample " HxV[,...]"
- X]
- X[
- X.I filename
- X]
- X.LP
- X.SH DESCRIPTION
- X.LP
- X.B cjpeg
- Xcompresses the named image file, or the standard input if no file is
- Xnamed, and produces a JPEG/JFIF file on the standard output.
- XThe currently supported input file formats are: PPM (PBMPLUS color
- Xformat), PGM (PBMPLUS gray-scale format), GIF, Targa, and RLE (Utah Raster
- XToolkit format). (RLE is supported only if the URT library is available.)
- X.SH OPTIONS
- XAll switch names may be abbreviated; for example,
- X.B \-grayscale
- Xmay be written
- X.B \-gray
- Xor
- X.BR \-gr .
- XMost of the "basic" switches can be abbreviated to as little as one letter.
- XUpper and lower case are equivalent (thus
- X.B \-GIF
- Xis the same as
- X.BR \-gif ).
- XBritish spellings are also accepted (e.g.,
- X.BR \-greyscale ),
- Xthough for brevity these are not mentioned below.
- X.PP
- XThe basic switches are:
- X.TP
- X.BI \-quality " N"
- XScale quantization tables to adjust image quality. Quality is 0 (worst) to
- X100 (best); default is 75. (See below for more info.)
- X.TP
- X.B \-grayscale
- XCreate monochrome JPEG file from color input. Be sure to use this switch when
- Xcompressing a grayscale GIF file, because
- X.B cjpeg
- Xisn't bright enough to notice whether a GIF file uses only shades of gray.
- XBy saying
- X.BR \-grayscale ,
- Xyou'll get a smaller JPEG file that takes less time to process.
- X.TP
- X.B \-optimize
- XPerform optimization of entropy encoding parameters. Without this, default
- Xencoding parameters are used.
- X.B \-optimize
- Xusually makes the JPEG file a little smaller, but
- X.B cjpeg
- Xruns somewhat slower and needs much more memory. Image quality and speed of
- Xdecompression are unaffected by
- X.BR \-optimize .
- X.TP
- X.B \-targa
- XInput file is Targa format. Targa files that contain an "identification"
- Xfield will not be automatically recognized by
- X.BR cjpeg ;
- Xfor such files you must specify
- X.B \-targa
- Xto make
- X.B cjpeg
- Xtreat the input as Targa format.
- X.PP
- XThe
- X.B \-quality
- Xswitch lets you trade off compressed file size against quality of the
- Xreconstructed image: the higher the quality setting, the larger the JPEG file,
- Xand the closer the output image will be to the original input. Normally you
- Xwant to use the lowest quality setting (smallest file) that decompresses into
- Xsomething visually indistinguishable from the original image. For this
- Xpurpose the quality setting should be between 50 and 95; the default of 75 is
- Xoften about right. If you see defects at
- X.B \-quality
- X75, then go up 5 or 10 counts at a time until you are happy with the output
- Ximage. (The optimal setting will vary from one image to another.)
- X.PP
- X.B \-quality
- X100 will generate a quantization table of all 1's, eliminating loss in the
- Xquantization step (but there is still information loss in subsampling, as well
- Xas roundoff error). This setting is mainly of interest for experimental
- Xpurposes. Quality values above about 95 are
- X.B not
- Xrecommended for normal use; the compressed file size goes up dramatically for
- Xhardly any gain in output image quality.
- X.PP
- XIn the other direction, quality values below 50 will produce very small files
- Xof low image quality. Settings around 5 to 10 might be useful in preparing an
- Xindex of a large image library, for example. Try
- X.B \-quality
- X2 (or so) for some amusing Cubist effects. (Note: quality
- Xvalues below about 25 generate 2-byte quantization tables, which are
- Xconsidered optional in the JPEG standard.
- X.B cjpeg
- Xemits a warning message when you give such a quality value, because some
- Xcommercial JPEG programs may be unable to decode the resulting file.)
- X.PP
- XSwitches for advanced users:
- X.TP
- X.BI \-maxmemory " N"
- XSet limit for amount of memory to use in processing large images. Value is
- Xin thousands of bytes, or millions of bytes if "M" is attached to the
- Xnumber. For example,
- X.B \-max 4m
- Xselects 4000000 bytes. If more space is needed, temporary files will be used.
- X.TP
- X.BI \-restart " N"
- XEmit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is
- Xattached to the number.
- X.B \-restart 0
- X(the default) means no restart markers.
- X.TP
- X.BI \-smooth " N"
- XSmooth the input image to eliminate dithering noise. N, ranging from 1 to
- X100, indicates the strength of smoothing. 0 (the default) means no smoothing.
- X.TP
- X.B \-verbose
- XEnable debug printout. More
- X.BR \-v 's
- Xgive more output. Also, version information is printed at startup.
- X.TP
- X.B \-debug
- XSame as
- X.BR \-verbose .
- X.PP
- XThe
- X.B \-restart
- Xoption inserts extra markers that allow a JPEG decoder to resynchronize after
- Xa transmission error. Without restart markers, any damage to a compressed
- Xfile will usually ruin the image from the point of the error to the end of the
- Ximage; with restart markers, the damage is usually confined to the portion of
- Xthe image up to the next restart marker. Of course, the restart markers
- Xoccupy extra space. We recommend
- X.B \-restart 1
- Xfor images that will be transmitted across unreliable networks such as Usenet.
- X.PP
- XThe
- X.B \-smooth
- Xoption filters the input to eliminate fine-scale noise. This is often useful
- Xwhen converting GIF files to JPEG: a moderate smoothing factor of 10 to 50
- Xgets rid of dithering patterns in the input file, resulting in a smaller JPEG
- Xfile and a better-looking image. Too large a smoothing factor will visibly
- Xblur the image, however.
- X.PP
- XSwitches for wizards:
- X.TP
- X.B \-arithmetic
- XUse arithmetic coding rather than Huffman coding. (Not currently
- Xsupported for legal reasons.)
- X.TP
- X.B \-nointerleave
- XGenerate noninterleaved JPEG file (not yet supported).
- X.TP
- X.BI \-qtables " file"
- XUse the quantization tables given in the specified file. The file should
- Xcontain one to four tables (64 values each) as plain text. Comments preceded
- Xby '#' may be included in the file. The tables are implicitly numbered
- X0,1,etc. If
- X.B \-quality
- XN is also specified, the values in the file are scaled according to
- X.BR cjpeg 's
- Xquality scaling curve.
- X.TP
- X.BI \-sample " HxV[,...]"
- XSet JPEG sampling factors. If you specify fewer H/V pairs than there are
- Xcomponents, the remaining components are set to 1x1 sampling. The default
- Xsetting is equivalent to \fB\-sample 2x2\fR.
- X.PP
- XThe "wizard" switches are intended for experimentation with JPEG. If you
- Xdon't know what you are doing, \fBdon't use them\fR. You can easily produce
- Xfiles with worse image quality and/or poorer compression than you'll get from
- Xthe default settings. Furthermore, these switches should not be used when
- Xmaking files intended for general use, because not all JPEG implementations
- Xwill support unusual JPEG parameter settings.
- X.SH EXAMPLES
- X.LP
- XThis example compresses the PPM file foo.ppm with a quality factor of
- X60 and saves the output as foo.jpg:
- X.IP
- X.B cjpeg \-quality
- X.I 60 foo.ppm
- X.B >
- X.I foo.jpg
- X.SH ENVIRONMENT
- X.TP
- X.B JPEGMEM
- XIf this environment variable is set, its value is the default memory limit.
- XThe value is specified as described for the
- X.B \-maxmemory
- Xswitch.
- X.B JPEGMEM
- Xoverrides the default value specified when the program was compiled, and
- Xitself is overridden by an explicit
- X.BR \-maxmemory .
- X.SH SEE ALSO
- X.BR djpeg (1)
- X.br
- X.BR ppm (5),
- X.BR pgm (5)
- X.br
- XWallace, Gregory K. "The JPEG Still Picture Compression Standard",
- XCommunications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44.
- X.SH AUTHOR
- XIndependent JPEG Group
- X.SH BUGS
- XArithmetic coding and interleaved output not yet supported.
- X.PP
- XNot all variants of Targa file format are supported.
- X.PP
- XThe
- X.B -targa
- Xswitch is not a bug, it's a feature. (It would be a bug if the Targa format
- Xdesigners had not been clueless.)
- X.PP
- XStill not as fast as we'd like.
- END_OF_FILE
- if test 7838 -ne `wc -c <'cjpeg.1'`; then
- echo shar: \"'cjpeg.1'\" unpacked with wrong size!
- fi
- # end of 'cjpeg.1'
- fi
- if test -f 'codingrules' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'codingrules'\"
- else
- echo shar: Extracting \"'codingrules'\" \(3948 characters\)
- sed "s/^X//" >'codingrules' <<'END_OF_FILE'
- X
- X JPEG SYSTEM CODING RULES 27-SEP-91
- X
- XSince numerous people will be contributing code and bug fixes, it's important
- Xto establish a common coding style. The goal of using similar coding styles
- Xis much more important than the details of just what that style is.
- X
- XI suggest we follow the recommendations of "Recommended C Style and Coding
- XStandards" revision 6.1 (Cannon et al. as modified by Spencer, Keppel and
- XBrader). I have placed a copy of this document in the jpeg FTP archive (see
- Xjpeg/doc/cstyle.ms.tbl.Z, or cstyle.txt.Z for those without nroff/tbl).
- X
- XUnless someone has a real strong objection, let's do block comments thusly:
- X
- X/*
- X * Block comments in this style.
- X */
- X
- Xand indent statements in K&R style, e.g.,
- X
- X if (test) {
- X then-part;
- X } else {
- X else-part;
- X }
- X
- XI suggest that multi-word names be written in the style multi_word_name
- Xrather than multiWordName, but I am open to argument on this.
- X
- X
- XI would like to use function prototypes everywhere, and rely on automatic
- Xsource code transformation to feed non-ANSI C compilers. The best tool
- XI have so far found for this is 'ansi2knr.c', which is part of Ghostscript.
- Xansi2knr is not very bright, so it imposes a format requirement on function
- Xdeclarations: the function name MUST BEGIN IN COLUMN 1. Thus all functions
- Xshould be written in the following style:
- X
- Xstatic int *
- Xfunction_name (int a, char *b)
- X{
- X code...
- X}
- X
- Xansi2knr won't help with method declarations (function pointers in structs).
- XI suggest we use a macro to declare method pointers, something like this:
- X
- X#ifdef PROTO
- X#define METHOD(type,methodname,arglist) type (*methodname) arglist
- X#else
- X#define METHOD(type,methodname,arglist) type (*methodname) ()
- X#endif
- X
- Xwhich is used like this:
- X
- Xstruct function_pointers {
- X METHOD(void, init_entropy_encoder, (functptrs fptrs, jparms *jp));
- X METHOD(void, term_entropy_encoder, (void));
- X};
- X
- XNote the set of parentheses surrounding the parameter list.
- X
- XA similar solution is used for external function declarations (see the PP
- Xmacro in jpegdata.h).
- X
- XIf the code is to work on non-ANSI compilers, you cannot rely on a prototype
- Xdeclaration to coerce actual parameters into the right types. Therefore, use
- Xexplicit casts on actual parameters whenever the actual parameter type is not
- Xidentical to the formal parameter. Beware of implicit conversions to "int".
- X
- XIt seems there are some non-ANSI compilers in which the sizeof() operator
- Xis defined to return int, while size_t is defined as long. Needless to say,
- Xthis is brain-damaged. Always use the SIZEOF() macro in place of sizeof(),
- Xso that the result is guaranteed to be of type size_t.
- X
- X
- XWe can expect that the JPEG compressor and decompressor will be incorporated
- Xinto larger programs. Therefore, the following rules are important:
- X
- X1. Avoid direct use of any file I/O, "malloc", error report printouts, etc;
- Xpass these through the common routines provided.
- X
- X2. Assume that the JPEG code may be invoked more than once per program run;
- Xtherefore, do not rely on static initialization of variables, and be careful
- Xto release all allocated storage at the end of processing.
- X
- X3. Minimize global namespace pollution. Functions should be declared static
- Xwherever possible. (Note that our method-based calling conventions help this
- Xa lot: in many modules only the method-selector function will ever need to be
- Xcalled directly, so only that function need be externally visible.) All
- Xglobal function names should begin with "j", and should be unique in the first
- Xsix characters for portability reasons.
- XDon't use global variables at all; anything that must be used in another
- Xmodule should be put into parameters (there'll be some large structs passed
- Xaround for this purpose).
- X
- X4. Source file names should also begin with "j"; remember to keep them to
- Xeight characters (plus ".c" or ".h", etc) to make life easy for MS-DOSers.
- XDo not put code for both compression and decompression into the same source
- Xfile.
- END_OF_FILE
- if test 3948 -ne `wc -c <'codingrules'`; then
- echo shar: \"'codingrules'\" unpacked with wrong size!
- fi
- # end of 'codingrules'
- fi
- if test -f 'jddeflts.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'jddeflts.c'\"
- else
- echo shar: Extracting \"'jddeflts.c'\" \(6529 characters\)
- sed "s/^X//" >'jddeflts.c' <<'END_OF_FILE'
- X/*
- X * jddeflts.c
- X *
- X * Copyright (C) 1991, 1992, Thomas G. Lane.
- X * This file is part of the Independent JPEG Group's software.
- X * For conditions of distribution and use, see the accompanying README file.
- X *
- X * This file contains optional default-setting code for the JPEG decompressor.
- X * User interfaces do not have to use this file, but those that don't use it
- X * must know more about the innards of the JPEG code.
- X */
- X
- X#include "jinclude.h"
- X
- X
- X/* Default do-nothing progress monitoring routine.
- X * This can be overridden by a user interface that wishes to
- X * provide progress monitoring; just set methods->progress_monitor
- X * after j_d_defaults is done. The routine will be called periodically
- X * during the decompression process.
- X *
- X * During any one pass, loopcounter increases from 0 up to (not including)
- X * looplimit; the step size is not necessarily 1. Both the step size and
- X * the limit may differ between passes. The expected total number of passes
- X * is in cinfo->total_passes, and the number of passes already completed is
- X * in cinfo->completed_passes. Thus the fraction of work completed may be
- X * estimated as
- X * completed_passes + (loopcounter/looplimit)
- X * ------------------------------------------
- X * total_passes
- X * ignoring the fact that the passes may not be equal amounts of work.
- X *
- X * When decompressing, the total_passes figure is an estimate that may be
- X * on the high side; completed_passes will jump by more than one if some
- X * passes are skipped.
- X */
- X
- XMETHODDEF void
- Xprogress_monitor (decompress_info_ptr cinfo, long loopcounter, long looplimit)
- X{
- X /* do nothing */
- X}
- X
- X
- X/*
- X * Reload the input buffer after it's been emptied, and return the next byte.
- X * See the JGETC macro for calling conditions. Note in particular that
- X * read_jpeg_data may NOT return EOF. If no more data is available, it must
- X * exit via ERREXIT, or perhaps synthesize fake data (such as an RST marker).
- X * In the present implementation, we insert an EOI marker; this might not be
- X * appropriate for non-JFIF file formats, but it usually allows us to handle
- X * a truncated JFIF file.
- X *
- X * This routine can be overridden by the system-dependent user interface,
- X * in case the data source is not a stdio stream or some other special
- X * condition applies. Note, however, that this capability only applies for
- X * JFIF or similar serial-access JPEG file formats. The input file control
- X * module for a random-access format such as TIFF/JPEG would most likely
- X * override the read_jpeg_data method with its own routine.
- X */
- X
- XMETHODDEF int
- Xread_jpeg_data (decompress_info_ptr cinfo)
- X{
- X cinfo->next_input_byte = cinfo->input_buffer + MIN_UNGET;
- X
- X cinfo->bytes_in_buffer = (int) JFREAD(cinfo->input_file,
- X cinfo->next_input_byte,
- X JPEG_BUF_SIZE);
- X
- X if (cinfo->bytes_in_buffer <= 0) {
- X WARNMS(cinfo->emethods, "Premature EOF in JPEG file");
- X cinfo->next_input_byte[0] = (char) 0xFF;
- X cinfo->next_input_byte[1] = (char) 0xD9; /* EOI marker */
- X cinfo->bytes_in_buffer = 2;
- X }
- X
- X return JGETC(cinfo);
- X}
- X
- X
- X
- X/* Default parameter setup for decompression.
- X *
- X * User interfaces that don't choose to use this routine must do their
- X * own setup of all these parameters. Alternately, you can call this
- X * to establish defaults and then alter parameters selectively. This
- X * is the recommended approach since, if we add any new parameters,
- X * your code will still work (they'll be set to reasonable defaults).
- X *
- X * standard_buffering should be TRUE to cause an input buffer to be allocated
- X * (the normal case); if FALSE, the user interface must provide a buffer.
- X * This option is most useful in the case that the buffer must not be freed
- X * at the end of an image. (For example, when reading a sequence of images
- X * from a single file, the remaining data in the buffer represents the
- X * start of the next image and mustn't be discarded.) To handle this,
- X * allocate the input buffer yourself at startup, WITHOUT using alloc_small
- X * (probably a direct call to malloc() instead). Then pass FALSE on each
- X * call to j_d_defaults to ensure the buffer state is not modified.
- X *
- X * If the source of the JPEG data is not a stdio stream, override the
- X * read_jpeg_data method with your own routine after calling j_d_defaults.
- X * You can still use the standard buffer if it's appropriate.
- X *
- X * CAUTION: if you want to decompress multiple images per run, it's necessary
- X * to call j_d_defaults before *each* call to jpeg_decompress, since subsidiary
- X * structures like the quantization tables are automatically freed during
- X * cleanup.
- X */
- X
- XGLOBAL void
- Xj_d_defaults (decompress_info_ptr cinfo, boolean standard_buffering)
- X/* NB: the external methods must already be set up. */
- X{
- X short i;
- X
- X /* Initialize pointers as needed to mark stuff unallocated. */
- X /* Outer application may fill in default tables for abbreviated files... */
- X cinfo->comp_info = NULL;
- X for (i = 0; i < NUM_QUANT_TBLS; i++)
- X cinfo->quant_tbl_ptrs[i] = NULL;
- X for (i = 0; i < NUM_HUFF_TBLS; i++) {
- X cinfo->dc_huff_tbl_ptrs[i] = NULL;
- X cinfo->ac_huff_tbl_ptrs[i] = NULL;
- X }
- X cinfo->colormap = NULL;
- X
- X /* Default to RGB output */
- X /* UI can override by changing out_color_space */
- X cinfo->out_color_space = CS_RGB;
- X cinfo->jpeg_color_space = CS_UNKNOWN;
- X /* Setting any other value in jpeg_color_space overrides heuristics in */
- X /* jrdjfif.c. That might be useful when reading non-JFIF JPEG files, */
- X /* but ordinarily the UI shouldn't change it. */
- X
- X /* Default to no gamma correction of output */
- X cinfo->output_gamma = 1.0;
- X
- X /* Default to no color quantization */
- X cinfo->quantize_colors = FALSE;
- X /* but set reasonable default parameters for quantization, */
- X /* so that turning on quantize_colors is sufficient to do something useful */
- X cinfo->two_pass_quantize = TRUE;
- X cinfo->use_dithering = TRUE;
- X cinfo->desired_number_of_colors = 256;
- X
- X /* Default to no smoothing */
- X cinfo->do_block_smoothing = FALSE;
- X cinfo->do_pixel_smoothing = FALSE;
- X
- X /* Allocate memory for input buffer, unless outer application provides it. */
- X if (standard_buffering) {
- X cinfo->input_buffer = (char *) (*cinfo->emethods->alloc_small)
- X ((size_t) (JPEG_BUF_SIZE + MIN_UNGET));
- X cinfo->bytes_in_buffer = 0; /* initialize buffer to empty */
- X }
- X
- X /* Install standard buffer-reloading method (outer code may override). */
- X cinfo->methods->read_jpeg_data = read_jpeg_data;
- X
- X /* Install default do-nothing progress monitoring method. */
- X cinfo->methods->progress_monitor = progress_monitor;
- X}
- END_OF_FILE
- if test 6529 -ne `wc -c <'jddeflts.c'`; then
- echo shar: \"'jddeflts.c'\" unpacked with wrong size!
- fi
- # end of 'jddeflts.c'
- fi
- if test -f 'jmemname.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'jmemname.c'\"
- else
- echo shar: Extracting \"'jmemname.c'\" \(7779 characters\)
- sed "s/^X//" >'jmemname.c' <<'END_OF_FILE'
- X/*
- X * jmemname.c (jmemsys.c)
- X *
- X * Copyright (C) 1992, Thomas G. Lane.
- X * This file is part of the Independent JPEG Group's software.
- X * For conditions of distribution and use, see the accompanying README file.
- X *
- X * This file provides a generic implementation of the system-dependent
- X * portion of the JPEG memory manager. This implementation assumes that
- X * you must explicitly construct a name for each temp file.
- X * Also, the problem of determining the amount of memory available
- X * is shoved onto the user.
- X */
- X
- X#include "jinclude.h"
- X#include "jmemsys.h"
- X
- X#ifdef INCLUDES_ARE_ANSI
- X#include <stdlib.h> /* to declare malloc(), free() */
- X#else
- Xextern void * malloc PP((size_t size));
- Xextern void free PP((void *ptr));
- X#endif
- X
- X#ifndef SEEK_SET /* pre-ANSI systems may not define this; */
- X#define SEEK_SET 0 /* if not, assume 0 is correct */
- X#endif
- X
- X#ifdef DONT_USE_B_MODE /* define mode parameters for fopen() */
- X#define READ_BINARY "r"
- X#define RW_BINARY "w+"
- X#else
- X#define READ_BINARY "rb"
- X#define RW_BINARY "w+b"
- X#endif
- X
- X
- Xstatic external_methods_ptr methods; /* saved for access to error_exit */
- X
- Xstatic long total_used; /* total memory requested so far */
- X
- X
- X/*
- X * Selection of a file name for a temporary file.
- X * This is system-dependent!
- X *
- X * The code as given is suitable for most Unix systems, and it is easily
- X * modified for most non-Unix systems. Some notes:
- X * 1. The temp file is created in the directory named by TEMP_DIRECTORY.
- X * The default value is /usr/tmp, which is the conventional place for
- X * creating large temp files on Unix. On other systems you'll probably
- X * want to change the file location. You can do this by editing the
- X * #define, or by defining TEMP_DIRECTORY in CFLAGS in the Makefile.
- X * For example, you might say
- X * CFLAGS= ... '-DTEMP_DIRECTORY="/tmp/"'
- X * Note that double quotes are needed in the text of the macro.
- X * With most make systems you have to put single quotes around the
- X * -D construct to preserve the double quotes.
- X * (Amiga SAS C has trouble with ":" and such in command-line options,
- X * so we've put in a special case for the preferred Amiga temp directory.)
- X *
- X * 2. If you need to change the file name as well as its location,
- X * you can override the TEMP_FILE_NAME macro. (Note that this is
- X * actually a printf format string; it must contain %s and %d.)
- X * Few people should need to do this.
- X *
- X * 3. mktemp() is used to ensure that multiple processes running
- X * simultaneously won't select the same file names. If your system
- X * doesn't have mktemp(), define NO_MKTEMP to do it the hard way.
- X *
- X * 4. You probably want to define NEED_SIGNAL_CATCHER so that jcmain/jdmain
- X * will cause the temp files to be removed if you stop the program early.
- X */
- X
- X#ifndef TEMP_DIRECTORY /* so can override from Makefile */
- X#ifdef AMIGA
- X#define TEMP_DIRECTORY "JPEGTMP:" /* recommended setting for Amiga */
- X#else
- X#define TEMP_DIRECTORY "/usr/tmp/" /* recommended setting for Unix */
- X#endif
- X#endif
- X
- Xstatic int next_file_num; /* to distinguish among several temp files */
- X
- X#ifdef NO_MKTEMP
- X
- X#ifndef TEMP_FILE_NAME /* so can override from Makefile */
- X#define TEMP_FILE_NAME "%sJPG%03d.TMP"
- X#endif
- X
- XLOCAL void
- Xselect_file_name (char * fname)
- X{
- X FILE * tfile;
- X
- X /* Keep generating file names till we find one that's not in use */
- X for (;;) {
- X next_file_num++; /* advance counter */
- X sprintf(fname, TEMP_FILE_NAME, TEMP_DIRECTORY, next_file_num);
- X if ((tfile = fopen(fname, READ_BINARY)) == NULL)
- X break;
- X fclose(tfile); /* oops, it's there; close tfile & try again */
- X }
- X}
- X
- X#else /* ! NO_MKTEMP */
- X
- X/* Note that mktemp() requires the initial filename to end in six X's */
- X#ifndef TEMP_FILE_NAME /* so can override from Makefile */
- X#define TEMP_FILE_NAME "%sJPG%dXXXXXX"
- X#endif
- X
- XLOCAL void
- Xselect_file_name (char * fname)
- X{
- X next_file_num++; /* advance counter */
- X sprintf(fname, TEMP_FILE_NAME, TEMP_DIRECTORY, next_file_num);
- X mktemp(fname); /* make sure file name is unique */
- X /* mktemp replaces the trailing XXXXXX with a unique string of characters */
- X}
- X
- X#endif /* NO_MKTEMP */
- X
- X
- X/*
- X * Memory allocation and freeing are controlled by the regular library
- X * routines malloc() and free().
- X */
- X
- XGLOBAL void *
- Xjget_small (size_t sizeofobject)
- X{
- X total_used += sizeofobject;
- X return (void *) malloc(sizeofobject);
- X}
- X
- XGLOBAL void
- Xjfree_small (void * object)
- X{
- X free(object);
- X}
- X
- X/*
- X * We assume NEED_FAR_POINTERS is not defined and so the separate entry points
- X * jget_large, jfree_large are not needed.
- X */
- X
- X
- X/*
- X * This routine computes the total memory space available for allocation.
- X * It's impossible to do this in a portable way; our current solution is
- X * to make the user tell us (with a default value set at compile time).
- X * If you can actually get the available space, it's a good idea to subtract
- X * a slop factor of 5% or so.
- X */
- X
- X#ifndef DEFAULT_MAX_MEM /* so can override from makefile */
- X#define DEFAULT_MAX_MEM 1000000L /* default: one megabyte */
- X#endif
- X
- XGLOBAL long
- Xjmem_available (long min_bytes_needed, long max_bytes_needed)
- X{
- X return methods->max_memory_to_use - total_used;
- X}
- X
- X
- X/*
- X * Backing store (temporary file) management.
- X * Backing store objects are only used when the value returned by
- X * jmem_available is less than the total space needed. You can dispense
- X * with these routines if you have plenty of virtual memory; see jmemnobs.c.
- X */
- X
- X
- XMETHODDEF void
- Xread_backing_store (backing_store_ptr info, void FAR * buffer_address,
- X long file_offset, long byte_count)
- X{
- X if (fseek(info->temp_file, file_offset, SEEK_SET))
- X ERREXIT(methods, "fseek failed on temporary file");
- X if (JFREAD(info->temp_file, buffer_address, byte_count)
- X != (size_t) byte_count)
- X ERREXIT(methods, "fread failed on temporary file");
- X}
- X
- X
- XMETHODDEF void
- Xwrite_backing_store (backing_store_ptr info, void FAR * buffer_address,
- X long file_offset, long byte_count)
- X{
- X if (fseek(info->temp_file, file_offset, SEEK_SET))
- X ERREXIT(methods, "fseek failed on temporary file");
- X if (JFWRITE(info->temp_file, buffer_address, byte_count)
- X != (size_t) byte_count)
- X ERREXIT(methods, "fwrite failed on temporary file --- out of disk space?");
- X}
- X
- X
- XMETHODDEF void
- Xclose_backing_store (backing_store_ptr info)
- X{
- X fclose(info->temp_file); /* close the file */
- X unlink(info->temp_name); /* delete the file */
- X/* If your system doesn't have unlink(), use remove() instead.
- X * remove() is the ANSI-standard name for this function, but if
- X * your system was ANSI you'd be using jmemansi.c, right?
- X */
- X}
- X
- X
- XGLOBAL void
- Xjopen_backing_store (backing_store_ptr info, long total_bytes_needed)
- X{
- X char tracemsg[TEMP_NAME_LENGTH+40];
- X
- X select_file_name(info->temp_name);
- X if ((info->temp_file = fopen(info->temp_name, RW_BINARY)) == NULL) {
- X /* hack to get around ERREXIT's inability to handle string parameters */
- X sprintf(tracemsg, "Failed to create temporary file %s", info->temp_name);
- X ERREXIT(methods, tracemsg);
- X }
- X info->read_backing_store = read_backing_store;
- X info->write_backing_store = write_backing_store;
- X info->close_backing_store = close_backing_store;
- X /* hack to get around TRACEMS' inability to handle string parameters */
- X sprintf(tracemsg, "Using temp file %s", info->temp_name);
- X TRACEMS(methods, 1, tracemsg);
- X}
- X
- X
- X/*
- X * These routines take care of any system-dependent initialization and
- X * cleanup required. Keep in mind that jmem_term may be called more than
- X * once.
- X */
- X
- XGLOBAL void
- Xjmem_init (external_methods_ptr emethods)
- X{
- X methods = emethods; /* save struct addr for error exit access */
- X emethods->max_memory_to_use = DEFAULT_MAX_MEM;
- X total_used = 0;
- X next_file_num = 0;
- X}
- X
- XGLOBAL void
- Xjmem_term (void)
- X{
- X /* no work */
- X}
- END_OF_FILE
- if test 7779 -ne `wc -c <'jmemname.c'`; then
- echo shar: \"'jmemname.c'\" unpacked with wrong size!
- fi
- # end of 'jmemname.c'
- fi
- if test -f 'makefile.ansi' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.ansi'\"
- else
- echo shar: Extracting \"'makefile.ansi'\" \(6393 characters\)
- sed "s/^X//" >'makefile.ansi' <<'END_OF_FILE'
- X# Makefile for Independent JPEG Group's software
- X
- X# This makefile is suitable for Unix-like systems with ANSI-capable compilers.
- X# If you have a non-ANSI compiler, makefile.unix is a better starting point.
- X
- X# Read SETUP instructions before saying "make" !!
- X
- X# The name of your C compiler:
- XCC= cc
- X
- X# You may need to adjust these cc options:
- XCFLAGS= -O
- X# In particular:
- X# Add -DBSD if on a pure BSD system (see jinclude.h).
- X# Add -DMEM_STATS to enable gathering of memory usage statistics.
- X# You may also want to add -DTWO_FILE_COMMANDLINE or -D switches for other
- X# symbols listed in jconfig.h, if you prefer not to change jconfig.h.
- X
- X# Link-time cc options:
- XLDFLAGS=
- X
- X# To link any special libraries, add the necessary -l commands here.
- X# In particular, on some versions of HP-UX (and probably other SysV-derived
- X# systems) there is a faster alternate malloc(3) library that you can use
- X# by adding "-lmalloc" to this line.
- XLDLIBS=
- X
- X# miscellaneous OS-dependent stuff
- X# linker
- XLN= $(CC)
- X# file deletion command
- XRM= rm -f
- X# library (.a) file creation command
- XAR= ar rc
- X# second step in .a creation (use "touch" if not needed)
- XAR2= ranlib
- X
- X
- X# source files (independently compilable files)
- XSOURCES= jbsmooth.c jcarith.c jccolor.c jcdeflts.c jcexpand.c jchuff.c \
- X jcmain.c jcmaster.c jcmcu.c jcpipe.c jcsample.c jdarith.c jdcolor.c \
- X jddeflts.c jdhuff.c jdmain.c jdmaster.c jdmcu.c jdpipe.c jdsample.c \
- X jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
- X jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
- X jwrppm.c jwrrle.c jwrtarga.c
- X# virtual source files (not present in distribution file, see SETUP)
- XVIRTSOURCES= jmemsys.c
- X# system-dependent implementations of virtual source files
- XSYSDEPFILES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemdos.h \
- X jmemdosa.asm
- X# files included by source files
- XINCLUDES= jinclude.h jconfig.h jpegdata.h jversion.h jmemsys.h
- X# documentation, test, and support files
- XDOCS= README SETUP USAGE CHANGELOG cjpeg.1 djpeg.1 architecture codingrules
- XMAKEFILES= makefile.ansi makefile.unix makefile.manx makefile.sas \
- X makcjpeg.st makdjpeg.st makljpeg.st makefile.mc5 makefile.mc6 \
- X makefile.bcc makefile.mms makefile.vms makvms.opt
- XOTHERFILES= ansi2knr.c ckconfig.c example.c
- XTESTFILES= testorig.jpg testimg.ppm testimg.gif testimg.jpg
- XDISTFILES= $(DOCS) $(MAKEFILES) $(SOURCES) $(SYSDEPFILES) $(INCLUDES) \
- X $(OTHERFILES) $(TESTFILES)
- X# objectfiles common to cjpeg and djpeg
- XCOMOBJECTS= jutils.o jerror.o jmemmgr.o jmemsys.o
- X# compression objectfiles
- XCLIBOBJECTS= jcmaster.o jcdeflts.o jcarith.o jccolor.o jcexpand.o jchuff.o \
- X jcmcu.o jcpipe.o jcsample.o jfwddct.o jwrjfif.o jrdgif.o jrdppm.o \
- X jrdrle.o jrdtarga.o
- XCOBJECTS= jcmain.o $(CLIBOBJECTS) $(COMOBJECTS)
- X# decompression objectfiles
- XDLIBOBJECTS= jdmaster.o jddeflts.o jbsmooth.o jdarith.o jdcolor.o jdhuff.o \
- X jdmcu.o jdpipe.o jdsample.o jquant1.o jquant2.o jrevdct.o jrdjfif.o \
- X jwrgif.o jwrppm.o jwrrle.o jwrtarga.o
- XDOBJECTS= jdmain.o $(DLIBOBJECTS) $(COMOBJECTS)
- X# These objectfiles are included in libjpeg.a
- XLIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)
- X
- X
- Xall: cjpeg djpeg
- X# By default, libjpeg.a is not built unless you explicitly request it.
- X# You can add libjpeg.a to the line above if you want it built by default.
- X
- X
- Xcjpeg: $(COBJECTS)
- X $(LN) $(LDFLAGS) -o cjpeg $(COBJECTS) $(LDLIBS)
- X
- Xdjpeg: $(DOBJECTS)
- X $(LN) $(LDFLAGS) -o djpeg $(DOBJECTS) $(LDLIBS)
- X
- X# libjpeg.a is useful if you are including the JPEG software in a larger
- X# program; you'd include it in your link, rather than the individual modules.
- Xlibjpeg.a: $(LIBOBJECTS)
- X $(RM) libjpeg.a
- X $(AR) libjpeg.a $(LIBOBJECTS)
- X $(AR2) libjpeg.a
- X
- Xjmemsys.c:
- X echo You must select a system-dependent jmemsys.c file.
- X echo Please read the SETUP directions.
- X exit 1
- X
- Xclean:
- X $(RM) *.o cjpeg djpeg libjpeg.a core testout.*
- X
- Xdistribute:
- X $(RM) jpegsrc.tar*
- X tar cvf jpegsrc.tar $(DISTFILES)
- X compress -v jpegsrc.tar
- X
- Xtest: cjpeg djpeg
- X $(RM) testout.ppm testout.gif testout.jpg
- X ./djpeg testorig.jpg >testout.ppm
- X ./djpeg -gif testorig.jpg >testout.gif
- X ./cjpeg testimg.ppm >testout.jpg
- X cmp testimg.ppm testout.ppm
- X cmp testimg.gif testout.gif
- X cmp testimg.jpg testout.jpg
- X
- X
- Xjbsmooth.o : jbsmooth.c jinclude.h jconfig.h jpegdata.h
- Xjcarith.o : jcarith.c jinclude.h jconfig.h jpegdata.h
- Xjccolor.o : jccolor.c jinclude.h jconfig.h jpegdata.h
- Xjcdeflts.o : jcdeflts.c jinclude.h jconfig.h jpegdata.h
- Xjcexpand.o : jcexpand.c jinclude.h jconfig.h jpegdata.h
- Xjchuff.o : jchuff.c jinclude.h jconfig.h jpegdata.h
- Xjcmain.o : jcmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjcmaster.o : jcmaster.c jinclude.h jconfig.h jpegdata.h
- Xjcmcu.o : jcmcu.c jinclude.h jconfig.h jpegdata.h
- Xjcpipe.o : jcpipe.c jinclude.h jconfig.h jpegdata.h
- Xjcsample.o : jcsample.c jinclude.h jconfig.h jpegdata.h
- Xjdarith.o : jdarith.c jinclude.h jconfig.h jpegdata.h
- Xjdcolor.o : jdcolor.c jinclude.h jconfig.h jpegdata.h
- Xjddeflts.o : jddeflts.c jinclude.h jconfig.h jpegdata.h
- Xjdhuff.o : jdhuff.c jinclude.h jconfig.h jpegdata.h
- Xjdmain.o : jdmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjdmaster.o : jdmaster.c jinclude.h jconfig.h jpegdata.h
- Xjdmcu.o : jdmcu.c jinclude.h jconfig.h jpegdata.h
- Xjdpipe.o : jdpipe.c jinclude.h jconfig.h jpegdata.h
- Xjdsample.o : jdsample.c jinclude.h jconfig.h jpegdata.h
- Xjerror.o : jerror.c jinclude.h jconfig.h jpegdata.h
- Xjquant1.o : jquant1.c jinclude.h jconfig.h jpegdata.h
- Xjquant2.o : jquant2.c jinclude.h jconfig.h jpegdata.h
- Xjfwddct.o : jfwddct.c jinclude.h jconfig.h jpegdata.h
- Xjrevdct.o : jrevdct.c jinclude.h jconfig.h jpegdata.h
- Xjutils.o : jutils.c jinclude.h jconfig.h jpegdata.h
- Xjmemmgr.o : jmemmgr.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- Xjrdjfif.o : jrdjfif.c jinclude.h jconfig.h jpegdata.h
- Xjrdgif.o : jrdgif.c jinclude.h jconfig.h jpegdata.h
- Xjrdppm.o : jrdppm.c jinclude.h jconfig.h jpegdata.h
- Xjrdrle.o : jrdrle.c jinclude.h jconfig.h jpegdata.h
- Xjrdtarga.o : jrdtarga.c jinclude.h jconfig.h jpegdata.h
- Xjwrjfif.o : jwrjfif.c jinclude.h jconfig.h jpegdata.h
- Xjwrgif.o : jwrgif.c jinclude.h jconfig.h jpegdata.h
- Xjwrppm.o : jwrppm.c jinclude.h jconfig.h jpegdata.h
- Xjwrrle.o : jwrrle.c jinclude.h jconfig.h jpegdata.h
- Xjwrtarga.o : jwrtarga.c jinclude.h jconfig.h jpegdata.h
- Xjmemsys.o : jmemsys.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- END_OF_FILE
- if test 6393 -ne `wc -c <'makefile.ansi'`; then
- echo shar: \"'makefile.ansi'\" unpacked with wrong size!
- fi
- # end of 'makefile.ansi'
- fi
- if test -f 'makefile.bcc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.bcc'\"
- else
- echo shar: Extracting \"'makefile.bcc'\" \(7375 characters\)
- sed "s/^X//" >'makefile.bcc' <<'END_OF_FILE'
- X# Makefile for Independent JPEG Group's software
- X
- X# This makefile is suitable for Borland C (Turbo C) on MS-DOS.
- X# It is set up for Borland C++, revision 3.0 or later.
- X# For older versions (pre-3.0), replace "-O2" with "-O -G -Z" in CFLAGS.
- X# If you have an even older version of Turbo C, you may be able to make it
- X# work by saying "CC= tcc" below. (Very early versions of Turbo C++,
- X# like 1.01, are so buggy that you may as well forget it.)
- X# Thanks to Tom Wright and Ge' Weijers for this file.
- X
- X# Read SETUP instructions before saying "make" !!
- X
- X# The name of your C compiler:
- XCC= bcc
- X
- X# You may need to adjust these cc options:
- XCFLAGS= -DHAVE_STDC -DINCLUDES_ARE_ANSI \
- X -ms -DMSDOS -DUSE_FMEM -DINCOMPLETE_TYPES_BROKEN -w-par -O2
- X# -DHAVE_STDC -DINCLUDES_ARE_ANSI enable ANSI-C features (we DON'T want -A)
- X# -ms selects small memory model for most efficient code
- X# -DMSDOS enables DOS-specific code
- X# -DUSE_FMEM indicates we have _fmemcpy() and _fmemset()
- X# -DINCOMPLETE_TYPES_BROKEN suppresses bogus warning about undefined structures
- X# -w-par suppresses warnings about unused function parameters
- X# -O2 enables full code optimization (for pre-3.0 Borland C++, use -O -G -Z)
- X
- X# Link-time cc options:
- XLDFLAGS= -ms
- X# memory model option here must match CFLAGS!
- X
- X# need linker response file because file list > 128 chars
- XRFILE= libjpeg.ans
- X
- X
- X# source files (independently compilable files)
- XSOURCES= jbsmooth.c jcarith.c jccolor.c jcdeflts.c jcexpand.c jchuff.c \
- X jcmain.c jcmaster.c jcmcu.c jcpipe.c jcsample.c jdarith.c jdcolor.c \
- X jddeflts.c jdhuff.c jdmain.c jdmaster.c jdmcu.c jdpipe.c jdsample.c \
- X jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
- X jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
- X jwrppm.c jwrrle.c jwrtarga.c
- X# virtual source files (not present in distribution file, see SETUP)
- XVIRTSOURCES= jmemsys.c
- X# system-dependent implementations of virtual source files
- XSYSDEPFILES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemdos.h \
- X jmemdosa.asm
- X# files included by source files
- XINCLUDES= jinclude.h jconfig.h jpegdata.h jversion.h jmemsys.h
- X# documentation, test, and support files
- XDOCS= README SETUP USAGE CHANGELOG cjpeg.1 djpeg.1 architecture codingrules
- XMAKEFILES= makefile.ansi makefile.unix makefile.manx makefile.sas \
- X makcjpeg.st makdjpeg.st makljpeg.st makefile.mc5 makefile.mc6 \
- X makefile.bcc makefile.mms makefile.vms makvms.opt
- XOTHERFILES= ansi2knr.c ckconfig.c example.c
- XTESTFILES= testorig.jpg testimg.ppm testimg.gif testimg.jpg
- XDISTFILES= $(DOCS) $(MAKEFILES) $(SOURCES) $(SYSDEPFILES) $(INCLUDES) \
- X $(OTHERFILES) $(TESTFILES)
- X# objectfiles common to cjpeg and djpeg
- XCOMOBJECTS= jutils.obj jerror.obj jmemmgr.obj jmemsys.obj jmemdosa.obj
- X# compression objectfiles
- XCLIBOBJECTS= jcmaster.obj jcdeflts.obj jcarith.obj jccolor.obj jcexpand.obj \
- X jchuff.obj jcmcu.obj jcpipe.obj jcsample.obj jfwddct.obj \
- X jwrjfif.obj jrdgif.obj jrdppm.obj jrdrle.obj jrdtarga.obj
- XCOBJECTS= jcmain.obj $(CLIBOBJECTS) $(COMOBJECTS)
- X# decompression objectfiles
- XDLIBOBJECTS= jdmaster.obj jddeflts.obj jbsmooth.obj jdarith.obj jdcolor.obj \
- X jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj \
- X jquant2.obj jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj \
- X jwrrle.obj jwrtarga.obj
- XDOBJECTS= jdmain.obj $(DLIBOBJECTS) $(COMOBJECTS)
- X# These objectfiles are included in libjpeg.lib
- XLIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)
- X
- X
- Xall: cjpeg.exe djpeg.exe
- X
- X
- X# libjpeg.lib is useful if you are including the JPEG software in a larger
- X# program; you'd include it in your link, rather than the individual modules.
- Xlibjpeg.lib: $(LIBOBJECTS) $(RFILE)
- X del libjpeg.lib
- X tlib @$(RFILE)
- X
- X# linker response file for same
- X$(RFILE) : Makefile
- X del $(RFILE)
- X echo libjpeg.lib & >$(RFILE)
- X echo +jcmaster.obj +jcdeflts.obj +jcarith.obj +jccolor.obj & >>$(RFILE)
- X echo +jcexpand.obj +jchuff.obj +jcmcu.obj +jcpipe.obj & >>$(RFILE)
- X echo +jcsample.obj +jfwddct.obj +jwrjfif.obj +jrdgif.obj & >>$(RFILE)
- X echo +jrdppm.obj +jrdrle.obj +jrdtarga.obj +jdmaster.obj & >>$(RFILE)
- X echo +jddeflts.obj +jbsmooth.obj +jdarith.obj +jdcolor.obj & >>$(RFILE)
- X echo +jdhuff.obj +jdmcu.obj +jdpipe.obj +jdsample.obj & >>$(RFILE)
- X echo +jquant1.obj +jquant2.obj +jrevdct.obj +jrdjfif.obj & >>$(RFILE)
- X echo +jwrgif.obj +jwrppm.obj +jwrrle.obj +jwrtarga.obj & >>$(RFILE)
- X echo +jutils.obj +jerror.obj +jmemmgr.obj +jmemsys.obj & >>$(RFILE)
- X echo +jmemdosa.obj >>$(RFILE)
- X
- Xcjpeg.exe: jcmain.obj libjpeg.lib
- X $(CC) $(LDFLAGS) -ecjpeg.exe jcmain.obj libjpeg.lib
- X
- Xdjpeg.exe: jdmain.obj libjpeg.lib
- X $(CC) $(LDFLAGS) -edjpeg.exe jdmain.obj libjpeg.lib
- X
- X.c.obj:
- X $(CC) $(CFLAGS) -c $<
- X
- Xjmemsys.c:
- X echo You must select a system-dependent jmemsys.c file.
- X echo Please read the SETUP directions.
- X exit 1
- X
- Xclean:
- X del *.obj
- X del libjpeg.lib
- X del cjpeg.exe
- X del djpeg.exe
- X del testout.*
- X
- Xtest:
- X del testout.*
- X djpeg testorig.jpg testout.ppm
- X djpeg -gif testorig.jpg testout.gif
- X cjpeg testimg.ppm testout.jpg
- X fc testimg.ppm testout.ppm
- X fc testimg.gif testout.gif
- X fc testimg.jpg testout.jpg
- X
- X
- Xjbsmooth.obj : jbsmooth.c jinclude.h jconfig.h jpegdata.h
- Xjcarith.obj : jcarith.c jinclude.h jconfig.h jpegdata.h
- Xjccolor.obj : jccolor.c jinclude.h jconfig.h jpegdata.h
- Xjcdeflts.obj : jcdeflts.c jinclude.h jconfig.h jpegdata.h
- Xjcexpand.obj : jcexpand.c jinclude.h jconfig.h jpegdata.h
- Xjchuff.obj : jchuff.c jinclude.h jconfig.h jpegdata.h
- Xjcmain.obj : jcmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjcmaster.obj : jcmaster.c jinclude.h jconfig.h jpegdata.h
- Xjcmcu.obj : jcmcu.c jinclude.h jconfig.h jpegdata.h
- Xjcpipe.obj : jcpipe.c jinclude.h jconfig.h jpegdata.h
- Xjcsample.obj : jcsample.c jinclude.h jconfig.h jpegdata.h
- Xjdarith.obj : jdarith.c jinclude.h jconfig.h jpegdata.h
- Xjdcolor.obj : jdcolor.c jinclude.h jconfig.h jpegdata.h
- Xjddeflts.obj : jddeflts.c jinclude.h jconfig.h jpegdata.h
- Xjdhuff.obj : jdhuff.c jinclude.h jconfig.h jpegdata.h
- Xjdmain.obj : jdmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjdmaster.obj : jdmaster.c jinclude.h jconfig.h jpegdata.h
- Xjdmcu.obj : jdmcu.c jinclude.h jconfig.h jpegdata.h
- Xjdpipe.obj : jdpipe.c jinclude.h jconfig.h jpegdata.h
- Xjdsample.obj : jdsample.c jinclude.h jconfig.h jpegdata.h
- Xjerror.obj : jerror.c jinclude.h jconfig.h jpegdata.h
- Xjquant1.obj : jquant1.c jinclude.h jconfig.h jpegdata.h
- Xjquant2.obj : jquant2.c jinclude.h jconfig.h jpegdata.h
- Xjfwddct.obj : jfwddct.c jinclude.h jconfig.h jpegdata.h
- Xjrevdct.obj : jrevdct.c jinclude.h jconfig.h jpegdata.h
- Xjutils.obj : jutils.c jinclude.h jconfig.h jpegdata.h
- Xjmemmgr.obj : jmemmgr.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- Xjrdjfif.obj : jrdjfif.c jinclude.h jconfig.h jpegdata.h
- Xjrdgif.obj : jrdgif.c jinclude.h jconfig.h jpegdata.h
- Xjrdppm.obj : jrdppm.c jinclude.h jconfig.h jpegdata.h
- Xjrdrle.obj : jrdrle.c jinclude.h jconfig.h jpegdata.h
- Xjrdtarga.obj : jrdtarga.c jinclude.h jconfig.h jpegdata.h
- Xjwrjfif.obj : jwrjfif.c jinclude.h jconfig.h jpegdata.h
- Xjwrgif.obj : jwrgif.c jinclude.h jconfig.h jpegdata.h
- Xjwrppm.obj : jwrppm.c jinclude.h jconfig.h jpegdata.h
- Xjwrrle.obj : jwrrle.c jinclude.h jconfig.h jpegdata.h
- Xjwrtarga.obj : jwrtarga.c jinclude.h jconfig.h jpegdata.h
- Xjmemsys.obj : jmemsys.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- Xjmemdosa.obj : jmemdosa.asm
- X tasm /mx jmemdosa.asm
- END_OF_FILE
- if test 7375 -ne `wc -c <'makefile.bcc'`; then
- echo shar: \"'makefile.bcc'\" unpacked with wrong size!
- fi
- # end of 'makefile.bcc'
- fi
- if test -f 'makefile.mms' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.mms'\"
- else
- echo shar: Extracting \"'makefile.mms'\" \(6975 characters\)
- sed "s/^X//" >'makefile.mms' <<'END_OF_FILE'
- X# Makefile for Independent JPEG Group's software
- X
- X# This makefile is for use with MMS on VAX/VMS systems.
- X# Thanks to Rick Dyson (dyson@iowasp.physics.uiowa.edu)
- X# and Tim Bell (tbell@netcom.com) for their help.
- X
- X# Read SETUP instructions before saying "MMS" !!
- X
- XCFLAGS= $(CFLAGS) /NoDebug /Optimize /Define = (TWO_FILE_COMMANDLINE,HAVE_STDC,INCLUDES_ARE_ANSI)
- XOPT= Sys$Disk:[]MAKVMS.OPT
- X
- X
- X# source files (independently compilable files)
- XSOURCES= jbsmooth.c jcarith.c jccolor.c jcdeflts.c jcexpand.c jchuff.c \
- X jcmain.c jcmaster.c jcmcu.c jcpipe.c jcsample.c jdarith.c jdcolor.c \
- X jddeflts.c jdhuff.c jdmain.c jdmaster.c jdmcu.c jdpipe.c jdsample.c \
- X jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
- X jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
- X jwrppm.c jwrrle.c jwrtarga.c
- X# virtual source files (not present in distribution file, see SETUP)
- XVIRTSOURCES= jmemsys.c
- X# system-dependent implementations of virtual source files
- XSYSDEPFILES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemdos.h \
- X jmemdosa.asm
- X# files included by source files
- XINCLUDES= jinclude.h jconfig.h jpegdata.h jversion.h jmemsys.h
- X# documentation, test, and support files
- XDOCS= README SETUP USAGE CHANGELOG cjpeg.1 djpeg.1 architecture codingrules
- XMAKEFILES= makefile.ansi makefile.unix makefile.manx makefile.sas \
- X makcjpeg.st makdjpeg.st makljpeg.st makefile.mc5 makefile.mc6 \
- X makefile.bcc makefile.mms makefile.vms makvms.opt
- XOTHERFILES= ansi2knr.c ckconfig.c example.c
- XTESTFILES= testorig.jpg testimg.ppm testimg.gif testimg.jpg
- XDISTFILES= $(DOCS) $(MAKEFILES) $(SOURCES) $(SYSDEPFILES) $(INCLUDES) \
- X $(OTHERFILES) $(TESTFILES)
- X# objectfiles common to cjpeg and djpeg
- XCOMOBJECTS= jutils.obj jerror.obj jmemmgr.obj jmemsys.obj
- X# compression objectfiles
- XCLIBOBJECTS= jcmaster.obj jcdeflts.obj jcarith.obj jccolor.obj jcexpand.obj \
- X jchuff.obj jcmcu.obj jcpipe.obj jcsample.obj jfwddct.obj \
- X jwrjfif.obj jrdgif.obj jrdppm.obj jrdrle.obj jrdtarga.obj
- XCOBJECTS= jcmain.obj $(CLIBOBJECTS) $(COMOBJECTS)
- X# decompression objectfiles
- XDLIBOBJECTS= jdmaster.obj jddeflts.obj jbsmooth.obj jdarith.obj jdcolor.obj \
- X jdhuff.obj jdmcu.obj jdpipe.obj jdsample.obj jquant1.obj \
- X jquant2.obj jrevdct.obj jrdjfif.obj jwrgif.obj jwrppm.obj \
- X jwrrle.obj jwrtarga.obj
- XDOBJECTS= jdmain.obj $(DLIBOBJECTS) $(COMOBJECTS)
- X# These objectfiles are included in libjpeg.olb
- XLIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)
- X# objectfile lists with commas --- what a crock
- XCOBJLIST= jcmain.obj,jcmaster.obj,jcdeflts.obj,jcarith.obj,jccolor.obj,\
- X jcexpand.obj,jchuff.obj,jcmcu.obj,jcpipe.obj,jcsample.obj,\
- X jfwddct.obj,jwrjfif.obj,jrdgif.obj,jrdppm.obj,jrdrle.obj,\
- X jrdtarga.obj,jutils.obj,jerror.obj,jmemmgr.obj,jmemsys.obj
- XDOBJLIST= jdmain.obj,jdmaster.obj,jddeflts.obj,jbsmooth.obj,jdarith.obj,\
- X jdcolor.obj,jdhuff.obj,jdmcu.obj,jdpipe.obj,jdsample.obj,\
- X jquant1.obj,jquant2.obj,jrevdct.obj,jrdjfif.obj,jwrgif.obj,\
- X jwrppm.obj,jwrrle.obj,jwrtarga.obj,jutils.obj,jerror.obj,\
- X jmemmgr.obj,jmemsys.obj
- XLIBOBJLIST= jcmaster.obj,jcdeflts.obj,jcarith.obj,jccolor.obj,jcexpand.obj,\
- X jchuff.obj,jcmcu.obj,jcpipe.obj,jcsample.obj,jfwddct.obj,\
- X jwrjfif.obj,jrdgif.obj,jrdppm.obj,jrdrle.obj,jrdtarga.obj,\
- X jdmaster.obj,jddeflts.obj,jbsmooth.obj,jdarith.obj,jdcolor.obj,\
- X jdhuff.obj,jdmcu.obj,jdpipe.obj,jdsample.obj,jquant1.obj,\
- X jquant2.obj,jrevdct.obj,jrdjfif.obj,jwrgif.obj,jwrppm.obj,\
- X jwrrle.obj,jwrtarga.obj,jutils.obj,jerror.obj,jmemmgr.obj,\
- X jmemsys.obj
- X
- X
- X.first
- X @ Define Sys Sys$Library
- X
- X# By default, libjpeg.olb is not built unless you explicitly request it.
- X# You can add libjpeg.olb to the next line if you want it built by default.
- XALL : cjpeg.exe djpeg.exe
- X @ Continue
- X
- Xcjpeg.exe : $(COBJECTS)
- X $(LINK) $(LFLAGS) /Executable = cjpeg.exe $(COBJLIST),$(OPT)/Option
- X
- Xdjpeg.exe : $(DOBJECTS)
- X $(LINK) $(LFLAGS) /Executable = djpeg.exe $(DOBJLIST),$(OPT)/Option
- X
- X# libjpeg.olb is useful if you are including the JPEG software in a larger
- X# program; you'd include it in your link, rather than the individual modules.
- Xlibjpeg.olb : $(LIBOBJECTS)
- X Library /Create libjpeg.olb $(LIBOBJLIST)
- X
- Xclean :
- X @- Set Protection = Owner:RWED *.*;-1
- X @- Set Protection = Owner:RWED *.OBJ
- X - Purge /NoLog /NoConfirm *.*
- X - Delete /NoLog /NoConfirm *.OBJ;
- X
- Xtest : cjpeg.exe djpeg.exe
- X mcr sys$disk:[]djpeg testorig.jpg testout.ppm
- X mcr sys$disk:[]djpeg -gif testorig.jpg testout.gif
- X mcr sys$disk:[]cjpeg testimg.ppm testout.jpg
- X - Backup /Compare/Log testimg.ppm testout.ppm
- X - Backup /Compare/Log testimg.gif testout.gif
- X - Backup /Compare/Log testimg.jpg testout.jpg
- X
- X
- Xjbsmooth.obj : jbsmooth.c jinclude.h jconfig.h jpegdata.h
- Xjcarith.obj : jcarith.c jinclude.h jconfig.h jpegdata.h
- Xjccolor.obj : jccolor.c jinclude.h jconfig.h jpegdata.h
- Xjcdeflts.obj : jcdeflts.c jinclude.h jconfig.h jpegdata.h
- Xjcexpand.obj : jcexpand.c jinclude.h jconfig.h jpegdata.h
- Xjchuff.obj : jchuff.c jinclude.h jconfig.h jpegdata.h
- Xjcmain.obj : jcmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjcmaster.obj : jcmaster.c jinclude.h jconfig.h jpegdata.h
- Xjcmcu.obj : jcmcu.c jinclude.h jconfig.h jpegdata.h
- Xjcpipe.obj : jcpipe.c jinclude.h jconfig.h jpegdata.h
- Xjcsample.obj : jcsample.c jinclude.h jconfig.h jpegdata.h
- Xjdarith.obj : jdarith.c jinclude.h jconfig.h jpegdata.h
- Xjdcolor.obj : jdcolor.c jinclude.h jconfig.h jpegdata.h
- Xjddeflts.obj : jddeflts.c jinclude.h jconfig.h jpegdata.h
- Xjdhuff.obj : jdhuff.c jinclude.h jconfig.h jpegdata.h
- Xjdmain.obj : jdmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjdmaster.obj : jdmaster.c jinclude.h jconfig.h jpegdata.h
- Xjdmcu.obj : jdmcu.c jinclude.h jconfig.h jpegdata.h
- Xjdpipe.obj : jdpipe.c jinclude.h jconfig.h jpegdata.h
- Xjdsample.obj : jdsample.c jinclude.h jconfig.h jpegdata.h
- Xjerror.obj : jerror.c jinclude.h jconfig.h jpegdata.h
- Xjquant1.obj : jquant1.c jinclude.h jconfig.h jpegdata.h
- Xjquant2.obj : jquant2.c jinclude.h jconfig.h jpegdata.h
- Xjfwddct.obj : jfwddct.c jinclude.h jconfig.h jpegdata.h
- Xjrevdct.obj : jrevdct.c jinclude.h jconfig.h jpegdata.h
- Xjutils.obj : jutils.c jinclude.h jconfig.h jpegdata.h
- Xjmemmgr.obj : jmemmgr.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- Xjrdjfif.obj : jrdjfif.c jinclude.h jconfig.h jpegdata.h
- Xjrdgif.obj : jrdgif.c jinclude.h jconfig.h jpegdata.h
- Xjrdppm.obj : jrdppm.c jinclude.h jconfig.h jpegdata.h
- Xjrdrle.obj : jrdrle.c jinclude.h jconfig.h jpegdata.h
- Xjrdtarga.obj : jrdtarga.c jinclude.h jconfig.h jpegdata.h
- Xjwrjfif.obj : jwrjfif.c jinclude.h jconfig.h jpegdata.h
- Xjwrgif.obj : jwrgif.c jinclude.h jconfig.h jpegdata.h
- Xjwrppm.obj : jwrppm.c jinclude.h jconfig.h jpegdata.h
- Xjwrrle.obj : jwrrle.c jinclude.h jconfig.h jpegdata.h
- Xjwrtarga.obj : jwrtarga.c jinclude.h jconfig.h jpegdata.h
- Xjmemsys.obj : jmemsys.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- END_OF_FILE
- if test 6975 -ne `wc -c <'makefile.mms'`; then
- echo shar: \"'makefile.mms'\" unpacked with wrong size!
- fi
- # end of 'makefile.mms'
- fi
- if test -f 'makefile.unix' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile.unix'\"
- else
- echo shar: Extracting \"'makefile.unix'\" \(6829 characters\)
- sed "s/^X//" >'makefile.unix' <<'END_OF_FILE'
- X# Makefile for Independent JPEG Group's software
- X
- X# This makefile is suitable for Unix-like systems with non-ANSI compilers.
- X# If you have an ANSI compiler, makefile.ansi is a better starting point.
- X
- X# Read SETUP instructions before saying "make" !!
- X
- X# The name of your C compiler:
- XCC= cc
- X
- X# You may need to adjust these cc options:
- XCFLAGS= -O
- X# In particular:
- X# Add -DBSD if on a pure BSD system (see jinclude.h).
- X# Add -DVMS if on a VMS system (see ansi2knr.c).
- X# Add -DMSDOS if on an MSDOS system (see ansi2knr.c).
- X# Add -DMEM_STATS to enable gathering of memory usage statistics.
- X# You may also want to add -DTWO_FILE_COMMANDLINE or -D switches for other
- X# symbols listed in jconfig.h, if you prefer not to change jconfig.h.
- X
- X# Link-time cc options:
- XLDFLAGS=
- X
- X# To link any special libraries, add the necessary -l commands here.
- X# In particular, on some versions of HP-UX (and probably other SysV-derived
- X# systems) there is a faster alternate malloc(3) library that you can use
- X# by adding "-lmalloc" to this line.
- XLDLIBS=
- X
- X# miscellaneous OS-dependent stuff
- X# linker
- XLN= $(CC)
- X# file deletion command
- XRM= rm -f
- X# library (.a) file creation command
- XAR= ar rc
- X# second step in .a creation (use "touch" if not needed)
- XAR2= ranlib
- X
- X
- X# source files (independently compilable files)
- XSOURCES= jbsmooth.c jcarith.c jccolor.c jcdeflts.c jcexpand.c jchuff.c \
- X jcmain.c jcmaster.c jcmcu.c jcpipe.c jcsample.c jdarith.c jdcolor.c \
- X jddeflts.c jdhuff.c jdmain.c jdmaster.c jdmcu.c jdpipe.c jdsample.c \
- X jerror.c jquant1.c jquant2.c jfwddct.c jrevdct.c jutils.c jmemmgr.c \
- X jrdjfif.c jrdgif.c jrdppm.c jrdrle.c jrdtarga.c jwrjfif.c jwrgif.c \
- X jwrppm.c jwrrle.c jwrtarga.c
- X# virtual source files (not present in distribution file, see SETUP)
- XVIRTSOURCES= jmemsys.c
- X# system-dependent implementations of virtual source files
- XSYSDEPFILES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemdos.h \
- X jmemdosa.asm
- X# files included by source files
- XINCLUDES= jinclude.h jconfig.h jpegdata.h jversion.h jmemsys.h
- X# documentation, test, and support files
- XDOCS= README SETUP USAGE CHANGELOG cjpeg.1 djpeg.1 architecture codingrules
- XMAKEFILES= makefile.ansi makefile.unix makefile.manx makefile.sas \
- X makcjpeg.st makdjpeg.st makljpeg.st makefile.mc5 makefile.mc6 \
- X makefile.bcc makefile.mms makefile.vms makvms.opt
- XOTHERFILES= ansi2knr.c ckconfig.c example.c
- XTESTFILES= testorig.jpg testimg.ppm testimg.gif testimg.jpg
- XDISTFILES= $(DOCS) $(MAKEFILES) $(SOURCES) $(SYSDEPFILES) $(INCLUDES) \
- X $(OTHERFILES) $(TESTFILES)
- X# objectfiles common to cjpeg and djpeg
- XCOMOBJECTS= jutils.o jerror.o jmemmgr.o jmemsys.o
- X# compression objectfiles
- XCLIBOBJECTS= jcmaster.o jcdeflts.o jcarith.o jccolor.o jcexpand.o jchuff.o \
- X jcmcu.o jcpipe.o jcsample.o jfwddct.o jwrjfif.o jrdgif.o jrdppm.o \
- X jrdrle.o jrdtarga.o
- XCOBJECTS= jcmain.o $(CLIBOBJECTS) $(COMOBJECTS)
- X# decompression objectfiles
- XDLIBOBJECTS= jdmaster.o jddeflts.o jbsmooth.o jdarith.o jdcolor.o jdhuff.o \
- X jdmcu.o jdpipe.o jdsample.o jquant1.o jquant2.o jrevdct.o jrdjfif.o \
- X jwrgif.o jwrppm.o jwrrle.o jwrtarga.o
- XDOBJECTS= jdmain.o $(DLIBOBJECTS) $(COMOBJECTS)
- X# These objectfiles are included in libjpeg.a
- XLIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)
- X
- X
- Xall: ansi2knr cjpeg djpeg
- X# By default, libjpeg.a is not built unless you explicitly request it.
- X# You can add libjpeg.a to the line above if you want it built by default.
- X
- X
- X# This rule causes ansi2knr to be invoked. If you use this makefile,
- X# make sure PROTO is not defined by jconfig.h.
- X
- X.c.o:
- X ./ansi2knr $*.c tmpansi.c
- X $(CC) $(CFLAGS) -c tmpansi.c
- X mv tmpansi.o $*.o
- X $(RM) tmpansi.c
- X
- Xansi2knr: ansi2knr.c
- X $(CC) $(CFLAGS) -o ansi2knr ansi2knr.c
- X
- X
- Xcjpeg: ansi2knr $(COBJECTS)
- X $(LN) $(LDFLAGS) -o cjpeg $(COBJECTS) $(LDLIBS)
- X
- Xdjpeg: ansi2knr $(DOBJECTS)
- X $(LN) $(LDFLAGS) -o djpeg $(DOBJECTS) $(LDLIBS)
- X
- X# libjpeg.a is useful if you are including the JPEG software in a larger
- X# program; you'd include it in your link, rather than the individual modules.
- Xlibjpeg.a: ansi2knr $(LIBOBJECTS)
- X $(RM) libjpeg.a
- X $(AR) libjpeg.a $(LIBOBJECTS)
- X $(AR2) libjpeg.a
- X
- Xjmemsys.c:
- X echo You must select a system-dependent jmemsys.c file.
- X echo Please read the SETUP directions.
- X exit 1
- X
- Xclean:
- X $(RM) *.o cjpeg djpeg libjpeg.a ansi2knr core tmpansi.* testout.*
- X
- Xdistribute:
- X $(RM) jpegsrc.tar*
- X tar cvf jpegsrc.tar $(DISTFILES)
- X compress -v jpegsrc.tar
- X
- Xtest: cjpeg djpeg
- X $(RM) testout.ppm testout.gif testout.jpg
- X ./djpeg testorig.jpg >testout.ppm
- X ./djpeg -gif testorig.jpg >testout.gif
- X ./cjpeg testimg.ppm >testout.jpg
- X cmp testimg.ppm testout.ppm
- X cmp testimg.gif testout.gif
- X cmp testimg.jpg testout.jpg
- X
- X
- Xjbsmooth.o : jbsmooth.c jinclude.h jconfig.h jpegdata.h
- Xjcarith.o : jcarith.c jinclude.h jconfig.h jpegdata.h
- Xjccolor.o : jccolor.c jinclude.h jconfig.h jpegdata.h
- Xjcdeflts.o : jcdeflts.c jinclude.h jconfig.h jpegdata.h
- Xjcexpand.o : jcexpand.c jinclude.h jconfig.h jpegdata.h
- Xjchuff.o : jchuff.c jinclude.h jconfig.h jpegdata.h
- Xjcmain.o : jcmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjcmaster.o : jcmaster.c jinclude.h jconfig.h jpegdata.h
- Xjcmcu.o : jcmcu.c jinclude.h jconfig.h jpegdata.h
- Xjcpipe.o : jcpipe.c jinclude.h jconfig.h jpegdata.h
- Xjcsample.o : jcsample.c jinclude.h jconfig.h jpegdata.h
- Xjdarith.o : jdarith.c jinclude.h jconfig.h jpegdata.h
- Xjdcolor.o : jdcolor.c jinclude.h jconfig.h jpegdata.h
- Xjddeflts.o : jddeflts.c jinclude.h jconfig.h jpegdata.h
- Xjdhuff.o : jdhuff.c jinclude.h jconfig.h jpegdata.h
- Xjdmain.o : jdmain.c jinclude.h jconfig.h jpegdata.h jversion.h
- Xjdmaster.o : jdmaster.c jinclude.h jconfig.h jpegdata.h
- Xjdmcu.o : jdmcu.c jinclude.h jconfig.h jpegdata.h
- Xjdpipe.o : jdpipe.c jinclude.h jconfig.h jpegdata.h
- Xjdsample.o : jdsample.c jinclude.h jconfig.h jpegdata.h
- Xjerror.o : jerror.c jinclude.h jconfig.h jpegdata.h
- Xjquant1.o : jquant1.c jinclude.h jconfig.h jpegdata.h
- Xjquant2.o : jquant2.c jinclude.h jconfig.h jpegdata.h
- Xjfwddct.o : jfwddct.c jinclude.h jconfig.h jpegdata.h
- Xjrevdct.o : jrevdct.c jinclude.h jconfig.h jpegdata.h
- Xjutils.o : jutils.c jinclude.h jconfig.h jpegdata.h
- Xjmemmgr.o : jmemmgr.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- Xjrdjfif.o : jrdjfif.c jinclude.h jconfig.h jpegdata.h
- Xjrdgif.o : jrdgif.c jinclude.h jconfig.h jpegdata.h
- Xjrdppm.o : jrdppm.c jinclude.h jconfig.h jpegdata.h
- Xjrdrle.o : jrdrle.c jinclude.h jconfig.h jpegdata.h
- Xjrdtarga.o : jrdtarga.c jinclude.h jconfig.h jpegdata.h
- Xjwrjfif.o : jwrjfif.c jinclude.h jconfig.h jpegdata.h
- Xjwrgif.o : jwrgif.c jinclude.h jconfig.h jpegdata.h
- Xjwrppm.o : jwrppm.c jinclude.h jconfig.h jpegdata.h
- Xjwrrle.o : jwrrle.c jinclude.h jconfig.h jpegdata.h
- Xjwrtarga.o : jwrtarga.c jinclude.h jconfig.h jpegdata.h
- Xjmemsys.o : jmemsys.c jinclude.h jconfig.h jpegdata.h jmemsys.h
- END_OF_FILE
- if test 6829 -ne `wc -c <'makefile.unix'`; then
- echo shar: \"'makefile.unix'\" unpacked with wrong size!
- fi
- # end of 'makefile.unix'
- fi
- echo shar: End of archive 16 \(of 18\).
- cp /dev/null ark16isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 18 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-