Skip to main content.
home | support | download

Back to List Archive

Re: buildswishe.pl

From: Peter Karman <karman(at)not-real.cray.com>
Date: Wed Sep 15 2004 - 18:19:42 GMT
Bill Moseley wrote on 9/15/04 9:21 AM:

> On Wed, Sep 15, 2004 at 09:13:40AM -0500, Peter Karman wrote:
> 
>>I'm working this a.m. on that buildswishe script, that tries to account 
>>for all these paths automatically. I'll post it when I have a copy I'm 
>>willing to show the world...
> 
> 
> I guess I need to wait and see, but isn't this what configure is all
> about?

I don't mean to replace configure. by all means, no. See below.

> 
> In the past configure has not always worked right for setting paths --
> I used to have to set LD_RUN_PATH when running make, but now it seems
> like configure uses (where available) --rpath when building the
> program.  That is, just setting CPPFLAGS and LDFLAGS seems to work as
> advertised lately and paths get linked in.
> 
> 

and yes, the 'where available' is a good caveat.

my experience with building with zlib and libxml2 on 4 different *nix 
variants (IRIX, Solaris, Mac OS X/Darwin, and Linux) is that there are 
subtle differences in syntax for the ./configure statement, as well as 
slight differences in how gcc works.

Rather than go crazy trying to remember the differences (my sanity is 
single-threaded anyway), I wrote the script below. It is now part of the 
CrayDoc 4 product (currently in development).

I have checked it in to the CVS tree, thinking that it might be most 
accessible there.

http://cvs.sourceforge.net/viewcvs.py/swishe/swish-e/buildswishe.pl?rev=1.1&view=auto

I'm sure there's lots of room for improvement. I have tested it on 
Solaris and Mac OS 10.3.4 this morning and it works fine there. I have 
tested it on Linux and IRIX previously, but it underwent a major rewrite 
this morning, so I can't vouch for those as of this moment.

Here's the basic pod. Please let me know if you find it useful or if you 
can suggest improvements.




NAME
        buildswishe.pl -- build latest version of SWISH-E

DESCRIPTION
        Perl script that optionally downloads latest versions of zlib,
        libxml2 and SWISH-E, compiles, tests and installs.

        buildswishe.pl aims to be smart about compiler options and
        LD_RUN_PATH settings for various flavors of Unix and Linux.

SYNOPSIS
                # run interactively
                perl buildswishe.pl

                # run with all defaults (non-interactive)
                perl buildswishe.pl --quiet

                # to see this doc and options (at end)
                perl buildswishe.pl --help

                # to see options
                perl buildswishe.pl --opts

REQUIREMENTS
         Perl 5.6.0 or later
         GNU gcc (tested with vers 2.95 or later)
         wget, curl or LWP::Simple
         tar
         gzip
         GNU make (tested with 3.79 and later)
         ld
         ldd (or otool for Darwin)

OPTIONS

   --cvs                   use latest CVS version of SWISH-E
   --force                 install zlib and libxml2 no matter what
   --help                  print usage statement
   --installdir=<X>        install in <X> [/usr/local/swish-e/latest]
   --libxml2=<X>           use <X> as libxml2 source -- either URL,
				tar.gz or directory
   --opts                  print options and description
   --prevxml2=<X>          use already-installed libxml2 in directory <X>
   --prevzlib=<X>          use already-installed zlib in directory <X>
   --quiet                 run non-interactively
   --srcdir=<X>            look in <X> for all src tar.gz files [./]
   --swishe=<X>            use <X> as swish-e source -- either URL,
				tar.gz or directory
   --tmpdir=<X>            use <X> to compile and test [/tmp]
   --verbose               don't send compiler output to log, send it to
				stdout
   --zlib=<X>              use <X> as zlib source -- either URL, tar.gz
				or directory



-- 
Peter Karman  651-605-9009  karman@cray.com
Received on Wed Sep 15 11:27:21 2004