Makefile.am 9.22 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 99
	gdkapplaunchcontextprivate.h		\
	gdkdevicemanagerprivate.h		\
100
	gdkdeviceprivate.h			\
101 102 103 104 105 106 107 108 109
	gdkdisplaymanagerprivate.h		\
	gdkdisplayprivate.h			\
	gdkdndprivate.h				\
	gdkscreenprivate.h			\
	gdkinternals.h				\
	gdkintl.h				\
	gdkkeysprivate.h			\
	gdkvisualprivate.h			\
	gdkpoly-generic.h
110

111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
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				\
135
	gdkwindowimpl.c
136

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

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

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

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

Matthias Clasen's avatar
Matthias Clasen committed
157 158 159 160
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)

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

165
libgdk_win32_3_0_la_SOURCES = $(common_sources) gdkkeynames.c
166
libgdk_win32_3_0_la_LIBADD = win32/libgdk-win32.la $(GDK_DEP_LIBS)
167 168
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)
169

170 171
if HAVE_INTROSPECTION

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

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

186
if USE_X11
Matthias Clasen's avatar
Matthias Clasen committed
187 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
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		\
217 218
        x11/gdkx.h

Matthias Clasen's avatar
Matthias Clasen committed
219
GdkX11-3.0.gir: libgdk-3.0.la Gdk-3.0.gir Makefile
220
GdkX11_3_0_gir_SCANNERFLAGS = --warn-all --strip-prefix=Gdk
221
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
222
GdkX11_3_0_gir_LIBS = libgdk-3.0.la
223
GdkX11_3_0_gir_FILES = $(x11_introspection_files)
Matthias Clasen's avatar
Matthias Clasen committed
224
GdkX11_3_0_gir_CFLAGS = $(INCLUDES) -L$(top_builddir)/gdk
225
INTROSPECTION_GIRS += GdkX11-3.0.gir
226 227 228

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

229 230
endif # USE_X11

231
girdir = $(datadir)/gir-1.0
Javier Jardon's avatar
Javier Jardon committed
232
gir_DATA = $(INTROSPECTION_GIRS)
233

234
typelibsdir = $(libdir)/girepository-1.0
235
typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
236

Javier Jardon's avatar
Javier Jardon committed
237
CLEANFILES += $(gir_DATA) $(typelibs_DATA)
238 239

endif # HAVE_INTROSPECTION
240

241
if OS_WIN32
242
install-def-file: gdk.def
243
	mkdir -p $(DESTDIR)$(libdir)
244
	$(INSTALL) $(srcdir)/gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def
245
uninstall-def-file:
246
	-rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def
247
else
248 249
install-def-file:
uninstall-def-file:
250 251 252 253 254 255
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
256
	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
257 258

install-ms-lib:
259
	mkdir -p $(DESTDIR)$(libdir)
260 261 262 263 264 265 266 267 268
	$(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

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

Matthias Clasen's avatar
Matthias Clasen committed
274
TESTS_ENVIRONMENT = srcdir="$(srcdir)"
Matthias Clasen's avatar
Matthias Clasen committed
275
if OS_LINUX
276
TESTS = abicheck.sh
277 278
endif

279
lib_LTLIBRARIES = libgdk-3.0.la
280

281 282
MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
EXTRA_DIST += $(gdk_built_sources)
Matt Wilson's avatar
Matt Wilson committed
283
EXTRA_HEADERS =
284

285 286
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
Matthias Clasen's avatar
Matthias Clasen committed
287
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/libgdk-3.0.la
288 289
endif

290
#note: not gdkconfig.h
291 292
BUILT_SOURCES = \
	$(gdk_built_sources)			\
293 294 295
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
296
	@true
297 298
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.h.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
299
		$(gdk_public_h_sources) ) >> xgen-geth \
300
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
301 302
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
303 304
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
305
		$(gdk_public_h_sources) ) > xgen-getc \
306
	&& cp xgen-getc gdkenumtypes.c  \
307
	&& rm -f xgen-getc
308

309 310 311
# 
# Marshaller generation
#
312
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
Matthias Clasen's avatar
Matthias Clasen committed
313
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
314 315 316
	&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
	|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
317
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body > gdkmarshalers-c.tmp	\
318 319
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
320

321
gdkconfig.h: stamp-gc-h
322 323
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
324 325
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
326 327
	echo timestamp > stamp-gc-h

328 329 330
dist-hook: ../build/win32/vs9/gdk.vcproj

../build/win32/vs9/gdk.vcproj: ../build/win32/vs9/gdk.vcprojin
331
	for F in $(libgdk_win32_3_0_la_SOURCES); do \
332 333 334 335 336 337 338 339
		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

340 341
DISTCLEANFILES = gdkconfig.h stamp-gc-h

342
install-data-local: install-ms-lib install-def-file
Tor Lillqvist's avatar
Tor Lillqvist committed
343

344
uninstall-local: uninstall-ms-lib uninstall-def-file
345 346 347 348 349 350 351 352
	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
353

Elliot Lee's avatar
Elliot Lee committed
354 355 356 357 358 359
.PHONY: files

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

-include $(top_srcdir)/git.mk