From: Bruce Dubbs <bruce.dubbs@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: Building system (Re: autogen.sh warnings)
Date: Mon, 07 Dec 2009 21:40:20 -0600 [thread overview]
Message-ID: <4B1DCAA4.4000104@gmail.com> (raw)
In-Reply-To: <4B1D9F1B.5070904@gmail.com>
Vladimir 'φ-coder/phcoder' Serbinenko wrote:
> Colin Watson wrote:
>> I wouldn't recommend it. The syntax looks similar, but there are some
>> slight differences, and Automake has its own ideas of what rules and
>> variables you are and aren't allowed to override. Besides, there's quite
>> a lot of stuff that Automake will output even with an entirely blank
>> Makefile.am; I doubt it would be very much fun to try to merge that into
>> the current Makefile.in without essentially doing a full port to
>> Automake.
>>
>> (Now if only I had time to actually do such a port ...)
> You may consider this mail:
> http://lists.gnu.org/archive/html/grub-devel/2006-08/msg00017.html
> I see following variants for future developpement:
> - Keep ruby and improve it to address some of its deficiencies
> - Rewrite system in python. This way merging ruby and python dependencies.
> - Using automake if it's deficiencies are addressable
> - Using just GNU make as I proposed and implemented once.
That is an interesting email from 2006. It looks like this issue has
been around for quite a while.
What is there right now seems to be a combination of items 1, 2, and 3.
I've spent some time this evening reviewing automake and autoconf and
it appears that they are not appropriate for GRUB as the only build
tool. For one thing, GRUB creates no libraries, but it does create a
lot of specialized modules that respond in some ways like dynamic
libraries, but because of the specialized nature of the boot process,
have to be implemented and built in a specialized way.
Using multiple tools to control the build process is difficult and error
prone. Either ruby or python would do, but I would note that python is
a part of the Linux Standards Base Runtime Languages specification and
ruby is not. On the other hand, there is a lot less python code.
There are also the shell script files to consider, however they are
fairly short and most have about 12 lines of copyright info in them
(there are no copyright headers in the .rmk files).
The current configuration contains the following line count:
443 genmk.rb
89 conf/any-emu.rmk
634 conf/common.rmk
97 conf/gcry.rmk
206 conf/i386-coreboot.rmk
164 conf/i386-efi.rmk
145 conf/i386-ieee1275.rmk
385 conf/i386-pc.rmk
2 conf/i386-qemu.rmk
21 conf/i386.rmk
111 conf/powerpc-ieee1275.rmk
136 conf/sparc64-ieee1275.rmk
169 conf/x86_64-efi.rmk
286 util/import_gcry.py
23 genhandlerlist.sh
26 genpartmaplist.sh
47 genmodsrc.sh
77 gensymlist.sh
23 autogen.sh
75 geninit.sh
45 gendistlist.sh
27 genkernsyms.sh
4 efiemu/runtime/efiemu.sh
26 genfslist.sh
22 gencmdlist.sh
45 geninitheader.sh
19 genparttoollist.sh
What autotools does offer is a standard way to control installation
directories, selective tool building, and tests for prerequisite tools,
but those requirements should not need to be changed frequently. A
custom Makefile and/or configure with include files generated from
python or ruby seems to be a reasonable approach.
I'm willing to help and can use any of these tools with varying amount
of initial experience. Right now, I do not have strong thoughts about
the way to go, but feel that the status quo is not optimal in the long run.
The above data is meant only to further discussion.
-- Bruce
next prev parent reply other threads:[~2009-12-08 3:40 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-07 17:38 autogen.sh warnings Bruce Dubbs
2009-12-07 19:21 ` Colin Watson
2009-12-07 20:28 ` Bruce Dubbs
2009-12-07 22:12 ` Vladimir 'φ-coder/phcoder' Serbinenko
2009-12-07 23:07 ` Bruce Dubbs
2009-12-07 22:40 ` Colin Watson
2009-12-07 23:26 ` Bruce Dubbs
2009-12-09 21:52 ` Robert Millan
2009-12-09 22:19 ` Bruce Dubbs
2009-12-09 22:34 ` Felix Zielcke
2009-12-09 23:28 ` Bruce Dubbs
2009-12-10 0:25 ` Felix Zielcke
2009-12-10 6:05 ` Bruce Dubbs
2009-12-10 10:15 ` Felix Zielcke
2009-12-10 16:20 ` Bruce Dubbs
2009-12-24 21:13 ` Robert Millan
2009-12-29 3:50 ` Bruce Dubbs
2010-01-01 11:33 ` Robert Millan
2010-01-01 16:57 ` Bruce Dubbs
2010-01-03 16:25 ` Robert Millan
2009-12-10 0:49 ` Robert Millan
2009-12-09 22:56 ` Robert Millan
2009-12-07 19:50 ` Vladimir 'φ-coder/phcoder' Serbinenko
2009-12-07 20:51 ` Bruce Dubbs
2009-12-07 22:16 ` Vladimir 'φ-coder/phcoder' Serbinenko
2009-12-07 22:49 ` Bruce Dubbs
2009-12-07 23:54 ` Colin Watson
2009-12-08 0:01 ` Vladimir 'φ-coder/phcoder' Serbinenko
2009-12-08 0:13 ` Bruce Dubbs
2010-01-07 19:14 ` Robert Millan
2009-12-08 0:16 ` Colin Watson
2009-12-08 0:34 ` Building system (Re: autogen.sh warnings) Vladimir 'φ-coder/phcoder' Serbinenko
2009-12-08 3:40 ` Bruce Dubbs [this message]
2009-12-08 10:20 ` autogen.sh warnings Felix Zielcke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B1DCAA4.4000104@gmail.com \
--to=bruce.dubbs@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.