Makefile.am 9.77 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
	gdkmedialib.h		\
25
	gdkwindowimpl.h		\
Tim Janik's avatar
Tim Janik committed
26
	makeenums.pl		\
27 28
	makefile.msc		\
	gdk.symbols		\
29 30
	gdkenumtypes.c.template	\
	gdkenumtypes.h.template	\
31
	abicheck.sh
32

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

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

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

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

58 59 60 61 62 63
if USE_MEDIALIB
medialib_sources =  \
    gdkmedialib.c
else
medialib_sources =
endif
64 65 66 67

#
# setup source file variables
#
Owen Taylor's avatar
Started  
Owen Taylor committed
68
#
69
# GDK header files for public installation (non-generated)
Owen Taylor's avatar
Started  
Owen Taylor committed
70
#
71
gdk_public_h_sources =				\
72
	gdk.h					\
73
	gdkapplaunchcontext.h			\
74
	gdkcairo.h				\
75 76
	gdkcolor.h				\
	gdkcursor.h				\
77 78
	gdkdevice.h				\
	gdkdevicemanager.h			\
79
	gdkdisplay.h				\
80
	gdkdisplaymanager.h			\
81 82 83 84 85
	gdkdnd.h				\
	gdkdrawable.h				\
	gdkevents.h				\
	gdkinput.h				\
	gdkkeys.h				\
86
	gdkkeysyms.h				\
87
	gdkkeysyms-compat.h			\
88
	gdkmain.h				\
89 90
	gdkpango.h				\
	gdkpixbuf.h				\
91
	gdkprivate.h				\
92
	gdkproperty.h				\
93
	gdkrectangle.h				\
94
	gdkrgba.h				\
95
	gdkscreen.h				\
96
	gdkselection.h				\
97
	gdkspawn.h				\
98
	gdktestutils.h				\
99
	gdkthreads.h				\
100 101
	gdktypes.h				\
	gdkvisual.h				\
102
	gdkwindow.h
103

104 105 106
gdk_built_public_sources =			\
	gdkenumtypes.h

107 108 109 110
gdk_private_headers =				\
	gdkinternals.h				\
	gdkdeviceprivate.h			\
	gdkintl.h				\
Benjamin Otte's avatar
Benjamin Otte committed
111
	gdkpoly-generic.h
112

113
gdk_c_sources =                 \
114
	$(medialib_sources)     \
115
	gdk.c			\
116
	gdkapplaunchcontext.c	\
117
	gdkcairo.c		\
118 119
	gdkcolor.c		\
	gdkcursor.c		\
120 121
	gdkdevice.c		\
	gdkdevicemanager.c	\
122
	gdkdisplay.c		\
123
	gdkdisplaymanager.c	\
124
	gdkdnd.c		\
125 126 127
	gdkdraw.c		\
	gdkevents.c     	\
	gdkglobals.c		\
128 129
	gdkkeys.c		\
	gdkkeyuni.c		\
130
	gdkoffscreenwindow.c	\
131
	gdkpango.c		\
Owen Taylor's avatar
Owen Taylor committed
132
	gdkpixbuf-drawable.c	\
133
	gdkrectangle.c		\
134
	gdkrgba.c		\
135
	gdkscreen.c		\
136 137
	gdkselection.c		\
	gdkvisual.c		\
138 139
	gdkwindow.c		\
	gdkwindowimpl.c
140

141 142 143 144
gdk_built_sources =				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
145
	$(gdk_built_public_sources)
146

147
#
148
# setup GDK sources and their dependencies
149
#
150

151
gdkincludedir = $(includedir)/gtk-3.0/gdk
152
gdkinclude_HEADERS = $(gdk_public_h_sources) $(gdk_built_public_sources)
153

Matthias Clasen's avatar
Matthias Clasen committed
154 155 156
common_sources = 		\
	$(gdk_private_headers)	\
	$(gdk_c_sources)	\
157
	gdkenumtypes.c		\
158
	gdkmarshalers.c		\
159
	gdkmarshalers.h
160

161
libgdk_x11_3_0_la_SOURCES = $(common_sources)
162
libgdk_x11_3_0_la_LIBADD = x11/libgdk-x11.la $(GDK_DEP_LIBS)
163
libgdk_x11_3_0_la_LDFLAGS = $(LDADD)
164

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

169
libgdk_win32_3_0_la_SOURCES = $(common_sources) gdkkeynames.c
170
libgdk_win32_3_0_la_LIBADD = win32/libgdk-win32.la $(GDK_DEP_LIBS)
171 172
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)
173

174 175
if HAVE_INTROSPECTION

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

182
Gdk-3.0.gir: $(gdktargetlib) Makefile
183
Gdk_3_0_gir_SCANNERFLAGS = --warn-all
184
Gdk_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 cairo-1.0
185
Gdk_3_0_gir_LIBS = $(gdktargetlib)
186
Gdk_3_0_gir_FILES = $(introspection_files)
187 188
Gdk_3_0_gir_CFLAGS = $(INCLUDES)
INTROSPECTION_GIRS += Gdk-3.0.gir
189

190
if USE_X11
Matthias Clasen's avatar
Matthias Clasen committed
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 218 219 220 221 222 223 224 225
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/gdkdrawable-x11.c		\
	x11/gdkeventsource.c		\
	x11/gdkeventtranslator.c	\
	x11/gdkgeometry-x11.c		\
	x11/gdkglobals-x11.c		\
	x11/gdkim-x11.c			\
	x11/gdkinput.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/gdkspawn-x11.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		\
226 227
        x11/gdkx.h

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

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

238 239
endif # USE_X11

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

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

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

endif # HAVE_INTROSPECTION
249

250
if OS_WIN32
251
install-def-file: gdk.def
252
	mkdir -p $(DESTDIR)$(libdir)
253
	$(INSTALL) $(srcdir)/gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def
254
uninstall-def-file:
255
	-rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def
256
else
257 258
install-def-file:
uninstall-def-file:
259 260 261 262 263 264
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
265
	lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@
266 267

install-ms-lib:
268
	mkdir -p $(DESTDIR)$(libdir)
269 270 271 272 273 274 275 276 277
	$(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

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

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

Tor Lillqvist's avatar
Tor Lillqvist committed
288

289
lib_LTLIBRARIES = $(gdktargetlib)
290

Benjamin Otte's avatar
Benjamin Otte committed
291
EXTRA_LTLIBRARIES = libgdk-x11-3.0.la libgdk-win32-3.0.la libgdk-quartz-3.0.la
292

293 294
MAINTAINERCLEANFILES = $(gdk_built_sources) stamp-gdkenumtypes.h
EXTRA_DIST += $(gdk_built_sources)
Matt Wilson's avatar
Matt Wilson committed
295
EXTRA_HEADERS =
296 297 298 299

#
# Rule to install gdkconfig.h header file
#
300
configexecincludedir = $(libdir)/gtk-3.0/include
301
#configexecinclude_DATA = gdkconfig.h
302

303
install-exec-local: gdkconfig.h
304 305 306 307
	$(mkinstalldirs) $(DESTDIR)$(configexecincludedir)
	file=$(DESTDIR)$(configexecincludedir)/gdkconfig.h; \
	if test -r $$file && cmp -s gdkconfig.h $$file; then :; \
	else $(INSTALL_DATA) gdkconfig.h $$file; fi
308

309 310 311 312 313
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

314
#note: not gdkconfig.h
315 316
BUILT_SOURCES = \
	$(gdk_built_sources)			\
317 318 319
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
320
	@true
321 322
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.h.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
323
		$(gdk_public_h_sources) ) >> xgen-geth \
324
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
325 326
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
327 328
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
329
		$(gdk_public_h_sources) ) > xgen-getc \
330
	&& cp xgen-getc gdkenumtypes.c  \
331
	&& rm -f xgen-getc
332

333 334 335
# 
# Marshaller generation
#
336
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
Matthias Clasen's avatar
Matthias Clasen committed
337
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
338 339 340
	&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
	|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
341
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body > gdkmarshalers-c.tmp	\
342 343
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
344

345
gdkconfig.h: stamp-gc-h
346 347
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
348 349
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
350 351
	echo timestamp > stamp-gc-h

352 353 354
dist-hook: ../build/win32/vs9/gdk.vcproj

../build/win32/vs9/gdk.vcproj: ../build/win32/vs9/gdk.vcprojin
355
	for F in $(libgdk_win32_3_0_la_SOURCES); do \
356 357 358 359 360 361 362 363
		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

364 365
DISTCLEANFILES = gdkconfig.h stamp-gc-h

366
install-data-local: install-ms-lib install-def-file
Tor Lillqvist's avatar
Tor Lillqvist committed
367

368
uninstall-local: uninstall-ms-lib uninstall-def-file
369 370 371 372 373 374 375 376
	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
377

Elliot Lee's avatar
Elliot Lee committed
378 379 380 381 382 383
.PHONY: files

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

-include $(top_srcdir)/git.mk