CVS module dependency list in machine processable form
- From: Jonathan Sergent <sergent+gnome kgb etla net>
- To: gnome-list gnome org
- Subject: CVS module dependency list in machine processable form
- Date: Sat, 12 Dec 1998 20:35:31 -0800
In message <199812121601.LAA31589@rwf.lms.mit.edu>, "Sergey I. Panov" writes:
] I have a picture of the dependancies (gnome_deps.*) and some
] instruction in INSTALL file, all stored at
] http://sipan.ne.mediaone.net/gnome/
]
I think this is a mix of runtime as well as build time dependencies,
which are totally different.
There are plenty of things that are run time dependencies that do not
affect the _order_ you need to build in. So it's useful to separate the
two.
Also, one is not a superset of the other. You might think that the
runtime requirements are just a superset of the build requirements.
autoconf is a build time dependency, but certainly not a run time
dependency... for the particular case of autoconf it is a moot point
since it is not a CVS module. There are many things that are run time
dependencies in order to have a useful system but are not build time
dependencies. The main example here is gnome-core, which actually
is a build time dependency for a few select other modules (with the
panel and all), but it is sort of a run time dependency for everything
if you intend to use GNOME as a desktop rather than just running
same-gnome under CDE or somesuch.
This ``mixup'' also leads to the circular gtk-engines thing that you
have. gtk-engines needs gtk+ to build, but gtk+ wants gtk-engines at
runtime.
BTW, there are some things that aren't modules in your list, such as
``guile-core'' and ``libIDL'' which are presumably not in CVS or are
part of other modules these days.
Anyhow, last night I went through each module individually and tried
to determine what its immediate dependencies were. I looked at the
configure.in as well as #include <foo> statements in the source. I
would appreciate getting feedback on this list. Note that the program
that processes with this handles multi-level dependencies okay, so it's
only necessary to list things that the module itself directly looks
for. It seems somewhat silly to list gtk+ and glib everywhere that
gnome-libs is also listed since we know gnome-libs requires those,
but I have included these where appropriate for completeness.
========================================
#
# @(#)module-deps 1.2 12/12/98
#
# Jonathan Sergent <sergent@io.com>
#
# Gathered by looking at <module>/configure.in as well as by doing
# find <module> -name '*.[ch]' | xargs grep '#include' /dev/null |
# grep -v '"' | cut -d: -f2 | sort | uniq
#
# Note that the ordering here on each line doesn't matter. The
# resolver orders them based on dependencies in the end, so if you
# need things in a certain order, you must use dependencies to
# express that.
#
ORBit: glib
audiofile: # No external module dependencies.
balsa: ORBit gnome-libs gtk+ libPropList
control-center: ORBit esound gnome-libs
dia: glib gnome-xml gtk+
ee: gnome-libs gtk+ imlib
esound: audiofile
gdm: glib gnome-libs gtk+
# gedit/plugins/launcher appears to depend on a header file from panel.
gedit: ORBit glib gnome-libs gtk+ gnome-core
ggv: glib gnome-libs gtk+
glib: # No external module dependencies.
gnome-admin: glib gnome-libs gnome-objc gtk+
gnome-chess: glib gnome-libs gtk+
gnome-core: glib ORBit esound gnome-http gnome-libs imlib libgtop gtk+
gnome-dom: ORBit glib gnome-xml
gnome-games: ORBit glib gnome-libs gnome-guile gnome-objc gtk+ imlib
gnome-guile: gnome-libs gtk+
gnome-http: # No external module dependencies.
gnome-libs: ORBit audiofile esound glib gtk+ imlib
gnome-media: esound gnome-libs gtk+ imlib
gnome-network: glib gnome-libs gnome-objc gnome-guile gtk+
gnome-objc: gnome-libs gtk+ imlib
gnome-pilot: ORBit glib gnome-libs gtk+ imlib
gnome-pim: ORBit glib gnome-libs gtk+
gnome-python: gnome-libs gtk+ imlib
gnome-utils: glib libgtop gnome-guile gnome-libs gnome-objc gtk+
gnome-xml: # No external module dependencies.
gnumeric: ORBit glib gnome-guile gnome-libs gnome-xml gtk+
# Looked in makeconfig.pl instead of configure.in. (Auto-generator.)
go: glib gnome-libs gtk+
grpm: glib gnome-libs gtk+
gtk+: glib
gtk-engines: gtk+ imlib
gtkicq: esound gnome-libs gtk+
gtop: libgtop gnome-libs
gwp: glib gnome-libs gnome-print gnome-xml gtk+
imlib: gtk+
libgtop: glib gnome-guile gnome-libs
libPropList: # No external module dependencies.
mc: ORBit glib gnome-libs gtk+
sane: gnome-libs gtk+
yagirc: esound glib gnome-libs gtk+ imlib
WORLD: ORBit audiofile balsa control-center dia ee esound gdm gedit ggv
WORLD: glib gnome-admin gnome-chess gnome-core gnome-dom gnome-games
WORLD: gnome-guile gnome-http gnome-libs gnome-media gnome-network
WORLD: gnome-objc gnome-pilot gnome-pim gnome-python gnome-utils gnome-xml
WORLD: gnumeric go grpm gtk+ gtk-engines gtkicq gtop gwp imlib libgtop
WORLD: libPropList mc sane yagirc
========================================
The result of this that the script (the one I posted the other day in
a shar file) finds for "WORLD" is the following:
gnome-print gnome-http audiofile gnome-xml esound libPropList glib gtk+
ORBit gnome-dom imlib dia gnome-libs balsa yagirc sane mc gwp gtkicq
gtk-engines grpm go gnome-python gnome-pim gnome-pilot gnome-media
gnome-guile libgtop gnome-chess gnome-objc gnome-admin ggv gnome-core
gedit gdm ee control-center gtop gnumeric gnome-utils gnome-network
gnome-games WORLD
This probably isn't the order most of us have figured out manually,
but hopefully it works just as well. I haven't tried it out yet,
but doing so should hopefully help me determine if my examination
of configure.in and include files was successful.
Can people please look at the module-deps file above and let me know
if they see anything missing from it? I hope to be able to get this
integrated into a checkout and build script such that you can say
"I want to compile Balsa" for instance and it will go fetch the
right modules and build them in the right order and install them.
--
Jonathan Sergent / sergent@io.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]