1# Makefile for Independent JPEG Group's software
2
3# This makefile is suitable for Unix-like systems with non-ANSI compilers.
4# If you have an ANSI compiler, makefile.ansi is a better starting point.
5
6# Read installation instructions before saying "make" !!
7
8# The name of your C compiler:
9CC= cc
10
11# You may need to adjust these cc options:
12CFLAGS= -O
13# Generally, we recommend defining any configuration symbols in jconfig.h,
14# NOT via -D switches here.
15# However, any special defines for ansi2knr.c may be included here:
16ANSI2KNRFLAGS=
17
18# Link-time cc options:
19LDFLAGS=
20
21# To link any special libraries, add the necessary -l commands here.
22LDLIBS=
23
24# Put here the object file name for the correct system-dependent memory
25# manager file.  For Unix this is usually jmemnobs.o, but you may want
26# to use jmemansi.o or jmemname.o if you have limited swap space.
27SYSDEPMEM= jmemnobs.o
28
29# miscellaneous OS-dependent stuff
30# linker
31LN= $(CC)
32# file deletion command
33RM= rm -f
34# file rename command
35MV= mv
36# library (.a) file creation command
37AR= ar rc
38# second step in .a creation (use "touch" if not needed)
39AR2= ranlib
40
41# End of configurable options.
42
43
44# source files: JPEG library proper
45LIBSOURCES= jaricom.c jcapimin.c jcapistd.c jcarith.c jccoefct.c jccolor.c \
46        jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c \
47        jcomapi.c jcparam.c jcprepct.c jcsample.c jctrans.c jdapimin.c \
48        jdapistd.c jdarith.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c \
49        jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c \
50        jdmerge.c jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c \
51        jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jquant1.c \
52        jquant2.c jutils.c jmemmgr.c
53# memmgr back ends: compile only one of these into a working library
54SYSDEPSOURCES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemmac.c
55# source files: cjpeg/djpeg/jpegtran applications, also rdjpgcom/wrjpgcom
56APPSOURCES= cjpeg.c djpeg.c jpegtran.c rdjpgcom.c wrjpgcom.c cdjpeg.c \
57        rdcolmap.c rdswitch.c transupp.c rdppm.c wrppm.c rdgif.c wrgif.c \
58        rdtarga.c wrtarga.c rdbmp.c wrbmp.c rdrle.c wrrle.c
59SOURCES= $(LIBSOURCES) $(SYSDEPSOURCES) $(APPSOURCES)
60# files included by source files
61INCLUDES= jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h jpegint.h \
62        jpeglib.h jversion.h cdjpeg.h cderror.h transupp.h
63# documentation, test, and support files
64DOCS= README install.txt usage.txt cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 \
65        wrjpgcom.1 wizard.txt example.c libjpeg.txt structure.txt \
66        coderules.txt filelist.txt change.log
67MKFILES= configure Makefile.in makefile.ansi makefile.unix makefile.bcc \
68        makefile.mc6 makefile.dj makefile.wat makefile.vc makejdsw.vc6 \
69        makeadsw.vc6 makejdep.vc6 makejdsp.vc6 makejmak.vc6 makecdep.vc6 \
70        makecdsp.vc6 makecmak.vc6 makeddep.vc6 makeddsp.vc6 makedmak.vc6 \
71        maketdep.vc6 maketdsp.vc6 maketmak.vc6 makerdep.vc6 makerdsp.vc6 \
72        makermak.vc6 makewdep.vc6 makewdsp.vc6 makewmak.vc6 makejsln.vc9 \
73        makeasln.vc9 makejvcp.vc9 makecvcp.vc9 makedvcp.vc9 maketvcp.vc9 \
74        makervcp.vc9 makewvcp.vc9 makeproj.mac makcjpeg.st makdjpeg.st \
75        makljpeg.st maktjpeg.st makefile.manx makefile.sas makefile.mms \
76        makefile.vms makvms.opt
77CONFIGFILES= jconfig.cfg jconfig.bcc jconfig.mc6 jconfig.dj jconfig.wat \
78        jconfig.vc jconfig.mac jconfig.st jconfig.manx jconfig.sas \
79        jconfig.vms
80CONFIGUREFILES= config.guess config.sub install-sh ltmain.sh depcomp missing
81OTHERFILES= jconfig.txt ckconfig.c ansi2knr.c ansi2knr.1 jmemdosa.asm \
82        libjpeg.map
83TESTFILES= testorig.jpg testimg.ppm testimg.bmp testimg.jpg testprog.jpg \
84        testimgp.jpg
85DISTFILES= $(DOCS) $(MKFILES) $(CONFIGFILES) $(SOURCES) $(INCLUDES) \
86        $(CONFIGUREFILES) $(OTHERFILES) $(TESTFILES)
87# library object files common to compression and decompression
88COMOBJECTS= jaricom.o jcomapi.o jutils.o jerror.o jmemmgr.o $(SYSDEPMEM)
89# compression library object files
90CLIBOBJECTS= jcapimin.o jcapistd.o jcarith.o jctrans.o jcparam.o \
91        jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o \
92        jccoefct.o jccolor.o jcsample.o jchuff.o jcdctmgr.o jfdctfst.o \
93        jfdctflt.o jfdctint.o
94# decompression library object files
95DLIBOBJECTS= jdapimin.o jdapistd.o jdarith.o jdtrans.o jdatasrc.o \
96        jdmaster.o jdinput.o jdmarker.o jdhuff.o jdmainct.o \
97        jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o \
98        jidctint.o jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o
99# These objectfiles are included in libjpeg.a
100LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS)
101# object files for sample applications (excluding library files)
102COBJECTS= cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o rdswitch.o \
103        cdjpeg.o
104DOBJECTS= djpeg.o wrppm.o wrgif.o wrtarga.o wrrle.o wrbmp.o rdcolmap.o \
105        cdjpeg.o
106TROBJECTS= jpegtran.o rdswitch.o cdjpeg.o transupp.o
107
108
109all: ansi2knr libjpeg.a cjpeg djpeg jpegtran rdjpgcom wrjpgcom
110
111# This rule causes ansi2knr to be invoked.
112.c.o:
113	./ansi2knr $*.c T$*.c
114	$(CC) $(CFLAGS) -c T$*.c
115	$(RM) T$*.c $*.o
116	$(MV) T$*.o $*.o
117
118ansi2knr: ansi2knr.c
119	$(CC) $(CFLAGS) $(ANSI2KNRFLAGS) -o ansi2knr ansi2knr.c
120
121libjpeg.a: ansi2knr $(LIBOBJECTS)
122	$(RM) libjpeg.a
123	$(AR) libjpeg.a  $(LIBOBJECTS)
124	$(AR2) libjpeg.a
125
126cjpeg: ansi2knr $(COBJECTS) libjpeg.a
127	$(LN) $(LDFLAGS) -o cjpeg $(COBJECTS) libjpeg.a $(LDLIBS)
128
129djpeg: ansi2knr $(DOBJECTS) libjpeg.a
130	$(LN) $(LDFLAGS) -o djpeg $(DOBJECTS) libjpeg.a $(LDLIBS)
131
132jpegtran: ansi2knr $(TROBJECTS) libjpeg.a
133	$(LN) $(LDFLAGS) -o jpegtran $(TROBJECTS) libjpeg.a $(LDLIBS)
134
135rdjpgcom: rdjpgcom.o
136	$(LN) $(LDFLAGS) -o rdjpgcom rdjpgcom.o $(LDLIBS)
137
138wrjpgcom: wrjpgcom.o
139	$(LN) $(LDFLAGS) -o wrjpgcom wrjpgcom.o $(LDLIBS)
140
141jconfig.h: jconfig.txt
142	echo You must prepare a system-dependent jconfig.h file.
143	echo Please read the installation directions in install.txt.
144	exit 1
145
146clean:
147	$(RM) *.o cjpeg djpeg jpegtran libjpeg.a rdjpgcom wrjpgcom
148	$(RM) ansi2knr core testout*
149
150test: cjpeg djpeg jpegtran
151	$(RM) testout*
152	./djpeg -dct int -ppm -outfile testout.ppm  testorig.jpg
153	./djpeg -dct int -bmp -colors 256 -outfile testout.bmp  testorig.jpg
154	./cjpeg -dct int -outfile testout.jpg  testimg.ppm
155	./djpeg -dct int -ppm -outfile testoutp.ppm testprog.jpg
156	./cjpeg -dct int -progressive -opt -outfile testoutp.jpg testimg.ppm
157	./jpegtran -outfile testoutt.jpg testprog.jpg
158	cmp testimg.ppm testout.ppm
159	cmp testimg.bmp testout.bmp
160	cmp testimg.jpg testout.jpg
161	cmp testimg.ppm testoutp.ppm
162	cmp testimgp.jpg testoutp.jpg
163	cmp testorig.jpg testoutt.jpg
164
165
166jaricom.o: jaricom.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
167jcapimin.o: jcapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
168jcapistd.o: jcapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
169jcarith.o: jcarith.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
170jccoefct.o: jccoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
171jccolor.o: jccolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
172jcdctmgr.o: jcdctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
173jchuff.o: jchuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
174jcinit.o: jcinit.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
175jcmainct.o: jcmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
176jcmarker.o: jcmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
177jcmaster.o: jcmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
178jcomapi.o: jcomapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
179jcparam.o: jcparam.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
180jcprepct.o: jcprepct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
181jcsample.o: jcsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
182jctrans.o: jctrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
183jdapimin.o: jdapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
184jdapistd.o: jdapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
185jdarith.o: jdarith.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
186jdatadst.o: jdatadst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h
187jdatasrc.o: jdatasrc.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h
188jdcoefct.o: jdcoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
189jdcolor.o: jdcolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
190jddctmgr.o: jddctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
191jdhuff.o: jdhuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
192jdinput.o: jdinput.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
193jdmainct.o: jdmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
194jdmarker.o: jdmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
195jdmaster.o: jdmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
196jdmerge.o: jdmerge.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
197jdpostct.o: jdpostct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
198jdsample.o: jdsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
199jdtrans.o: jdtrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
200jerror.o: jerror.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jversion.h jerror.h
201jfdctflt.o: jfdctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
202jfdctfst.o: jfdctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
203jfdctint.o: jfdctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
204jidctflt.o: jidctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
205jidctfst.o: jidctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
206jidctint.o: jidctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h
207jquant1.o: jquant1.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
208jquant2.o: jquant2.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
209jutils.o: jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h
210jmemmgr.o: jmemmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
211jmemansi.o: jmemansi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
212jmemname.o: jmemname.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
213jmemnobs.o: jmemnobs.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
214jmemdos.o: jmemdos.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
215jmemmac.o: jmemmac.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h
216cjpeg.o: cjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h
217djpeg.o: djpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h
218jpegtran.o: jpegtran.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h transupp.h jversion.h
219rdjpgcom.o: rdjpgcom.c jinclude.h jconfig.h
220wrjpgcom.o: wrjpgcom.c jinclude.h jconfig.h
221cdjpeg.o: cdjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
222rdcolmap.o: rdcolmap.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
223rdswitch.o: rdswitch.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
224transupp.o: transupp.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h transupp.h
225rdppm.o: rdppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
226wrppm.o: wrppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
227rdgif.o: rdgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
228wrgif.o: wrgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
229rdtarga.o: rdtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
230wrtarga.o: wrtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
231rdbmp.o: rdbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
232wrbmp.o: wrbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
233rdrle.o: rdrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
234wrrle.o: wrrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h
235