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