Discussion:
[referencer] Basic question
Glen Shennan
2011-03-31 04:53:11 UTC
Permalink
Hi,

I'm very new at this and trying to work my way through the referencer
source. My C++ is rusty (ore) though and I've never used gnome-autogen.sh.
Is there a good tutorial I can have a look at to see how the
gnome-autogen.sh and python.m4 macros conspire to get this thing compiled?
I've been searching but can't find anything decent and I've learned enough
bash for the moment. Any quick descriptions are welcome too. :)

Cheers,
Glen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110331/5a6bab00/attachment.htm>
John Spray
2011-03-31 11:28:45 UTC
Permalink
Glen,

What you're looking at is a standard GNU autotools build setup. You build
it with ./autogen.sh && ./configure && make. If you haven't done this kind
of thing before then you probably don't have the required packages, look at
the list of dependencies at [1].

(Presumably you've checked this out of version control: the difference
between what's in version control and what's in a release tarball is simply
that for the tarball the "autogen.sh" step was already run.)

John

1. http://icculus.org/referencer/development.html
Post by Glen Shennan
Hi,
I'm very new at this and trying to work my way through the referencer
source. My C++ is rusty (ore) though and I've never used gnome-autogen.sh.
Is there a good tutorial I can have a look at to see how the
gnome-autogen.sh and python.m4 macros conspire to get this thing compiled?
I've been searching but can't find anything decent and I've learned enough
bash for the moment. Any quick descriptions are welcome too. :)
Cheers,
Glen
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110331/546ab19f/attachment.htm>
Glen Shennan
2011-03-31 12:31:13 UTC
Permalink
Hi,

Thanks for the reply. I was told earlier to build the source with
./autogen.sh && make which worked (or seemed to). Now I'm trying to work
out what that script is doing, which is calling gnome-autogen.sh which in
turns does something with config.in and m4/python.m4. Unfortunately
gnome-autogen.sh and python.m4 are long and look complicated and I have no
idea what an m4 macro is anyway so what is going on here is confusing me a
bit. I guess I'm just not sure what's happening in the ./configure and make
steps, I'm from DOS so a command like make with no arguments is not natural
to me. If the whole thing is complicated I guess I'm just looking for a
good source for documentation; I'm making my way through the relevant
sections of the gnome documentation library but the m4 macro home page is
gibberish to me at the moment. "Expanding macros" is not yet in my
vocabulary and I'm wondering if there's a way to learn what's going on in
this process without reading to much bash script (which I'm also still
learning) since I don't think it's too relevant to referencer itself.

Cheers,
Glen
Post by John Spray
Glen,
What you're looking at is a standard GNU autotools build setup. You build
it with ./autogen.sh && ./configure && make. If you haven't done this kind
of thing before then you probably don't have the required packages, look at
the list of dependencies at [1].
(Presumably you've checked this out of version control: the difference
between what's in version control and what's in a release tarball is simply
that for the tarball the "autogen.sh" step was already run.)
John
1. http://icculus.org/referencer/development.html
Post by Glen Shennan
Hi,
I'm very new at this and trying to work my way through the referencer
source. My C++ is rusty (ore) though and I've never used gnome-autogen.sh.
Is there a good tutorial I can have a look at to see how the
gnome-autogen.sh and python.m4 macros conspire to get this thing compiled?
I've been searching but can't find anything decent and I've learned enough
bash for the moment. Any quick descriptions are welcome too. :)
Cheers,
Glen
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110331/258a6842/attachment.htm>
John Spray
2011-03-31 12:48:07 UTC
Permalink
Oh, so it's building but you want to know about the internals out of
curiosity? I'd respectfully suggest that your curiosity is misplaced. Most
people who use autotools (myself included) don't write any of this stuff, it
all just comes off the shelf apart from the configure.in and Makefile.am
files which define what's actually being built.

If you want to learn about build systems then GNU autotools is a bad one to
learn. It's ubiquitous for historical reasons, not because there's anything
beautiful about it. If you are starting from scratch then you should skip
autotools and learn CMake or one of the other more modern systems (which
don't involve arcane macro languages!). If you really truly want to know
all about auto tools then the official documentation [1] is the place.
However, I can't emphasize enough what overwhelmingly poor use of your time
it would be to do so.

John

1.
http://www.gnu.org/software/automake/manual/automake.html#Autotools-Introduction
Post by Glen Shennan
Hi,
Thanks for the reply. I was told earlier to build the source with
./autogen.sh && make which worked (or seemed to). Now I'm trying to work
out what that script is doing, which is calling gnome-autogen.sh which in
turns does something with config.in and m4/python.m4. Unfortunately
gnome-autogen.sh and python.m4 are long and look complicated and I have no
idea what an m4 macro is anyway so what is going on here is confusing me a
bit. I guess I'm just not sure what's happening in the ./configure and make
steps, I'm from DOS so a command like make with no arguments is not natural
to me. If the whole thing is complicated I guess I'm just looking for a
good source for documentation; I'm making my way through the relevant
sections of the gnome documentation library but the m4 macro home page is
gibberish to me at the moment. "Expanding macros" is not yet in my
vocabulary and I'm wondering if there's a way to learn what's going on in
this process without reading to much bash script (which I'm also still
learning) since I don't think it's too relevant to referencer itself.
Cheers,
Glen
Post by John Spray
Glen,
What you're looking at is a standard GNU autotools build setup. You build
it with ./autogen.sh && ./configure && make. If you haven't done this kind
of thing before then you probably don't have the required packages, look at
the list of dependencies at [1].
(Presumably you've checked this out of version control: the difference
between what's in version control and what's in a release tarball is simply
that for the tarball the "autogen.sh" step was already run.)
John
1. http://icculus.org/referencer/development.html
Post by Glen Shennan
Hi,
I'm very new at this and trying to work my way through the referencer
source. My C++ is rusty (ore) though and I've never used gnome-autogen.sh.
Is there a good tutorial I can have a look at to see how the
gnome-autogen.sh and python.m4 macros conspire to get this thing compiled?
I've been searching but can't find anything decent and I've learned enough
bash for the moment. Any quick descriptions are welcome too. :)
Cheers,
Glen
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110331/e6de7468/attachment-0001.htm>
Glen Shennan
2011-04-01 00:09:18 UTC
Permalink
Overwhelmingly helpful response, thank you! I did suspect that this would
be a waste of my time but I do need to find out what's going on some level,
the compilation procedure is all just dark to me right now. I'll have a
flick through the manual.

Glen
Post by John Spray
Oh, so it's building but you want to know about the internals out of
curiosity? I'd respectfully suggest that your curiosity is misplaced. Most
people who use autotools (myself included) don't write any of this stuff, it
all just comes off the shelf apart from the configure.in and Makefile.am
files which define what's actually being built.
If you want to learn about build systems then GNU autotools is a bad one to
learn. It's ubiquitous for historical reasons, not because there's anything
beautiful about it. If you are starting from scratch then you should skip
autotools and learn CMake or one of the other more modern systems (which
don't involve arcane macro languages!). If you really truly want to know
all about auto tools then the official documentation [1] is the place.
However, I can't emphasize enough what overwhelmingly poor use of your time
it would be to do so.
John
1.
http://www.gnu.org/software/automake/manual/automake.html#Autotools-Introduction
Post by Glen Shennan
Hi,
Thanks for the reply. I was told earlier to build the source with
./autogen.sh && make which worked (or seemed to). Now I'm trying to work
out what that script is doing, which is calling gnome-autogen.sh which in
turns does something with config.in and m4/python.m4. Unfortunately
gnome-autogen.sh and python.m4 are long and look complicated and I have no
idea what an m4 macro is anyway so what is going on here is confusing me a
bit. I guess I'm just not sure what's happening in the ./configure and make
steps, I'm from DOS so a command like make with no arguments is not natural
to me. If the whole thing is complicated I guess I'm just looking for a
good source for documentation; I'm making my way through the relevant
sections of the gnome documentation library but the m4 macro home page is
gibberish to me at the moment. "Expanding macros" is not yet in my
vocabulary and I'm wondering if there's a way to learn what's going on in
this process without reading to much bash script (which I'm also still
learning) since I don't think it's too relevant to referencer itself.
Cheers,
Glen
Post by John Spray
Glen,
What you're looking at is a standard GNU autotools build setup. You
build it with ./autogen.sh && ./configure && make. If you haven't done this
kind of thing before then you probably don't have the required packages,
look at the list of dependencies at [1].
(Presumably you've checked this out of version control: the difference
between what's in version control and what's in a release tarball is simply
that for the tarball the "autogen.sh" step was already run.)
John
1. http://icculus.org/referencer/development.html
Post by Glen Shennan
Hi,
I'm very new at this and trying to work my way through the referencer
source. My C++ is rusty (ore) though and I've never used gnome-autogen.sh.
Is there a good tutorial I can have a look at to see how the
gnome-autogen.sh and python.m4 macros conspire to get this thing compiled?
I've been searching but can't find anything decent and I've learned enough
bash for the moment. Any quick descriptions are welcome too. :)
Cheers,
Glen
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110401/d59db00b/attachment.htm>
Daniel K. O.
2011-04-01 18:21:21 UTC
Permalink
Post by John Spray
If you want to learn about build systems then GNU autotools is a bad
one to learn. It's ubiquitous for historical reasons, not because
there's anything beautiful about it. If you are starting from scratch
then you should skip autotools and learn CMake or one of the other
more modern systems (which don't involve arcane macro languages!). If
you really truly want to know all about auto tools then the official
documentation [1] is the place. However, I can't emphasize enough
what overwhelmingly poor use of your time it would be to do so.
Of course autotools will be the most difficult tool to learn, it is the
one that solves more problems.

I have been dealing frequently with different build systems () for a few
years now, and from my personal experience the only one that is really
reliable is GNU autotools. Finding the proper library file, to
installing (and uninstalling!) in the proper locations, cross compiling,
even something as trivial as setting compiler and linker flags, or
proper dependency tracking... most tools fail miserably at that. And
CMake is not an exception. Oh yeah, CMake DOES use an arcane macro
language too (that manages to be less readable than the mixed M4+shell
script from Autoconf.) If you don't use it then you probably could be
using a Makefile directly. Of course, if a Makefile solves your problem,
there is no reason to switch to a more complicated solution.

I really wish there was something better than autotools, but for now
I'll take it over existing alternatives any day.
--
Daniel K. O.
"The only way to succeed is to build success yourself."
Glen Shennan
2011-04-01 22:50:24 UTC
Permalink
Well I've been through the first couple chapters of the automake manual and
it's cleared a whole lot of things up for me. I'm happy using the build
system the way it is for the moment now, I'll learn more as the need
arises. In my limited experience I've seen autotools most often used so I'm
happy with this one. Thanks for the input.
Post by Daniel K. O.
Post by John Spray
If you want to learn about build systems then GNU autotools is a bad
one to learn. It's ubiquitous for historical reasons, not because
there's anything beautiful about it. If you are starting from scratch
then you should skip autotools and learn CMake or one of the other
more modern systems (which don't involve arcane macro languages!). If
you really truly want to know all about auto tools then the official
documentation [1] is the place. However, I can't emphasize enough
what overwhelmingly poor use of your time it would be to do so.
Of course autotools will be the most difficult tool to learn, it is the
one that solves more problems.
I have been dealing frequently with different build systems () for a few
years now, and from my personal experience the only one that is really
reliable is GNU autotools. Finding the proper library file, to
installing (and uninstalling!) in the proper locations, cross compiling,
even something as trivial as setting compiler and linker flags, or
proper dependency tracking... most tools fail miserably at that. And
CMake is not an exception. Oh yeah, CMake DOES use an arcane macro
language too (that manages to be less readable than the mixed M4+shell
script from Autoconf.) If you don't use it then you probably could be
using a Makefile directly. Of course, if a Makefile solves your problem,
there is no reason to switch to a more complicated solution.
I really wish there was something better than autotools, but for now
I'll take it over existing alternatives any day.
--
Daniel K. O.
"The only way to succeed is to build success yourself."
_______________________________________________
referencer mailing list
referencer at icculus.org
http://icculus.org/mailman/listinfo/referencer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://icculus.org/pipermail/referencer/attachments/20110402/f98ffcbc/attachment.htm>
Continue reading on narkive:
Loading...