All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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.