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

3 4
SUBDIRS = $(gdktarget)
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 180 181 182 183 184 185 186 187 188
gdk.def: gdk.symbols
	(echo -e EXPORTS; cpp -P -DGDK_WINDOWING_WIN32 -DINCLUDE_VARIABLES gdk.symbols | sed -e '/^$$/d' -e 's/^/\t/') > gdk.def

gdkalias.h: gdk.symbols
	 cpp -P gdk.symbols -DGDK_WINDOWING_X11 | ./makegdkalias.pl > gdkalias.h

if OS_UNIX
TEST = abicheck.sh
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 217 218 219 220 221 222 223
BUILT_SOURCES =					\
	gdkenumtypes.h				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
224 225 226 227 228 229 230 231
	@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 \
232
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
233 234
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
235
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) Makefile
236 237
	( cd $(srcdir) && glib-mkenums \
			--fhead "#define GDK_ENABLE_BROKEN\n#include \"gdk.h\"" \
238
		--fprod "\n/* enumerations from \"@filename@\" */" \
239 240 241 242
			--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 \
243
	&& cp xgen-getc gdkenumtypes.c  \
244
	&& rm -f xgen-getc
245

246 247 248
# 
# Marshaller generation
#
249 250 251 252 253 254 255 256
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
	$(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --body > gdkmarshalers-c.tmp	\
	&& mv gdkmarshalers-c.tmp gdkmarshalers.c \
	|| ( rm -f gdkmarshalers-c.tmp && exit 1 )
257

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

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

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

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

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

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