This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


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: results of compiling berkeleydb


On Mon, Oct 13, 2003 at 12:56:49AM -0400, Christopher Faylor wrote:
> On Sun, Oct 12, 2003 at 06:03:44PM -0700, Edward Peschko wrote:
> >Ok, I did as requested, and tried to compile berkeleydb with
> >-mno-cygwin.  Results are below, along with some
> >thoughts/reflections....
> 
> Hint:
> 
> GCC='gcc -mno-cygwin' ./configure.

No.. that is not a generic solution. If, for example, there is a 'config' directory
(as in the case with tcsh), that sets make variables (as per tcsh), then you need
to pick up the correct target. Which is sometimes not provided as a command-line 
argument, especially in projects that don't use gnu configure (ex: perl, 
perl modules, clisp, boost ).

And if there is something special that the mingw tools are doing in 
processing the build that isn't handled by the cygwin tools, then no amount of 
setting of environmental variables or command line options will make the 
compilation work. And its easy for cygwin to forget side effects that kill the build
(ex: -mno-cygwin doesn't define WINNT, which mingw does)

And anyways you miss my point. My goal was to see if you could, quick and dirty, build
berkeleydb, quick and dirty as if you were using mingw. I know that you can come up with 
a series of command line arguments - after several trials and several errors - that 
'do the job' for the most part.  

Here for example is the cross-compilation script for linux <=> mingw32 making 
development tools:

	../configure --host=i586-pc-linux-gnu --build=i586-pc-linux-gnu 
                 --target=i586-pc-cygwin32 --with-gnu-ld --with-gnu-as --enable-threads=no
				 --with-gxx-include-dir=/usr/i586-pc-cygwin32/sys-include/c++
				 --with-headers=/usr/i586-pc-cygwin32/sys-include
				 --with-libs=/usr/i586-inX-cygwin32/lib
				 --includedir=/usr/i586-pc-cygwin32/sys-include
				 --libdir=/usr/i586-inX-cygwin32/lib
				 --with-mmap --enable-bfd-assembler
				 --enable-languages="c,c++"

I'd probably end up with something like this for BerkeleyDB. And personally, I don't 
want to type this. Anytime you make a typo in a long statement like this (like missing 
a letter or what have you) you can spend minutes/hours compiling before you realize 
that you made a mistake - at link time - and may need to backtrack to 
the beginning of the compilation.

Look, I'm a firm believer in making things as simple as possible for the end user.
There is nothing simpler than setenv NO_CYGWIN 1; ./configure; make; make install.
Why the static?

Ed

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


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