Makefile.am 9.78 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
12
DIST_SUBDIRS = win32 x11 quartz broadway 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 38
	$(GTK_DEBUG_FLAGS) 		\
	$(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
LDADD = \
50
	$(GTK_LINK_FLAGS)						\
51
	-version-info $(LT_VERSION_INFO)		 		\
Owen Taylor's avatar
Owen Taylor committed
52 53 54
	-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 76
	gdkdnd.h				\
	gdkevents.h				\
	gdkinput.h				\
	gdkkeys.h				\
77
	gdkkeysyms.h				\
78
	gdkkeysyms-compat.h			\
79
	gdkmain.h				\
80 81
	gdkpango.h				\
	gdkpixbuf.h				\
82
	gdkprivate.h				\
83
	gdkproperty.h				\
84
	gdkrectangle.h				\
85
	gdkrgba.h				\
86
	gdkscreen.h				\
87
	gdkselection.h				\
88
	gdkspawn.h				\
89
	gdktestutils.h				\
90
	gdkthreads.h				\
91 92
	gdktypes.h				\
	gdkvisual.h				\
93
	gdkwindow.h
94

95 96 97
gdk_built_public_sources =			\
	gdkenumtypes.h

98 99 100 101
gdk_private_headers =				\
	gdkinternals.h				\
	gdkdeviceprivate.h			\
	gdkintl.h				\
Benjamin Otte's avatar
Benjamin Otte committed
102
	gdkpoly-generic.h
103

104
gdk_c_sources =                 \
105
	gdk.c			\
106
	gdkapplaunchcontext.c	\
107
	gdkcairo.c		\
108 109
	gdkcolor.c		\
	gdkcursor.c		\
110 111
	gdkdevice.c		\
	gdkdevicemanager.c	\
112
	gdkdisplay.c		\
113
	gdkdisplaymanager.c	\
114
	gdkdnd.c		\
115 116
	gdkevents.c     	\
	gdkglobals.c		\
117 118
	gdkkeys.c		\
	gdkkeyuni.c		\
119
	gdkoffscreenwindow.c	\
120
	gdkpango.c		\
Owen Taylor's avatar
Owen Taylor committed
121
	gdkpixbuf-drawable.c	\
122
	gdkrectangle.c		\
123
	gdkrgba.c		\
124
	gdkscreen.c		\
125 126
	gdkselection.c		\
	gdkvisual.c		\
127 128
	gdkwindow.c		\
	gdkwindowimpl.c
129

130 131 132 133
gdk_built_sources =				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
134
	$(gdk_built_public_sources)
135

136
#
137
# setup GDK sources and their dependencies
138
#
139

140
gdkincludedir = $(includedir)/gtk-3.0/gdk
141
gdkinclude_HEADERS = $(gdk_public_h_sources) $(gdk_built_public_sources)
142

Matthias Clasen's avatar
Matthias Clasen committed
143 144 145
common_sources = 		\
	$(gdk_private_headers)	\
	$(gdk_c_sources)	\
146
	gdkenumtypes.c		\
147
	gdkmarshalers.c		\
148
	gdkmarshalers.h
149

150 151 152 153
libgdk_broadway_3_0_la_SOURCES = $(common_sources)
libgdk_broadway_3_0_la_LIBADD = broadway/libgdk-broadway.la $(GDK_DEP_LIBS)
libgdk_broadway_3_0_la_LDFLAGS = $(LDADD)

154
libgdk_x11_3_0_la_SOURCES = $(common_sources)
155
libgdk_x11_3_0_la_LIBADD = x11/libgdk-x11.la $(GDK_DEP_LIBS)
156
libgdk_x11_3_0_la_LDFLAGS = $(LDADD)
157

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

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

167 168
if HAVE_INTROSPECTION

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

175
Gdk-3.0.gir: $(gdktargetlib) Makefile
176
Gdk_3_0_gir_SCANNERFLAGS = --warn-all
177
Gdk_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 cairo-1.0
178
Gdk_3_0_gir_LIBS = $(gdktargetlib)
179
Gdk_3_0_gir_FILES = $(introspection_files)
180 181
Gdk_3_0_gir_CFLAGS = $(INCLUDES)
INTROSPECTION_GIRS += Gdk-3.0.gir
182

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

Colin Walters's avatar
Colin Walters committed
220
GdkX11-3.0.gir: $(gdktargetlib) Gdk-3.0.gir Makefile
221
GdkX11_3_0_gir_SCANNERFLAGS = --warn-all --strip-prefix=Gdk
222
GdkX11_3_0_gir_INCLUDES = Gio-2.0 Gdk-3.0 GdkPixbuf-2.0 Pango-1.0 xlib-2.0
223
GdkX11_3_0_gir_LIBS = $(gdktargetlib)
224
GdkX11_3_0_gir_FILES = $(x11_introspection_files)
Matthias Clasen's avatar
Matthias Clasen committed
225
GdkX11_3_0_gir_CFLAGS = $(INCLUDES) -L$(top_builddir)/gdk
226
INTROSPECTION_GIRS += GdkX11-3.0.gir
227 228 229

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

230 231
endif # USE_X11

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

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

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

endif # HAVE_INTROSPECTION
241

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

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

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

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

Tor Lillqvist's avatar
Tor Lillqvist committed
280

281
lib_LTLIBRARIES = $(gdktargetlib)
282

283
EXTRA_LTLIBRARIES = libgdk-broadway-3.0.la libgdk-x11-3.0.la libgdk-win32-3.0.la libgdk-quartz-3.0.la
284

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

#
# Rule to install gdkconfig.h header file
#
292
configexecincludedir = $(libdir)/gtk-3.0/include
293
#configexecinclude_DATA = gdkconfig.h
294

295
install-exec-local: gdkconfig.h
296 297 298 299
	$(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
300

301 302 303 304 305
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

306
#note: not gdkconfig.h
307 308
BUILT_SOURCES = \
	$(gdk_built_sources)			\
309 310 311
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
312
	@true
313 314
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.h.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.h.template \
315
		$(gdk_public_h_sources) ) >> xgen-geth \
316
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
317 318
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
319 320
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template
	( cd $(srcdir) && $(GLIB_MKENUMS) --template gdkenumtypes.c.template \
321
		$(gdk_public_h_sources) ) > xgen-getc \
322
	&& cp xgen-getc gdkenumtypes.c  \
323
	&& rm -f xgen-getc
324

325 326 327
# 
# Marshaller generation
#
328
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
Matthias Clasen's avatar
Matthias Clasen committed
329
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
330 331 332
	&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
	|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
333
	$(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body > gdkmarshalers-c.tmp	\
334 335
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
336

337
gdkconfig.h: stamp-gc-h
338 339
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
340 341
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
342 343
	echo timestamp > stamp-gc-h

344 345 346
dist-hook: ../build/win32/vs9/gdk.vcproj

../build/win32/vs9/gdk.vcproj: ../build/win32/vs9/gdk.vcprojin
347
	for F in $(libgdk_win32_3_0_la_SOURCES); do \
348 349 350 351 352 353 354 355
		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

356 357
DISTCLEANFILES = gdkconfig.h stamp-gc-h

358
install-data-local: install-ms-lib install-def-file
Tor Lillqvist's avatar
Tor Lillqvist committed
359

360
uninstall-local: uninstall-ms-lib uninstall-def-file
361 362 363 364 365 366 367 368
	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
369

Elliot Lee's avatar
Elliot Lee committed
370 371 372 373 374 375
.PHONY: files

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

-include $(top_srcdir)/git.mk