Makefile.am 7.37 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
	makefile.msc
12

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

25
gtarget=$(gdktarget)
Elliot Lee's avatar
Elliot Lee committed
26

Tor Lillqvist's avatar
Tor Lillqvist committed
27 28 29 30
if PLATFORM_WIN32
no_undefined = -no-undefined
endif

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

41 42 43 44

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

77
gdk_headers =                     \
78 79
	$(gdk_public_h_sources)   \
	gdkenumtypes.h		  \
80
	gdkprivate.h
81

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

#
115
# setup GDK sources and their dependencies
116
#
117

118 119
gdkincludedir = $(includedir)/gtk-2.0/gdk
gdkinclude_HEADERS = $(gdk_headers)
120

121
# gdkmarshalers.c is not here becuase it is currently an empty file
122
common_sources =                \
123 124
	$(gdk_c_sources)	\
	gdkenumtypes.c		\
125
	gdkmarshalers.h
126 127

libgdk_x11_2_0_la_SOURCES = $(common_sources)
128 129 130 131
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)

132
libgdk_linux_fb_2_0_la_SOURCES = $(common_sources) gdkkeynames.c
133 134 135
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
136

137 138 139
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
140
libgdk_win32_2_0_la_DEPENDENCIES = win32/libgdk-win32.la gdk.def
141 142 143 144 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
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

Tor Lillqvist's avatar
Tor Lillqvist committed
175

176
lib_LTLIBRARIES = $(gdktargetlib)
177

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

180 181
MAINTAINERCLEANFILES = gdkenumtypes.h stamp-gdkenumtypes.h gdkenumtypes.c \
  gdkmarshalers.h gdkmarshalers.c
Matt Wilson's avatar
Matt Wilson committed
182
EXTRA_HEADERS =
183 184 185 186

#
# Rule to install gdkconfig.h header file
#
187
configexecincludedir = $(libdir)/gtk-2.0/include
188
#configexecinclude_DATA = gdkconfig.h
189

190
install-exec-local: gdkconfig.h
191 192 193 194
	$(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
195

196 197 198 199 200
install-exec-hook:
if DISABLE_EXPLICIT_DEPS
	$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gdktargetlib)
endif

201
#note: not gdkconfig.h
202 203 204 205 206 207 208 209
BUILT_SOURCES =					\
	gdkenumtypes.h				\
	gdkenumtypes.c				\
	gdkmarshalers.h 			\
	gdkmarshalers.c				\
	gdkconfig.h

gdkenumtypes.h: stamp-gdkenumtypes.h
210 211 212 213 214 215 216 217
	@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 \
218
	&& (cmp -s xgen-geth gdkenumtypes.h || cp xgen-geth gdkenumtypes.h ) \
219 220
	&& rm -f xgen-geth \
	&& echo timestamp > $(@F)
221
gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) Makefile
222 223
	( cd $(srcdir) && glib-mkenums \
			--fhead "#define GDK_ENABLE_BROKEN\n#include \"gdk.h\"" \
224
		--fprod "\n/* enumerations from \"@filename@\" */" \
225 226 227 228
			--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 \
229
	&& cp xgen-getc gdkenumtypes.c  \
230
	&& rm -f xgen-getc
231

232 233 234
# 
# Marshaller generation
#
235 236 237 238 239 240 241 242
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 )
243

244
gdkconfig.h: stamp-gc-h
245 246
	@if test -f gdkconfig.h; then :; \
	else rm -f stamp-gc-h; $(MAKE) stamp-gc-h; fi
247 248
stamp-gc-h: $(top_builddir)/config.status
	cd $(top_builddir) && $(SHELL) ./config.status gdk/gdkconfig.h
249 250
	echo timestamp > stamp-gc-h

251 252
DISTCLEANFILES = gdkconfig.h stamp-gc-h

253
install-data-local: install-ms-lib install-libtool-import-lib
Tor Lillqvist's avatar
Tor Lillqvist committed
254 255

uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib
256 257 258 259 260 261 262 263
	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
264

Elliot Lee's avatar
Elliot Lee committed
265 266 267 268 269 270
.PHONY: files

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