1# Copyright (C) 2001-2019 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.,  1305 Grant Avenue - Suite 200, Novato,
13# CA 94945, U.S.A., +1(415)492-9861, for further information.
14#
15#
16# makefile for ITU-T Rec. T.835 (ex T.JPEGXR_-5) | ISO/IEC 29199-5 reference software
17#
18# Users of this makefile must define the following:
19#	SHARE_JPEGXR - 1 to link a system (shared) library
20#		       0 to compile in the referenced source,
21#	JPEGXR_SRCDIR - the jpegxr source top-level directory,
22#	JPEGXR_GENDIR - directory for intermediate generated files,
23#	JPEGXR_OBJDIR - directory for object files.
24
25# Define the name of this makefile
26JPEGXR_MAK=$(GLSRC)jpegxr.mak $(TOP_MAKEFILES)
27
28# local aliases
29JPEGXR_SRC=$(JPEGXR_SRCDIR)$(D)
30JPEGXR_GEN=$(JPEGXR_GENDIR)$(D)
31JPEGXR_OBJ=$(JPEGXR_OBJDIR)$(D)
32JPEGXR_O_=$(O_)$(JPEGXR_OBJ)
33
34JPEGXR_CC=$(CC_) $(JPEGXR_CFLAGS) $(D_)JXR_DLL_EXPORTS=1$(_D) $(D_)NDEBUG$(_D)
35
36jpegxr.clean : jpegxr.config-clean jpegxr.clean-not-config-clean
37
38# would be nice if we used an explicit object list here
39jpegxr.clean-not-config-clean :
40	$(RM_) $(JPEGXR_OBJ)*.$(OBJ)
41
42jpegxr.config-clean :
43	$(RM_) $(JPEGXR_GEN)jpegxr.dev
44	$(RM_) $(JPEGXR_GEN)jpegxr_0.dev
45	$(RM_) $(JPEGXR_GEN)jpegxr_1.dev
46
47jpegxr_objs= \
48	$(JPEGXR_OBJ)algo.$(OBJ) \
49	$(JPEGXR_OBJ)api.$(OBJ) \
50	$(JPEGXR_OBJ)w_emit.$(OBJ) \
51	$(JPEGXR_OBJ)flags.$(OBJ) \
52	$(JPEGXR_OBJ)init.$(OBJ) \
53	$(JPEGXR_OBJ)io.$(OBJ) \
54	$(JPEGXR_OBJ)cr_parse.$(OBJ) \
55	$(JPEGXR_OBJ)cw_emit.$(OBJ) \
56	$(JPEGXR_OBJ)r_parse.$(OBJ) \
57	$(JPEGXR_OBJ)jpegxr_pixelformat.$(OBJ) \
58	$(JPEGXR_OBJ)r_strip.$(OBJ) \
59	$(JPEGXR_OBJ)r_tile_spatial.$(OBJ) \
60	$(JPEGXR_OBJ)r_tile_frequency.$(OBJ) \
61	$(JPEGXR_OBJ)w_strip.$(OBJ) \
62	$(JPEGXR_OBJ)w_tile_spatial.$(OBJ) \
63	$(JPEGXR_OBJ)w_tile_frequency.$(OBJ) \
64	$(JPEGXR_OBJ)x_strip.$(OBJ)
65
66JPEGXR_DEPS=$(JPEGXR_SRC)jpegxr.h $(JPEGXR_SRC)jxr_priv.h $(JPEGXR_MAK) $(MAKEDIRS)
67
68$(JPEGXR_OBJ)algo.$(OBJ) : $(JPEGXR_SRC)algo.c $(JPEGXR_DEPS)
69	$(JPEGXR_CC) $(JPEGXR_O_)algo.$(OBJ) $(C_) $(JPEGXR_SRC)algo.c
70$(JPEGXR_OBJ)api.$(OBJ) : $(JPEGXR_SRC)api.c $(JPEGXR_DEPS)
71	$(JPEGXR_CC) $(JPEGXR_O_)api.$(OBJ) $(C_) $(JPEGXR_SRC)api.c
72$(JPEGXR_OBJ)w_emit.$(OBJ) : $(JPEGXR_SRC)w_emit.c $(JPEGXR_DEPS)
73	$(JPEGXR_CC) $(JPEGXR_O_)w_emit.$(OBJ) $(C_) $(JPEGXR_SRC)w_emit.c
74$(JPEGXR_OBJ)flags.$(OBJ) : $(JPEGXR_SRC)flags.c $(JPEGXR_DEPS)
75	$(JPEGXR_CC) $(JPEGXR_O_)flags.$(OBJ) $(C_) $(JPEGXR_SRC)flags.c
76$(JPEGXR_OBJ)init.$(OBJ) : $(JPEGXR_SRC)init.c $(JPEGXR_DEPS)
77	$(JPEGXR_CC) $(JPEGXR_O_)init.$(OBJ) $(C_) $(JPEGXR_SRC)init.c
78$(JPEGXR_OBJ)io.$(OBJ) : $(JPEGXR_SRC)io.c $(JPEGXR_DEPS)
79	$(JPEGXR_CC) $(JPEGXR_O_)io.$(OBJ) $(C_) $(JPEGXR_SRC)io.c
80$(JPEGXR_OBJ)cr_parse.$(OBJ) : $(JPEGXR_SRC)cr_parse.c $(JPEGXR_DEPS)
81	$(JPEGXR_CC) $(JPEGXR_O_)cr_parse.$(OBJ) $(C_) $(JPEGXR_SRC)cr_parse.c
82$(JPEGXR_OBJ)cw_emit.$(OBJ) : $(JPEGXR_SRC)cw_emit.c $(JPEGXR_DEPS)
83	$(JPEGXR_CC) $(JPEGXR_O_)cw_emit.$(OBJ) $(C_) $(JPEGXR_SRC)cw_emit.c
84$(JPEGXR_OBJ)r_parse.$(OBJ) : $(JPEGXR_SRC)r_parse.c $(JPEGXR_DEPS)
85	$(JPEGXR_CC) $(JPEGXR_O_)r_parse.$(OBJ) $(C_) $(JPEGXR_SRC)r_parse.c
86$(JPEGXR_OBJ)jpegxr_pixelformat.$(OBJ) : $(JPEGXR_SRC)jpegxr_pixelformat.c $(JPEGXR_DEPS)
87	$(JPEGXR_CC) $(JPEGXR_O_)jpegxr_pixelformat.$(OBJ) $(C_) $(JPEGXR_SRC)jpegxr_pixelformat.c
88$(JPEGXR_OBJ)r_strip.$(OBJ) : $(JPEGXR_SRC)r_strip.c $(JPEGXR_DEPS)
89	$(JPEGXR_CC) $(JPEGXR_O_)r_strip.$(OBJ) $(C_) $(JPEGXR_SRC)r_strip.c
90$(JPEGXR_OBJ)r_tile_spatial.$(OBJ) : $(JPEGXR_SRC)r_tile_spatial.c $(JPEGXR_DEPS)
91	$(JPEGXR_CC) $(JPEGXR_O_)r_tile_spatial.$(OBJ) $(C_) $(JPEGXR_SRC)r_tile_spatial.c
92$(JPEGXR_OBJ)r_tile_frequency.$(OBJ) : $(JPEGXR_SRC)r_tile_frequency.c $(JPEGXR_DEPS)
93	$(JPEGXR_CC) $(JPEGXR_O_)r_tile_frequency.$(OBJ) $(C_) $(JPEGXR_SRC)r_tile_frequency.c
94$(JPEGXR_OBJ)w_strip.$(OBJ) : $(JPEGXR_SRC)w_strip.c $(JPEGXR_DEPS)
95	$(JPEGXR_CC) $(JPEGXR_O_)w_strip.$(OBJ) $(C_) $(JPEGXR_SRC)w_strip.c
96$(JPEGXR_OBJ)w_tile_spatial.$(OBJ) : $(JPEGXR_SRC)w_tile_spatial.c $(JPEGXR_DEPS)
97	$(JPEGXR_CC) $(JPEGXR_O_)w_tile_spatial.$(OBJ) $(C_) $(JPEGXR_SRC)w_tile_spatial.c
98$(JPEGXR_OBJ)w_tile_frequency.$(OBJ) : $(JPEGXR_SRC)w_tile_frequency.c $(JPEGXR_DEPS)
99	$(JPEGXR_CC) $(JPEGXR_O_)w_tile_frequency.$(OBJ) $(C_) $(JPEGXR_SRC)w_tile_frequency.c
100$(JPEGXR_OBJ)x_strip.$(OBJ) : $(JPEGXR_SRC)x_strip.c $(JPEGXR_DEPS)
101	$(JPEGXR_CC) $(JPEGXR_O_)x_strip.$(OBJ) $(C_) $(JPEGXR_SRC)x_strip.c
102
103# Define the compiled in target
104$(JPEGXR_GEN)jpegxr_0.dev : $(ECHOGS_XE) $(jpegxr_objs) $(JPEGXR_DEPS)
105	$(SETMOD) $(JPEGXR_GEN)jpegxr_0 $(jpegxr_objs)
106
107# Define the external link target
108$(JPEGXR_GEN)jpegxr_1.dev : $(ECHOGS_XE) $(JPEGXR_MAK) $(MAKEDIRS)
109	$(SETMOD) $(JPEGXR_GEN)jpegxr_1 -lib jpegxr
110
111# Copy the target definition we want
112$(JPEGXR_GEN)jpegxr.dev : $(TOP_MAKEFILES) \
113 $(JPEGXR_GEN)jpegxr_$(SHARE_JPEGXR).dev $(JPEGXR_MAK) $(MAKEDIRS)
114	$(CP_) $(JPEGXR_GEN)jpegxr_$(SHARE_JPEGXR).dev $(JPEGXR_GEN)jpegxr.dev
115
116
117