RE: setup changes to build standalone

2002-04-26 Thread Robert Collins



 -Original Message-
 From: Gary R. Van Sickle [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 2:25 PM

  On a separate but related topic, I'd like to automakeise (is that a
  word) setup - if there are no objections from the other 
 contributors.
 
 No, on the contrary I think that's a great idea.  Raw 
 Makefile.in's scare the hell out of me. ;-)

Heh. The main things I get from automake is
a) make dist. I _love_ this so much it ain't funny.
b) all the 'stock' rules - so that things like make clean _always_ hit
all subdirs etc etc.
c) consistent VPATH support.
d) multicompiler dependencies (not that I personally use it much, I'm
gcc most everywhere)
e) non-recursive makefiles of a reasonable size.

Makefile.in's aren't good or bad in raw form IMO.

Rob



Re: setup changes to build standalone

2002-04-26 Thread Jan Nieuwenhuizen

Robert Collins [EMAIL PROTECTED] writes:

 Heh. The main things I get from automake is
 a) make dist. I _love_ this so much it ain't funny.

If you're willing to depend on gnu make features, make dist is no
rocket science.

Because of the horrors of automake, we've implemented a sane set of
make rules, mainly for LilyPond, that has all these features and allows

 e) non-recursive makefiles of a reasonable size.

a make file for a library or executable typically about 10 lines long.


Jan.

-- 
Jan Nieuwenhuizen [EMAIL PROTECTED] | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien   | http://www.lilypond.org




RE: setup changes to build standalone

2002-04-26 Thread Robert Collins



 -Original Message-
 From: Jan Nieuwenhuizen [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 6:42 PM

  I'll have a look at some point. I actually find automake much less 
  horrible that doing everything by hand. Anyway, this is 
 off-topic here 
  - unless you are objecting to setup being automakified?
 
 No, it's rather off-topic, sorry.

No problem, just ensuring we didn't end up in a -long- discussion about
automakes +'s and -'s.
 
Cheers,
Rob



Re: setup changes to build standalone

2002-04-26 Thread Earnie Boyd

Charles Wilson wrote:
 
 Robert Collins wrote:
 
  Yes. I even documented all this some time back on
  http://www.cygwin.com/ml/cygwin-apps/2001-11/msg00634.html, but
  predicatably enough, no patches where forthcoming. Probably due to the
  complete lack of a prebuilt bz2lib for mingw (that my cursory searches
  have looked for).
 
 https://sourceforge.net/projects/mingwrep/
 

I don't know if the maintainers of this site are still maintaining it. 
Paul Sokolovsky isn't active any longer and Stefan Jahn isn't a MinGW
developer.  This is one of those projects that I wish weren't.  OTOH,
https//sourceforge.net/projects/mingw/ would be willing to upload any
MinGW package if it followed the --prefix=/mingw --host=mingw32
packaging rules (which unfortunately aren't documented except in the
mingw-dvlpr archives) and that person was willing to maintain the
pacakge (would need a SF account and be listed as a MinGW developer).

 
 I wonder if we need a mingw-libs package.
 
 
  Yes, please, please, yes. I would really really love it if some of the
  common libs (zlib, bz2lib, stdc++) where available in a setup.exe
  installable pacakge.
 
 Yes, I like this too -- but I'm nervous about it growing ridiculously
 large.  What if (eventually) setup.ini turns into XML?  Do we put a
 mingw build of libxml into 'mingw-libs'?  How far does this go?
 (visions of full{mingw}.exe)
 
 OTOH, we've already discussed (and discarded, thank g-d) the idea of
 (for instance) the zlib maintainer providing both a
 cygwin-setup-installable zlib package (/usr/bin/cygz.dll,
 /usr/lib/libz.[dll|a]) and a cygwin-setup-installable mingw-zlib package
 (/usr/bin/mgwz.dll, /usr/lib/mingw/libz.[dll|a]).  Ditto bzip2, libxml,
 ...  we are not a mingw-porting factory.
 

This is good.  IMO, there should be no binaries not dependent on
cygwin1.dll in the /bin a.k.a. /usr/bin and that the /bin and /usr/bin
directories be marked as --cygwin-executable.  One reason for doing this
is that it speeds the execution process for spawning by avoiding win32
translations.

 2) The above won't work in a cross build environment.  You could say
CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.
  for cross compiles:
  ../setup/configure --host=i686-pc-mingw32 --build-i686-pc-linux
  should do it (assuming a mingw32 cross compiler is present), or a
  combination using the CC string you have above with the mingw host will
  work too.
 
 whatever happened to the idea of an official cygwin package, that
 contained a true cygwin-host, mingw-target cross compiler?  Didn't
 somebody or other volunteer to provide that?
 

Oh, I thought about it sometime ago, I've been busy with MSYS and have
decided against my maintaining another package.  Perhaps when Danny gets
3.1 up he can provide a Cygwin hosted Mingw32 targeted set of binaries. 
I also remember a discussion on one of Cygwin's lists about using
scripts and symlinks to emulate this and may be the smartest way to go
about providing cross build emulation.

 (Granted, we still need 'cygwin-gcc -mno-cygwin' for the self-hosting
 feature of cygwin1.dll, but there's no real need to *require* cygwin-gcc
 -mno-cygwin for setup.exe, now that setup has been moved out of the
 winsup tree)
 

Well, if you had a mingw32-gcc (cygwin hosted, mingw32 targeted) then
you could use that instead of `gcc -mno-cygwin'.

 anything that is non-simple.  I haven't looked at it in a
 while, though, so maybe things have changed.
 
 
  It really depends on what you want to do. Some stuff it does
  spectalularly well, some things it has trouble with. With the 'cross
  compiling but not' approach, it would almost certainly have some trouble
  :}.
 
 see above, true cross compiler...
 

Or even the simulated with script and symlink one.

Earnie.



Re: setup changes to build standalone

2002-04-26 Thread Earnie Boyd

Robert Collins wrote:
 
 d) a --with-cygwin-headers=/path/to/headers and in mount.cc pickup the
 needed headers.
 

With a default of $(prefix)/include.

Earnie.



RE: setup changes to build standalone

2002-04-26 Thread Robert Collins



 -Original Message-
 From: Earnie Boyd [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 10:34 PM
 To: Robert Collins
 Cc: Cygwin-Apps
 Subject: Re: setup changes to build standalone
 
 
 Robert Collins wrote:
  
  d) a --with-cygwin-headers=/path/to/headers and in mount.cc 
 pickup the 
  needed headers.
  
 
 With a default of $(prefix)/include.

Exactly.

Rob



Re: setup changes to build standalone

2002-04-25 Thread Christopher Faylor

On Fri, Apr 26, 2002 at 01:03:05PM +1000, Robert Collins wrote:
To build setup we need:
a mingw bz2lib
a mingw zlib
w32api
in the future (soon I hope):
a mingw libstdc++ (and any dependencies it has).

So,
I've made a copy of bz2lib from src/winsup/bz2lib to set/bz2lib, and
adjusted accordingly.

Ack.  Duplication.  Duplication bad.

Here was a good reason not to move cinstall.  Sigh.

I can't think of any way around this, though.  Even if we say
You must have a mingw version of libbz2.a available that will
screw up my need for this library in winsup.

I wonder if we need a mingw-libs package.

A second issue is that I cannot get configure to play nice in the new
location without updating to 2.5x. That doesn't concern me, does it
concern anyone else?

Nope.

The configure line to prepare a website version of setup will be:
../setup/configure' --host=i686-pc-mingw32 --build=i686-pc-cygwin
'CC=gcc -mno-cygwin' 'CXX=g++ -mno-cygwin'.

It should configure and build a cygwin1.dll linked version quite happily
if the --host parameter is left off. That may also be useful for test
builds and the like, and also for building command line mirroring tools
etc etc.

1) Why the --host=?  So that you'll be able to use a mingw version of
   everything?

2) The above won't work in a cross build environment.  You could say
   CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.

I'll post a patch (probably up on sources.redhat.com/cygwin-apps/setup)
when I've got everything ready. (It's gonna be big (at least the size of
bz2lib :}) or I'd just drop it here). Then if a couple of folk have
success with it, I'll check it in.

Any comments, peanuts, etc?

I think you should just check it in and tweak things in cvs rather
than post a patch.  It's not going to impact anyone but a tiny
handful of people if you use cvs but it will impact a much larger
audience if you send out patches.

On a separate but related topic, I'd like to automakeise (is that a
word) setup - if there are no objections from the other contributors.
I'll do this as a separate commit, that is if noone has serious issues
with it.

I actually started doing this when the cinstall directory was first
introduced then realized, as I always do, that I hate automake.  For
me, it requires too much pain to get it to do anything that is
non-simple.  I haven't looked at it in a while, though, so maybe
things have changed.

Nevertheless, I have no objections to this.

cgf



RE: setup changes to build standalone

2002-04-25 Thread Robert Collins



 -Original Message-
 From: Christopher Faylor [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 1:19 PM

 So,
 I've made a copy of bz2lib from src/winsup/bz2lib to set/bz2lib, and 
 adjusted accordingly.
 
 Ack.  Duplication.  Duplication bad.

Yup.
 
 Here was a good reason not to move cinstall.  Sigh.

Yes. I even documented all this some time back on
http://www.cygwin.com/ml/cygwin-apps/2001-11/msg00634.html, but
predicatably enough, no patches where forthcoming. Probably due to the
complete lack of a prebuilt bz2lib for mingw (that my cursory searches
have looked for).
 
 I can't think of any way around this, though.  Even if we say 
 You must have a mingw version of libbz2.a available that 
 will screw up my need for this library in winsup.
 
 I wonder if we need a mingw-libs package.

Yes, please, please, yes. I would really really love it if some of the
common libs (zlib, bz2lib, stdc++) where available in a setup.exe
installable pacakge.
 
 1) Why the --host=?  So that you'll be able to use a mingw version of
everything?

Yes. It gets rid of the need for mingw_foo in the make files, and makes
it explicit that we are cross compiling.
 
 2) The above won't work in a cross build environment.  You could say
CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.

for cross compiles:
../setup/configure --host=i686-pc-mingw32 --build-i686-pc-linux 
should do it (assuming a mingw32 cross compiler is present), or a
combination using the CC string you have above with the mingw host will
work too.
 
 I think you should just check it in and tweak things in cvs 
 rather than post a patch.  It's not going to impact anyone 
 but a tiny handful of people if you use cvs but it will 
 impact a much larger audience if you send out patches.

Ok, will do. 
 
 anything that is non-simple.  I haven't looked at it in a 
 while, though, so maybe things have changed.

It really depends on what you want to do. Some stuff it does
spectalularly well, some things it has trouble with. With the 'cross
compiling but not' approach, it would almost certainly have some trouble
:}.

Rob



Re: setup changes to build standalone

2002-04-25 Thread Christopher Faylor

On Fri, Apr 26, 2002 at 01:44:32PM +1000, Robert Collins wrote:
 2) The above won't work in a cross build environment.  You could say
CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.

for cross compiles:
../setup/configure --host=i686-pc-mingw32 --build-i686-pc-linux 
should do it (assuming a mingw32 cross compiler is present), or a
combination using the CC string you have above with the mingw host will
work too.

Assuming you have a mingw cross compiler is what I was trying to avoid.
For this purpose a 'gcc -mno-cygwin' compiler should work fine.

I think the use of CC='i686-pc-cygwin-gcc -mno-cygwin' should work
everywhere though.

cgf



Re: setup changes to build standalone

2002-04-25 Thread Charles Wilson

Robert Collins wrote:

 Yes. I even documented all this some time back on
 http://www.cygwin.com/ml/cygwin-apps/2001-11/msg00634.html, but
 predicatably enough, no patches where forthcoming. Probably due to the
 complete lack of a prebuilt bz2lib for mingw (that my cursory searches
 have looked for).


https://sourceforge.net/projects/mingwrep/

 
I wonder if we need a mingw-libs package.

 
 Yes, please, please, yes. I would really really love it if some of the
 common libs (zlib, bz2lib, stdc++) where available in a setup.exe
 installable pacakge.


Yes, I like this too -- but I'm nervous about it growing ridiculously 
large.  What if (eventually) setup.ini turns into XML?  Do we put a 
mingw build of libxml into 'mingw-libs'?  How far does this go? 
(visions of full{mingw}.exe)

OTOH, we've already discussed (and discarded, thank g-d) the idea of 
(for instance) the zlib maintainer providing both a 
cygwin-setup-installable zlib package (/usr/bin/cygz.dll, 
/usr/lib/libz.[dll|a]) and a cygwin-setup-installable mingw-zlib package 
(/usr/bin/mgwz.dll, /usr/lib/mingw/libz.[dll|a]).  Ditto bzip2, libxml, 
...  we are not a mingw-porting factory.

2) The above won't work in a cross build environment.  You could say
   CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.
 for cross compiles:
 ../setup/configure --host=i686-pc-mingw32 --build-i686-pc-linux 
 should do it (assuming a mingw32 cross compiler is present), or a
 combination using the CC string you have above with the mingw host will
 work too.


whatever happened to the idea of an official cygwin package, that 
contained a true cygwin-host, mingw-target cross compiler?  Didn't 
somebody or other volunteer to provide that?

(Granted, we still need 'cygwin-gcc -mno-cygwin' for the self-hosting 
feature of cygwin1.dll, but there's no real need to *require* cygwin-gcc 
-mno-cygwin for setup.exe, now that setup has been moved out of the 
winsup tree)


anything that is non-simple.  I haven't looked at it in a 
while, though, so maybe things have changed.

 
 It really depends on what you want to do. Some stuff it does
 spectalularly well, some things it has trouble with. With the 'cross
 compiling but not' approach, it would almost certainly have some trouble
 :}.


see above, true cross compiler...

--Chuck





RE: setup changes to build standalone

2002-04-25 Thread Gary R. Van Sickle

 A second issue is that I cannot get configure to play nice in the new
 location without updating to 2.5x. That doesn't concern me, does it
 concern anyone else?

Not me.

 On a separate but related topic, I'd like to automakeise (is that a
 word) setup - if there are no objections from the other contributors.

No, on the contrary I think that's a great idea.  Raw Makefile.in's scare the
hell out of me. ;-)

--
Gary R. Van Sickle
Brewer.  Patriot.




RE: setup changes to build standalone

2002-04-25 Thread Robert Collins



 -Original Message-
 From: Christopher Faylor [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 2:07 PM
 To: [EMAIL PROTECTED]
 Subject: Re: setup changes to build standalone
 
 
 On Fri, Apr 26, 2002 at 01:44:32PM +1000, Robert Collins wrote:
  2) The above won't work in a cross build environment.  You 
 could say
 CC='i686-pc-cygwin-gcc -mno-cygwin'..., I guess.
 
 for cross compiles:
 ../setup/configure --host=i686-pc-mingw32 --build-i686-pc-linux
 should do it (assuming a mingw32 cross compiler is present), or a
 combination using the CC string you have above with the 
 mingw host will
 work too.
 
 Assuming you have a mingw cross compiler is what I was trying 
 to avoid. For this purpose a 'gcc -mno-cygwin' compiler 
 should work fine.

 I think the use of CC='i686-pc-cygwin-gcc -mno-cygwin' should 
 work everywhere though.

Cool. No issues there.

Rob



RE: setup changes to build standalone

2002-04-25 Thread Robert Collins



 -Original Message-
 From: Charles Wilson [mailto:[EMAIL PROTECTED]] 
 Sent: Friday, April 26, 2002 2:12 PM
 
 
 https://sourceforge.net/projects/mingwrep/
 
Thanks.
  
 I wonder if we need a mingw-libs package.
 
  
  Yes, please, please, yes. I would really really love it if 
 some of the 
  common libs (zlib, bz2lib, stdc++) where available in a setup.exe 
  installable pacakge.
 
 
 Yes, I like this too -- but I'm nervous about it growing ridiculously 
 large.  What if (eventually) setup.ini turns into XML?  Do we put a 
 mingw build of libxml into 'mingw-libs'?  How far does this go? 
 (visions of full{mingw}.exe)

glib + foo + bar + ...

If this sort of expansion were to occur, I'd suggest we take the
split-setup option and have a bootstrapping setup that is essentially
what we have today, but is only run once - ever. Then after that a
maintenance setup that is able to use cygwin linked tools.
 
 OTOH, we've already discussed (and discarded, thank g-d) the idea of 
 (for instance) the zlib maintainer providing both a 
 cygwin-setup-installable zlib package (/usr/bin/cygz.dll, 
 /usr/lib/libz.[dll|a]) and a cygwin-setup-installable 
 mingw-zlib package 
 (/usr/bin/mgwz.dll, /usr/lib/mingw/libz.[dll|a]).  Ditto 
 bzip2, libxml, 
 ...  we are not a mingw-porting factory.

Agreed.
 
 whatever happened to the idea of an official cygwin package, that 
 contained a true cygwin-host, mingw-target cross compiler?  Didn't 
 somebody or other volunteer to provide that?

I recall Danny talking about a gcc v 3.1 for April, but I'm not sure if
he meant as a cygwin package or as something else...
 
  It really depends on what you want to do. Some stuff it does
  spectalularly well, some things it has trouble with. With the 'cross
  compiling but not' approach, it would almost certainly have 
 some trouble
  :}.
 
 see above, true cross compiler...

Yup. In fact gcc -mno-cygwin is close enough that automake won't be
confused... as long as it's told --host= :}.

Rob



RE: setup changes to build standalone

2002-04-25 Thread Robert Collins



 -Original Message-
 From: Robert Collins 
 Sent: Friday, April 26, 2002 1:03 PM
 To: Cygwin-Apps
 Subject: setup changes to build standalone
 
 
 To build setup we need:
 a mingw bz2lib
 a mingw zlib
and a mingw getopt. For now I'm putting this in the setup directory, but
I'll almost certainly bundle it with libgetopt++ (as no symbols from it
are needed by the setup sources).

Rob



RE: setup changes to build standalone

2002-04-25 Thread Robert Collins



 -Original Message-
 From: Robert Collins 
 Sent: Friday, April 26, 2002 3:28 PM
 To: Robert Collins; Cygwin-Apps
 Subject: RE: setup changes to build standalone
 
 
 
 
  -Original Message-
  From: Robert Collins
  Sent: Friday, April 26, 2002 1:03 PM
  To: Cygwin-Apps
  Subject: setup changes to build standalone
  
  
  To build setup we need:
  a mingw bz2lib
  a mingw zlib
 and a mingw getopt. For now I'm putting this in the setup 
 directory, but I'll almost certainly bundle it with 
 libgetopt++ (as no symbols from it are needed by the setup sources).
sigh. And /src/winsup/cygwin/include/cygwin/version.h and
/src/winsup/cygwin/include/sys/mount.h. 

For starters I'm just absorbing the content (only mount.cc needs them).
However I think we should look at either
a) having a mingw library for manipulating cygwin mount points
officially available or
b) having setup.exe call cygwin's mount.exe to setup the mount points in
the first place, rather than setup being tightly linked to cygwin's
registry format.
c) some variation on the above themes.
d) a --with-cygwin-headers=/path/to/headers and in mount.cc pickup the
needed headers.

Rob