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