Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Authentication-Warning: mdssirds.comp.pge.com: esp5 set sender to esp5 AT pge DOT com using -f Date: Sun, 12 Oct 2003 22:59:41 -0700 From: Edward Peschko To: cygwin AT cygwin DOT com Subject: Re: results of compiling berkeleydb Message-ID: <20031013055941.GA20245@mdssirds.comp.pge.com> References: <20031013010344 DOT GA18830 AT mdssirds DOT comp DOT pge DOT com> <20031013045649 DOT GA15683 AT redhat DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20031013045649.GA15683@redhat.com> User-Agent: Mutt/1.4.1i 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/