Makefile.am 7.34 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 72 73
	gdkselection.h				\
	gdktypes.h				\
	gdkvisual.h				\
74
	gdkwindow.h
75

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

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

#
# setup GDK sources and their dependancies
#
116

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

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

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

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

136 137 138
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
Tor Lillqvist's avatar
Tor Lillqvist committed
139
libgdk_win32_2_0_la_DEPENDENCIES = gdk.def
140 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
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
174

175
lib_LTLIBRARIES = $(gdktargetlib)
176

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

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

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

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

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

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

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

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

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

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

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

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

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

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