Automake (1.4) and F77; environment (was RE: error in brag automake?)

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Sun Dec 30 2001 - 10:24:08 EST

  • Next message: Hironori Ito: "brat not compiling with RH7.1"

    Hi James, Flemming, et al, 
    
    On Fri, 28 Dec 2001 23:09:30 -0500
    Flemming Videbaek <videbaek@sgs1.hirg.bnl.gov> wrote
    concerning "RE: error in brag automake?":
    > James,
    > 
    > Just another idea. Please try to remove configure.cache before doing
    > the aclocal ... Sometimes bad stuff hangs around and is not clean
    > well  
    
    Just removing config.cache may not help you much in your case - see
    more below.  
    
    Incidently, the script autogen can help you clean up the stuff really
    tidy. Just do 
    
       ./autogen clean 
    
    What autogen usually does is to run 
    
       aclocal [-I config] 
       automake -a 
       autoconf 
       ./configure [Options given to autogen] 
    
    Which saves you 20 key hits :-) It's design for lazy bastards like
    myself. 
    
    > On Fri, 28 Dec 2001, jnorris wrote:
    > 
    > > Flemming (et al),
    > > 
    > > > ----------
    > > > From: 	Flemming Videbaek
    > > > Reply To: 	brahms-dev-l@bnl.gov
    > > > Sent: 	Thursday, December 27, 2001 6:29 PM
    > > > To: 	brahms-dev-l@bnl.gov
    > > > Subject: 	Re: error in brag automake?
    > > > 
    > > > Dear James,
    > > > 
    > > > Just for your info; This does not happen at mny asetup on RCF
    > > > (rcas..) defined as in the README file.
    > > > 
    > > If you're talking about substituting the 
    > > 
    > > 		./configure --with-cern-libdir=/opt/brahms/cern/2000/lib
    > > 
    > > for the
    > > 
    > > 		./configure
    
    The issue of the bad CERNLIB version 2001 is rather bewildering.  I
    haven't tried on my home system yet, which uses the RPMs avaliable
    from CERN directly, and is a different system from what we got at the
    CAS and NBI machines (It's, as you probably guessed, a Debian
    GNU/Linux system).  
    
    > > In the "Quickstart" procedure, the error I'm encountering below is
    > > being generated by the  
    > > 
    > > 		aclocal -I config && automake -a && autoconf
    
    I believe the error comes from Automake.  If in doubt with these kind
    of commandlines, execute each command seperately, as 
    
      aclocal -I config 
      automake -a 
      autoconf 
    
    > > > Could you tells us, what machine, the $path and environment your
    > > > setup is. 
    > > > 
    > > I'm trying to run on rcas0019, and my path is:
    > > 
    > > /usr/local/bin /afs/rhic/opt/brahms/root/pro/bin
    > > /afs/rhic/opt/brahms/pro/bin /cern/2000/bin . /usr/afsws/bin /usr/afsws/etc
    > > /usr/local/lsf/bin /usr/local/bin /usr/bin /bin /usr/local/bin
    > > /usr/X11R6/bin /usr/sbin /afs/rhic/opt/brahms/brat/pro/bin/linux
    > > /opt/rhic/bin /opt/brahms/bin /opt/phenix/bin /brahms/u/jnorris/bin
    > > /brahms/u/jnorris/brahms /brahms/u/jnorris/brahms/gbrahms/ana
    > > /brahms/u/jnorris/brahms/gbrahms/bin
    > > /brahms/u/jnorris/brahms/gbrahms/bin/linux
    
    I'm a afraid you problem lies here.   See more below. 
    
    As for your PATH environment variable, there's a few things I'd like
    to note: 
    
    *  Never _ever_ put '.' in your path!  This is important, since you
       may cd to a directory that contains a trojan horse disguised as a
       innocent ls.  I've attached a small (some 70 lines of code) C
       program that illustrates just that. 
    
    *  Your PATH environment should never be too long, since that may very
       well make some shells on some systems do hick-ups; it's not really
       a problem on Linux, but at least Digital Unix has a problem.
       Therefor, try to root out unnessecary directories and duplicates. 
    
    May I suggest that you use the setup scripts of the brahmlib account
    on both the CAS, CRS, MINE, and PII farms.  Backup your ~/.login and
    ~/.cshrc files and make the file ~/.login with the following contents: 
    
      #
      # Startup file for use by BRAHMS accounts on the CAS, MINE, and PII
      # farms  
      #
     
      # Un comment the next line if you want to use the new branch of our
      # software trees
      # export BRAHMS_NEW=1 
    
      # Source the common setup file, maintained by the brahmlib account. 
      if ( -f /brahms/u/brahmlib/etc/brahms.login ) then 
          source /brahms/u/brahmlib/etc/brahms.login 
      endif  
    
      # Add what ever stuff here you may need.  For example aliases,
      # (tail) additions to the PATH environment, and so on. 
    
    
    > > I'm afraid I don't understand what you mean by "environment your
    > > setup is", though.  Sorry.
    
    That's the output of the command "env" in case you're using a SH-like
    shell, or "printenv" in case of a CSH-like shell; my guess is that
    you're using TCSH.  I just checked - you do: 
    
      rcas0019:~> finger jnorris 
      Login: jnorris                            Name: James Norris
      Directory: /brahms/u/jnorris              Shell: /usr/local/bin/tcsh
    
    > > > > People,
    > > > >
    > > > > Is it possible someone's recently made a boo boo that causes
    > > > > the following error when I try to do a distclean on brag:
    
    The parts of configure.in (which is the file that tells Autotools most
    stuff) which deals with the Fortran77 preprocessor/compiler/linker,
    hasn't changed since BRAG 1.0.0 (the first release).   
    
    > > > > Undefined subroutine &main::lang_ppf77_rewrite called at
    > > > > /afs/rhic/opt/brahms/pro/bin/automake line 1093.
    
    This problem is due to an older Automake or an errouneous Makefile.am 
    
    The problem is, that in Automake version 1.4 the (Perl) function
    'lang_ppf77_rewrite' isn't defined.  This function is supposed to
    write the rule of how to translate Fortran77 source files that need
    preprocessing (typically has the ending .F) into Fortran77 files that
    can be compiled directly (typically named .f).   
    
    Why that function was never defined is beyound me.  Anyway, I made a
    patch ones (and sent it to the maintainers), but I'm afraid it never
    made it into the regular distributions.  If you want that patch, see
    [1], and the thread that follows. 
    
    The way we work around that problem in BRAG and BREG, is to write the
    rule ourselves in config/config.mk: 
    
      %.f:%.F
              $(CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $< -o $@
    
    and then let each sublibrary depend on the preprocessed sources, for
    example in src/gene: 
    
      
      noinst_LTLIBRARIES = libgene.la
      libgene_la_SOURCES =  \
                        eg_read_code_bank.f \
                        egopen.f \
                        ...
    
      EXTRA_DIST =  \
                        eg_read_code_bank.F \
                        egopen.F \
                        ... 
    
    So, to cut a long story short, your problem probably caused by someone
    adding a .F file to some _SOURCES variable, which will make Automake
    try and call 'lang_ppf77_rewrite', which isn't defined.  
    
    However, I just did a fresh checkout 
    
      brahms-cvs co brag 
      cd brag 
      aclocal -I config 
      automake -a 
      autoconf 
      ./configure --prefix=/brahms/u/cholm/i386_redhat61 \
        --with-cern-libdir=/afs/rhic/opt/brahms/cern/2000/lib \
        --with-cern-bindir=/afs/rhic/opt/brahms/cern/2000/bin 
    
    and had no problems.  Perhaps you should try an update? 
    
    Yours, 
    
    Christian Holm Christensen -------------------------------------------
    Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
             DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
             Denmark                             Office: (+45) 353  25 305 
    Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm
    
    [1] http://sources.redhat.com/ml/bug-automake/2001/msg00139.html
    



    This archive was generated by hypermail 2b30 : Sun Dec 30 2001 - 10:24:42 EST