Re: quation about automake with additional optimization

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Thu Jul 24 2003 - 05:09:46 EDT

  • Next message: Hironori Ito: "Re: quation about automake with additional optimization"
    Hi Hiro,
    
    Hironori Ito <hito@rcf.rhic.bnl.gov> wrote concerning
      quation about automake with additional optimization [Wed, 23 Jul 2003 14:18:14 -0400] 
    ----------------------------------------------------------------------
    > Hello.  I have a very simple question to autotool experts.  How do I use 
    > additional optimization flags when I build brat?  I want to pass 
    > "-march=pentium4 -msse2".
    
    Setting specific compiler flags is quite simple.  All you have to do,
    is to set the appropriate environment variable when running
    `./configure' - for example: 
    
      ./configure CXXFLAGS="-march=pentium4 -msse2"
    
    The full list of possible variables, that I know of off-hand, is 
    
      CPP	      The C preprocessor to use
      CPPFLAGS    C preprocessor flags 
      CC	      The C compiler to use
      CFLAGS      C compiler flags 
      CXX	      The C++ compiler to use 
      CXXFLAGS    C++ compiler flags 
      LD	      The linker to use (caution: Libtool does a better job
    	      than you do, unless you know exactly what you're
    	      doing). 
      LDFLAGS     The flags to pass to the linker (caution: same as above)
      LATEX	      LaTeX command to use 
      LATEX2HTML  LaTeX to HTML command to use
      DVIPS	      Dvi to PS translator
      MAKEINDEX   Index generator 
      FIG2DEV     Fig translation program 
    
    For the Fortran code packages, the variables are
    
      CPP	      The C preprocessor to use
      CPPFLAGS    C preprocessor flags 
      CC	      The C compiler to use
      CFLAGS      C compiler flags 
      F77	      Fortran77 compiler to use
      FFLAGS      Flags for the Fortran77 compiler 
      LD	      The linker to use (caution: same as above)
      LDFLAGS     The flags to pass to the linker (caution: same as above)
    
    Newer version of Autoconf make `./configure --help' report the
    possible variables. 
    
    Also, if you'd rather use another compiler than GCC, say the Intel
    C/C++/Fortran77 compilers, or the system compiler on non-GNU systems,
    like CC on Solaris, cxx on Digitial/Compaq/HP Unix, and so on, you can
    specify that too:
    
      ./configure CC=ecc CXX=ecc 
    
    [Notice how I assume that you're on an Itanium machine, just for the
    heck of it :-)] 
    
    In general, `./configure' will use the appropriate linker and
    preprocessor based on your compiler choice. 
    
    This is all pretty well documented in the `INSTALL' file, as well as
    in the manual of `Autoconf': 
    
      info "(autoconf)Invoking configure" "Compilers and Options"
    
    Please do read the manual for more on these and other issues.  The
    manuals of the Autotools tools (he!) are rather good.  Also, in the
    BRAT guide, there's a reference to the online `Autobook' book (another
    one!), which is even more pedagogical. 
    
    Actually, I said something not entirely correct above.  With older
    versions of  Autotools (the ones shipped with Red Hat pre-8), you have
    to put the variable assignment _before_ the `./configure' invocation: 
    
      CXXFLAGS="-march=pentium4 -msse2" ./configure 
    
    That's a pain in the behind, but nothing to do about that.  Newer
    versions of Autotools _prefer_ putting the variable assignment after
    the `./configure' invocation, but does accept the old-style assignment
    too. 
    
    Oh, and another thing I forgot to tell you in my recent rants, is the
    possibility of building out-side of the source tree, which is really
    cool.  An example session could be: 
    
      ~> cvs -d /afs/rhic/brahms/BRAHMS_CVS co brat 
      ~> cd brat 
      ~/brat> aclocal && automake -a && autoconf 
      ~/brat> mkdir i386_linux24 
      ~/brat> cd i386_linux24 
      ~/brat/i386_linux24> ../configure --prefix=/usr
      ~/brat/i386_linux24> make 
      ~/brat/i386_linux24> make install
    
    That will put all the build stuff into a sub-directory of `~/brat'
    rather then directly in the source tree, which is nice for large (>200
    components) packages.  In fact, the GCC build-system will not allow
    you to build directly in the source tree. 
      
    A long answer to a simple question, but I guess you're used to that by
    now. 
    
    Hope that helps you.
    
    Yours,
    
     ___  |  Christian Holm Christensen 
      |_| |	 -------------------------------------------------------------
        | |	 Address: Sankt Hansgade 23, 1. th.  Phone:  (+45) 35 35 96 91
         _|	          DK-2200 Copenhagen N       Cell:   (+45) 24 61 85 91
        _|	          Denmark                    Office: (+45) 353  25 305
     ____|	 Email:   cholm@nbi.dk               Web:    www.nbi.dk/~cholm
     | |
    


    This archive was generated by hypermail 2.1.5 : Thu Jul 24 2003 - 05:10:20 EDT