glib/gobject/Makefile.am
Elliot Lee 8f7579774c GMainContext useful in implementing some additional styles of main loop
* gmain.c, gmain.h (g_main_context_new, g_main_context_destroy): GMainContext useful
in implementing some additional styles of main loop usage.  To do this, however, Joe
Hacker needs to be able to create/destroy GMainContext's at will. This is just an
export of existing functionality, rather than new functionality.

They are listed in the "Low level functions for implementing custom main loops"
section of the header file, to avoid confusing people.

* gobject/Makefile.am:
  . You have to 'touch oldest-source-stamp' if you want to avoid having
  the Makefile constantly rebuild itself.
  . Fix marshaller generation rules to work with srcdir != builddir
    (there were issues with trying to run "./glib-genmarshal", etc.)
2000-12-12 19:34:41 +00:00

192 lines
5.9 KiB
Makefile

# GRuntime - GLib Type, Object, Parameter and Signal Library
# Copyright (C) 1997,98,99,2000 Tim Janik and Red Hat, Inc.
#
## Process this file with automake to produce Makefile.in
INCLUDES = @STRIP_BEGIN@ \
-DG_LOG_DOMAIN=g_log_domain_gruntime \
-I$(top_srcdir) \
-I$(top_builddir) \
@GLIB_DEBUG_FLAGS@ \
@STRIP_END@
# libraries to compile and install
lib_LTLIBRARIES = libgobject-1.3.la
# libtool stuff: set version and export symbols for resolving
libgobjectincludedir = $(includedir)/glib-2.0/gobject
libgobject_1_3_la_LDFLAGS = @STRIP_BEGIN@ \
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
-export-dynamic \
@STRIP_END@
libgobject_1_3_la_LIBADD = # $(libglib)
#
# setup source file variables
#
# GRuntime header files for public installation (non-generated)
gruntime_public_h_sources = @STRIP_BEGIN@ \
gboxed.h \
gbsearcharray.h \
gclosure.h \
genums.h \
gobject.h \
gparam.h \
gparamspecs.h \
gsignal.h \
gtype.h \
gtypemodule.h \
gtypeplugin.h \
gvalue.h \
gvaluecollector.h \
gvaluetypes.h \
@STRIP_END@
# GRuntime header files that don't get installed
gruntime_private_h_sources =
# GRuntime C sources to build the library from
gruntime_c_sources = @STRIP_BEGIN@ \
gboxed.c \
gbsearcharray.c \
gclosure.c \
genums.c \
gobject.c \
gparam.c \
gparamspecs.c \
gsignal.c \
gtype.c \
gtypemodule.c \
gtypeplugin.c \
gvalue.c \
gvaluetypes.c \
@STRIP_END@
# we use our own built_sources variable rules to avoid automake's
# BUILT_SOURCES oddities
# we generate frequently rebuild files piggyback on a stamp file, so sources
# depending on them only get rebuild when the built source actually changed
# content
# built sources that get installed with the header files
gruntime_built_public_sources = @STRIP_BEGIN@ \
gmarshal.h \
@STRIP_END@
# built sources that don't get installed
gruntime_built_sources = @STRIP_BEGIN@ \
stamp-gmarshal.h \
gmarshal.c \
${gruntime_built_public_sources} \
@STRIP_END@
# non-header sources (headers should be specified in the above variables)
# that don't serve as direct make target sources, i.e. they don't have
# their own .lo rules and don't get publically installed
gruntime_extra_sources = @STRIP_BEGIN@ \
gmarshal.list \
gmarshal.strings \
@STRIP_END@
#
# setup GRuntime sources and their dependancies
#
gruntime_target_headers = $(gruntime_public_h_sources) $(gruntime_built_public_sources)
gruntime_target_sources = $(gruntime_c_sources)
MAINTAINERCLEANFILES += $(gruntime_built_sources)
EXTRA_HEADERS +=
EXTRA_DIST += $(gruntime_private_h_sources) $(gruntime_extra_sources)
EXTRA_DIST += $(gruntime_built_sources)
#
# rules to generate built sources
#
# setup autogeneration dependancies
gen_sources = xgen-gmh xgen-gmc xgen-gms
CLEANFILES += $(gen_sources)
Makefile: oldest-source-stamp # oh boy, does automake SUCK!
oldest-source-stamp: $(gruntime_built_sources)
@touch oldest-source-stamp
CLEANFILES+=oldest-source-stamp
$(OBJECTS): oldest-source-stamp ${gruntime_built_public_sources} # this is our oldest file, used for implicit auto-generation deps
# initial creation of the real stamp-* files
gmarshal.h: # never add deps here
test -f "$(srcdir)/$@" || touch $(srcdir)/$@
# normal autogeneration rules
# all autogenerated files need to be generated in the srcdir,
# so old versions get remade and are not confused with newer
# versions in the build dir. thus a development setup requires
# srcdir to be writable, passing --disable-rebuilds to
# ../configure will supress all autogeneration rules.
$(srcdir)/stamp-gmarshal.h: @REBUILD@ gmarshal.list gmarshal.h glib-genmarshal
echo "#ifndef __G_MARSHAL_H__" > xgen-gmh \
&& echo "#define __G_MARSHAL_H__" >> xgen-gmh \
&& ./glib-genmarshal --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --header >> xgen-gmh \
&& echo "#endif /* __G_MARSHAL_H__ */" >> xgen-gmh \
&& (cmp -s xgen-gmh $(srcdir)/gmarshal.h || cp xgen-gmh $(srcdir)/gmarshal.h) \
&& rm -f xgen-gmh xgen-gmh~ \
&& echo timestamp > $@
$(srcdir)/gmarshal.c: @REBUILD@ $(srcdir)/stamp-gmarshal.h
./glib-genmarshal --nostdinc --prefix=g_cclosure_marshal $(srcdir)/gmarshal.list --body >> xgen-gmc \
&& cp xgen-gmc $(srcdir)/gmarshal.c \
&& rm -f xgen-gmc xgen-gmc~
$(srcdir)/gmarshal.strings: @REBUILD@ $(srcdir)/gmarshal.list
grep '^[A-Z]' $(srcdir)/gmarshal.list \
| sed -e 's/^/"g_cclosure_marshal_/' -e 's/:/__/' -e 's/,/_/g' -e 's/$$/",/' > xgen-gms \
&& cp xgen-gms $(srcdir)/gmarshal.strings \
&& rm -f xgen-gms xgen-gms~
glib-genmarshal.o: gmarshal.strings
# target platform:
libgobjectinclude_HEADERS = $(gruntime_target_headers)
libgobject_1_3_la_SOURCES = $(gruntime_target_sources)
#
# programs to compile and install
#
bin_PROGRAMS = gobject-query glib-genmarshal
# source files
gobject_query_SOURCES = gobject-query.c
glib_genmarshal_SOURCES = glib-genmarshal.c
# link programs against libgobject
progs_LDADD = ../libglib-1.3.la libgobject-1.3.la
glib_genmarshal_LDADD = ../libglib-1.3.la # can't have libgobject here
gobject_query_LDADD = $(progs_LDADD)
#
# manual pages to install
#
man_MANS = glib-genmarshal.1
#
# auxillary files
#
EXTRA_DIST += \
makefile.mingw.in \
makefile.msc.in \
gobject.def \
gobject.rc.in \
glib-genmarshal.1
BUILT_EXTRA_DIST = \
makefile.mingw \
makefile.msc \
gobject.rc
gobject.rc: $(top_builddir)/config.status $(top_srcdir)/gobject/gobject.rc.in
cd $(top_builddir) && CONFIG_FILES=gobject/$@ CONFIG_HEADERS= $(SHELL) ./config.status
makefile.mingw: $(top_builddir)/config.status $(top_srcdir)/gobject/makefile.mingw.in
cd $(top_builddir) && CONFIG_FILES=gobject/$@ CONFIG_HEADERS= $(SHELL) ./config.status
makefile.msc: $(top_builddir)/config.status $(top_srcdir)/gobject/makefile.msc.in
cd $(top_builddir) && CONFIG_FILES=gobject/$@ CONFIG_HEADERS= $(SHELL) ./config.status
dist-hook: $(BUILT_EXTRA_DIST)
files='$(BUILT_EXTRA_DIST)'; \
for f in $$files; do \
if test -f $$f; then d=.; else d=$(srcdir); fi; \
cp $$d/$$f $(distdir) || exit 1; done