xref: /plan9/sys/src/cmd/gs/src/jasper.mak (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1# Copyright (C) 2004-2005 artofcode LLC.  All rights reserved.
2#
3# This software is provided AS-IS with no warranty, either express or
4# implied.
5#
6# This software is distributed under license and may not be copied,
7# modified or distributed except as expressly authorized under the terms
8# of the license contained in the file LICENSE in this distribution.
9#
10# For more information about licensing, please refer to
11# http://www.ghostscript.com/licensing/. For information on
12# commercial licensing, go to http://www.artifex.com/licensing/ or
13# contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14# San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
16# $Id: jasper.mak,v 1.2 2005/06/22 15:24:37 giles Exp $
17
18# makefile for jasper JPEG 2000 support library
19# Users of this makefile must define the following:
20#	SHARE_JASPER - whether to compile in or link to the library
21#	JASPERSRCDIR - the top-level library source directory
22#
23# gs.mak and friends define the following:
24#	JASPEROBJDIR - the output obj directory
25#	JASPERGENDIR - generated (.dev) file directory
26#	JASI_ and JASCF_ - include dir and cflags
27# and the usual gs portability stuff.
28
29# This partial makefile compiles a portion of the jasper library for use in
30# Ghostscript. You're better off just linking to the library's native build
31# but this supports the library on all our platforms.
32
33# Define the name of this makefile
34JASPER_MAK=$(GLSRC)jasper.mak
35
36JASSRC=$(JASPERSRCDIR)$(D)src$(D)libjasper$(D)
37JASGEN=$(JASPERGENDIR)$(D)
38JASOBJ=$(JASPEROBJDIR)$(D)
39
40# our required files from jasper 1.701.x
41
42libjasper_OBJS_base=\
43	$(JASOBJ)jas_cm.$(OBJ) \
44	$(JASOBJ)jas_debug.$(OBJ) \
45	$(JASOBJ)jas_getopt.$(OBJ) \
46	$(JASOBJ)jas_image.$(OBJ) \
47	$(JASOBJ)jas_icc.$(OBJ) \
48	$(JASOBJ)jas_iccdata.$(OBJ) \
49	$(JASOBJ)jas_init.$(OBJ) \
50	$(JASOBJ)jas_malloc.$(OBJ) \
51	$(JASOBJ)jas_seq.$(OBJ) \
52	$(JASOBJ)jas_stream.$(OBJ) \
53	$(JASOBJ)jas_string.$(OBJ) \
54	$(JASOBJ)jas_tvp.$(OBJ) \
55	$(JASOBJ)jas_version.$(OBJ)
56
57libjasper_OBJS_jpc=\
58	$(JASOBJ)jpc_bs.$(OBJ) \
59	$(JASOBJ)jpc_cs.$(OBJ) \
60	$(JASOBJ)jpc_dec.$(OBJ) \
61	$(JASOBJ)jpc_enc.$(OBJ) \
62	$(JASOBJ)jpc_math.$(OBJ) \
63	$(JASOBJ)jpc_mct.$(OBJ) \
64	$(JASOBJ)jpc_mqcod.$(OBJ) \
65	$(JASOBJ)jpc_mqdec.$(OBJ) \
66	$(JASOBJ)jpc_mqenc.$(OBJ) \
67	$(JASOBJ)jpc_qmfb.$(OBJ) \
68	$(JASOBJ)jpc_tagtree.$(OBJ) \
69	$(JASOBJ)jpc_t1cod.$(OBJ) \
70	$(JASOBJ)jpc_t1dec.$(OBJ) \
71	$(JASOBJ)jpc_t1enc.$(OBJ) \
72	$(JASOBJ)jpc_tsfb.$(OBJ) \
73	$(JASOBJ)jpc_t2cod.$(OBJ) \
74	$(JASOBJ)jpc_t2dec.$(OBJ) \
75	$(JASOBJ)jpc_t2enc.$(OBJ) \
76	$(JASOBJ)jpc_util.$(OBJ)
77
78libjasper_OBJS_jp2=\
79	$(JASOBJ)jp2_cod.$(OBJ) \
80	$(JASOBJ)jp2_dec.$(OBJ) \
81	$(JASOBJ)jp2_enc.$(OBJ)
82
83libjasper_OBJS=$(libjasper_OBJS_base) $(libjasper_OBJS_jpc) $(libjasper_OBJS_jp2)
84
85libjasper_HDRS_base=\
86	$(JASSRC)include$(D)jasper$(D)jasper.h \
87	$(JASSRC)include$(D)jasper$(D)jas_config.h \
88	$(JASSRC)include$(D)jasper$(D)jas_config_win32.h \
89	$(JASSRC)include$(D)jasper$(D)jas_cm.h \
90	$(JASSRC)include$(D)jasper$(D)jas_fix.h \
91	$(JASSRC)include$(D)jasper$(D)jas_debug.h \
92	$(JASSRC)include$(D)jasper$(D)jas_getopt.h \
93	$(JASSRC)include$(D)jasper$(D)jas_icc.h \
94	$(JASSRC)include$(D)jasper$(D)jas_image.h \
95	$(JASSRC)include$(D)jasper$(D)jas_init.h \
96	$(JASSRC)include$(D)jasper$(D)jas_malloc.h \
97	$(JASSRC)include$(D)jasper$(D)jas_math.h \
98	$(JASSRC)include$(D)jasper$(D)jas_seq.h \
99	$(JASSRC)include$(D)jasper$(D)jas_stream.h \
100	$(JASSRC)include$(D)jasper$(D)jas_string.h \
101	$(JASSRC)include$(D)jasper$(D)jas_tvp.h \
102	$(JASSRC)include$(D)jasper$(D)jas_types.h \
103	$(JASSRC)include$(D)jasper$(D)jas_version.h
104
105libjasper_HDRS_jpc=\
106	$(JASSRC)jpc$(D)jpc_bs.h \
107	$(JASSRC)jpc$(D)jpc_cod.h \
108	$(JASSRC)jpc$(D)jpc_cs.h \
109	$(JASSRC)jpc$(D)jpc_dec.h \
110	$(JASSRC)jpc$(D)jpc_enc.h \
111	$(JASSRC)jpc$(D)jpc_fix.h \
112	$(JASSRC)jpc$(D)jpc_flt.h \
113	$(JASSRC)jpc$(D)jpc_math.h \
114	$(JASSRC)jpc$(D)jpc_mct.h \
115	$(JASSRC)jpc$(D)jpc_mqcod.h \
116	$(JASSRC)jpc$(D)jpc_mqdec.h \
117	$(JASSRC)jpc$(D)jpc_mqenc.h \
118	$(JASSRC)jpc$(D)jpc_qmfb.h \
119	$(JASSRC)jpc$(D)jpc_tagtree.h \
120	$(JASSRC)jpc$(D)jpc_t1cod.h \
121	$(JASSRC)jpc$(D)jpc_t1dec.h \
122	$(JASSRC)jpc$(D)jpc_t1enc.h \
123	$(JASSRC)jpc$(D)jpc_tsfb.h \
124	$(JASSRC)jpc$(D)jpc_t2cod.h \
125	$(JASSRC)jpc$(D)jpc_t2dec.h \
126	$(JASSRC)jpc$(D)jpc_t2enc.h \
127	$(JASSRC)jpc$(D)jpc_util.h
128
129libjasper_HDRS_jp2=\
130	$(JASSRC)jp2$(D)jp2_cod.h \
131	$(JASSRC)jp2$(D)jp2_dec.h
132
133libjasper_HDRS=$(libjasper_HDRS_base) $(libjasper_HDRS_jpc) $(libjasper_HDRS_jp2)
134
135jasper.clean : jasper.config-clean jasper.clean-not-config-clean
136
137### WRONG.  MUST DELETE OBJ AND GEN FILES SELECTIVELY.
138jasper.clean-not-config-clean :
139	$(EXP)$(ECHOGS_XE) $(JASSRC) $(JASOBJ)
140	$(RM_) $(JASOBJ)*.$(OBJ)
141
142jasper.config-clean :
143	$(RMN_) $(JASGEN)$(D)libjasper*.dev
144
145JASDEP=$(AK) $(JASPER_MAK)
146
147# hack: jasper uses EXCLUDE_fmt_SUPPORT defines to turn off unwanted
148# format support. This keeps the noise down on the normal compiles
149# where everything is enabled, but is inconvenient for us because
150# we must disable everything that's implicitly included except those
151# formats that we explicitly build. A better approach would be to
152# patch jasper to invert the sense of these defines and to use
153# config.h in its normal build to keep the noise down
154JAS_EXCF_=\
155	$(D_)EXCLUDE_BMP_SUPPORT$(_D_)1$(_D)\
156	$(D_)EXCLUDE_JPG_SUPPORT$(_D_)1$(_D)\
157	$(D_)EXCLUDE_MIF_SUPPORT$(_D_)1$(_D)\
158	$(D_)EXCLUDE_PGX_SUPPORT$(_D_)1$(_D)\
159        $(D_)EXCLUDE_PNM_SUPPORT$(_D_)1$(_D)\
160        $(D_)EXCLUDE_RAS_SUPPORT$(_D_)1$(_D)\
161        $(D_)EXCLUDE_PNG_SUPPORT$(_D_)1$(_D)\
162
163JAS_CC=$(CC_) $(CFLAGS) $(I_)$(JASGEN) $(II)$(JASI_)$(_I) $(JASCF_) $(JAS_EXCF_)
164JASO_=$(O_)$(JASOBJ)
165
166# switch in the selected .dev
167$(JASGEN)libjasper.dev : $(TOP_MAKEFILES) $(JASGEN)libjasper_$(SHARE_JASPER).dev
168	$(CP_) $(JASGEN)libjasper_$(SHARE_JASPER).dev $(JASGEN)libjasper.dev
169
170# external link .dev
171$(GLOBJ)libjasper_1.dev : $(TOP_MAKEFILES) $(JASPER_MAK) $(ECHOGS_XE)
172	$(SETMOD) $(GLOBJ)libjasper_1 -lib jasper
173
174# compile in .dev
175$(GLOBJ)libjasper_0.dev : $(TOP_MAKEFILES) $(JASPER_MAK) $(ECHOGS_XE) $(libjasper_OBJS)
176	$(SETMOD) $(JASGEN)libjasper_0 $(libjasper_OBJS_base)
177	$(ADDMOD) $(JASGEN)libjasper_0 $(libjasper_OBJS_jpc)
178	$(ADDMOD) $(JASGEN)libjasper_0 $(libjasper_OBJS_jp2)
179
180# explicit rules for building the source files
181# for simplicity we have every source file depend on all headers
182
183$(JASOBJ)jas_cm.$(OBJ) : $(JASSRC)base$(D)jas_cm.c $(JASDEP) $(libjasper_HDRS)
184	$(JAS_CC) $(JASO_)jas_cm.$(OBJ) $(C_) $(JASSRC)base$(D)jas_cm.c
185
186$(JASOBJ)jas_debug.$(OBJ) : $(JASSRC)base$(D)jas_debug.c $(JASDEP) $(libjasper_HDRS)
187	$(JAS_CC) $(JASO_)jas_debug.$(OBJ) $(C_) $(JASSRC)base$(D)jas_debug.c
188
189$(JASOBJ)jas_getopt.$(OBJ) : $(JASSRC)base$(D)jas_getopt.c $(JASDEP) $(libjasper_HDRS)
190	$(JAS_CC) $(JASO_)jas_getopt.$(OBJ) $(C_) $(JASSRC)base$(D)jas_getopt.c
191
192$(JASOBJ)jas_icc.$(OBJ) : $(JASSRC)base$(D)jas_icc.c $(JASDEP) $(libjasper_HDRS)
193	$(JAS_CC) $(JASO_)jas_icc.$(OBJ) $(C_) $(JASSRC)base$(D)jas_icc.c
194
195$(JASOBJ)jas_iccdata.$(OBJ) : $(JASSRC)base$(D)jas_iccdata.c $(JASDEP) $(libjasper_HDRS)
196	$(JAS_CC) $(JASO_)jas_iccdata.$(OBJ) $(C_) $(JASSRC)base$(D)jas_iccdata.c
197
198$(JASOBJ)jas_image.$(OBJ) : $(JASSRC)base$(D)jas_image.c $(JASDEP) $(libjasper_HDRS)
199	$(JAS_CC) $(JASO_)jas_image.$(OBJ) $(C_) $(JASSRC)base$(D)jas_image.c
200
201$(JASOBJ)jas_init.$(OBJ) : $(JASSRC)base$(D)jas_init.c $(JASDEP) $(libjasper_HDRS)
202	$(JAS_CC) $(JASO_)jas_init.$(OBJ) $(C_) $(JASSRC)base$(D)jas_init.c
203
204$(JASOBJ)jas_malloc.$(OBJ) : $(JASSRC)base$(D)jas_malloc.c $(JASDEP) $(libjasper_HDRS)
205	$(JAS_CC) $(JASO_)jas_malloc.$(OBJ) $(C_) $(JASSRC)base$(D)jas_malloc.c
206
207$(JASOBJ)jas_seq.$(OBJ) : $(JASSRC)base$(D)jas_seq.c $(JASDEP) $(libjasper_HDRS)
208	$(JAS_CC) $(JASO_)jas_seq.$(OBJ) $(C_) $(JASSRC)base$(D)jas_seq.c
209
210$(JASOBJ)jas_stream.$(OBJ) : $(JASSRC)base$(D)jas_stream.c $(JASDEP) $(libjasper_HDRS)
211	$(JAS_CC) $(JASO_)jas_stream.$(OBJ) $(C_) $(JASSRC)base$(D)jas_stream.c
212
213$(JASOBJ)jas_string.$(OBJ) : $(JASSRC)base$(D)jas_string.c $(JASDEP) $(libjasper_HDRS)
214	$(JAS_CC) $(JASO_)jas_string.$(OBJ) $(C_) $(JASSRC)base$(D)jas_string.c
215
216$(JASOBJ)jas_tvp.$(OBJ) : $(JASSRC)base$(D)jas_tvp.c $(JASDEP) $(libjasper_HDRS)
217	$(JAS_CC) $(JASO_)jas_tvp.$(OBJ) $(C_) $(JASSRC)base$(D)jas_tvp.c
218
219$(JASOBJ)jas_version.$(OBJ) : $(JASSRC)base$(D)jas_version.c $(JASDEP) $(libjasper_HDRS)
220	$(JAS_CC) $(JASO_)jas_version.$(OBJ) $(C_) $(JASSRC)base$(D)jas_version.c
221
222
223$(JASOBJ)jpc_bs.$(OBJ) : $(JASSRC)jpc$(D)jpc_bs.c $(JASDEP) $(libjasper_HDRS)
224	$(JAS_CC) $(JASO_)jpc_bs.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_bs.c
225
226$(JASOBJ)jpc_cs.$(OBJ) : $(JASSRC)jpc$(D)jpc_cs.c $(JASDEP) $(libjasper_HDRS)
227	$(JAS_CC) $(JASO_)jpc_cs.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_cs.c
228
229$(JASOBJ)jpc_dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_dec.c $(JASDEP) $(libjasper_HDRS)
230	$(JAS_CC) $(JASO_)jpc_dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_dec.c
231
232$(JASOBJ)jpc_enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_enc.c $(JASDEP) $(libjasper_HDRS)
233	$(JAS_CC) $(JASO_)jpc_enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_enc.c
234
235$(JASOBJ)jpc_math.$(OBJ) : $(JASSRC)jpc$(D)jpc_math.c $(JASDEP) $(libjasper_HDRS)
236	$(JAS_CC) $(JASO_)jpc_math.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_math.c
237
238$(JASOBJ)jpc_mct.$(OBJ) : $(JASSRC)jpc$(D)jpc_mct.c $(JASDEP) $(libjasper_HDRS)
239	$(JAS_CC) $(JASO_)jpc_mct.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mct.c
240
241$(JASOBJ)jpc_mqcod.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqcod.c $(JASDEP) $(libjasper_HDRS)
242	$(JAS_CC) $(JASO_)jpc_mqcod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqcod.c
243
244$(JASOBJ)jpc_mqdec.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqdec.c $(JASDEP) $(libjasper_HDRS)
245	$(JAS_CC) $(JASO_)jpc_mqdec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqdec.c
246
247$(JASOBJ)jpc_mqenc.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqenc.c $(JASDEP) $(libjasper_HDRS)
248	$(JAS_CC) $(JASO_)jpc_mqenc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqenc.c
249
250$(JASOBJ)jpc_qmfb.$(OBJ) : $(JASSRC)jpc$(D)jpc_qmfb.c $(JASDEP) $(libjasper_HDRS)
251	$(JAS_CC) $(JASO_)jpc_qmfb.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_qmfb.c
252
253$(JASOBJ)jpc_tagtree.$(OBJ) : $(JASSRC)jpc$(D)jpc_tagtree.c $(JASDEP) $(libjasper_HDRS)
254	$(JAS_CC) $(JASO_)jpc_tagtree.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_tagtree.c
255
256$(JASOBJ)jpc_t1cod.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1cod.c $(JASDEP) $(libjasper_HDRS)
257	$(JAS_CC) $(JASO_)jpc_t1cod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1cod.c
258
259$(JASOBJ)jpc_t1dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1dec.c $(JASDEP) $(libjasper_HDRS)
260	$(JAS_CC) $(JASO_)jpc_t1dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1dec.c
261
262$(JASOBJ)jpc_t1enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1enc.c $(JASDEP) $(libjasper_HDRS)
263	$(JAS_CC) $(JASO_)jpc_t1enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1enc.c
264
265$(JASOBJ)jpc_tsfb.$(OBJ) : $(JASSRC)jpc$(D)jpc_tsfb.c $(JASDEP) $(libjasper_HDRS)
266	$(JAS_CC) $(JASO_)jpc_tsfb.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_tsfb.c
267
268$(JASOBJ)jpc_t2cod.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2cod.c $(JASDEP) $(libjasper_HDRS)
269	$(JAS_CC) $(JASO_)jpc_t2cod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2cod.c
270
271$(JASOBJ)jpc_t2dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2dec.c $(JASDEP) $(libjasper_HDRS)
272	$(JAS_CC) $(JASO_)jpc_t2dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2dec.c
273
274$(JASOBJ)jpc_t2enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2enc.c $(JASDEP) $(libjasper_HDRS)
275	$(JAS_CC) $(JASO_)jpc_t2enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2enc.c
276
277$(JASOBJ)jpc_util.$(OBJ) : $(JASSRC)jpc$(D)jpc_util.c $(JASDEP) $(libjasper_HDRS)
278	$(JAS_CC) $(JASO_)jpc_util.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_util.c
279
280
281$(JASOBJ)jp2_cod.$(OBJ) : $(JASSRC)jp2$(D)jp2_cod.c $(JASDEP) $(libjasper_HDRS)
282	$(JAS_CC) $(JASO_)jp2_cod.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_cod.c
283
284$(JASOBJ)jp2_dec.$(OBJ) : $(JASSRC)jp2$(D)jp2_dec.c $(JASDEP) $(libjasper_HDRS)
285	$(JAS_CC) $(JASO_)jp2_dec.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_dec.c
286
287$(JASOBJ)jp2_enc.$(OBJ) : $(JASSRC)jp2$(D)jp2_enc.c $(JASDEP) $(libjasper_HDRS)
288	$(JAS_CC) $(JASO_)jp2_enc.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_enc.c
289
290