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