• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1include $(top_srcdir)/Makefile.decl
2
3NULL =
4
5SUBDIRS=
6
7if OS_UNIX
8SUBDIRS += xdgmime
9endif
10
11if OS_WIN32_AND_DLL_COMPILATION
12if MS_LIB_AVAILABLE
13noinst_DATA = gio-2.0.lib
14
15install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir)
16uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib
17endif
18endif
19
20install-ms-lib:
21	$(install_ms_lib_cmd)
22
23uninstall-ms-lib:
24	$(uninstall_ms_lib_cmd)
25
26gio.def: gio.symbols
27	(echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gio.symbols | sed -e '/^$$/d' -e 's/^/	/' -e 's/G_GNUC_[^ ]*//g' | sort) > gio.def.tmp && \
28	  mv gio.def.tmp gio.def
29
30gioalias.h: gio.symbols
31	$(PERL) $(srcdir)/makegioalias.pl < $(srcdir)/gio.symbols > gioalias.h.tmp && \
32	  mv gioalias.h.tmp gioalias.h
33
34gioaliasdef.c: gio.symbols
35	$(PERL) $(srcdir)/makegioalias.pl -def < $(srcdir)/gio.symbols > gioaliasdef.c.tmp && \
36	  mv gioaliasdef.c.tmp gioaliasdef.c
37
38if OS_LINUX
39if HAVE_GNUC_VISIBILITY
40TESTS = abicheck.sh pltcheck.sh
41endif
42endif
43
44AM_CPPFLAGS = \
45	-DG_LOG_DOMAIN=\"GLib-GIO\"			\
46	-I$(top_builddir)				\
47	-I$(top_srcdir)					\
48	-I$(top_srcdir)/glib				\
49	-I$(top_srcdir)/gmodule				\
50	$(GLIB_DEBUG_FLAGS)				\
51	-DG_DISABLE_DEPRECATED				\
52	-DGIO_COMPILATION				\
53	-DGIO_MODULE_DIR=\"$(GIO_MODULE_DIR)\"
54
55lib_LTLIBRARIES = libgio-2.0.la
56
57marshal_sources = \
58        gio-marshal.h	\
59        gio-marshal.c	\
60	$(NULL)
61
62if CROSS_COMPILING
63  glib_genmarshal=$(GLIB_GENMARSHAL)
64else
65  glib_genmarshal=../gobject/glib-genmarshal
66endif
67
68gio-marshal.h: gio-marshal.list
69	$(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --header --internal > $@.tmp && \
70	  mv $@.tmp $@
71
72gio-marshal.c: gio-marshal.h gio-marshal.list
73	(echo "#include \"gio-marshal.h\""; \
74	$(glib_genmarshal) --prefix=_gio_marshal $(srcdir)/gio-marshal.list --body --internal) > $@.tmp && \
75	  mv $@.tmp $@
76
77local_sources = \
78	glocaldirectorymonitor.c 	\
79	glocaldirectorymonitor.h 	\
80	glocalfile.c 			\
81	glocalfile.h 			\
82	glocalfileenumerator.c 		\
83	glocalfileenumerator.h 		\
84	glocalfileinfo.c 		\
85	glocalfileinfo.h 		\
86	glocalfileinputstream.c 	\
87	glocalfileinputstream.h 	\
88	glocalfilemonitor.c 		\
89	glocalfilemonitor.h 		\
90	glocalfileoutputstream.c 	\
91	glocalfileoutputstream.h 	\
92	glocalvfs.c 			\
93	glocalvfs.h 			\
94	$(NULL)
95
96platform_libadd =
97platform_deps =
98appinfo_sources =
99
100if HAVE_INOTIFY
101SUBDIRS += inotify
102platform_libadd += inotify/libinotify.la
103platform_deps += inotify/libinotify.la
104endif
105
106if HAVE_FEN
107AM_CPPFLAGS += -DHAVE_FEN
108SUBDIRS += fen
109platform_libadd += fen/libfen.la
110platform_deps += fen/libfen.la
111endif
112
113if OS_WIN32
114SUBDIRS += win32
115platform_libadd += win32/libgiowin32.la
116platform_deps += win32/libgiowin32.la
117endif
118
119
120SUBDIRS += .
121
122if HAVE_FAM
123SUBDIRS += fam
124endif
125
126if OS_UNIX
127appinfo_sources += gdesktopappinfo.c gdesktopappinfo.h
128platform_libadd += xdgmime/libxdgmime.la
129platform_deps += xdgmime/libxdgmime.la
130unix_sources = \
131	gunixmount.c		\
132	gunixmount.h		\
133	gunixmounts.c 		\
134	gunixmounts.h 		\
135	gunixvolume.c 		\
136	gunixvolume.h 		\
137	gunixvolumemonitor.c 	\
138	gunixvolumemonitor.h 	\
139	gunixinputstream.c 	\
140	gunixoutputstream.c 	\
141	$(NULL)
142
143
144giounixincludedir=$(includedir)/gio-unix-2.0/gio
145giounixinclude_HEADERS = \
146	gdesktopappinfo.h	\
147	gunixmounts.h 		\
148	gunixinputstream.h 	\
149	gunixoutputstream.h 	\
150	$(NULL)
151endif
152
153if OS_WIN32
154appinfo_sources += gwin32appinfo.c gwin32appinfo.h
155platform_libadd += -lshlwapi
156win32_sources = \
157	gwin32mount.c \
158	gwin32mount.h \
159	gwin32volumemonitor.c \
160	gwin32volumemonitor.h \
161	$(NULL)
162
163endif
164
165SUBDIRS += tests
166
167libgio_2_0_la_SOURCES =		\
168	gappinfo.c 		\
169	gasynchelper.c 		\
170	gasynchelper.h 		\
171	gasyncresult.c 		\
172	gbufferedinputstream.c 	\
173	gbufferedoutputstream.c \
174	gcancellable.c 		\
175	gcontenttype.c 		\
176	gcontenttypeprivate.h 	\
177	gdatainputstream.c 	\
178	gdataoutputstream.c 	\
179	gdrive.c 		\
180	gdummyfile.h 		\
181	gdummyfile.c 		\
182	gemblem.h 		\
183	gemblem.c 		\
184	gemblemedicon.h		\
185	gemblemedicon.c		\
186	gfile.c 		\
187	gfileattribute.c 	\
188	gfileattribute-priv.h 	\
189	gfileenumerator.c 	\
190	gfileicon.c 		\
191	gfileinfo.c 		\
192	gfileinputstream.c 	\
193	gfilemonitor.c 		\
194	gfilenamecompleter.c 	\
195	gfileoutputstream.c 	\
196	gfilterinputstream.c 	\
197	gfilteroutputstream.c 	\
198	gicon.c 		\
199	ginputstream.c 		\
200	gioenums.h		\
201	gioerror.c 		\
202	giomodule.c 		\
203	giomodule-priv.h	\
204	gioscheduler.c 		\
205	gloadableicon.c 	\
206	gmount.c 		\
207	gmemoryinputstream.c 	\
208	gmemoryoutputstream.c 	\
209	gmountoperation.c 	\
210	gnativevolumemonitor.c 	\
211	gnativevolumemonitor.h 	\
212	goutputstream.c 	\
213	gpollfilemonitor.c 	\
214	gpollfilemonitor.h 	\
215	gseekable.c 		\
216	gsimpleasyncresult.c 	\
217	gthemedicon.c 		\
218	gunionvolumemonitor.c 	\
219	gunionvolumemonitor.h 	\
220	gvfs.c 			\
221	gvolume.c 		\
222	gvolumemonitor.c 	\
223	gmountprivate.h 	\
224	gioenumtypes.h		\
225	gioenumtypes.c		\
226	gioalias.h 		\
227	gioaliasdef.c		\
228	$(appinfo_sources) 	\
229	$(unix_sources) 	\
230	$(win32_sources) 	\
231	$(local_sources) 	\
232	$(marshal_sources) 	\
233	$(NULL)
234
235$(libgio_2_0_la_OBJECTS): $(marshal_sources)
236
237libgio_2_0_la_LIBADD = \
238	$(top_builddir)/glib/libglib-2.0.la 		\
239	$(top_builddir)/gobject/libgobject-2.0.la 	\
240	$(top_builddir)/gmodule/libgmodule-2.0.la 	\
241	$(platform_libadd) 				\
242	$(SELINUX_LIBS) 				\
243	$(GLIB_LIBS) 					\
244	$(XATTR_LIBS) 					\
245	$(NULL)
246
247if PLATFORM_WIN32
248no_undefined = -no-undefined
249endif
250
251if OS_WIN32_AND_DLL_COMPILATION
252export_symbols = -export-symbols gio.def
253gio_def = gio.def
254
255install-def-file:
256	$(INSTALL) gio.def $(DESTDIR)$(libdir)/gio-2.0.def
257
258uninstall-def-file:
259	-rm $(DESTDIR)$(libdir)/gio-2.0.def
260else
261install-def-file:
262uninstall-def-file:
263
264export_symbols = -export-symbols-regex '^g_.*'
265endif
266
267install-data-local: install-ms-lib install-def-file
268	$(mkinstalldirs) $(DESTDIR)$(GIO_MODULE_DIR)
269
270uninstall-local: uninstall-ms-lib uninstall-def-file
271
272libgio_2_0_la_LDFLAGS = \
273	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
274	-export-dynamic $(no_undefined) $(export_symbols)
275
276libgio_2_0_la_DEPENDENCIES = $(gio_def) $(platform_deps)
277
278gio_headers =			\
279	gappinfo.h 		\
280	gasyncresult.h 		\
281	gbufferedinputstream.h 	\
282	gbufferedoutputstream.h \
283	gcancellable.h 		\
284	gcontenttype.h 		\
285	gdatainputstream.h 	\
286	gdataoutputstream.h 	\
287	gdrive.h 		\
288	gemblem.h 		\
289	gemblemedicon.h		\
290	gfile.h 		\
291	gfileattribute.h 	\
292	gfileenumerator.h 	\
293	gfileicon.h 		\
294	gfileinfo.h 		\
295	gfileinputstream.h 	\
296	gfilemonitor.h 		\
297	gfilenamecompleter.h 	\
298	gfileoutputstream.h 	\
299	gfilterinputstream.h 	\
300	gfilteroutputstream.h 	\
301	gicon.h 		\
302	ginputstream.h 		\
303	gio.h			\
304	giotypes.h		\
305	gioenums.h		\
306	gioerror.h 		\
307	giomodule.h 		\
308	gioscheduler.h 		\
309	gloadableicon.h 	\
310	gmount.h 		\
311	gmemoryinputstream.h 	\
312	gmemoryoutputstream.h 	\
313	gmountoperation.h 	\
314	gnativevolumemonitor.h 	\
315	goutputstream.h 	\
316	gseekable.h 		\
317	gsimpleasyncresult.h 	\
318	gthemedicon.h 		\
319	gvfs.h 			\
320	gvolume.h 		\
321	gvolumemonitor.h 	\
322	$(NULL)
323
324gioincludedir=$(includedir)/glib-2.0/gio/
325gioinclude_HEADERS = 		\
326	$(gio_headers)		\
327	gioenumtypes.h
328
329# these sources (also mentioned above) are generated.
330BUILT_SOURCES = 		\
331	gio-marshal.h 		\
332	gio-marshal.c 		\
333	gioalias.h 		\
334	gioaliasdef.c		\
335	gioenumtypes.h		\
336	gioenumtypes.c		\
337	$(NULL)
338
339EXTRA_DIST += 			\
340	gio-marshal.list	\
341	gio.symbols		\
342	gioenumtypes.h.template	\
343	gioenumtypes.c.template	\
344	makefile.msc		\
345	makegioalias.pl		\
346	abicheck.sh		\
347	pltcheck.sh		\
348	$(NULL)
349
350CLEANFILES = 			\
351	$(marshal_sources)	\
352	$(NULL)
353
354gioenumtypes.h: $(gio_headers) gioenumtypes.h.template
355	( top_builddir=`cd $(top_builddir) && pwd`; \
356	  cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.h.template $(gio_headers) ) > \
357	    gioenumtypes.h.tmp && mv gioenumtypes.h.tmp gioenumtypes.h
358
359gioenumtypes.c: $(gio_headers) gioenumtypes.c.template
360	( top_builddir=`cd $(top_builddir) && pwd`; \
361	  cd $(srcdir) && $$top_builddir/gobject/glib-mkenums --template gioenumtypes.c.template $(gio_headers) ) > \
362	    gioenumtypes.c.tmp && mv gioenumtypes.c.tmp gioenumtypes.c
363
364gio-2.0.lib: libgio-2.0.la gio.def
365	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgio-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gio.def -out:$@
366