1 # GObject - GLib Type, Object, Parameter and Signal Library 2 # Copyright (C) 1997,98,99,2000 Tim Janik and Red Hat, Inc. 3 # 4 ## Process this file with automake to produce Makefile.in 5 include $(top_srcdir)/Makefile.decl 6 7 SUBDIRS = . tests 8 9 AM_CPPFLAGS = \ 10 -DG_LOG_DOMAIN=\"GLib-GObject\" \ 11 -I$(top_srcdir) \ 12 -I$(top_srcdir)/glib \ 13 -I$(top_builddir) \ 14 $(GLIB_DEBUG_FLAGS) \ 15 -DG_DISABLE_DEPRECATED \ 16 -DGOBJECT_COMPILATION \ 17 -DG_DISABLE_CONST_RETURNS 18 19 gobject.def: gobject.symbols 20 (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DINCLUDE_INTERNAL_SYMBOLS -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/gobject.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g' | sort) > gobject.def 21 22 gobjectalias.h: gobject.symbols 23 $(PERL) $(srcdir)/makegobjectalias.pl < $(srcdir)/gobject.symbols > gobjectalias.h 24 25 gobjectaliasdef.c: gobject.symbols 26 $(PERL) $(srcdir)/makegobjectalias.pl -def < $(srcdir)/gobject.symbols > gobjectaliasdef.c 27 28 if OS_LINUX 29 if HAVE_GNUC_VISIBILITY 30 TESTS = abicheck.sh pltcheck.sh 31 endif 32 endif 33 34 libglib = $(top_builddir)/glib/libglib-2.0.la 35 36 # libraries to compile and install 37 lib_LTLIBRARIES = libgobject-2.0.la 38 39 if OS_WIN32_AND_DLL_COMPILATION 40 if MS_LIB_AVAILABLE 41 noinst_DATA = gobject-2.0.lib 42 43 install_ms_lib_cmd = $(INSTALL) gobject-2.0.lib $(DESTDIR)$(libdir) 44 uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gobject-2.0.lib 45 endif 46 endif 47 48 install-ms-lib: 49 $(install_ms_lib_cmd) 50 51 uninstall-ms-lib: 52 $(uninstall_ms_lib_cmd) 53 54 if PLATFORM_WIN32 55 no_undefined = -no-undefined 56 endif 57 58 if OS_WIN32_AND_DLL_COMPILATION 59 export_symbols = -export-symbols gobject.def 60 gobject_def = gobject.def 61 62 gobject_win32_res = gobject-win32-res.o 63 gobject_win32_res_ldflag = -Wl,$(gobject_win32_res) 64 65 install-def-file: 66 $(INSTALL) gobject.def $(DESTDIR)$(libdir)/gobject-2.0.def 67 68 uninstall-def-file: 69 -rm $(DESTDIR)$(libdir)/gobject-2.0.def 70 else 71 install-def-file: 72 uninstall-def-file: 73 74 export_symbols = $(LIBTOOL_EXPORT_OPTIONS) 75 endif 76 77 # libtool stuff: set version and export symbols for resolving 78 libgobjectincludedir = $(includedir)/glib-2.0/gobject 79 libgobject_2_0_la_LDFLAGS = \ 80 $(gobject_win32_res_ldflag) \ 81 -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ 82 -export-dynamic $(no_undefined) $(export_symbols) 83 84 libgobject_2_0_la_LIBADD = $(libglib) 85 86 libgobject_2_0_la_DEPENDENCIES = $(gobject_win32_res) $(gobject_def) 87 88 # 89 # setup source file variables 90 # 91 # GObject library header files for public installation 92 gobject_public_h_sources = \ 93 gboxed.h \ 94 gclosure.h \ 95 genums.h \ 96 gobject.h \ 97 gparam.h \ 98 gparamspecs.h \ 99 gsignal.h \ 100 gsourceclosure.h \ 101 gtype.h \ 102 gtypemodule.h \ 103 gtypeplugin.h \ 104 gvalue.h \ 105 gvaluearray.h \ 106 gvaluecollector.h \ 107 gvaluetypes.h \ 108 gobjectnotifyqueue.c \ 109 gmarshal.h 110 111 # GObject library header files that don't get installed 112 gobject_private_h_sources = 113 # GObject library C sources to build the library from 114 gobject_c_sources = \ 115 gboxed.c \ 116 gclosure.c \ 117 genums.c \ 118 gobject.c \ 119 gparam.c \ 120 gparamspecs.c \ 121 gsignal.c \ 122 gsourceclosure.c \ 123 gtype.c \ 124 gtypemodule.c \ 125 gtypeplugin.c \ 126 gvalue.c \ 127 gvaluearray.c \ 128 gvaluetransform.c \ 129 gvaluetypes.c 130 131 # these sources (also mentioned above) are generated. 132 BUILT_SOURCES = gmarshal.h gmarshal.c gobjectalias.h gobjectaliasdef.c 133 134 # non-header sources (headers should be specified in the above variables) 135 # that don't serve as direct make target sources, i.e. they don't have 136 # their own .lo rules and don't get publically installed 137 gobject_extra_sources = \ 138 gmarshal.list \ 139 gmarshal.strings \ 140 gobject.symbols 141 142 143 # 144 # setup GObject library sources and their dependancies 145 # 146 gobject_target_headers = $(gobject_public_h_sources) 147 gobject_target_sources = $(gobject_c_sources) 148 EXTRA_HEADERS = 149 EXTRA_DIST += \ 150 $(gobject_private_h_sources) \ 151 $(gobject_extra_sources) \ 152 makegobjectalias.pl \ 153 marshal-genstrings.pl 154 155 # 156 # rules to generate built sources 157 # 158 # setup autogeneration dependancies 159 gen_sources = xgen-gmh xgen-gmc xgen-gms 160 CLEANFILES = $(gen_sources) 161 162 # normal autogeneration rules 163 # all autogenerated files need to be generated in the srcdir, 164 # so old versions get remade and are not confused with newer 165 # versions in the build dir. thus a development setup requires 166 # srcdir to be writable, passing --disable-rebuilds to 167 # ../configure will supress all autogeneration rules. 168 169 if CROSS_COMPILING 170 glib_genmarshal=$(GLIB_GENMARSHAL) 171 else 172 glib_genmarshal=./glib-genmarshal 173 endif 174 175 gmarshal.h: stamp-gmarshal.h 176 @true 177 stamp-gmarshal.h: @REBUILD@ gmarshal.list glib-genmarshal$(EXEEXT) 178 $(MAKE) glib-genmarshal$(EXEEXT) 179 echo "#ifndef __G_MARSHAL_H__" > xgen-gmh \ 180 && echo "#define __G_MARSHAL_H__" >> xgen-gmh \ 181 && $(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --header >> xgen-gmh \ 182 && echo "#endif /* __G_MARSHAL_H__ */" >> xgen-gmh \ 183 && (cmp -s xgen-gmh gmarshal.h 2>/dev/null || cp xgen-gmh gmarshal.h) \ 184 && rm -f xgen-gmh xgen-gmh~ \ 185 && echo timestamp > $@ 186 187 gmarshal.c: @REBUILD@ stamp-gmarshal.h 188 $(glib_genmarshal) --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --body >> xgen-gmc \ 189 && cp xgen-gmc gmarshal.c \ 190 && rm -f xgen-gmc xgen-gmc~ 191 192 gmarshal.strings: @REBUILD@ $(srcdir)/gmarshal.list 193 grep '^[A-Z]' $(srcdir)/gmarshal.list \ 194 | sed -e 's/^/"g_cclosure_marshal_/' -e 's/:/__/' -e 's/,/_/g' -e 's/$$/",/' > xgen-gms \ 195 && cp xgen-gms gmarshal.strings \ 196 && rm -f xgen-gms xgen-gms~ 197 198 glib-genmarshal.o: gmarshal.strings 199 gsignal.lo: gmarshal.c 200 201 202 # target platform: 203 libgobjectinclude_HEADERS = $(gobject_target_headers) 204 libgobject_2_0_la_SOURCES = $(gobject_target_sources) 205 206 # 207 # programs to compile and install 208 # 209 bin_PROGRAMS = gobject-query glib-genmarshal 210 bin_SCRIPTS = glib-mkenums 211 noinst_PROGRAMS = testgobject 212 # source files 213 gobject_query_SOURCES = gobject-query.c 214 glib_genmarshal_SOURCES = glib-genmarshal.c 215 testgobject_SOURCES = testgobject.c 216 # link programs against libgobject 217 progs_LDADD = ./libgobject-2.0.la $(libglib) 218 glib_genmarshal_LDADD = $(libglib) 219 gobject_query_LDADD = $(progs_LDADD) 220 testgobject_LDADD = $(progs_LDADD) 221 222 # 223 # auxillary files 224 # 225 EXTRA_DIST += \ 226 makefile.msc.in \ 227 gobject.rc.in \ 228 glib-genmarshal.1 \ 229 glib-mkenums.in \ 230 glib-mkenums.1 \ 231 abicheck.sh \ 232 pltcheck.sh 233 234 BUILT_EXTRA_DIST = \ 235 makefile.msc \ 236 gobject.rc \ 237 gmarshal.h \ 238 gmarshal.c \ 239 stamp-gmarshal.h \ 240 gobjectalias.h \ 241 gobjectaliasdef.c 242 243 gobject-win32-res.o: gobject.rc 244 $(WINDRES) gobject.rc $@ 245 246 gobject-2.0.lib: libgobject-2.0.la gobject.def 247 lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgobject-2.0-$(LT_CURRENT_MINUS_AGE).dll -def:gobject.def -out:$@ 248 249 dist-hook: $(BUILT_EXTRA_DIST) 250 files='$(BUILT_EXTRA_DIST)'; \ 251 for f in $$files; do \ 252 if test -f $$f; then d=.; else d=$(srcdir); fi; \ 253 cp $$d/$$f $(distdir) || exit 1; done 254 255 install-data-local: install-ms-lib install-def-file 256 257 uninstall-local: uninstall-ms-lib uninstall-def-file 258 259 distclean-local: 260 if test $(srcdir) = .; then :; else \ 261 rm -f $(BUILT_EXTRA_DIST); \ 262 fi 263