Imported Upstream version 0.9.3
[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-shape-plan.h \
47         hb-shaper-list.hh \
48         hb-shaper-impl-private.hh \
49         hb-shaper-private.hh \
50         hb-shaper.cc \
51         hb-tt-font.cc \
52         hb-unicode-private.hh \
53         hb-unicode.cc \
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-unicode.h \
65         hb-version.h \
66         $(NULL)
67
68 if HAVE_OT
69 HBSOURCES += \
70         hb-ot-layout.cc \
71         hb-ot-layout-common-private.hh \
72         hb-ot-layout-gdef-table.hh \
73         hb-ot-layout-gpos-table.hh \
74         hb-ot-layout-gsubgpos-private.hh \
75         hb-ot-layout-gsub-table.hh \
76         hb-ot-layout-private.hh \
77         hb-ot-map.cc \
78         hb-ot-map-private.hh \
79         hb-ot-shape.cc \
80         hb-ot-shape-complex-arabic.cc \
81         hb-ot-shape-complex-arabic-table.hh \
82         hb-ot-shape-complex-indic.cc \
83         hb-ot-shape-complex-indic-machine.hh \
84         hb-ot-shape-complex-indic-private.hh \
85         hb-ot-shape-complex-indic-table.hh \
86         hb-ot-shape-complex-misc.cc \
87         hb-ot-shape-complex-private.hh \
88         hb-ot-shape-normalize-private.hh \
89         hb-ot-shape-normalize.cc \
90         hb-ot-shape-fallback-private.hh \
91         hb-ot-shape-fallback.cc \
92         hb-ot-shape-private.hh \
93         $(NULL)
94 HBHEADERS += \
95         hb-ot.h \
96         hb-ot-layout.h \
97         hb-ot-tag.h \
98         $(NULL)
99 endif
100
101 if HAVE_GLIB
102 HBCFLAGS += $(GLIB_CFLAGS)
103 HBLIBS   += $(GLIB_LIBS)
104 HBSOURCES += hb-glib.cc
105 HBHEADERS += hb-glib.h
106 endif
107
108 if HAVE_GOBJECT
109 HBCFLAGS += $(GOBJECT_CFLAGS)
110 HBLIBS   += $(GOBJECT_LIBS)
111 HBSOURCES += hb-gobject-structs.cc
112 nodist_HBSOURCES = hb-gobject-enums.cc
113 HBHEADERS += hb-gobject.h
114 BUILT_SOURCES += hb-gobject-enums.cc
115 EXTRA_DIST += hb-gobject-enums.cc.tmpl
116 DISTCLEANFILES += hb-gobject-enums.cc
117
118 hb-gobject-enums.cc: hb-gobject-enums.cc.tmpl $(HBHEADERS)
119         $(AM_V_GEN) $(GLIB_MKENUMS) --template $^ > "$@.tmp" && \
120         mv "$@.tmp" "$@" || ( $(RM) "@.tmp" && false )
121 endif
122
123 if HAVE_ICU
124 HBCFLAGS += $(ICU_CFLAGS)
125 HBLIBS   += $(ICU_LIBS)
126 HBSOURCES += hb-icu.cc
127 HBHEADERS += hb-icu.h
128 endif
129
130 if HAVE_FREETYPE
131 HBCFLAGS += $(FREETYPE_CFLAGS)
132 HBLIBS   += $(FREETYPE_LIBS)
133 HBSOURCES += hb-ft.cc
134 HBHEADERS += hb-ft.h
135 endif
136
137 if HAVE_GRAPHITE2
138 HBCFLAGS += $(GRAPHITE2_CFLAGS)
139 HBLIBS   += $(GRAPHITE2_LIBS)
140 HBSOURCES += hb-graphite2.cc
141 HBHEADERS += hb-graphite2.h
142 endif
143
144 if HAVE_UNISCRIBE
145 HBCFLAGS += $(UNISCRIBE_CFLAGS)
146 HBLIBS   += $(UNISCRIBE_LIBS)
147 HBSOURCES += hb-uniscribe.cc
148 HBHEADERS += hb-uniscribe.h
149 endif
150
151 if HAVE_CORETEXT
152 HBCFLAGS += $(CORETEXT_CFLAGS)
153 HBLIBS   += $(CORETEXT_LIBS)
154 HBSOURCES += hb-coretext.cc
155 HBHEADERS += hb-coretext.h
156 endif
157
158 if HAVE_HB_OLD
159 SUBDIRS += hb-old
160 HBCFLAGS += -I$(srcdir)/hb-old
161 HBLIBS   += hb-old/libhb-old.la
162 HBSOURCES += hb-old.cc
163 endif
164 DIST_SUBDIRS += hb-old
165
166
167
168 # Put the library together
169
170 if OS_WIN32
171 export_symbols = -export-symbols harfbuzz.def
172 harfbuzz_def_dependency = harfbuzz.def
173 endif
174
175 # Use a C linker, not C++; Don't link to libstdc++
176 libharfbuzz_la_LINK = $(LINK) $(libharfbuzz_la_LDFLAGS)
177 libharfbuzz_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
178 nodist_libharfbuzz_la_SOURCES = $(nodist_HBSOURCES)
179 libharfbuzz_la_CPPFLAGS = $(HBCFLAGS)
180 libharfbuzz_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(HB_LIBTOOL_VERSION_INFO) $(export_symbols) -no-undefined
181 libharfbuzz_la_LIBADD = $(HBLIBS)
182 libharfbuzz_la_DEPENDENCIES = $(harfbuzz_def_dependency)
183 pkginclude_HEADERS = $(HBHEADERS)
184 nodist_pkginclude_HEADERS = hb-version.h
185
186 CLEANFILES += harfbuzz.def
187 harfbuzz.def: $(HBHEADERS)
188         $(AM_V_GEN) (echo EXPORTS; \
189         (cat $^ || echo 'hb_ERROR ()' ) | \
190         $(EGREP) '^hb_.* \(' | \
191         sed -e 's/ (.*//' | \
192         LANG=C sort; \
193         echo LIBRARY libharfbuzz-$(HB_VERSION_MAJOR).dll; \
194         ) >"$@.tmp"
195         @ ! grep -q hb_ERROR "$@.tmp" && mv "$@.tmp" "$@" || ($(RM) "$@"; false)
196
197
198 GENERATORS = \
199         gen-arabic-table.py \
200         gen-indic-table.py \
201         $(NULL)
202
203 EXTRA_DIST += $(GENERATORS)
204
205 unicode-tables: arabic-table indic-table
206
207 indic-table: gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt
208         $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-indic-table.hh.tmp && \
209         mv hb-ot-shape-complex-indic-table.hh.tmp $(srcdir)/hb-ot-shape-complex-indic-table.hh || \
210         ($(RM) hb-ot-shape-complex-indic-table.hh.tmp; false)
211
212 arabic-table: gen-arabic-table.py ArabicShaping.txt UnicodeData.txt
213         $(AM_V_GEN) $(builddir)/$^ > hb-ot-shape-complex-arabic-table.hh.tmp && \
214         mv hb-ot-shape-complex-arabic-table.hh.tmp $(srcdir)/hb-ot-shape-complex-arabic-table.hh || \
215         ($(RM) hb-ot-shape-complex-arabic-table.hh.tmp; false)
216
217
218 .PHONY: unicode-tables arabic-table indic-table
219
220 BUILT_SOURCES += hb-ot-shape-complex-indic-machine.hh
221 EXTRA_DIST += hb-ot-shape-complex-indic-machine.rl
222 hb-ot-shape-complex-indic-machine.hh: hb-ot-shape-complex-indic-machine.rl
223         $(AM_V_GEN)$(top_srcdir)/missing --run ragel -e -F1 -o "$@.tmp" "$<" && \
224         mv "$@.tmp" "$@" || ( $(RM) "$@.tmp" && false )
225
226 noinst_PROGRAMS = main indic test-would-substitute
227 bin_PROGRAMS =
228
229 main_SOURCES = main.cc
230 main_CPPFLAGS = $(HBCFLAGS)
231 main_LDADD = libharfbuzz.la $(HBLIBS)
232
233 indic_SOURCES = indic.cc
234 indic_CPPFLAGS = $(HBCFLAGS)
235 indic_LDADD = libharfbuzz.la $(HBLIBS)
236
237 test_would_substitute_SOURCES = test-would-substitute.cc
238 test_would_substitute_CPPFLAGS = $(HBCFLAGS) $(FREETYPE_CFLAGS)
239 test_would_substitute_LDADD = libharfbuzz.la $(HBLIBS) $(FREETYPE_LIBS)
240
241 dist_check_SCRIPTS = \
242         check-c-linkage-decls.sh \
243         check-header-guards.sh \
244         check-exported-symbols.sh \
245         check-includes.sh \
246         check-internal-symbols.sh \
247         check-static-inits.sh \
248         $(NULL)
249
250 if HAVE_ICU
251 else
252 dist_check_SCRIPTS += check-libstdc++.sh
253 endif
254
255 TESTS = $(dist_check_SCRIPTS)
256 TESTS_ENVIRONMENT = \
257         srcdir="$(srcdir)" \
258         MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
259         HBSOURCES="$(HBSOURCES)" \
260         HBHEADERS="$(HBHEADERS)" \
261         $(NULL)
262
263 #-include $(INTROSPECTION_MAKEFILE)
264 #INTROSPECTION_GIRS = hb-1.0.gir
265 #INTROSPECTION_SCANNER_ARGS = -I$(srcdir) -n hb --identifier-prefix=hb_
266 #INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
267 #
268 #if HAVE_INTROSPECTION
269 #
270 #hb-1.0.gir: libharfbuzz.la
271 #hb_1_0_gir_INCLUDES = GObject-2.0
272 #hb_1_0_gir_CFLAGS = $(INCLUDES) $(HBCFLAGS) -DHB_H -DHB_H_IN -DHB_OT_H -DHB_OT_H_IN
273 #hb_1_0_gir_LIBS = libharfbuzz.la
274 #hb_1_0_gir_FILES = $(HBHEADERS)
275 #
276 #girdir = $(datadir)/gir-1.0
277 #gir_DATA = $(INTROSPECTION_GIRS)
278 #
279 #typelibdir = $(libdir)/girepository-1.0
280 #typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
281 #
282 #CLEANFILES += $(gir_DATA) $(typelib_DATA)
283 #endif
284
285 -include $(top_srcdir)/git.mk