1# Copyright (C) 2001-2012 Artifex Software, Inc. 2# All Rights Reserved. 3# 4# This software is provided AS-IS with no warranty, either express or 5# implied. 6# 7# This software is distributed under license and may not be copied, 8# modified or distributed except as expressly authorized under the terms 9# of the license contained in the file LICENSE in this distribution. 10# 11# Refer to licensing information at http://www.artifex.com or contact 12# Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, 13# CA 94903, U.S.A., +1(415)492-9861, for further information. 14# 15# 16 17# makefile for jasper JPEG 2000 support library 18# Users of this makefile must define the following: 19# SHARE_JPX - whether to compile in or link to the library 20# JPXSRCDIR - the top-level library source directory 21# 22# gs.mak and friends define the following: 23# JPXOBJDIR - the output obj directory 24# JPXGENDIR - generated (.dev) file directory 25# JPXI_ and JPXCF_ - include and cflags for building the library 26# 27# We define the jasper.dev target and its dependencies 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=$(JPXSRCDIR)$(D)src$(D)libjasper$(D) 37JASGEN=$(JPXGENDIR)$(D) 38JASOBJ=$(JPXOBJDIR)$(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)jasper*.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 163# define our specific compiler 164JAS_CC=$(CC_) $(I_)$(JASGEN) $(II)$(JPXI_)$(_I) $(JPXCF_) $(JAS_EXCF_) 165JASO_=$(O_)$(JASOBJ) 166 167# switch in the selected .dev 168$(JASGEN)jasper.dev : $(TOP_MAKEFILES) $(JASGEN)jasper_$(SHARE_JPX).dev 169 $(CP_) $(JASGEN)jasper_$(SHARE_JPX).dev $(JASGEN)jasper.dev 170 171# external link .dev 172$(JASGEN)jasper_1.dev : $(TOP_MAKEFILES) $(JASPER_MAK) $(ECHOGS_XE) 173 $(SETMOD) $(JASGEN)jasper_1 -lib jasper 174 175# compile in .dev 176$(JASGEN)jasper_0.dev : $(TOP_MAKEFILES) $(JASPER_MAK) $(ECHOGS_XE) $(libjasper_OBJS) 177 $(SETMOD) $(JASGEN)jasper_0 $(libjasper_OBJS_base) 178 $(ADDMOD) $(JASGEN)jasper_0 $(libjasper_OBJS_jpc) 179 $(ADDMOD) $(JASGEN)jasper_0 $(libjasper_OBJS_jp2) 180 181# explicit rules for building the source files 182# for simplicity we have every source file depend on all headers 183 184$(JASOBJ)jas_cm.$(OBJ) : $(JASSRC)base$(D)jas_cm.c $(JASDEP) $(libjasper_HDRS) 185 $(JAS_CC) $(JASO_)jas_cm.$(OBJ) $(C_) $(JASSRC)base$(D)jas_cm.c 186 187$(JASOBJ)jas_debug.$(OBJ) : $(JASSRC)base$(D)jas_debug.c $(JASDEP) $(libjasper_HDRS) 188 $(JAS_CC) $(JASO_)jas_debug.$(OBJ) $(C_) $(JASSRC)base$(D)jas_debug.c 189 190$(JASOBJ)jas_getopt.$(OBJ) : $(JASSRC)base$(D)jas_getopt.c $(JASDEP) $(libjasper_HDRS) 191 $(JAS_CC) $(JASO_)jas_getopt.$(OBJ) $(C_) $(JASSRC)base$(D)jas_getopt.c 192 193$(JASOBJ)jas_icc.$(OBJ) : $(JASSRC)base$(D)jas_icc.c $(JASDEP) $(libjasper_HDRS) 194 $(JAS_CC) $(JASO_)jas_icc.$(OBJ) $(C_) $(JASSRC)base$(D)jas_icc.c 195 196$(JASOBJ)jas_iccdata.$(OBJ) : $(JASSRC)base$(D)jas_iccdata.c $(JASDEP) $(libjasper_HDRS) 197 $(JAS_CC) $(JASO_)jas_iccdata.$(OBJ) $(C_) $(JASSRC)base$(D)jas_iccdata.c 198 199$(JASOBJ)jas_image.$(OBJ) : $(JASSRC)base$(D)jas_image.c $(JASDEP) $(libjasper_HDRS) 200 $(JAS_CC) $(JASO_)jas_image.$(OBJ) $(C_) $(JASSRC)base$(D)jas_image.c 201 202$(JASOBJ)jas_init.$(OBJ) : $(JASSRC)base$(D)jas_init.c $(JASDEP) $(libjasper_HDRS) 203 $(JAS_CC) $(JASO_)jas_init.$(OBJ) $(C_) $(JASSRC)base$(D)jas_init.c 204 205$(JASOBJ)jas_malloc.$(OBJ) : $(JASSRC)base$(D)jas_malloc.c $(JASDEP) $(libjasper_HDRS) 206 $(JAS_CC) $(JASO_)jas_malloc.$(OBJ) $(C_) $(JASSRC)base$(D)jas_malloc.c 207 208$(JASOBJ)jas_seq.$(OBJ) : $(JASSRC)base$(D)jas_seq.c $(JASDEP) $(libjasper_HDRS) 209 $(JAS_CC) $(JASO_)jas_seq.$(OBJ) $(C_) $(JASSRC)base$(D)jas_seq.c 210 211$(JASOBJ)jas_stream.$(OBJ) : $(JASSRC)base$(D)jas_stream.c $(JASDEP) $(libjasper_HDRS) 212 $(JAS_CC) $(JASO_)jas_stream.$(OBJ) $(C_) $(JASSRC)base$(D)jas_stream.c 213 214$(JASOBJ)jas_string.$(OBJ) : $(JASSRC)base$(D)jas_string.c $(JASDEP) $(libjasper_HDRS) 215 $(JAS_CC) $(JASO_)jas_string.$(OBJ) $(C_) $(JASSRC)base$(D)jas_string.c 216 217$(JASOBJ)jas_tvp.$(OBJ) : $(JASSRC)base$(D)jas_tvp.c $(JASDEP) $(libjasper_HDRS) 218 $(JAS_CC) $(JASO_)jas_tvp.$(OBJ) $(C_) $(JASSRC)base$(D)jas_tvp.c 219 220$(JASOBJ)jas_version.$(OBJ) : $(JASSRC)base$(D)jas_version.c $(JASDEP) $(libjasper_HDRS) 221 $(JAS_CC) $(JASO_)jas_version.$(OBJ) $(C_) $(JASSRC)base$(D)jas_version.c 222 223 224$(JASOBJ)jpc_bs.$(OBJ) : $(JASSRC)jpc$(D)jpc_bs.c $(JASDEP) $(libjasper_HDRS) 225 $(JAS_CC) $(JASO_)jpc_bs.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_bs.c 226 227$(JASOBJ)jpc_cs.$(OBJ) : $(JASSRC)jpc$(D)jpc_cs.c $(JASDEP) $(libjasper_HDRS) 228 $(JAS_CC) $(JASO_)jpc_cs.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_cs.c 229 230$(JASOBJ)jpc_dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_dec.c $(JASDEP) $(libjasper_HDRS) 231 $(JAS_CC) $(JASO_)jpc_dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_dec.c 232 233$(JASOBJ)jpc_enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_enc.c $(JASDEP) $(libjasper_HDRS) 234 $(JAS_CC) $(JASO_)jpc_enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_enc.c 235 236$(JASOBJ)jpc_math.$(OBJ) : $(JASSRC)jpc$(D)jpc_math.c $(JASDEP) $(libjasper_HDRS) 237 $(JAS_CC) $(JASO_)jpc_math.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_math.c 238 239$(JASOBJ)jpc_mct.$(OBJ) : $(JASSRC)jpc$(D)jpc_mct.c $(JASDEP) $(libjasper_HDRS) 240 $(JAS_CC) $(JASO_)jpc_mct.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mct.c 241 242$(JASOBJ)jpc_mqcod.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqcod.c $(JASDEP) $(libjasper_HDRS) 243 $(JAS_CC) $(JASO_)jpc_mqcod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqcod.c 244 245$(JASOBJ)jpc_mqdec.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqdec.c $(JASDEP) $(libjasper_HDRS) 246 $(JAS_CC) $(JASO_)jpc_mqdec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqdec.c 247 248$(JASOBJ)jpc_mqenc.$(OBJ) : $(JASSRC)jpc$(D)jpc_mqenc.c $(JASDEP) $(libjasper_HDRS) 249 $(JAS_CC) $(JASO_)jpc_mqenc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_mqenc.c 250 251$(JASOBJ)jpc_qmfb.$(OBJ) : $(JASSRC)jpc$(D)jpc_qmfb.c $(JASDEP) $(libjasper_HDRS) 252 $(JAS_CC) $(JASO_)jpc_qmfb.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_qmfb.c 253 254$(JASOBJ)jpc_tagtree.$(OBJ) : $(JASSRC)jpc$(D)jpc_tagtree.c $(JASDEP) $(libjasper_HDRS) 255 $(JAS_CC) $(JASO_)jpc_tagtree.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_tagtree.c 256 257$(JASOBJ)jpc_t1cod.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1cod.c $(JASDEP) $(libjasper_HDRS) 258 $(JAS_CC) $(JASO_)jpc_t1cod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1cod.c 259 260$(JASOBJ)jpc_t1dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1dec.c $(JASDEP) $(libjasper_HDRS) 261 $(JAS_CC) $(JASO_)jpc_t1dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1dec.c 262 263$(JASOBJ)jpc_t1enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_t1enc.c $(JASDEP) $(libjasper_HDRS) 264 $(JAS_CC) $(JASO_)jpc_t1enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t1enc.c 265 266$(JASOBJ)jpc_tsfb.$(OBJ) : $(JASSRC)jpc$(D)jpc_tsfb.c $(JASDEP) $(libjasper_HDRS) 267 $(JAS_CC) $(JASO_)jpc_tsfb.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_tsfb.c 268 269$(JASOBJ)jpc_t2cod.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2cod.c $(JASDEP) $(libjasper_HDRS) 270 $(JAS_CC) $(JASO_)jpc_t2cod.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2cod.c 271 272$(JASOBJ)jpc_t2dec.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2dec.c $(JASDEP) $(libjasper_HDRS) 273 $(JAS_CC) $(JASO_)jpc_t2dec.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2dec.c 274 275$(JASOBJ)jpc_t2enc.$(OBJ) : $(JASSRC)jpc$(D)jpc_t2enc.c $(JASDEP) $(libjasper_HDRS) 276 $(JAS_CC) $(JASO_)jpc_t2enc.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_t2enc.c 277 278$(JASOBJ)jpc_util.$(OBJ) : $(JASSRC)jpc$(D)jpc_util.c $(JASDEP) $(libjasper_HDRS) 279 $(JAS_CC) $(JASO_)jpc_util.$(OBJ) $(C_) $(JASSRC)jpc$(D)jpc_util.c 280 281 282$(JASOBJ)jp2_cod.$(OBJ) : $(JASSRC)jp2$(D)jp2_cod.c $(JASDEP) $(libjasper_HDRS) 283 $(JAS_CC) $(JASO_)jp2_cod.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_cod.c 284 285$(JASOBJ)jp2_dec.$(OBJ) : $(JASSRC)jp2$(D)jp2_dec.c $(JASDEP) $(libjasper_HDRS) 286 $(JAS_CC) $(JASO_)jp2_dec.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_dec.c 287 288$(JASOBJ)jp2_enc.$(OBJ) : $(JASSRC)jp2$(D)jp2_enc.c $(JASDEP) $(libjasper_HDRS) 289 $(JAS_CC) $(JASO_)jp2_enc.$(OBJ) $(C_) $(JASSRC)jp2$(D)jp2_enc.c 290 291