xref: /plan9/sys/src/cmd/gs/src/jbig2.mak (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1#    Copyright (C) 2003 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: jbig2.mak,v 1.9 2004/12/08 22:30:41 giles Exp $
17
18# makefile for jbig2dec library code.
19# Users of this makefile must define the following:
20#	SHARE_JBIG2 - whether to compile in or link to the library
21#	JBIG2SRCDIR - the library source directory
22#
23# gs.mak and friends define the following:
24#	JBIG2OBJDIR - the output obj directory
25#	JBIG2GENDIR - generated (.dev) file directory
26#	JB2I_ and JB2CF_ - include dir and cflags
27# and the usual gs portability stuff.
28
29# This partial makefile compiles the jbig2dec library for use in
30# Ghostscript.
31
32# Define the name of this makefile.
33JBIG2_MAK=$(GLSRC)jbig2.mak
34
35JBIG2SRC=$(JBIG2SRCDIR)$(D)
36JBIG2GEN=$(JBIG2OBJDIR)$(D)
37JBIG2OBJ=$(JBIG2OBJDIR)$(D)
38
39# This makefile is only known to work with jbig2dec v0.7
40# to use an earlier version, remove unknown files from
41# the OBJS lists below
42
43# This list is only known good for jbig2dec v0.2-0.6
44
45libjbig2_OBJS1=\
46	$(JBIG2OBJ)jbig2.$(OBJ) \
47	$(JBIG2OBJ)jbig2_arith.$(OBJ) \
48        $(JBIG2OBJ)jbig2_arith_iaid.$(OBJ) \
49        $(JBIG2OBJ)jbig2_arith_int.$(OBJ) \
50        $(JBIG2OBJ)jbig2_generic.$(OBJ) \
51        $(JBIG2OBJ)jbig2_refinement.$(OBJ) \
52        $(JBIG2OBJ)jbig2_huffman.$(OBJ) \
53        $(JBIG2OBJ)jbig2_image.$(OBJ) \
54        $(JBIG2OBJ)jbig2_mmr.$(OBJ)
55
56libjbig2_OBJS2=\
57	$(JBIG2OBJ)jbig2_page.$(OBJ) \
58        $(JBIG2OBJ)jbig2_segment.$(OBJ) \
59        $(JBIG2OBJ)jbig2_symbol_dict.$(OBJ) \
60        $(JBIG2OBJ)jbig2_text.$(OBJ) \
61        $(JBIG2OBJ)jbig2_metadata.$(OBJ) $(JBIG2_EXTRA_OBJS)
62
63libjbig2_OBJS=$(libjbig2_OBJS1) $(libjbig2_OBJS2)
64
65libjbig2_HDRS=\
66        $(JBIG2SRC)jbig2.h \
67        $(JBIG2SRC)jbig2_arith.h \
68        $(JBIG2SRC)jbig2_arith_iaid.h \
69        $(JBIG2SRC)jbig2_arith_int.h \
70        $(JBIG2SRC)jbig2_generic.h \
71        $(JBIG2SRC)jbig2_huffman.h \
72        $(JBIG2SRC)jbig2_hufftab.h \
73        $(JBIG2SRC)jbig2_image.h \
74        $(JBIG2SRC)jbig2_mmr.h \
75        $(JBIG2SRC)jbig2_priv.h \
76        $(JBIG2SRC)jbig2_symbol_dict.h \
77        $(JBIG2SRC)jbig2_metadata.h \
78        $(JBIG2SRC)config_win32.h
79
80jbig2dec_OBJS=$(JBIG2OBJ)getopt.$(OBJ) $(JBIG2OBJ)getopt1.$(OBJ) $(JBIG2OBJ)sha1.$(OBJ)
81jbig2dec_HDRS=$(JBIG2OBJ)getopt.h $(JBIG2OBJ)sha1.h
82
83jbig2.clean : jbig2.config-clean jbig2.clean-not-config-clean
84
85### WRONG.  MUST DELETE OBJ AND GEN FILES SELECTIVELY.
86jbig2.clean-not-config-clean :
87	$(EXP)$(ECHOGS_XE) $(JBIG2SRCDIR) $(JBIG2OBJDIR)
88	$(RM_) $(JBIG2OBJDIR)$(D)*..$(OBJ)
89
90jbig2.config-clean :
91	$(RMN_) $(JBIG2GEN)$(D)jbig2*.dev
92
93JBIG2DEP=$(AK)
94
95JBIG2_CC=$(CC_) $(CFLAGS) $(I_)$(JBIG2GENDIR) $(II)$(JB2I_)$(_I) $(JB2CF_)
96JBIG2O_=$(O_)$(JBIG2OBJ)
97
98# switch in the version of libjbig2.dev we're actually using
99$(JBIG2GEN)libjbig2.dev : $(TOP_MAKEFILES) $(JBIG2GEN)libjbig2_$(SHARE_JBIG2).dev
100	$(CP_) $(JBIG2GEN)libjbig2_$(SHARE_JBIG2).dev $(JBIG2GEN)libjbig2.dev
101
102# dev file for shared (separately built) jbig2dec library
103$(JBIG2GEN)libjbig2_1.dev : $(TOP_MAKEFILES) $(JBIG2_MAK) $(ECHOGS_XE)
104	$(SETMOD) $(JBIG2GEN)libjbig2_1 -lib jbig2dec
105
106# dev file for compiling our own from source
107$(JBIG2GEN)libjbig2_0.dev : $(TOP_MAKEFILES) $(JBIG2_MAK) $(ECHOGS_XE) $(libjbig2_OBJS)
108	$(SETMOD) $(JBIG2GEN)libjbig2_0 $(libjbig2_OBJS1)
109	$(ADDMOD) $(JBIG2GEN)libjbig2_0 $(libjbig2_OBJS2)
110
111# explicit rules for building the source files.
112
113$(JBIG2OBJ)snprintf.$(OBJ) : $(JBIG2SRC)snprintf.c $(JBIG2DEP)
114	$(JBIG2_CC) $(JBIG2O_)snprintf.$(OBJ) $(C_) $(JBIG2SRC)snprintf.c
115
116$(JBIG2OBJ)getopt.$(OBJ) : $(JBIG2SRC)getopt.c $(JBIG2SRC)getopt.h $(JBIG2DEP)
117	$(JBIG2_CC) $(JBIG2O_)getopt.$(OBJ) $(C_) $(JBIG2SRC)getopt.c
118
119$(JBIG2OBJ)getopt1.$(OBJ) : $(JBIG2SRC)getopt1.c $(JBIG2SRC)getopt.h $(JBIG2DEP)
120	$(JBIG2_CC) $(JBIG2O_)getopt1.$(OBJ) $(C_) $(JBIG2SRC)getopt1.c
121
122$(JBIG2OBJ)jbig2.$(OBJ) : $(JBIG2SRC)jbig2.c $(libjbig2_HDRS) $(JBIG2DEP)
123	$(JBIG2_CC) $(JBIG2O_)jbig2.$(OBJ) $(C_) $(JBIG2SRC)jbig2.c
124
125$(JBIG2OBJ)jbig2_arith.$(OBJ) : $(JBIG2SRC)jbig2_arith.c $(libjbig2_HDRS) $(JBIG2DEP)
126	$(JBIG2_CC) $(JBIG2O_)jbig2_arith.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith.c
127
128$(JBIG2OBJ)jbig2_arith_iaid.$(OBJ) : $(JBIG2SRC)jbig2_arith_iaid.c $(libjbig2_HDRS) $(JBIG2DEP)
129	$(JBIG2_CC) $(JBIG2O_)jbig2_arith_iaid.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith_iaid.c
130
131$(JBIG2OBJ)jbig2_arith_int.$(OBJ) : $(JBIG2SRC)jbig2_arith_int.c $(libjbig2_HDRS) $(JBIG2DEP)
132	$(JBIG2_CC) $(JBIG2O_)jbig2_arith_int.$(OBJ) $(C_) $(JBIG2SRC)jbig2_arith_int.c
133
134$(JBIG2OBJ)jbig2_generic.$(OBJ) : $(JBIG2SRC)jbig2_generic.c $(libjbig2_HDRS) $(JBIG2DEP)
135	$(JBIG2_CC) $(JBIG2O_)jbig2_generic.$(OBJ) $(C_) $(JBIG2SRC)jbig2_generic.c
136
137$(JBIG2OBJ)jbig2_refinement.$(OBJ) : $(JBIG2SRC)jbig2_refinement.c $(libjbig2_HDRS) $(JBIG2DEP)
138	$(JBIG2_CC) $(JBIG2O_)jbig2_refinement.$(OBJ) $(C_) $(JBIG2SRC)jbig2_refinement.c
139
140$(JBIG2OBJ)jbig2_huffman.$(OBJ) : $(JBIG2SRC)jbig2_huffman.c $(libjbig2_HDRS) $(JBIG2DEP)
141	$(JBIG2_CC) $(JBIG2O_)jbig2_huffman.$(OBJ) $(C_) $(JBIG2SRC)jbig2_huffman.c
142
143$(JBIG2OBJ)jbig2_image.$(OBJ) : $(JBIG2SRC)jbig2_image.c $(libjbig2_HDRS) $(JBIG2DEP)
144	$(JBIG2_CC) $(JBIG2O_)jbig2_image.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image.c
145
146$(JBIG2OBJ)jbig2_image_pbm.$(OBJ) : $(JBIG2SRC)jbig2_image_pbm.c $(libjbig2_HDRS) $(JBIG2DEP)
147	$(JBIG2_CC) $(JBIG2O_)jbig2_image_pbm.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image_pbm.c
148
149$(JBIG2OBJ)jbig2_image_png.$(OBJ) : $(JBIG2SRC)jbig2_image_png.c $(libjbig2_HDRS) $(JBIG2DEP)
150	$(JBIG2_CC) $(JBIG2O_)jbig2_image_png.$(OBJ) $(C_) $(JBIG2SRC)jbig2_image_png.c
151
152$(JBIG2OBJ)jbig2_mmr.$(OBJ) : $(JBIG2SRC)jbig2_mmr.c $(libjbig2_HDRS) $(JBIG2DEP)
153	$(JBIG2_CC) $(JBIG2O_)jbig2_mmr.$(OBJ) $(C_) $(JBIG2SRC)jbig2_mmr.c
154
155$(JBIG2OBJ)jbig2_page.$(OBJ) : $(JBIG2SRC)jbig2_page.c $(libjbig2_HDRS) $(JBIG2DEP)
156	$(JBIG2_CC) $(JBIG2O_)jbig2_page.$(OBJ) $(C_) $(JBIG2SRC)jbig2_page.c
157
158$(JBIG2OBJ)jbig2_segment.$(OBJ) : $(JBIG2SRC)jbig2_segment.c $(libjbig2_HDRS) $(JBIG2DEP)
159	$(JBIG2_CC) $(JBIG2O_)jbig2_segment.$(OBJ) $(C_) $(JBIG2SRC)jbig2_segment.c
160
161$(JBIG2OBJ)jbig2_symbol_dict.$(OBJ) : $(JBIG2SRC)jbig2_symbol_dict.c $(libjbig2_HDRS) $(JBIG2DEP)
162	$(JBIG2_CC) $(JBIG2O_)jbig2_symbol_dict.$(OBJ) $(C_) $(JBIG2SRC)jbig2_symbol_dict.c
163
164$(JBIG2OBJ)jbig2_text.$(OBJ) : $(JBIG2SRC)jbig2_text.c $(libjbig2_HDRS) $(JBIG2DEP)
165	$(JBIG2_CC) $(JBIG2O_)jbig2_text.$(OBJ) $(C_) $(JBIG2SRC)jbig2_text.c
166
167$(JBIG2OBJ)jbig2_metadata.$(OBJ) : $(JBIG2SRC)jbig2_metadata.c $(libjbig2_HDRS) $(JBIG2DEP)
168	$(JBIG2_CC) $(JBIG2O_)jbig2_metadata.$(OBJ) $(C_) $(JBIG2SRC)jbig2_metadata.c
169
170$(JBIG2OBJ)jbig2dec.$(OBJ) : $(JBIG2SRC)jbig2dec.c $(libjbig2_HDRS) $(JBIG2DEP)
171	$(JBIG2_CC) $(JBIG2O_)jbig2dec.$(OBJ) $(C_) $(JBIG2SRC)jbig2dec.c
172
173$(JBIG2OBJ)sha1.$(OBJ) : $(JBIG2SRC)sha1.c $(libjbig2_HDRS) $(JBIG2DEP)
174	$(JBIG2_CC) $(JBIG2O_)sha1.$(OBJ) $(C_) $(JBIG2SRC)sha1.c
175
176