Fri, 16 Jan 2015 18:13:44 +0100
Integrate suggestion from review to improve consistency with existing code.
1 # Process this file with automake to produce Makefile.in
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
13 # The following warning options are useful for debugging: -Wpadded
14 #AM_CXXFLAGS =
16 lib_LTLIBRARIES = libharfbuzz.la
18 HBCFLAGS =
19 HBLIBS =
20 HBSOURCES = \
21 hb-atomic-private.hh \
22 hb-blob.cc \
23 hb-buffer-deserialize-json.hh \
24 hb-buffer-deserialize-text.hh \
25 hb-buffer-private.hh \
26 hb-buffer-serialize.cc \
27 hb-buffer.cc \
28 hb-cache-private.hh \
29 hb-common.cc \
30 hb-face-private.hh \
31 hb-face.cc \
32 hb-font-private.hh \
33 hb-font.cc \
34 hb-mutex-private.hh \
35 hb-object-private.hh \
36 hb-open-file-private.hh \
37 hb-open-type-private.hh \
38 hb-ot-head-table.hh \
39 hb-ot-hhea-table.hh \
40 hb-ot-hmtx-table.hh \
41 hb-ot-maxp-table.hh \
42 hb-ot-name-table.hh \
43 hb-ot-tag.cc \
44 hb-private.hh \
45 hb-set-private.hh \
46 hb-set.cc \
47 hb-shape.cc \
48 hb-shape-plan-private.hh \
49 hb-shape-plan.cc \
50 hb-shaper-list.hh \
51 hb-shaper-impl-private.hh \
52 hb-shaper-private.hh \
53 hb-shaper.cc \
54 hb-tt-font.cc \
55 hb-unicode-private.hh \
56 hb-unicode.cc \
57 hb-utf-private.hh \
58 hb-warning.cc \
59 $(NULL)
60 HBHEADERS = \
61 hb.h \
62 hb-blob.h \
63 hb-buffer.h \
64 hb-common.h \
65 hb-deprecated.h \
66 hb-face.h \
67 hb-font.h \
68 hb-set.h \
69 hb-shape.h \
70 hb-shape-plan.h \
71 hb-unicode.h \
72 $(NULL)
73 HBNODISTHEADERS = \
74 hb-version.h \
75 $(NULL)
77 if HAVE_OT
78 HBSOURCES += \
79 hb-ot-layout.cc \
80 hb-ot-layout-common-private.hh \
81 hb-ot-layout-gdef-table.hh \
82 hb-ot-layout-gpos-table.hh \
83 hb-ot-layout-gsubgpos-private.hh \
84 hb-ot-layout-gsub-table.hh \
85 hb-ot-layout-jstf-table.hh \
86 hb-ot-layout-private.hh \
87 hb-ot-map.cc \
88 hb-ot-map-private.hh \
89 hb-ot-shape.cc \
90 hb-ot-shape-complex-arabic.cc \
91 hb-ot-shape-complex-arabic-fallback.hh \
92 hb-ot-shape-complex-arabic-table.hh \
93 hb-ot-shape-complex-default.cc \
94 hb-ot-shape-complex-hangul.cc \
95 hb-ot-shape-complex-hebrew.cc \
96 hb-ot-shape-complex-indic.cc \
97 hb-ot-shape-complex-indic-machine.hh \
98 hb-ot-shape-complex-indic-private.hh \
99 hb-ot-shape-complex-indic-table.cc \
100 hb-ot-shape-complex-myanmar.cc \
101 hb-ot-shape-complex-myanmar-machine.hh \
102 hb-ot-shape-complex-sea.cc \
103 hb-ot-shape-complex-sea-machine.hh \
104 hb-ot-shape-complex-thai.cc \
105 hb-ot-shape-complex-tibetan.cc \
106 hb-ot-shape-complex-private.hh \
107 hb-ot-shape-normalize-private.hh \
108 hb-ot-shape-normalize.cc \
109 hb-ot-shape-fallback-private.hh \
110 hb-ot-shape-fallback.cc \
111 hb-ot-shape-private.hh \
112 $(NULL)
113 HBHEADERS += \
114 hb-ot.h \
115 hb-ot-layout.h \
116 hb-ot-shape.h \
117 hb-ot-tag.h \
118 $(NULL)
119 endif
121 if HAVE_FALLBACK
122 HBSOURCES += hb-fallback-shape.cc
123 endif
125 if HAVE_PTHREAD
126 HBCFLAGS += $(PTHREAD_CFLAGS)
127 HBLIBS += $(PTHREAD_LIBS)
128 endif
130 if HAVE_GLIB
131 HBCFLAGS += $(GLIB_CFLAGS)
132 HBLIBS += $(GLIB_LIBS)
133 HBSOURCES += hb-glib.cc
134 HBHEADERS += hb-glib.h
135 endif
137 if HAVE_FREETYPE
138 HBCFLAGS += $(FREETYPE_CFLAGS)
139 HBLIBS += $(FREETYPE_LIBS)
140 HBSOURCES += hb-ft.cc
141 HBHEADERS += hb-ft.h
142 endif
144 if HAVE_GRAPHITE2
145 HBCFLAGS += $(GRAPHITE2_CFLAGS)
146 HBLIBS += $(GRAPHITE2_LIBS)
147 HBSOURCES += hb-graphite2.cc
148 HBHEADERS += hb-graphite2.h
149 endif
151 if HAVE_UNISCRIBE
152 HBCFLAGS += $(UNISCRIBE_CFLAGS)
153 HBLIBS += $(UNISCRIBE_LIBS)
154 HBSOURCES += hb-uniscribe.cc
155 HBHEADERS += hb-uniscribe.h
156 endif
158 if HAVE_CORETEXT
159 HBCFLAGS += $(CORETEXT_CFLAGS)
160 HBLIBS += $(CORETEXT_LIBS)
161 HBSOURCES += hb-coretext.cc
162 HBHEADERS += hb-coretext.h
163 endif
165 if HAVE_UCDN
166 SUBDIRS += hb-ucdn
167 HBCFLAGS += -I$(srcdir)/hb-ucdn
168 HBLIBS += hb-ucdn/libhb-ucdn.la
169 HBSOURCES += hb-ucdn.cc
170 endif
171 DIST_SUBDIRS += hb-ucdn
174 # Put the library together
176 if OS_WIN32
177 export_symbols = -export-symbols harfbuzz.def
178 harfbuzz_def_dependency = harfbuzz.def
179 libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
180 else
181 # Use a C linker for GCC, not C++; Don't link to libstdc++
182 if HAVE_GCC
183 libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS)
184 else
185 libharfbuzz_la_LINK = $(CXXLINK) $(libharfbuzz_la_LDFLAGS)
186 endif
187 endif
189 libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS) $(HBNODISTHEADERS)
190 libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)
191 libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined
192 libharfbuzz_la_LIBADD = $(HBLIBS)
193 EXTRA_libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
194 pkginclude_HEADERS = $(HBHEADERS)
195 nodist_pkginclude_HEADERS = $(HBNODISTHEADERS)
196 pkgconfigdir = $(libdir)/pkgconfig
197 pkgconfig_DATA = harfbuzz.pc
198 EXTRA_DIST += harfbuzz.pc.in
200 if HAVE_ICU
201 lib_LTLIBRARIES += libharfbuzz-icu.la
202 libharfbuzz_icu_la_SOURCES = hb-icu.cc
203 libharfbuzz_icu_la_CPPFLAGS = $(ICU_CFLAGS)
204 libharfbuzz_icu_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
205 libharfbuzz_icu_la_LIBADD = $(ICU_LIBS) libharfbuzz.la
206 pkginclude_HEADERS += hb-icu.h
207 pkgconfig_DATA += harfbuzz-icu.pc
208 endif
209 EXTRA_DIST += harfbuzz-icu.pc.in
211 if HAVE_GOBJECT
212 lib_LTLIBRARIES += libharfbuzz-gobject.la
213 libharfbuzz_gobject_la_SOURCES = hb-gobject-structs.cc
214 nodist_libharfbuzz_gobject_la_SOURCES = hb-gobject-enums.cc
215 libharfbuzz_gobject_la_CPPFLAGS = $(GOBJECT_CFLAGS)
216 libharfbuzz_gobject_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) -no-undefined
217 libharfbuzz_gobject_la_LIBADD = $(GOBJECT_LIBS) libharfbuzz.la
218 pkginclude_HEADERS += hb-gobject.h hb-gobject-structs.h
219 nodist_pkginclude_HEADERS += hb-gobject-enums.h
220 pkgconfig_DATA += harfbuzz-gobject.pc
222 BUILT_SOURCES += \
223 hb-gobject-enums.cc \
224 hb-gobject-enums.h \
225 $(NULL)
226 DISTCLEANFILES += \
227 hb-gobject-enums.cc \
228 hb-gobject-enums.h \
229 $(NULL)
230 hb-gobject-enums.%: hb-gobject-enums.%.tmpl $(HBHEADERS)
231 $(AM_V_GEN) $(GLIB_MKENUMS) \
232 --identifier-prefix hb_ --symbol-prefix hb_gobject \
233 --template $^ | \
234 sed 's/_t_get_type/_get_type/g; s/_T (/ (/g' > "$@.tmp" && \
235 mv "$@.tmp" "$@" || ( $(RM) "@.tmp" && false )
236 endif
237 EXTRA_DIST += \
238 harfbuzz-gobject.pc.in \
239 hb-gobject-enums.cc.tmpl \
240 hb-gobject-enums.h.tmpl \
241 $(NULL)
244 %.pc: %.pc.in $(top_builddir)/config.status
245 $(AM_V_GEN) \
246 $(SED) -e 's@%prefix%@$(prefix)@g' \
247 -e 's@%exec_prefix%@$(exec_prefix)@g' \
248 -e 's@%libdir%@$(libdir)@g' \
249 -e 's@%includedir%@$(includedir)@g' \
250 -e 's@%VERSION%@$(VERSION)@g' \
251 "$<" \
252 > "$@.tmp" && mv "$@.tmp" "$@" || ( $(RM) "$@.tmp"; false )
254 CLEANFILES += $(pkgconfig_DATA)
257 CLEANFILES += harfbuzz.def
258 harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
259 $(AM_V_GEN) (echo EXPORTS; \
260 (cat $^ || echo 'hb_ERROR ()' ) | \
261 $(EGREP) '^hb_.* \(' | \
262 sed -e 's/ (.*//' | \
263 LANG=C sort; \
264 echo LIBRARY libharfbuzz-$(HB_VERSION_MAJOR).dll; \
265 ) >"$@.tmp"
266 @ ! grep -q hb_ERROR "$@.tmp" && mv "$@.tmp" "$@" || ($(RM) "$@"; false)
269 GENERATORS = \
270 gen-arabic-table.py \
271 gen-indic-table.py \
272 $(NULL)
273 EXTRA_DIST += $(GENERATORS)
275 unicode-tables: arabic-table indic-table
277 indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt
278 $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-indic-table.cc.tmp && \
279 mv hb-ot-shape-complex-indic-table.cc.tmp $(srcdir)/hb-ot-shape-complex-indic-table.cc || \
280 ($(RM) hb-ot-shape-complex-indic-table.cc.tmp; false)
282 arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt
283 $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-arabic-table.hh.tmp && \
284 mv hb-ot-shape-complex-arabic-table.hh.tmp $(srcdir)/hb-ot-shape-complex-arabic-table.hh || \
285 ($(RM) hb-ot-shape-complex-arabic-table.hh.tmp; false)
288 .PHONY: unicode-tables arabic-table indic-table
290 BUILT_SOURCES += \
291 hb-buffer-deserialize-json.hh \
292 hb-buffer-deserialize-text.hh \
293 hb-ot-shape-complex-indic-machine.hh \
294 hb-ot-shape-complex-myanmar-machine.hh \
295 hb-ot-shape-complex-sea-machine.hh \
296 $(NULL)
297 EXTRA_DIST += \
298 hb-buffer-deserialize-json.rl \
299 hb-buffer-deserialize-text.rl \
300 hb-ot-shape-complex-indic-machine.rl \
301 hb-ot-shape-complex-myanmar-machine.rl \
302 hb-ot-shape-complex-sea-machine.rl \
303 $(NULL)
304 .rl.hh:
305 $(AM_V_GEN)$(top_srcdir)/missing --run ragel -e -F1 -o "$@.tmp" "$<" && \
306 mv "$@.tmp" "$@" || ( $(RM) "$@.tmp" && false )
308 noinst_PROGRAMS = \
309 main \
310 test \
311 test-buffer-serialize \
312 test-size-params \
313 test-would-substitute \
314 $(NULL)
315 bin_PROGRAMS =
317 main_SOURCES = main.cc
318 main_CPPFLAGS = $(HBCFLAGS)
319 main_LDADD = libharfbuzz.la $(HBLIBS)
321 test_SOURCES = test.cc
322 test_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
323 test_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
325 test_would_substitute_SOURCES = test-would-substitute.cc
326 test_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
327 test_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
329 test_size_params_SOURCES = test-size-params.cc
330 test_size_params_CPPFLAGS = $(HBCFLAGS)
331 test_size_params_LDADD = libharfbuzz.la $(HBLIBS)
333 test_buffer_serialize_SOURCES = test-buffer-serialize.cc
334 test_buffer_serialize_CPPFLAGS = $(HBCFLAGS)
335 test_buffer_serialize_LDADD = libharfbuzz.la $(HBLIBS)
337 dist_check_SCRIPTS = \
338 check-c-linkage-decls.sh \
339 check-defs.sh \
340 check-header-guards.sh \
341 check-includes.sh \
342 check-libstdc++.sh \
343 check-static-inits.sh \
344 check-symbols.sh \
345 $(NULL)
347 TESTS = $(dist_check_SCRIPTS)
348 TESTS_ENVIRONMENT = \
349 srcdir="$(srcdir)" \
350 MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
351 HBSOURCES="$(HBSOURCES)" \
352 HBHEADERS="$(HBHEADERS) $(HBNODISTHEADERS)" \
353 $(NULL)
355 if HAVE_INTROSPECTION
357 -include $(INTROSPECTION_MAKEFILE)
358 INTROSPECTION_GIRS = HarfBuzz-$(HB_VERSION_MAJOR).0.gir # What does the 0 mean anyway?!
359 INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_ --warn-all
360 INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
362 HarfBuzz-0.0.gir: libharfbuzz.la libharfbuzz-gobject.la
363 HarfBuzz_0_0_gir_INCLUDES = GObject-2.0
364 HarfBuzz_0_0_gir_CFLAGS = \
365 $(INCLUDES) \
366 $(HBCFLAGS) \
367 -DHB_H \
368 -DHB_H_IN \
369 -DHB_OT_H \
370 -DHB_OT_H_IN \
371 -DHB_GOBJECT_H \
372 -DHB_GOBJECT_H_IN \
373 $(NULL)
374 HarfBuzz_0_0_gir_LIBS = \
375 libharfbuzz.la \
376 libharfbuzz-gobject.la \
377 $(NULL)
378 HarfBuzz_0_0_gir_FILES = \
379 $(HBHEADERS) \
380 $(HBNODISTHEADERS) \
381 $(HBSOURCES) \
382 hb-gobject-enums.cc \
383 hb-gobject-enums.h \
384 hb-gobject-structs.cc \
385 hb-gobject-structs.h \
386 $(NULL)
388 girdir = $(datadir)/gir-1.0
389 gir_DATA = $(INTROSPECTION_GIRS)
391 typelibdir = $(libdir)/girepository-1.0
392 typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
394 CLEANFILES += $(gir_DATA) $(typelib_DATA)
396 endif
398 -include $(top_srcdir)/git.mk