Makefile.am 7.79 KB
Newer Older
1
## Makefile.am for gtk+/gdk
Elliot Lee's avatar
Elliot Lee committed
2

3
SUBDIRS = $(gdktarget)
4
DIST_SUBDIRS = linux-fb win32 x11
Tor Lillqvist's avatar
Tor Lillqvist committed
5

6
7
8
EXTRA_DIST =			\
	gdkconfig.h.win32 	\
	gdk.def 		\
9
	gdkmarshalers.list	\
Tim Janik's avatar
Tim Janik committed
10
	makeenums.pl		\
11
12
13
14
	makefile.msc		\
	gdk.symbols		\
	makegdkalias.pl		\
	abicheck.sh
15

16
INCLUDES =                              \
Owen Taylor's avatar
Owen Taylor committed
17
	-DG_LOG_DOMAIN=\"Gdk\"		\
Manish Singh's avatar
Manish Singh committed
18
	-DGDK_COMPILATION		\
Owen Taylor's avatar
Owen Taylor committed
19
20
21
	-I$(top_srcdir)			\
	-I$(top_builddir)/gdk		\
	-I$(top_srcdir)/gdk-pixbuf 	\
22
23
	-DG_DISABLE_DEPRECATED		\
	-DGDK_PIXBUF_DISABLE_DEPRECATED	\
Manish Singh's avatar
Manish Singh committed
24
	-DGDK_DISABLE_DEPRECATED	\
25
26
	$(GTK_DEBUG_FLAGS) 		\
	$(GDK_DEP_CFLAGS)
27

28
gtarget=$(gdktarget)
Elliot Lee's avatar
Elliot Lee committed
29

Tor Lillqvist's avatar
Tor Lillqvist committed
30
31
32
33
if PLATFORM_WIN32
no_undefined = -no-undefined
endif

34
# libtool stuff: set version and export symbols for resolving
35
36
# since automake doesn't support conditionalized libsomething_la_LDFLAGS
# we use the general approach here
37
38
LDADD = \
	-version-info $(LT_VERSION_INFO)		 		\
Owen Taylor's avatar
Owen Taylor committed
39
40
41
	-export-dynamic 						\
	-rpath $(libdir) 						\
	$(no_undefined)							\
42
43
	$(LIBTOOL_EXPORT_OPTIONS)

44
45
46
47

#
# setup source file variables
#
Owen Taylor's avatar
Started    
Owen Taylor committed
48
#
49
# GDK header files for public installation (non-generated)
Owen Taylor's avatar
Started    
Owen Taylor committed
50
#
51
gdk_public_h_sources =				\
52
53
54
	gdk.h					\
	gdkcolor.h				\
	gdkcursor.h				\
55
	gdkdisplay.h				\
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
	gdkdnd.h				\
	gdkdrawable.h				\
	gdkevents.h				\
	gdkfont.h				\
	gdkgc.h					\
	gdkkeysyms.h				\
	gdki18n.h				\
	gdkimage.h				\
	gdkinput.h				\
	gdkkeys.h				\
	gdkdisplaymanager.h			\
	gdkpango.h				\
	gdkpixbuf.h				\
	gdkpixmap.h				\
	gdkproperty.h				\
	gdkregion.h				\
	gdkrgb.h				\
73
	gdkscreen.h				\
74
	gdkselection.h				\
75
	gdkspawn.h				\
76
77
	gdktypes.h				\
	gdkvisual.h				\
78
	gdkwindow.h
79

80
gdk_headers =                     \
81
82
	$(gdk_public_h_sources)   \
	gdkenumtypes.h		  \
83
84
	gdkprivate.h		  \
	gdkalias.h
85

86
gdk_c_sources =                 \
87
88
89
	gdk.c			\
	gdkcolor.c		\
	gdkcursor.c		\
90
	gdkdisplay.c		\
91
	gdkdnd.c		\
92
93
94
95
96
	gdkdraw.c		\
	gdkevents.c     	\
	gdkfont.c		\
	gdkgc.c			\
	gdkglobals.c		\
Havoc Pennington's avatar
Havoc Pennington committed
97
	gdkkeys.c		\
98
99
100
	gdkkeyuni.c		\
	gdkimage.c		\
	gdkinternals.h  	\
101
102
	gdkintl.h		\
	gdkdisplaymanager.c	\
103
	gdkpango.c		\
Owen Taylor's avatar
Owen Taylor committed
104
105
	gdkpixbuf-drawable.c	\
	gdkpixbuf-render.c	\
106
	gdkpixmap.c		\
107
108
	gdkpoly-generic.h	\
	gdkpolyreg-generic.c	\
109
110
	gdkrgb.c		\
	gdkrectangle.c		\
111
112
	gdkregion-generic.c	\
	gdkregion-generic.h	\
113
	gdkscreen.c		\
114
115
	gdkselection.c		\
	gdkvisual.c		\
116
	gdkwindow.c
117
118

#
119
# setup GDK sources and their dependencies
120
#
121

122
123
gdkincludedir = $(includedir)/gtk-2.0/gdk
gdkinclude_HEADERS = $(gdk_headers)
124

125
# gdkmarshalers.c is not here becuase it is currently an empty file
126
common_sources =                \
127
128
	$(gdk_c_sources)	\
	gdkenumtypes.c		\
129
	gdkmarshalers.h
130
131

libgdk_x11_2_0_la_SOURCES = $(common_sources)
132
133
134
135
libgdk_x11_2_0_la_LIBADD = x11/libgdk-x11.la $(GDK_DEP_LIBS) \
  $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la
libgdk_x11_2_0_la_LDFLAGS = $(LDADD)

136
libgdk_linux_fb_2_0_la_SOURCES = $(common_sources) gdkkeynames.c
137
138
139
libgdk_linux_fb_2_0_la_LIBADD = linux-fb/libgdk-linux-fb.la $(GDK_DEP_LIBS) \
  $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la
libgdk_linux_fb_2_0_la_LDFLAGS = $(LDADD)
Tor Lillqvist's avatar
Tor Lillqvist committed
140

141
142
143
libgdk_win32_2_0_la_SOURCES = $(common_sources) gdkkeynames.c
libgdk_win32_2_0_la_LIBADD = win32/libgdk-win32.la $(GDK_DEP_LIBS) \
  $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la
144
libgdk_win32_2_0_la_DEPENDENCIES = win32/libgdk-win32.la gdk.def
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
libgdk_win32_2_0_la_LDFLAGS = -export-symbols gdk.def $(LDADD)
if HAVE_WINTAB
libgdk_win32_2_0_la_LIBADD += -Lwin32 -lwntab32x
endif
if HAVE_IE55
libgdk_win32_2_0_la_LIBADD += -Lwin32 -lie55uuid
endif

if OS_WIN32
install-libtool-import-lib:
	$(INSTALL) .libs/libgdk-win32-$(GTK_API_VERSION).dll.a $(DESTDIR)$(libdir)
uninstall-libtool-import-lib:
	-rm $(DESTDIR)$(libdir)/libgdk-win32-$(GTK_API_VERSION).dll.a
else
install-libtool-import-lib:
uninstall-libtool-import-lib:
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
	lib -name:libgdk-win32-$(GTK_API_VERSION)-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@

install-ms-lib:
	$(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

179
gdk.def: gdk.symbols
Matthias Clasen's avatar
2.5.2    
Matthias Clasen committed
180
	(echo -e EXPORTS; cpp -P -DGDK_WINDOWING_WIN32 -DINCLUDE_VARIABLES $(srcdir)/gdk.symbols | sed -e '/^$$/d' -e 's/^/\t/') > gdk.def
181
182

gdkalias.h: gdk.symbols
Matthias Clasen's avatar
Matthias Clasen committed
183
	 $(srcdir)/makegdkalias.pl < $(srcdir)/gdk.symbols > gdkalias.h
184
185

if OS_UNIX
186
TESTS = abicheck.sh
187
188
endif

Tor Lillqvist's avatar
Tor Lillqvist committed
189

190
lib_LTLIBRARIES = $(gdktargetlib)
191

Owen Taylor's avatar
Owen Taylor committed
192
EXTRA_LTLIBRARIES = libgdk-x11-2.0.la libgdk-linux-fb-2.0.la libgdk-win32-2.0.la
193

194
195
MAINTAINERCLEANFILES = gdkenumtypes.h stamp-gdkenumtypes.h gdkenumtypes.c \
  gdkmarshalers.h gdkmarshalers.c
Matt Wilson's avatar
Matt Wilson committed
196
EXTRA_HEADERS =
197
198
199
200

#
# Rule to install gdkconfig.h header file
#
201
configexecincludedir = $(libdir)/gtk-2.0/include
202
#configexecinclude_DATA = gdkconfig.h
203

204
install-exec-local: gdkconfig.h
205
206
207
208
	$(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
209

210
211
212
213
214
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

215
#note: not gdkconfig.h
216
BUILT_SOURCES =					\
217
	gdkalias.h				\
218
219
220
221
222
223
224
	gdkenumtypes.h				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
225
226
227
228
229
230
231
232
	@true
stamp-gdkenumtypes.h: @REBUILD@ $(gdk_public_h_sources) Makefile
	( cd $(srcdir) && glib-mkenums \
			--fhead "#ifndef __GDK_ENUM_TYPES_H__\n#define __GDK_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
			--fprod "/* enumerations from \"@filename@\" */\n" \
			--vhead "GType @enum_name@_get_type (void);\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
			--ftail "G_END_DECLS\n\n#endif /* __GDK_ENUM_TYPES_H__ */" \
		$(gdk_public_h_sources) ) >> xgen-geth \
233
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
234
235
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
236
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) Makefile
237
	( cd $(srcdir) && glib-mkenums \
238
			--fhead "#define GDK_ENABLE_BROKEN\n#include \"gdkalias.h\"\n#include \"gdk.h\"" \
239
		--fprod "\n/* enumerations from \"@filename@\" */" \
240
241
242
243
			--vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n  if (etype == 0) {\n    static const G@Type@Value values[] = {" \
			--vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
			--vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values);\n  }\n  return etype;\n}\n" \
		$(gdk_public_h_sources) ) > xgen-getc \
244
	&& cp xgen-getc gdkenumtypes.c  \
245
	&& rm -f xgen-getc
246

247
248
249
# 
# Marshaller generation
#
250
251
252
253
254
gdkmarshalers.h: @REBUILD@ gdkmarshalers.list
	$(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \
	&& mv gdkmarshalers-h.tmp gdkmarshalers.h \
	|| ( rm -f gdkmarshalers-h.tmp && exit 1)
gdkmarshalers.c: @REBUILD@ gdkmarshalers.list
255
	(echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp	\
256
257
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
258

259
gdkconfig.h: stamp-gc-h
260
261
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
262
263
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
264
265
	echo timestamp > stamp-gc-h

266
267
DISTCLEANFILES = gdkconfig.h stamp-gc-h

268
install-data-local: install-ms-lib install-libtool-import-lib
Tor Lillqvist's avatar
Tor Lillqvist committed
269
270

uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
271
272
273
274
275
276
277
278
	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
279

Elliot Lee's avatar
Elliot Lee committed
280
281
282
283
284
285
.PHONY: files

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