Makefile.am 7.84 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 -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

Matthias Clasen's avatar
Matthias Clasen committed
185
if OS_LINUX
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
	@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
230
			--vhead "GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define GDK_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \
231 232
			--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