d72aa07594595178df1cabe0daff6cc57f4079d2
[platform/upstream/harfbuzz.git] / src / Makefile.am
1 # Process this file with automake to produce Makefile.in
2
3 NULL =
4 SUBDIRS =
5 DIST_SUBDIRS =
6 BUILT_SOURCES =
7 EXTRA_DIST =
8 CLEANFILES =
9 DISTCLEANFILES =
10 MAINTAINERCLEANFILES =
11 DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
12
13 # The following warning options are useful for debugging: -Wpadded
14 #AM_CXXFLAGS =
15
16 lib_LTLIBRARIES = libharfbuzz.la
17
18 HBCFLAGS =
19 HBLIBS =
20 HBSOURCES =  \
21         hb-atomic-private.hh \
22         hb-blob.cc \
23         hb-buffer-private.hh \
24         hb-buffer.cc \
25         hb-cache-private.hh \
26         hb-common.cc \
27         hb-fallback-shape.cc \
28         hb-font-private.hh \
29         hb-font.cc \
30         hb-mutex-private.hh \
31         hb-object-private.hh \
32         hb-open-file-private.hh \
33         hb-open-type-private.hh \
34         hb-ot-head-table.hh \
35         hb-ot-hhea-table.hh \
36         hb-ot-hmtx-table.hh \
37         hb-ot-maxp-table.hh \
38         hb-ot-name-table.hh \
39         hb-ot-tag.cc \
40         hb-private.hh \
41         hb-set-private.hh \
42         hb-set.cc \
43         hb-shape.cc \
44         hb-shape-plan-private.hh \
45         hb-shape-plan.cc \
46         hb-shaper-list.hh \
47         hb-shaper-impl-private.hh \
48         hb-shaper-private.hh \
49         hb-shaper.cc \
50         hb-tt-font.cc \
51         hb-unicode-private.hh \
52         hb-unicode.cc \
53         hb-utf-private.hh \
54         hb-warning.cc \
55         $(NULL)
56 HBHEADERS = \
57         hb.h \
58         hb-blob.h \
59         hb-buffer.h \
60         hb-common.h \
61         hb-font.h \
62         hb-set.h \
63         hb-shape.h \
64         hb-shape-plan.h \
65         hb-unicode.h \
66         hb-version.h \
67         $(NULL)
68
69 if HAVE_OT
70 HBSOURCES += \
71         hb-ot-layout.cc \
72         hb-ot-layout-common-private.hh \
73         hb-ot-layout-gdef-table.hh \
74         hb-ot-layout-gpos-table.hh \
75         hb-ot-layout-gsubgpos-private.hh \
76         hb-ot-layout-gsub-table.hh \
77         hb-ot-layout-private.hh \
78         hb-ot-map.cc \
79         hb-ot-map-private.hh \
80         hb-ot-shape.cc \
81         hb-ot-shape-complex-arabic.cc \
82         hb-ot-shape-complex-arabic-fallback.hh \
83         hb-ot-shape-complex-arabic-table.hh \
84         hb-ot-shape-complex-default.cc \
85         hb-ot-shape-complex-indic.cc \
86         hb-ot-shape-complex-indic-machine.hh \
87         hb-ot-shape-complex-indic-private.hh \
88         hb-ot-shape-complex-indic-table.hh \
89         hb-ot-shape-complex-thai.cc \
90         hb-ot-shape-complex-private.hh \
91         hb-ot-shape-normalize-private.hh \
92         hb-ot-shape-normalize.cc \
93         hb-ot-shape-fallback-private.hh \
94         hb-ot-shape-fallback.cc \
95         hb-ot-shape-private.hh \
96         $(NULL)
97 HBHEADERS += \
98         hb-ot.h \
99         hb-ot-layout.h \
100         hb-ot-tag.h \
101         $(NULL)
102 endif
103
104 if HAVE_PTHREAD
105 HBCFLAGS += $(PTHREAD_CFLAGS)
106 HBLIBS   += $(PTHREAD_LIBS)
107 endif
108
109 if HAVE_GLIB
110 HBCFLAGS += $(GLIB_CFLAGS)
111 HBLIBS   += $(GLIB_LIBS)
112 HBSOURCES += hb-glib.cc
113 HBHEADERS += hb-glib.h
114 endif
115
116 if HAVE_GOBJECT
117 HBCFLAGS += $(GOBJECT_CFLAGS)
118 HBLIBS   += $(GOBJECT_LIBS)
119 HBSOURCES += hb-gobject-structs.cc
120 nodist_HBSOURCES = hb-gobject-enums.cc
121 HBHEADERS += hb-gobject.h
122 BUILT_SOURCES += hb-gobject-enums.cc
123 EXTRA_DIST += hb-gobject-enums.cc.tmpl
124 DISTCLEANFILES += hb-gobject-enums.cc
125
126 hb-gobject-enums.cc: hb-gobject-enums.cc.tmpl $(HBHEADERS)
127         $(AM_V_GEN) $(GLIB_MKENUMS) --template $^ > "$@.tmp" && \
128         mv "$@.tmp" "$@" || ( $(RM) "@.tmp" && false )
129 endif
130
131 if HAVE_ICU
132 HBCFLAGS += $(ICU_CFLAGS)
133 HBLIBS   += $(ICU_LIBS)
134 HBSOURCES += hb-icu.cc
135 HBHEADERS += hb-icu.h
136 endif
137
138 if HAVE_FREETYPE
139 HBCFLAGS += $(FREETYPE_CFLAGS)
140 HBLIBS   += $(FREETYPE_LIBS)
141 HBSOURCES += hb-ft.cc
142 HBHEADERS += hb-ft.h
143 endif
144
145 if HAVE_GRAPHITE2
146 HBCFLAGS += $(GRAPHITE2_CFLAGS)
147 HBLIBS   += $(GRAPHITE2_LIBS)
148 HBSOURCES += hb-graphite2.cc
149 HBHEADERS += hb-graphite2.h
150 endif
151
152 if HAVE_UNISCRIBE
153 HBCFLAGS += $(UNISCRIBE_CFLAGS)
154 HBLIBS   += $(UNISCRIBE_LIBS)
155 HBSOURCES += hb-uniscribe.cc
156 HBHEADERS += hb-uniscribe.h
157 endif
158
159 if HAVE_CORETEXT
160 HBCFLAGS += $(CORETEXT_CFLAGS)
161 HBLIBS   += $(CORETEXT_LIBS)
162 HBSOURCES += hb-coretext.cc
163 HBHEADERS += hb-coretext.h
164 endif
165
166 if HAVE_HB_OLD
167 SUBDIRS += hb-old
168 HBCFLAGS += -I$(srcdir)/hb-old
169 HBLIBS   += hb-old/libhb-old.la
170 HBSOURCES += hb-old.cc
171 endif
172 DIST_SUBDIRS += hb-old
173
174 if HAVE_ICU_LE
175 SUBDIRS += hb-icu-le
176 HBCFLAGS += -I$(srcdir)/hb-icu-le
177 HBLIBS   += hb-icu-le/libhb-icu-le.la
178 HBSOURCES += hb-icu-le.cc
179 endif
180 DIST_SUBDIRS += hb-icu-le
181
182 if HAVE_UCDN
183 SUBDIRS += hb-ucdn
184 HBCFLAGS += -I$(srcdir)/hb-ucdn
185 HBLIBS   += hb-ucdn/libhb-ucdn.la
186 HBSOURCES += hb-ucdn.cc
187 endif
188 DIST_SUBDIRS += hb-ucdn
189
190
191 # Put the library together
192
193 if OS_WIN32
194 export_symbols = -export-symbols harfbuzz.def
195 harfbuzz_def_dependency = harfbuzz.def
196 libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
197 else
198 if HAVE_ICU
199 libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
200 else
201 # Use a C linker for GCC, not C++; Don't link to libstdc++
202 if HAVE_GCC
203 libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS)
204 else
205 libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
206 endif
207 endif
208 endif
209
210 libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
211 nodist_libharfbuzz_la_SOURCES = $(nodist_HBSOURCES)
212 libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)
213 libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined
214 libharfbuzz_la_LIBADD = $(HBLIBS)
215 EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
216 pkginclude_HEADERS = $(HBHEADERS)
217 nodist_pkginclude_HEADERS = hb-version.h
218
219 CLEANFILES += harfbuzz.def
220 harfbuzz.def: $(HBHEADERS)
221         $(AM_V_GEN) (echo EXPORTS; \
222         (cat $^ || echo 'hb_ERROR ()' ) | \
223         $(EGREP) '^hb_.* \(' | \
224         sed -e 's/ (.*//' | \
225         LANG=C sort; \
226         echo LIBRARY libharfbuzz-$(HB_VERSION_MAJOR).dll; \
227         ) >"$@.tmp"
228         @ ! grep -q hb_ERROR "$@.tmp" && mv "$@.tmp" "$@" || ($(RM) "$@"; false)
229
230
231 GENERATORS = \
232         gen-arabic-table.py \
233         gen-indic-table.py \
234         $(NULL)
235
236 EXTRA_DIST += $(GENERATORS)
237
238 unicode-tables: arabic-table indic-table
239
240 indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt
241         $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-indic-table.hh.tmp && \
242         mv hb-ot-shape-complex-indic-table.hh.tmp $(srcdir)/hb-ot-shape-complex-indic-table.hh || \
243         ($(RM) hb-ot-shape-complex-indic-table.hh.tmp; false)
244
245 arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt
246         $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-arabic-table.hh.tmp && \
247         mv hb-ot-shape-complex-arabic-table.hh.tmp $(srcdir)/hb-ot-shape-complex-arabic-table.hh || \
248         ($(RM) hb-ot-shape-complex-arabic-table.hh.tmp; false)
249
250
251 .PHONY: unicode-tables arabic-table indic-table
252
253 EXTRA_DIST += hb-ot-shape-complex-indic-machine.rl
254 $(srcdir)/hb-ot-shape-complex-indic-machine.hh: hb-ot-shape-complex-indic-machine.rl
255         $(AM_V_GEN)$(top_srcdir)/missing --run ragel -e -F1 -o "$@.tmp" "$<" && \
256         mv "$@.tmp" "$@" || ( $(RM) "$@.tmp" && false )
257
258 noinst_PROGRAMS = main test test-would-substitute test-size-params
259 bin_PROGRAMS =
260
261 main_SOURCES = main.cc
262 main_CPPFLAGS = $(HBCFLAGS)
263 main_LDADD = libharfbuzz.la $(HBLIBS)
264
265 test_SOURCES = test.cc
266 test_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
267 test_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
268
269 test_would_substitute_SOURCES = test-would-substitute.cc
270 test_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
271 test_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
272
273 test_size_params_SOURCES = test-size-params.cc
274 test_size_params_CPPFLAGS = $(HBCFLAGS)
275 test_size_params_LDADD = libharfbuzz.la $(HBLIBS)
276
277 dist_check_SCRIPTS = \
278         check-c-linkage-decls.sh \
279         check-header-guards.sh \
280         check-exported-symbols.sh \
281         check-includes.sh \
282         check-internal-symbols.sh \
283         $(NULL)
284
285 if HAVE_ICU
286 else
287 dist_check_SCRIPTS += check-libstdc++.sh
288 endif
289
290 if HAVE_ICU_LE
291 else
292 dist_check_SCRIPTS += check-static-inits.sh
293 endif
294
295 TESTS = $(dist_check_SCRIPTS)
296 TESTS_ENVIRONMENT = \
297         srcdir="$(srcdir)" \
298         MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
299         HBSOURCES="$(HBSOURCES)" \
300         HBHEADERS="$(HBHEADERS)" \
301         $(NULL)
302
303 #-include $(INTROSPECTION_MAKEFILE)
304 #INTROSPECTION_GIRS = hb-1.0.gir
305 #INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_
306 #INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
307 #
308 #if HAVE_INTROSPECTION
309 #
310 #hb-1.0.gir: libharfbuzz.la
311 #hb_1_0_gir_INCLUDES = GObject-2.0
312 #hb_1_0_gir_CFLAGS = $(INCLUDES) $(HBCFLAGS) -DHB_H -DHB_H_IN -DHB_OT_H -DHB_OT_H_IN
313 #hb_1_0_gir_LIBS = libharfbuzz.la
314 #hb_1_0_gir_FILES = $(HBHEADERS)
315 #
316 #girdir = $(datadir)/gir-1.0
317 #gir_DATA = $(INTROSPECTION_GIRS)
318 #
319 #typelibdir = $(libdir)/girepository-1.0
320 #typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
321 #
322 #CLEANFILES += $(gir_DATA) $(typelib_DATA)
323 #endif
324
325 -include $(top_srcdir)/git.mk