1# Note: All source files are listed in Makefile.sources.
2
3include $(top_srcdir)/build/Makefile.am.common
4include $(srcdir)/Makefile.am.features
5
6EXTRA_DIST += Makefile.win32      Makefile.win32.features
7#MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
8
9AM_CPPFLAGS = -I$(srcdir) $(CAIRO_CFLAGS)
10AM_LDFLAGS = $(CAIRO_LDFLAGS)
11
12if OS_WIN32
13export_symbols = -export-symbols cairo.def
14cairo_def_dependency = cairo.def
15endif
16
17$(top_builddir)/config.h: $(top_srcdir)/config.h.in
18	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h
19
20cairoincludedir = $(includedir)/cairo
21cairoinclude_HEADERS = $(enabled_cairo_headers)
22
23lib_LTLIBRARIES = libcairo.la
24
25if BUILD_CXX
26cairo_cxx_lib = libcairo_cxx.la
27else
28cairo_cxx_lib =
29endif
30
31noinst_LTLIBRARIES = $(cairo_cxx_lib)
32libcairo_cxx_la_SOURCES = \
33	$(enabled_cairo_headers) \
34	$(enabled_cairo_private) \
35	$(enabled_cairo_cxx_sources) \
36	$(NULL)
37libcairo_cxx_la_LDFLAGS = $(AM_LDFLAGS) $(export_symbols)
38libcairo_cxx_la_LIBADD = $(CAIRO_LIBS)
39libcairo_cxx_la_DEPENDENCIES = $(cairo_def_dependency)
40
41
42libcairo_la_SOURCES = \
43	$(enabled_cairo_headers) \
44	$(enabled_cairo_private) \
45	$(enabled_cairo_sources) \
46	$(NULL)
47libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
48libcairo_la_LIBADD = $(CAIRO_LIBS) \
49	$(cairo_cxx_lib)
50libcairo_la_DEPENDENCIES = $(cairo_def_dependency) $(cairo_cxx_lib)
51
52# Special headers
53nodist_cairoinclude_HEADERS = cairo-features.h
54nodist_libcairo_la_SOURCES  = cairo-features.h
55BUILT_SOURCES  += cairo-features.h cairo-supported-features.h
56DISTCLEANFILES += cairo-features.h cairo-supported-features.h
57cairo-features.h cairo-supported-features.h:
58	cd $(top_builddir) && ./config.status src/$@
59
60pkgconfigdir = $(libdir)/pkgconfig
61pkgconfig_DATA = $(enabled_cairo_pkgconf)
62
63CLEANFILES += cairo.def
64cairo.def: cairo-features.h $(enabled_cairo_headers)
65	@echo Generating $@
66	@(echo EXPORTS; \
67	(cd $(srcdir); cat $(enabled_cairo_headers) || echo 'cairo_ERROR ()' ) | \
68	$(EGREP) -v '^# *include' | \
69	( cat cairo-features.h - | $(CPP) -D__cplusplus - || echo 'cairo_ERROR ()' ) | \
70	$(EGREP) '^cairo_.* \(' | \
71	sed -e 's/[ 	].*//' | \
72	sort; \
73	echo LIBRARY libcairo-$(CAIRO_VERSION_SONUM).dll; \
74	) >$@
75	@ ! grep -q cairo_ERROR $@ || ($(RM) $@; false)
76
77TESTS_ENVIRONMENT = \
78	srcdir="$(srcdir)" \
79	MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
80	all_cairo_files="$(all_cairo_files)" \
81	all_cairo_headers="$(all_cairo_headers)" \
82	all_cairo_private="$(all_cairo_private)" \
83	all_cairo_sources="$(all_cairo_sources)" \
84	enabled_cairo_headers="$(enabled_cairo_headers)" \
85	enabled_cairo_private="$(enabled_cairo_private)" \
86	enabled_cairo_sources="$(enabled_cairo_sources)" \
87	$(NULL)
88TESTS_SH = \
89	check-def.sh \
90	check-doc-syntax.sh \
91	check-headers.sh \
92	check-plt.sh \
93	check-preprocessor-syntax.sh \
94	$(NULL)
95TESTS += $(TESTS_SH)
96if CROSS_COMPILING
97else
98TESTS += check-link$(EXEEXT)
99endif
100
101EXTRA_DIST += $(TESTS_SH) check-has-hidden-symbols.c check-doc-syntax.awk
102check_PROGRAMS += check-link
103check_link_LDADD = libcairo.la
104
105check: headers-standalone
106
107PREPROCESS_ARGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
108COMPILE_ARGS = $(PREPROCESS_ARGS) $(AM_CFLAGS) $(CFLAGS)
109
110# The pre-processed result is used by check-{def,plt}.sh to determine whether
111# cairo has been compiled with symbol hiding.
112.c.i: $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) cairoint.h $(top_builddir)/config.h
113	$(CPP) $(PREPROCESS_ARGS) $< -o $@
114.c.s: $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) cairoint.h $(top_builddir)/config.h
115	$(CC) $(COMPILE_ARGS) $< -S -o $@
116
117include $(srcdir)/Makefile.am.analysis
118