Makefile.am 9.4 KB
Newer Older
1
## Makefile.am for gtk+/gdk
2
include $(top_srcdir)/Makefile.decl
3
-include $(INTROSPECTION_MAKEFILE)
Johan Dahlin's avatar
Johan Dahlin committed
4 5
INTROSPECTION_GIRS =
INTROSPECTION_SCANNER_ARGS = \
6
   --add-include-path=../gdk
Johan Dahlin's avatar
Johan Dahlin committed
7 8
INTROSPECTION_COMPILER_ARGS = \
   --includedir=$(srcdir) \
9
   --includedir=.
Elliot Lee's avatar
Elliot Lee committed
10

11
SUBDIRS = $(gdktarget) . tests
Benjamin Otte's avatar
Benjamin Otte committed
12
DIST_SUBDIRS = win32 x11 quartz tests
Tor Lillqvist's avatar
Tor Lillqvist committed
13

14 15
CLEANFILES =

16
EXTRA_DIST += 			\
17 18 19
	keynames.txt		\
	keyname-table.h		\
	gen-keyname-table.pl	\
20
	gdkconfig.h.win32	\
21
	gdkkeysyms-update.pl	\
22
	gdk.def			\
23
	gdkmarshalers.list	\
24
	gdkwindowimpl.h		\
Tim Janik's avatar
Tim Janik committed
25
	makeenums.pl		\
26 27
	makefile.msc		\
	gdk.symbols		\
28 29
	gdkenumtypes.c.template	\
	gdkenumtypes.h.template	\
30
	abicheck.sh
31

32
INCLUDES = 				\
Owen Taylor's avatar
Owen Taylor committed
33
	-DG_LOG_DOMAIN=\"Gdk\"		\
Manish Singh's avatar
Manish Singh committed
34
	-DGDK_COMPILATION		\
Owen Taylor's avatar
Owen Taylor committed
35 36
	-I$(top_srcdir)			\
	-I$(top_builddir)/gdk		\
37
	$(GTK_DEBUG_FLAGS)		\
38
	$(GDK_DEP_CFLAGS)
39

40
gtarget=$(gdktarget)
Elliot Lee's avatar
Elliot Lee committed
41

Tor Lillqvist's avatar
Tor Lillqvist committed
42 43 44 45
if PLATFORM_WIN32
no_undefined = -no-undefined
endif

46
# libtool stuff: set version and export symbols for resolving
47 48
# since automake doesn't support conditionalized libsomething_la_LDFLAGS
# we use the general approach here
49 50 51 52 53 54
LDADD = 					\
	$(GTK_LINK_FLAGS)			\
	-version-info $(LT_VERSION_INFO)	\
	-export-dynamic 			\
	-rpath $(libdir) 			\
	$(no_undefined)				\
55 56
	$(LIBTOOL_EXPORT_OPTIONS)

57 58 59
#
# setup source file variables
#
Owen Taylor's avatar
Started  
Owen Taylor committed
60
#
61
# GDK header files for public installation (non-generated)
Owen Taylor's avatar
Started  
Owen Taylor committed
62
#
63
gdk_public_h_sources = 				\
64
	gdk.h					\
65
	gdkapplaunchcontext.h			\
66
	gdkcairo.h				\
67 68
	gdkcolor.h				\
	gdkcursor.h				\
69 70
	gdkdevice.h				\
	gdkdevicemanager.h			\
71
	gdkdisplay.h				\
72
	gdkdisplaymanager.h			\
73 74 75
	gdkdnd.h				\
	gdkevents.h				\
	gdkkeys.h				\
76
	gdkkeysyms.h				\
77
	gdkkeysyms-compat.h			\
78
	gdkmain.h				\
79 80
	gdkpango.h				\
	gdkpixbuf.h				\
81
	gdkprivate.h				\
82
	gdkproperty.h				\
83
	gdkrectangle.h				\
84
	gdkrgba.h				\
85
	gdkscreen.h				\
86
	gdkselection.h				\
87
	gdktestutils.h				\
88
	gdkthreads.h				\
89 90
	gdktypes.h				\
	gdkvisual.h				\
91
	gdkwindow.h
92

93
gdk_built_public_sources = 			\
Matthias Clasen's avatar
Matthias Clasen committed
94
	gdkconfig.h				\
95 96
	gdkenumtypes.h

97
gdk_private_headers = 				\
98
	gdkapplaunchcontextprivate.h		\
99
	gdkcursorprivate.h			\
100
	gdkdevicemanagerprivate.h		\
101
	gdkdeviceprivate.h			\
102 103 104 105 106 107 108 109 110
	gdkdisplaymanagerprivate.h		\
	gdkdisplayprivate.h			\
	gdkdndprivate.h				\
	gdkscreenprivate.h			\
	gdkinternals.h				\
	gdkintl.h				\
	gdkkeysprivate.h			\
	gdkvisualprivate.h			\
	gdkpoly-generic.h
111

112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
gdk_c_sources = 				\
	gdk.c					\
	gdkapplaunchcontext.c			\
	gdkcairo.c				\
	gdkcolor.c				\
	gdkcursor.c				\
	gdkdevice.c				\
	gdkdevicemanager.c			\
	gdkdisplay.c				\
	gdkdisplaymanager.c			\
	gdkdnd.c				\
	gdkevents.c     			\
	gdkglobals.c				\
	gdkkeys.c				\
	gdkkeyuni.c				\
	gdkoffscreenwindow.c			\
	gdkpango.c				\
	gdkpixbuf-drawable.c			\
	gdkrectangle.c				\
	gdkrgba.c				\
	gdkscreen.c				\
	gdkselection.c				\
	gdkvisual.c				\
	gdkwindow.c				\
136
	gdkwindowimpl.c
137

138
gdk_built_sources = 				\
139 140 141
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
142
	$(gdk_built_public_sources)
143

144
#
145
# setup GDK sources and their dependencies
146
#
147

148
gdkincludedir = $(includedir)/gtk-3.0/gdk
149
gdkinclude_HEADERS = $(gdk_public_h_sources) $(gdk_built_public_sources)
150

Matthias Clasen's avatar
Matthias Clasen committed
151 152 153
common_sources = 		\
	$(gdk_private_headers)	\
	$(gdk_c_sources)	\
154
	gdkenumtypes.c		\
155
	gdkmarshalers.c		\
156
	gdkmarshalers.h
157

Matthias Clasen's avatar
Matthias Clasen committed
158 159 160 161
libgdk_3_0_la_SOURCES = $(common_sources)
libgdk_3_0_la_LIBADD = x11/libgdk-x11.la $(GDK_DEP_LIBS)
libgdk_3_0_la_LDFLAGS = $(LDADD)

162
libgdk_quartz_3_0_la_SOURCES = $(common_sources) gdkkeynames.c
163
libgdk_quartz_3_0_la_LIBADD = quartz/libgdk-quartz.la $(GDK_DEP_LIBS)
164
libgdk_quartz_3_0_la_LDFLAGS = $(LDADD)
Anders Carlsson's avatar
Anders Carlsson committed
165

166
libgdk_win32_3_0_la_SOURCES = $(common_sources) gdkkeynames.c
167
libgdk_win32_3_0_la_LIBADD = win32/libgdk-win32.la $(GDK_DEP_LIBS)
168 169
libgdk_win32_3_0_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o gdk.def
libgdk_win32_3_0_la_LDFLAGS = -Wl,win32/rc/gdk-win32-res.o -export-symbols $(srcdir)/gdk.def $(LDADD)
170

171 172
if HAVE_INTROSPECTION

Matthias Clasen's avatar
Matthias Clasen committed
173
introspection_files = 		\
174
	$(filter-out gdkkeysyms-compat.h, $(gdk_public_h_sources))	\
Matthias Clasen's avatar
Matthias Clasen committed
175 176
	$(gdk_c_sources)	\
        gdkenumtypes.c		\
177
        gdkenumtypes.h
178

Matthias Clasen's avatar
Matthias Clasen committed
179
Gdk-3.0.gir: libgdk-3.0.la Makefile
180
Gdk_3_0_gir_SCANNERFLAGS = --warn-all
181
Gdk_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 cairo-1.0
Matthias Clasen's avatar
Matthias Clasen committed
182
Gdk_3_0_gir_LIBS = libgdk-3.0.la
183
Gdk_3_0_gir_FILES = $(introspection_files)
184 185
Gdk_3_0_gir_CFLAGS = $(INCLUDES)
INTROSPECTION_GIRS += Gdk-3.0.gir
186

187
if USE_X11
Matthias Clasen's avatar
Matthias Clasen committed
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
x11_introspection_files = 		\
	x11/checksettings.c		\
	x11/gdkapplaunchcontext-x11.c	\
	x11/gdkasync.c			\
	x11/gdkcursor-x11.c		\
	x11/gdkdevice-core.c		\
	x11/gdkdevicemanager-core.c	\
	x11/gdkdevicemanager-x11.c	\
	x11/gdkdevicemanager-xi2.c	\
	x11/gdkdevicemanager-xi.c	\
	x11/gdkdevice-xi2.c		\
	x11/gdkdevice-xi.c		\
	x11/gdkdisplay-x11.c		\
	x11/gdkdnd-x11.c		\
	x11/gdkeventsource.c		\
	x11/gdkeventtranslator.c	\
	x11/gdkgeometry-x11.c		\
	x11/gdkkeys-x11.c		\
	x11/gdkmain-x11.c		\
	x11/gdkproperty-x11.c		\
	x11/gdkscreen-x11.c		\
	x11/gdkselection-x11.c		\
	x11/gdksettings.c		\
	x11/gdktestutils-x11.c		\
	x11/gdkvisual-x11.c		\
	x11/gdkwindow-x11.c		\
	x11/gdkxftdefaults.c		\
	x11/gdkxid.c			\
	x11/xsettings-client.c		\
	x11/xsettings-common.c		\
218
        x11/gdkx.h			\
219
	x11/gdkx11cursor.h		\
220
	x11/gdkx11display.h		\
221
	x11/gdkx11property.h		\
222
	x11/gdkx11screen.h		\
223
	x11/gdkx11selection.h		\
224
	x11/gdkx11visual.h		\
225
	x11/gdkx11window.h
226

Matthias Clasen's avatar
Matthias Clasen committed
227
GdkX11-3.0.gir: libgdk-3.0.la Gdk-3.0.gir Makefile
228
GdkX11_3_0_gir_SCANNERFLAGS = --warn-all --strip-prefix=Gdk
229
GdkX11_3_0_gir_INCLUDES = Gio-2.0 Gdk-3.0 GdkPixbuf-2.0 Pango-1.0 xlib-2.0
Matthias Clasen's avatar
Matthias Clasen committed
230
GdkX11_3_0_gir_LIBS = libgdk-3.0.la
231
GdkX11_3_0_gir_FILES = $(x11_introspection_files)
Matthias Clasen's avatar
Matthias Clasen committed
232
GdkX11_3_0_gir_CFLAGS = $(INCLUDES) -L$(top_builddir)/gdk
233
INTROSPECTION_GIRS += GdkX11-3.0.gir
234 235 236

introspection_files += $(filter-out x11/gdkx.h, $(x11_introspection_files))

237 238
endif # USE_X11

239
girdir = $(datadir)/gir-1.0
Javier Jardon's avatar
Javier Jardon committed
240
gir_DATA = $(INTROSPECTION_GIRS)
241

242
typelibsdir = $(libdir)/girepository-1.0
243
typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
244

Javier Jardon's avatar
Javier Jardon committed
245
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
246 247

endif # HAVE_INTROSPECTION
248

249
if OS_WIN32
250
install-def-file: gdk.def
251
	mkdir -p $(DESTDIR)$(libdir)
252
	$(INSTALL) $(srcdir)/gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def
253
uninstall-def-file:
254
	-rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def
255
else
256 257
install-def-file:
uninstall-def-file:
258 259 260 261 262 263
endif

if MS_LIB_AVAILABLE
noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib

gdk-win32-$(GTK_API_VERSION).lib: libgdk-win32-$(GTK_API_VERSION).la gdk.def
264
	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
265 266

install-ms-lib:
267
	mkdir -p $(DESTDIR)$(libdir)
268 269 270 271 272 273 274 275 276
	$(INSTALL) gdk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)

uninstall-ms-lib:
	-rm $(DESTDIR)$(libdir)/gdk-win32-$(GTK_API_VERSION).lib
else
install-ms-lib:
uninstall-ms-lib:
endif

277 278
# This places the generated .def file in srcdir, since it is expected to be there.
# (The one from a tarball is)
279
gdk.def: gdk.symbols
280
	(echo -e EXPORTS; $(CPP) -P -DGDK_WINDOWING_WIN32 - <$(srcdir)/gdk.symbols | sed -e '/^$$/d' -e 's/^/	/' -e 's/G_GNUC_[^ ]*//g') > $(srcdir)/gdk.def
281

Matthias Clasen's avatar
Matthias Clasen committed
282
TESTS_ENVIRONMENT = srcdir="$(srcdir)"
Matthias Clasen's avatar
Matthias Clasen committed
283
if OS_LINUX
284
TESTS = abicheck.sh
285 286
endif

287
lib_LTLIBRARIES = libgdk-3.0.la
288

289 290
MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
EXTRA_DIST += $(gdk_built_sources)
Matt Wilson's avatar
Matt Wilson committed
291
EXTRA_HEADERS =
292

293 294
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
Matthias Clasen's avatar
Matthias Clasen committed
295
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/libgdk-3.0.la
296 297
endif

298
#note: not gdkconfig.h
299 300
BUILT_SOURCES = \
	$(gdk_built_sources)			\
301 302 303
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
304
	@true
305 306
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.h.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
307
		$(gdk_public_h_sources) ) >> xgen-geth \
308
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
309 310
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
311 312
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
313
		$(gdk_public_h_sources) ) > xgen-getc \
314
	&& cp xgen-getc gdkenumtypes.c  \
315
	&& rm -f xgen-getc
316

317 318 319
# 
# Marshaller generation
#
320
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
Matthias Clasen's avatar
Matthias Clasen committed
321
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
322 323 324
	&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
	|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
325
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body > gdkmarshalers-c.tmp	\
326 327
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
328

329
gdkconfig.h: stamp-gc-h
330 331
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
332 333
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
334 335
	echo timestamp > stamp-gc-h

336 337 338
dist-hook: ../build/win32/vs9/gdk.vcproj

../build/win32/vs9/gdk.vcproj: ../build/win32/vs9/gdk.vcprojin
339
	for F in $(libgdk_win32_3_0_la_SOURCES); do \
340 341 342 343 344 345 346 347
		case $$F in \
		*.c) echo '   <File RelativePath="..\..\..\gdk\'$$F'" />' \
		     ;; \
		esac; \
	done >libgdk.sourcefiles
	$(CPP) -P - <$(top_srcdir)/build/win32/vs9/gdk.vcprojin >$@
	rm libgdk.sourcefiles

348 349
DISTCLEANFILES = gdkconfig.h stamp-gc-h

350
install-data-local: install-ms-lib install-def-file
Tor Lillqvist's avatar
Tor Lillqvist committed
351

352
uninstall-local: uninstall-ms-lib uninstall-def-file
353 354 355 356 357 358 359 360
	rm -f $(DESTDIR)$(configexecincludedir)/gdkconfig.h

# if srcdir!=builddir, clean out maintainer-clean files from builddir
# this allows dist to pass.
distclean-local:
	if test $(srcdir) != .; then \
	  rm -f $(MAINTAINERCLEANFILES); \
	fi
Tor Lillqvist's avatar
Tor Lillqvist committed
361

Elliot Lee's avatar
Elliot Lee committed
362 363 364 365 366 367
.PHONY: files

files:
	@files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
	  echo $$p; \
	done
368 369

-include $(top_srcdir)/git.mk