This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [crosstool-NG] Design discussion


On Tuesday 07 April 2009 07:39:19 Ladislav Michl wrote:
> On Sun, Apr 05, 2009 at 05:45:30PM -0500, Rob Landley wrote:
> > On Sunday 05 April 2009 12:44:41 nyet wrote:
> > > Rob Landley wrote:
> > > > I need to
> > > > download the new version of crosstool-ng in the morning, fight with
> > > > getting it installed again, and pick up from here.
> > >
> > > svn update
> > > ./configure --local
> > > make
> > > make install
> > >
> > > done.
> >
> > A) Your definition of "done" does not involve having actually configured
> > or built a toolchain yet.  This "done" is equivalent to "I just extracted
> > the tarball" in any other project.
> >
> > B) What other project has both ./configure and menuconfig?  Generally,
> > you have one or the other, not both.
>
> PTXdist (and this project is worth to check as well;
> http://www.pengutronix.de/software/ptxdist/index_en.html). And without
> looking at crosstool-ng source too closely, it looks like ./configure and
> menuconfig are used in the same way. So ./configure && make is used to
> build the tool itself and menuconfig serves to configure toolchain options.
> Doesn't it seem reasonable enough solution?

I vaguely recall poking at that over the past year, but somebody else had 
already installed it.

  $ ./configure
  checking for ptxdist patches... no
  configure: error: install the ptxdist-patches archive into the same
  directory as ptxdist.

Why is that a separate tarball?  If the base distro can't do _anything_ 
without the patches, and they're released simulataneously into the same 
download directory...

And on top of all the stuff I installed for crosstool, _this_ one wants me to 
install "expect".  Grumble.

Ok, I configured it, I did "make" and it built menuconfig, which I found odd.  
Then I did "make menuconfig" and it said "no rule to make target menuconfig".  
(So deeply impressed right now.)

Ok, "./configure --prefix=`pwd`/tmpdir" and then "make install" into that...  
and it just copied the patches directory it insisted I untar into its source 
directory.  Went into tmpdir, ran bin/ptxdist, and it spit out 68 lines 
according to wc.

Ok, this is another package doing this, but that doesn't make it right.  Why 
on _earth_ would you need to install source code before you're allowed to 
configure and compile it?  The only thing it actually built when I did the 
first "make" was the kconfig binaries.  The kernel (where kconfig comes from) 
does not require you to make and install kconfig before using menuconfig.  
Neither do long-term users of it like busybox or uClibc...

Right, humor it:

  $ bin/ptxdist menuconfig

  ptxdist: error: ptxconfig file is missing
  ptxdist: error: please 'ptxdist clone' an existing project

Insane.  Right, give it a try:

  $ bin/ptxdist clone

Spits out exactly the same help as if you run ptxdist without arguments, ok 
scroll down to "clone", which says:

  clone <from> <to>              create a new project, cloned from <from>.

No clue where the "from" options are.  Nothing obvious in the "lib" or "bin" 
directories it installed, and I already deleted the source it "installed" 
from since it obviously wasn't _using_ it...

If I had to make this work, the next step would be to go to the website and 
look for online documentation, or re-extract the source tarball and see what 
that had, but I'm afraid I've run out of interest.

Getting back to your original point, "building the tool itself" in this 
context apparently means building the menuconfig binary, because bin/ptxdist 
itself is a bash script.  I have no idea what the first ./configure; make; 
make install cycle is expected to accomplish.  (Other than hardwiring in 
absolute paths you can detect at runtime with the pwd command or perhaps by 
some variant of readlink -f "$(which "$0")" if you want to be _more_ flexible 
than the make command...)

Will I someday have to compile and install makefiles before I can build the 
package they describe?  I do not understand what these extra steps 
accomplish...


Rob
-- 
GPLv3 is to GPLv2 what Attack of the Clones is to The Empire Strikes Back.

--
For unsubscribe information see http://sourceware.org/lists.html#faq


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]