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