Makefile.am 8.1 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
	makefile.msc		\
	gdk.symbols		\
	makegdkalias.pl		\
Matthias Clasen's avatar
2.7.0  
Matthias Clasen committed
14
	gdkaliasdef.c		\
15
	abicheck.sh
16

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

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

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

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

45 46 47 48

#
# setup source file variables
#
Owen Taylor's avatar
Started  
Owen Taylor committed
49
#
50
# GDK header files for public installation (non-generated)
Owen Taylor's avatar
Started  
Owen Taylor committed
51
#
52
gdk_public_h_sources =				\
53
	gdk.h					\
54
	gdkcairo.h				\
55 56
	gdkcolor.h				\
	gdkcursor.h				\
57
	gdkdisplay.h				\
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
	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				\
75
	gdkscreen.h				\
76
	gdkselection.h				\
77
	gdkspawn.h				\
78 79
	gdktypes.h				\
	gdkvisual.h				\
80
	gdkwindow.h
81

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

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

#
122
# setup GDK sources and their dependencies
123
#
124

125 126
gdkincludedir = $(includedir)/gtk-2.0/gdk
gdkinclude_HEADERS = $(gdk_headers)
127

Matthias Clasen's avatar
2.7.0  
Matthias Clasen committed
128
# gdkmarshalers.c is not here because it is currently an empty file
129
common_sources =                \
130 131
	$(gdk_c_sources)	\
	gdkenumtypes.c		\
132
	gdkmarshalers.h
133 134

libgdk_x11_2_0_la_SOURCES = $(common_sources)
135 136 137 138
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)

139
libgdk_linux_fb_2_0_la_SOURCES = $(common_sources) gdkkeynames.c
140 141 142
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
143

144 145 146
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
147
libgdk_win32_2_0_la_DEPENDENCIES = win32/libgdk-win32.la gdk.def
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 179 180 181
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

182
gdk.def: gdk.symbols
183
	(echo -e EXPORTS; $(CPP) -P -DALL_FILES -DGDK_WINDOWING_WIN32 -DINCLUDE_VARIABLES - <$(srcdir)/gdk.symbols | sed -e '/^$$/d' -e 's/^/	/' -e 's/G_GNUC_[^ ]*//g') > gdk.def
184 185

gdkalias.h: gdk.symbols
186
	 $(PERL) $(srcdir)/makegdkalias.pl < $(srcdir)/gdk.symbols > gdkalias.h
187

188 189 190
gdkaliasdef.c: gdk.symbols
	 $(PERL) $(srcdir)/makegdkalias.pl -def < $(srcdir)/gdk.symbols > gdkaliasdef.c

Matthias Clasen's avatar
Matthias Clasen committed
191
if OS_LINUX
192
TESTS = abicheck.sh
193 194
endif

Tor Lillqvist's avatar
Tor Lillqvist committed
195

196
lib_LTLIBRARIES = $(gdktargetlib)
197

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

200 201
MAINTAINERCLEANFILES = gdkenumtypes.h stamp-gdkenumtypes.h gdkenumtypes.c \
  gdkmarshalers.h gdkmarshalers.c
Matt Wilson's avatar
Matt Wilson committed
202
EXTRA_HEADERS =
203 204 205 206

#
# Rule to install gdkconfig.h header file
#
207
configexecincludedir = $(libdir)/gtk-2.0/include
208
#configexecinclude_DATA = gdkconfig.h
209

210
install-exec-local: gdkconfig.h
211 212 213 214
	$(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
215

216 217 218 219 220
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

221
#note: not gdkconfig.h
222
BUILT_SOURCES =					\
223
	gdkalias.h				\
224
	gdkaliasdef.c				\
225 226 227 228 229 230 231
	gdkenumtypes.h				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
232 233 234 235 236
	@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" \
Matthias Clasen's avatar
Matthias Clasen committed
237
			--vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
238 239
			--ftail "G_END_DECLS\n\n#endif /* __GDK_ENUM_TYPES_H__ */" \
		$(gdk_public_h_sources) ) >> xgen-geth \
240
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
241 242
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
243
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) Makefile
244
	( cd $(srcdir) && glib-mkenums \
245
			--fhead "#define GDK_ENABLE_BROKEN\n#include \"gdk.h\"\n#include \"gdkalias.h\"\n" \
246
			--fprod "\n/* enumerations from \"@filename@\" */" \
247
			--ftail "\n#define __GDK_ENUM_TYPES_C__\n#include \"gdkaliasdef.c\"\n" \
248 249 250 251
			--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 \
252
	&& cp xgen-getc gdkenumtypes.c  \
253
	&& rm -f xgen-getc
254

255 256 257
# 
# Marshaller generation
#
258 259 260 261 262
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
263
	(echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp	\
264 265
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
266

267
gdkconfig.h: stamp-gc-h
268 269
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
270 271
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
272 273
	echo timestamp > stamp-gc-h

274 275
DISTCLEANFILES = gdkconfig.h stamp-gc-h

276
install-data-local: install-ms-lib install-libtool-import-lib
Tor Lillqvist's avatar
Tor Lillqvist committed
277 278

uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
279 280 281 282 283 284 285 286
	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
287

Elliot Lee's avatar
Elliot Lee committed
288 289 290 291 292 293
.PHONY: files

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