Makefile.am 8.06 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
180
	(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
181 182

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

185 186 187
gdkaliasdef.c: gdk.symbols
	 $(PERL) $(srcdir)/makegdkalias.pl -def < $(srcdir)/gdk.symbols > gdkaliasdef.c

Matthias Clasen's avatar
Matthias Clasen committed
188
if OS_LINUX
189
TESTS = abicheck.sh
190 191
endif

Tor Lillqvist's avatar
Tor Lillqvist committed
192

193
lib_LTLIBRARIES = $(gdktargetlib)
194

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

197 198
MAINTAINERCLEANFILES = gdkenumtypes.h stamp-gdkenumtypes.h gdkenumtypes.c \
  gdkmarshalers.h gdkmarshalers.c
Matt Wilson's avatar
Matt Wilson committed
199
EXTRA_HEADERS =
200 201 202 203

#
# Rule to install gdkconfig.h header file
#
204
configexecincludedir = $(libdir)/gtk-2.0/include
205
#configexecinclude_DATA = gdkconfig.h
206

207
install-exec-local: gdkconfig.h
208 209 210 211
	$(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
212

213 214 215 216 217
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

218
#note: not gdkconfig.h
219
BUILT_SOURCES =					\
220
	gdkalias.h				\
221
	gdkaliasdef.c				\
222 223 224 225 226 227 228
	gdkenumtypes.h				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
	gdkconfig.h

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

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

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

271 272
DISTCLEANFILES = gdkconfig.h stamp-gc-h

273
install-data-local: install-ms-lib install-libtool-import-lib
Tor Lillqvist's avatar
Tor Lillqvist committed
274 275

uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
276 277 278 279 280 281 282 283
	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
284

Elliot Lee's avatar
Elliot Lee committed
285 286 287 288 289 290
.PHONY: files

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