libnm,libnm-core: add coverage support
[NetworkManager.git] / libnm / Makefile.am
1 include $(GLIB_MAKEFILE)
2
3 @GNOME_CODE_COVERAGE_RULES@
4
5 SUBDIRS = . tests
6
7 AM_CPPFLAGS = \
8         -I$(top_srcdir)/shared \
9         -I$(top_builddir)/shared \
10         -I$(top_builddir)/introspection \
11         -I$(top_srcdir)/libnm-core \
12         -I$(top_builddir)/libnm-core \
13         -I$(top_srcdir)/libnm \
14         -I$(top_builddir)/libnm \
15         -DG_LOG_DOMAIN=\""libnm"\" \
16         -DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIB \
17         -DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE \
18         $(GLIB_CFLAGS) \
19         $(GUDEV_CFLAGS) \
20         -DNMRUNDIR=\"$(nmrundir)\" \
21         $(CODE_COVERAGE_CFLAGS)
22
23 include $(top_srcdir)/libnm-core/Makefile.libnm-core
24
25 # libnm
26
27 lib_LTLIBRARIES = libnm.la
28
29 libnmincludedir = $(includedir)/libnm
30
31 libnminclude_hfiles =                   \
32         $(top_builddir)/shared/nm-version-macros.h \
33         NetworkManager.h                \
34         nm-access-point.h               \
35         nm-active-connection.h          \
36         nm-client.h                     \
37         nm-device-adsl.h                \
38         nm-device-bond.h                \
39         nm-device-bridge.h              \
40         nm-device-bt.h                  \
41         nm-device-ethernet.h            \
42         nm-device-generic.h             \
43         nm-device-infiniband.h          \
44         nm-device-ip-tunnel.h           \
45         nm-device-macvlan.h             \
46         nm-device-modem.h               \
47         nm-device-olpc-mesh.h           \
48         nm-device-team.h                \
49         nm-device-tun.h                 \
50         nm-device-vlan.h                \
51         nm-device-vxlan.h               \
52         nm-device-wifi.h                \
53         nm-device-wimax.h               \
54         nm-device.h                     \
55         nm-dhcp-config.h                \
56         nm-enum-types.h                 \
57         nm-ip-config.h                  \
58         nm-object.h                     \
59         nm-remote-connection.h          \
60         nm-types.h                      \
61         nm-vpn-connection.h             \
62         nm-vpn-editor.h         \
63         nm-wimax-nsp.h
64
65 libnminclude_nointrospect_hfiles =      \
66         nm-secret-agent-old.h           \
67         nm-vpn-plugin-old.h         \
68         nm-vpn-service-plugin.h
69
70 libnminclude_HEADERS =                  \
71         $(libnminclude_hfiles)          \
72         $(libnminclude_nointrospect_hfiles)
73
74 libnm_la_private_headers =              \
75         nm-dbus-helpers.h               \
76         nm-device-private.h             \
77         nm-dhcp4-config.h               \
78         nm-dhcp6-config.h               \
79         nm-ip4-config.h                 \
80         nm-ip6-config.h                 \
81         nm-manager.h                    \
82         nm-object-cache.h               \
83         nm-object-private.h             \
84         nm-remote-connection-private.h  \
85         nm-remote-settings.h
86
87 libnm_la_csources =                     \
88         nm-access-point.c               \
89         nm-active-connection.c          \
90         nm-client.c                     \
91         nm-dbus-helpers.c               \
92         nm-device-adsl.c                \
93         nm-device-bond.c                \
94         nm-device-bridge.c              \
95         nm-device-bt.c                  \
96         nm-device-ethernet.c            \
97         nm-device-generic.c             \
98         nm-device-infiniband.c          \
99         nm-device-ip-tunnel.c           \
100         nm-device-macvlan.c             \
101         nm-device-modem.c               \
102         nm-device-olpc-mesh.c           \
103         nm-device-team.c                \
104         nm-device-tun.c                 \
105         nm-device-vlan.c                \
106         nm-device-vxlan.c               \
107         nm-device-wifi.c                \
108         nm-device-wimax.c               \
109         nm-device.c                     \
110         nm-dhcp-config.c                \
111         nm-dhcp4-config.c               \
112         nm-dhcp6-config.c               \
113         nm-enum-types.c                 \
114         nm-ip-config.c                  \
115         nm-ip4-config.c                 \
116         nm-ip6-config.c                 \
117         nm-manager.c                    \
118         nm-object-cache.c               \
119         nm-object.c                     \
120         nm-remote-connection.c          \
121         nm-remote-settings.c            \
122         nm-secret-agent-old.c           \
123         nm-vpn-connection.c             \
124         nm-vpn-plugin-old.c             \
125         nm-vpn-editor.c         \
126         nm-vpn-service-plugin.c     \
127         nm-wimax-nsp.c
128
129 libnm_la_SOURCES =                      \
130         $(libnm_la_csources)            \
131         $(libnm_la_private_headers)
132
133 GLIB_GENERATED = nm-enum-types.h nm-enum-types.c
134 nm_enum_types_sources = $(libnminclude_HEADERS)
135 GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-types.h>\n'
136 GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
137
138 libnm_la_LIBADD = \
139         $(top_builddir)/libnm-core/libnm-core.la \
140         $(top_builddir)/introspection/libnmdbus.la \
141         $(GLIB_LIBS) \
142         $(UUID_LIBS) \
143         $(GUDEV_LIBS)
144
145 libnm_la_LDFLAGS = \
146         $(CODE_COVERAGE_LDFLAGS)
147
148 SYMBOL_VIS_FILE=$(srcdir)/libnm.ver
149
150 libnm_la_LDFLAGS = -Wl,--version-script=$(SYMBOL_VIS_FILE) \
151         -version-info "1:0:1"
152
153 ###
154
155 BUILT_SOURCES = $(GLIB_GENERATED)
156
157 pkgconfigdir = $(libdir)/pkgconfig
158 pkgconfig_DATA = libnm.pc
159
160 DISTCLEANFILES = libnm.pc
161
162 EXTRA_DIST = libnm.pc.in libnm.ver
163
164 CLEANFILES = $(BUILT_SOURCES)
165
166 -include $(INTROSPECTION_MAKEFILE)
167 INTROSPECTION_GIRS =
168 INTROSPECTION_COMPILER_ARGS =                   \
169         --includedir=$(top_srcdir)/libnm-core   \
170         --includedir=$(top_builddir)/libnm-core \
171         --includedir=$(top_srcdir)/libnm        \
172         --includedir=$(top_builddir)/libnm
173
174 if HAVE_INTROSPECTION
175 introspection_sources =                         \
176         $(libnm_core_headers)                   \
177         $(libnminclude_hfiles)                  \
178         $(libnm_core_sources)                   \
179         $(libnm_la_csources)
180
181 NM-1.0.gir: libnm.la
182 NM_1_0_gir_INCLUDES = Gio-2.0
183 NM_1_0_gir_PACKAGES = gio-2.0 gudev-1.0
184 NM_1_0_gir_EXPORT_PACKAGES = libnm
185 NM_1_0_gir_CFLAGS = $(AM_CPPFLAGS)
186 NM_1_0_gir_LIBS = libnm.la
187 NM_1_0_gir_FILES = $(introspection_sources)
188 NM_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=NM --symbol-prefix=nm
189 INTROSPECTION_GIRS += NM-1.0.gir
190
191 girdir = $(datadir)/gir-1.0
192 gir_DATA = $(INTROSPECTION_GIRS)
193
194 typelibdir = $(libdir)/girepository-1.0
195 typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
196
197 CLEANFILES += $(gir_DATA) $(typelib_DATA)
198 endif
199
200 check-local:
201         $(top_srcdir)/tools/check-exports.sh $(builddir)/.libs/libnm.so $(SYMBOL_VIS_FILE)
202
203 if BUILD_SETTING_DOCS
204
205 noinst_DATA = \
206         nm-property-docs.xml \
207         nm-setting-docs-overrides.xml \
208         nm-setting-docs.xml \
209         nm-keyfile-docs.xml \
210         nm-ifcfg-rh-docs.xml
211
212 docs_sources = $(filter-out %/nm-core-enum-types.c,$(libnm_core_sources))
213
214 nm-setting-docs-overrides.xml: generate-plugin-docs.pl $(docs_sources)
215         $(srcdir)/generate-plugin-docs.pl dbus $(top_srcdir)/libnm-core $@
216
217 nm-property-docs.xml: generate-setting-docs.py $(docs_sources) | NM-1.0.gir NM-1.0.typelib libnm.la
218         export GI_TYPELIB_PATH=$(abs_builddir)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}; \
219         export LD_LIBRARY_PATH=$(abs_builddir)/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}; \
220         $(srcdir)/generate-setting-docs.py \
221                 --gir $(builddir)/NM-1.0.gir \
222                 --output $@
223
224 nm-setting-docs.xml: generate-setting-docs.py $(docs_sources) nm-setting-docs-overrides.xml | NM-1.0.gir NM-1.0.typelib libnm.la
225         export GI_TYPELIB_PATH=$(abs_builddir)$${GI_TYPELIB_PATH:+:$$GI_TYPELIB_PATH}; \
226         export LD_LIBRARY_PATH=$(abs_builddir)/.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}; \
227         $(srcdir)/generate-setting-docs.py \
228                 --gir $(builddir)/NM-1.0.gir \
229                 --overrides $(builddir)/nm-setting-docs-overrides.xml \
230                 --output $@
231
232 nm-keyfile-docs.xml: generate-plugin-docs.pl $(docs_sources)
233         $(srcdir)/generate-plugin-docs.pl keyfile $(top_srcdir)/libnm-core $@
234 nm-ifcfg-rh-docs.xml: generate-plugin-docs.pl $(docs_sources)
235         $(srcdir)/generate-plugin-docs.pl ifcfg-rh $(top_srcdir)/libnm-core $@
236
237 CLEANFILES += $(noinst_DATA)
238 EXTRA_DIST += $(noinst_DATA)
239
240 endif
241
242 EXTRA_DIST += generate-setting-docs.py generate-plugin-docs.pl