Commits

Satish Balay committed e9de067

tao: 'mv * tao/' in preperation for a merge with petsc sources

  • Participants
  • Parent commits 21092c8

Comments (0)

Files changed (1066)

File .hgignore

-syntax: glob
-*~
-*\#
-BROWSE
-TAGS*
-lib/*
-ftn-auto/*
-*.o
-*.html
-*.pdf
-*.aux
-*.dvi
-*.log
-*.pyc
-
-syntax: regexp
-test_(.*)[0-9]$

File LICENSE

-Copyright © 2012 , UChicago Argonne, LLC
-Operator of Argonne National Laboratory
-All rights reserved.
-Toolkit for Advanced Optimization (TAO), Version 2.1
-OPEN SOURCE LICENSE
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Software changes, modifications, or derivative works, should be noted with comments and the author and organization's name.
-Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-Neither the names of UChicago Argonne, LLC or the Department of Energy nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
-The software and the end-user documentation included with the redistribution, if any, must include the following acknowledgment:
-"This product includes software produced by UChicago Argonne, LLC under Contract No. DE-AC02-06CH11357 with the Department of Energy." 
-
-******************************************************************************************************
-DISCLAIMER
-
-THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.
-NEITHER THE UNITED STATES GOVERNMENT, NOR THE UNITED STATES
-DEPARTMENT OF ENERGY, NOR UCHICAGO ARGONNE, LLC, NOR ANY OF
-THEIR EMPLOYEES, MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR
-ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY,
-COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, DATA,
-APPARATUS, PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT
-ITS USE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS.

File conf/install.py

-#!/usr/bin/env python
-import re, os, sys, shutil
-
-if os.environ.has_key('PETSC_DIR'):
-  PETSC_DIR = os.environ['PETSC_DIR']
-else:
-  sys.stderr.write('environment variable PETSC_DIR not set\n')
-  sys.exit(1)
-  
-if os.environ.has_key('PETSC_ARCH'):
-  PETSC_ARCH = os.environ['PETSC_ARCH']
-else:
-  fd = file(os.path.join(PETSC_DIR,'conf','petscvariables'))
-  a = fd.readline()
-  PETSC_ARCH = a.split('=')[1][0:-1]
-  fd.close()
-
-if os.environ.has_key('TAO_DIR'):
-  TAO_DIR=os.environ['TAO_DIR']
-else:
-  sys.stderr.write('environment variable TAO_DIR not set\n')
-  sys.exit(1)
-
-print '*** using PETSC_DIR ='+PETSC_DIR
-print '***       PETSC_ARCH='+PETSC_ARCH
-print '***       TAO_DIR   ='+TAO_DIR
-sys.path.insert(0, os.path.join(PETSC_DIR))
-sys.path.insert(0, os.path.join(PETSC_DIR, 'config'))
-sys.path.insert(0, os.path.join(PETSC_DIR, 'config', 'BuildSystem'))
-
-import script
-
-try:
-  WindowsError
-except NameError:
-  WindowsError = None
-
-class Installer(script.Script):
-  def __init__(self, clArgs = None):
-    import RDict
-    argDB = RDict.RDict(None, None, 0, 0, readonly = True)
-    argDB.saveFilename = os.path.join(PETSC_DIR, PETSC_ARCH, 'conf', 'RDict.db')
-    argDB.load()
-    script.Script.__init__(self, argDB = argDB)
-    if not clArgs is None: self.clArgs = clArgs
-    self.copies = []
-    return
-
-  def setupHelp(self, help):
-    import nargs
-    script.Script.setupHelp(self, help)
-    help.addArgument('Installer', '-destDir=<path>', nargs.Arg(None, None, 'Destination Directory for install'))
-    return
-
-
-  def setupModules(self):
-    self.setCompilers  = self.framework.require('config.setCompilers',         None)
-    self.arch          = self.framework.require('PETSc.utilities.arch',        None)
-    self.petscdir      = self.framework.require('PETSc.utilities.petscdir',    None)
-    self.makesys       = self.framework.require('config.programs',             None)
-    self.compilers     = self.framework.require('config.compilers',            None)
-    return
-  
-  def setup(self):
-    script.Script.setup(self)
-    self.framework = self.loadConfigure()
-    self.setupModules()
-    return
-
-  def setupDirectories(self):
-    self.rootDir    = os.path.abspath(TAO_DIR)#self.petscdir.dir
-    self.destDir    = os.path.abspath(self.argDB['destDir'])
-    self.installDir = self.framework.argDB['prefix']
-    self.arch       = self.arch.arch
-    self.rootIncludeDir    = os.path.join(self.rootDir, 'include')
-    self.rootConfDir       = os.path.join(self.rootDir, 'conf')
-    self.rootBinDir        = os.path.join(self.rootDir, 'bin')
-    self.archLibDir        = os.path.join(self.rootDir, self.arch, 'lib')
-    self.PetscArchLibDir   = os.path.join(PETSC_DIR, self.arch, 'lib')
-    self.destIncludeDir    = os.path.join(self.destDir, 'include')
-    self.destConfDir       = os.path.join(self.destDir, 'conf')
-    self.destLibDir        = os.path.join(self.destDir, 'lib')
-    self.destBinDir        = os.path.join(self.destDir, 'bin')
-    self.installIncludeDir = os.path.join(self.installDir, 'include')
-    self.installBinDir     = os.path.join(self.installDir, 'bin')
-    self.rootShareDir      = os.path.join(self.rootDir, 'share')
-    self.destShareDir      = os.path.join(self.destDir, 'share')
-
-    self.make      = self.makesys.make+' '+self.makesys.flags
-    self.ranlib    = self.compilers.RANLIB
-    self.libSuffix = self.compilers.AR_LIB_SUFFIX
-    return
-
-  def checkPrefix(self):
-    if not self.installDir:
-      print '********************************************************************'
-      print 'PETSc is built without prefix option. So "make install" is not appropriate.'
-      print 'If you need a prefix install of PETSc - rerun configure with --prefix option.'
-      print '********************************************************************'
-      sys.exit(1)
-    return
-
-  def checkDestdir(self):
-    if os.path.exists(self.destDir):
-      if os.path.samefile(self.destDir, self.rootDir):
-        print '********************************************************************'
-        print 'Incorrect prefix usage. Specified destDir same as current PETSC_DIR'
-        print '********************************************************************'
-        sys.exit(1)
-      if os.path.samefile(self.destDir, os.path.join(self.rootDir,self.arch)):
-        print '********************************************************************'
-        print 'Incorrect prefix usage. Specified destDir same as current PETSC_DIR/PETSC_ARCH'
-        print '********************************************************************'
-        sys.exit(1)
-      if not os.path.isdir(os.path.realpath(self.destDir)):
-        print '********************************************************************'
-        print 'Specified destDir', self.destDir, 'is not a directory. Cannot proceed!'
-        print '********************************************************************'
-        sys.exit(1)
-      if not os.access(self.destDir, os.W_OK):
-        print '********************************************************************'
-        print 'Unable to write to ', self.destDir, 'Perhaps you need to do "sudo make install"'
-        print '********************************************************************'
-        sys.exit(1)
-    return
-
-  def copytree(self, src, dst, symlinks = False, copyFunc = shutil.copy2):
-    """Recursively copy a directory tree using copyFunc, which defaults to shutil.copy2().
-
-    The destination directory must not already exist.
-    If exception(s) occur, an shutil.Error is raised with a list of reasons.
-
-    If the optional symlinks flag is true, symbolic links in the
-    source tree result in symbolic links in the destination tree; if
-    it is false, the contents of the files pointed to by symbolic
-    links are copied.
-    """
-    copies = []
-    names  = os.listdir(src)
-    ignorefiles = ["makefile","index.html","makefile.html","install.py","uninstall.py"]
-    if not os.path.exists(dst):
-      os.makedirs(dst)
-    elif not os.path.isdir(dst):
-      raise shutil.Error, 'Destination is not a directory'
-    errors = []
-    for name in names:
-      if name in ignorefiles:
-        continue
-      srcname = os.path.join(src, name)
-      dstname = os.path.join(dst, name)
-      try:
-        if symlinks and os.path.islink(srcname):
-          linkto = os.readlink(srcname)
-          os.symlink(linkto, dstname)
-        elif os.path.isdir(srcname):
-          copies.extend(self.copytree(srcname, dstname, symlinks))
-        else:
-          copyFunc(srcname, dstname)
-          copies.append((srcname, dstname))
-        # XXX What about devices, sockets etc.?
-      except (IOError, os.error), why:
-        errors.append((srcname, dstname, str(why)))
-      # catch the Error from the recursive copytree so that we can
-      # continue with other files
-      except shutil.Error, err:
-        errors.extend((srcname,dstname,str(err.args[0])))
-    try:
-      shutil.copystat(src, dst)
-    except OSError, e:
-      if WindowsError is not None and isinstance(e, WindowsError):
-        # Copying file access times may fail on Windows
-        pass
-      else:
-        errors.extend((src, dst, str(e)))
-    if errors:
-      raise shutil.Error, errors
-    return copies
-
-
-  def fixConfFile(self, src):
-    lines   = []
-    oldFile = open(src, 'r')
-    for line in oldFile.readlines():
-      # paths generated by configure could be different link-path than whats used by user, so fix both
-      line = re.sub(re.escape(os.path.join(self.rootDir, self.arch)), self.installDir, line)
-      line = re.sub(re.escape(os.path.realpath(os.path.join(self.rootDir, self.arch))), self.installDir, line)
-      line = re.sub(re.escape(os.path.join(self.rootDir, 'bin')), self.installBinDir, line)
-      line = re.sub(re.escape(os.path.realpath(os.path.join(self.rootDir, 'bin'))), self.installBinDir, line)
-      line = re.sub(re.escape(os.path.join(self.rootDir, 'include')), self.installIncludeDir, line)
-      line = re.sub(re.escape(os.path.realpath(os.path.join(self.rootDir, 'include'))), self.installIncludeDir, line)
-      # remove PETSC_DIR/PETSC_ARCH variables from conf-makefiles. They are no longer necessary
-      line = re.sub('\$\{PETSC_DIR\}/\$\{PETSC_ARCH\}', self.installDir, line)
-      line = re.sub('PETSC_ARCH=\$\{PETSC_ARCH\}', '', line)
-      line = re.sub('\$\{PETSC_DIR\}', self.installDir, line)
-      lines.append(line)
-    oldFile.close()
-    newFile = open(src, 'w')
-    newFile.write(''.join(lines))
-    newFile.close()
-    return
-
-  def fixConf(self):
-    import shutil
-    # copy standard rules and variables file so that we can change them in place
-    for file in ['rules', 'variables']:
-      shutil.copy2(os.path.join(self.rootConfDir,file),os.path.join(self.archConfDir,file))
-    for file in ['rules', 'variables','petscrules', 'petscvariables']:
-      self.fixConfFile(os.path.join(self.archConfDir,file))
-
-  def createUninstaller(self):
-    uninstallscript = os.path.join(TAO_DIR,'conf', 'uninstall.py')
-    f = open(uninstallscript, 'w')
-    # Could use the Python AST to do this
-    f.write('#!'+sys.executable+'\n')
-    f.write('import os\n')
-
-    f.write('copies = '+re.sub(self.destDir,self.installDir,repr(self.copies)))
-    f.write('''
-for src, dst in copies:
-  if os.path.exists(dst):
-    os.remove(dst)
-''')
-    f.close()
-    os.chmod(uninstallscript,0744)
-    return
-
-  def installIncludes(self):
-    self.copies.extend(self.copytree(self.rootIncludeDir, self.destIncludeDir))
-    #self.copies.extend(self.copytree(self.archIncludeDir, self.destIncludeDir))
-    return
-
-  def installConf(self):
-    self.copies.extend(self.copytree(self.rootConfDir, self.destConfDir))
-    #self.copies.extend(self.copytree(self.archConfDir, self.destConfDir))
-
-  def installBin(self):
-    self.copies.extend(self.copytree(self.rootBinDir, self.destBinDir))
-    #self.copies.extend(self.copytree(self.archBinDir, self.destBinDir))
-    return
-
-  def installShare(self):
-    self.copies.extend(self.copytree(self.rootShareDir, self.destShareDir))
-    return
-
-  def copyLib(self, src, dst):
-    '''Run ranlib on the destination library if it is an archive. Also run install_name_tool on dylib on Mac'''
-    # Do not install object files
-    if not os.path.splitext(src)[1] == '.o':
-      shutil.copy2(src, dst)
-    if os.path.splitext(dst)[1] == '.'+self.libSuffix:
-      self.executeShellCommand(self.ranlib+' '+dst)
-    if os.path.splitext(dst)[1] == '.dylib' and os.path.isfile('/usr/bin/install_name_tool'):
-      installName = re.sub(self.destDir, self.installDir, dst)
-      self.executeShellCommand('/usr/bin/install_name_tool -id ' + installName + ' ' + dst)
-      old = os.path.join(self.PetscArchLibDir,'libpetsc.dylib')
-      new = os.path.join(self.installDir,'lib','libpetsc.dylib')
-      print ('/usr/bin/install_name_tool -change ' + old + ' ' + new + ' ' + dst)
-      self.executeShellCommand('/usr/bin/install_name_tool -change ' + old + ' ' + new + ' ' + dst)
-    # preserve the original timestamps - so that the .a vs .so time order is preserved
-    shutil.copystat(src,dst)
-    return
-
-  def installLib(self):
-    self.copies.extend(self.copytree(self.archLibDir, self.destLibDir, copyFunc = self.copyLib))
-    return
-
-
-  def outputDone(self):
-    print '''\
-====================================
-Install complete. It is useable with
-PETSC_DIR=%s
-TAO_DIR=%s
-[and no more PETSC_ARCH].
-Now to check if the libraries are working do (in current directory):
-make PETSC_ARCH= PETSC_DIR=%s TAO_DIR=%s tao_testexamples
-====================================\
-''' % (self.installDir,self.installDir,self.installDir,self.installDir)
-    return
-
-  def runfix(self):
-    self.setup()
-    self.setupDirectories()
-    self.checkPrefix()
-    self.checkDestdir()
-    #self.fixConf()
-
-
-  def runcopy(self):
-    print '*** Installing TAO at',self.destDir, ' ***'
-    if not os.path.exists(self.destDir):
-      try:
-        os.makedirs(self.destDir)
-      except:
-        print '********************************************************************'
-        print 'Unable to create', self.destDir, 'Perhaps you need to do "sudo make install"'
-        print '********************************************************************'
-        sys.exit(1)
-    self.installIncludes()
-    self.installConf()
-    #self.installBin()
-    self.installLib()
-    #self.installShare()
-    self.outputDone()
-    self.createUninstaller()
-
-    return
-
-  def run(self):
-    self.runfix()
-    self.runcopy()
-
-if __name__ == '__main__':
-  Installer(sys.argv[1:]).run()
-  # temporary hack - delete log files created by BuildSystem - when 'sudo make install' is invoked
-  delfiles=['RDict.db','RDict.log','build.log','default.log','build.log.bkp','default.log.bkp']
-  for delfile in delfiles:
-    if os.path.exists(delfile) and (os.stat(delfile).st_uid==0):
-      os.remove(delfile)

File conf/tao_base

-#
-# a dummy target which does nothing - just in case
-# 'ALL: get mapped into this file'
-#
-tao_all_dummy:
-	-@true
-
-#
-# TAO uses the portable makefile system provided by the PETSc library.  
-# The following include files set customized site, optimization, and version
-# options.  Do NOT remove any of these include files!  You should generally
-# NOT need to edit these files, PETSc's configure script should do this for
-# you.  See the PETSc users manual for details.
-#
-
-include ${PETSC_DIR}/conf/variables
-include ${PETSC_DIR}/conf/rules
-include ${TAO_DIR}/conf/tao_variables
-include ${TAO_DIR}/conf/tao_rules
-
-include ${PETSC_DIR}/conf/test

File conf/tao_rules

-# Check that TAO_DIR is set and is the current working directory
-tao_chk_tao_dir:
-	@mypwd=`pwd`; cd ${TAO_DIR} 2>&1 > /dev/null; true_TAO_DIR=`pwd`; cd $${mypwd} 2>&1 >/dev/null; \
-        newpwd=`echo $${mypwd} | sed "s+$${true_TAO_DIR}+DUMMY+g"`;\
-        hastao=`echo $${mypwd} | sed "s+tao-+DUMMY+g"`;\
-        if [ $${mypwd} = $${newpwd} -a $${hastao} != $${mypwd} ]; then \
-          echo "*********************Warning*************************" ; \
-          echo "Your TAO_DIR may not match the directory you are in";\
-          echo "TAO_DIR " $${true_TAO_DIR} "Current directory" $${mypwd};\
-          echo "******************************************************" ; \
-        fi;
-
-tao_chk_petsc_install:
-	@if [ ! -e ${PETSC_DIR}/src/snes/ ]; then \
-	echo "*********************Warning*************************" ; \
-	echo "To install TAO, PETSC_DIR must be set to the PETSc source";\
-	echo "directory, not the PETSc install directory";\
-	echo "******************************************************" ; \
-	exit 1;\
-	fi
-
-.SUFFIXES: ${SUFFIXES} .tao
-
-show:
-	@if [ "${PETSC_ARCH}x" = "x" ] ; then \
-	  echo "TAO_DIR=${TAO_DIR}";\
-	  echo "PETSC_DIR=${PETSC_DIR}";\
-	  echo "PETSC_ARCH=${PETSC_ARCH}";\
-	  echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES";\
-	  echo "=========================================";\
-	  echo "make" PETSC_ARCH=NONE PETSC_DIR=${PETSC_DIR} TAO_DIR=${TAO_DIR} ACTION=libfast tree;\
-	  echo ${RANLIB} ${TAO_LIB_DIR}/*.${AR_LIB_SUFFIX};\
-	  echo "Completed building libraries";\
-	  echo "=========================================";\
-	else\
-	  echo "TAO_DIR=${TAO_DIR}";\
-	  echo "PETSC_DIR=${PETSC_DIR}";\
-	  echo "PETSC_ARCH=${PETSC_ARCH}";\
-	  echo "BEGINNING TO COMPILE LIBRARIES IN ALL DIRECTORIES";\
-	  echo "=========================================";\
-	  echo "make" PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} TAO_DIR=${TAO_DIR} ACTION=libfast tree;\
-	  echo ${RANLIB} ${TAO_LIB_DIR}/*.${AR_LIB_SUFFIX};\
-	  echo "Completed building libraries";\
-	  echo "=========================================";\
-	fi;
-#
-#  These rules are for compiling the test examples.
-#
-.c.tao:
-	@echo "Testing $<..."
-	-@${OMAKE} -f makefile PETSC_ARCH=${PETSC_ARCH} $* > trashz 2>&1
-	-@grep -v clog trashz | grep -v "information sections" | \
-          grep -v "WARNING: TOC" | \
-          grep -v "Extra instructions" | \
-          grep -v "Unused external reference" | \
-          grep -v "f90 continuing despite warning messages" | \
-          grep -v "symbol if the" | \
-          grep -v "ignoring symbol version info" | \
-          grep -v "preempts that definition" | \
-          grep -v "is an array from" | \
-          grep -v "Cannot cast" | \
-          grep -v "WARNING 134: weak definition of" | \
-          grep -v "Warning(s) detected" | \
-          grep -v EXTERNAL  |\
-          grep -v volatile  |\
-          grep -v -i inconsistent | grep -v Anachronism | \
-	  egrep -i '(Error|warning|Can|Unresolved)' >> /dev/null;\
-	  if [ "$$?" != 1 ]; then \
-	  cat trashz ; fi; ${RM} trashz
-.F.tao:
-	-@${OMAKE} -f makefile PETSC_ARCH=${PETSC_ARCH} $* > trashz 2>&1
-	-@grep -v EXTERNAL trashz | grep -v Wall | \
-          grep -v "Unused external reference" | \
-          grep -v "WARNING: TOC overflow." | \
-          grep -v "Extra instructions are being" | \
-          grep -v "symbol if the symbol" | \
-          grep -v -i inconsistent | \
-          grep -v -i "unused dummy" | \
-	  grep -v "WARNING:  -cpp is ignored" | \
-          grep -v "ignoring symbol version info" | \
-	  grep -v "Inconsistent structure" | \
-	  grep -v "ex20.F:30:" | \
-	  grep -v "f90 continuing despite warning messages" | \
-          grep -v "is an array from" | \
-	  grep -v "Unused external reference" | \
-          grep -v "WARNING 134: weak definition of" | \
-          grep -v 'continuing despite warning messages' | \
-	  grep -v "Unused dummy argument" | \
-	  egrep -i '(Error|warning|Can|Unresolved)'  >> /dev/null ; \
-	  if [ "$$?" != 1 ]; then \
-	  cat trashz ; fi; ${RM} trashz;
-
-# Builds man pages (HTML version) in two stages
-# See rule for allwwwpages in ${PETSC_DIR}/makefile 
-#   1.) wwwpages_buildcite: builds the file manpages.cit for hyperlinks
-#   2.) wwwpages: builds the html pages, complete with hyperlinks
-tao_manpages_buildcite:
-	@-if [ "${MANSEC}" != "" ] ; then \
-	  DOCTEXT_PATH=${TAO_DIR}/docs/tex/doctext; \
-          ${DOCTEXT} -html -indexdir ../${MANSEC} \
-		-index ${TAO_DIR}/docs/manpages/manpages.cit \
-		-mpath ${TAO_DIR}/docs/manpages/${MANSEC} ${SOURCEC} ${SOURCEH}; \
-		chmod g+w ${TAO_DIR}/docs/manpages/${MANSEC}/*; fi 
-#
-#   DOCTEXT_PATH env variable is used by doctext
-#
-tao_manpages:
-	@-if [ "${MANSEC}" != "" ] ; then \
-	  DOCTEXT_PATH=${TAO_DIR}/docs/tex/doctext; \
-	  ${DOCTEXT} -html \
-		-mpath ${TAO_DIR}/docs/manpages/${MANSEC} -heading TAO \
-		-defn ${TAO_DIR}/docs/tex/doctext/html.def \
-		-locdir ${LOCDIR} -mapref ${TAO_DIR}/docs/manpages/manpages.cit \
-		-defn ${TAO_DIR}/docs/manpages/sec/eop.${MANSEC} \
-		${SOURCEC} ${SOURCEH}; \
-		chmod g+w ${TAO_DIR}/docs/manpages/${MANSEC}/*; fi 
-
-
-
-tao_deleteshared: 
-	${RM} ${TAO_LDIR}/*.${SLSUFFIX} ${TAO_LDIR}/so_locations
-
-tao_noshared:
-
-tao_build_components:
-	-cd ${TAO_DIR}/src/sidl/components && ${OMAKE} components
-
-taopagemaker: 
-	-@if [ "${TUTORIALS}" != "" ] ; then ${OMAKE} taopageform; fi
-
-taopageform: 
-	-@echo "NONE title=\"TAO ${MANSEC}\" command=link src=../../${LOCDIR}../exercises/main.htm target=replace" >> ${TAO_DIR}/docs/pageform.txt
-	-@${RM} pageform.txt
-	-@${RM} -rf ../exercises
-	-@mkdir ../exercises
-	-@echo "title=\"TAO ${MANSEC} examples\""                               >  pageform.txt 
-	-@echo "access_format=short"                                            >> pageform.txt
-	-@echo "access_title=${MANSEC} exercises"                            >>  pageform.txt 
-	-@echo "startpage=../exercises/introduction.htm"                         >> pageform.txt
-	-@ROOT=`echo ${LOCDIR} | sed s?/[a-z_]*?/..?g | sed s?src/??g`; echo "mappath=\"%+../%+$${ROOT}/docs/manpages/%\"" >> pageform.txt
-	-@echo "NONE title=\"Introduction\" command=link src=../exercises/introduction.htm" >> pageform.txt
-	-@cp -f ${TAO_DIR}/docs/manpages/sec/bop.${MANSEC} ../exercises/introduction.htm
-	-@for file in ${TUTORIALS}; do \
-          cmess=`grep "static char help" $${file} | cut -d\" -f2 | cut -d\. -f1`; \
-          if [ "$$cmess" = "" ] ; then \
-            echo "$${file} title=\"$${file}\" command=f" >> pageform.txt; \
-          else \
-            echo "$${file} title=\"$${file}\" command=c" >> pageform.txt; \
-          fi; \
-        done
-	-@echo "makefile title=\"makefile\" command=listing"                     >> pageform.txt
-	-@echo "NONE title=\"<HR>\" " >> pageform.txt; 
-	-@ROOT=`echo ${LOCDIR} | sed s?/[a-z_]*?/..?g | sed s?src/??g`; echo "NONE title=\"Return to all Exercises\" command=link src=$${ROOT}/docs/exercises/main.htm target=replace" >> pageform.txt
-	-@ROOT=`echo ${LOCDIR} | sed s?/[a-z_]*?/..?g | sed s?src/??g`; echo "NONE title=\"TAO Documentation\" command=link src=http://www-fp.mcs.anl.gov/tao/docs/index.htm target=replace" >> pageform.txt
-	/home/sarich/software/makepage/makepage.new -pageform=pageform.txt -access_extra=/dev/null -map=+${TAO_DIR}/docs/manpages/manpages.cit -outdir=../exercises
-
-tao_html:
-	-@sed -e s?man+../?man+ROOT/docs/manpages/? ${LOC}/docs/manpages/manpages.cit > /tmp/$$USER.htmlmap
-	-@ROOT=`echo ${LOCDIR} | sed -e s?/[a-z]*?/..?g -e s?src/??g -e s?include/??g` ;\
-          loc=`pwd | sed -e s?\$${TAO_DIR}?$${LOC}/?g -e s?/disks??g`;  \
-          ${MKDIR} -p $${loc} ;\
-          for i in ${SOURCEC} ${SOURCEF} ${SOURCEH} ${EXAMPLESC} ${EXAMPLESF} ${EXAMPLESCH} ${EXAMPLESFH}  foo ; do\
-	    if [ -f $$i ]; then \
-              iroot=`echo $$i | sed -e "s?[a-z.]*/??g"`;\
-              IROOT=`echo $${i} | sed -e s?[.][.]??g` ;\
-              if [ "$${IROOT}" != "$${i}" ] ; then \
-                IROOT=".."; \
-              else \
-                IROOT=$${ROOT};\
-              fi;\
-              ${RM} $${loc}/$$i.html; \
-              echo "<center><a href=\"$${iroot}\">Actual source code: $${iroot}</a></center><br>" > $${loc}/$$i.html; \
-              sed -e "s/CHKERRQ(ierr);//g" -e "s/PetscFunctionReturn(0)/return(0)/g"  \
-              -e "s/ierr [ ]*= //g"  $$i | ${C2HTML} -n  | \
-              egrep -v '(PetscValid|PetscFunctionBegin|PetscCheck|PetscErrorCode ierr;|#if !defined\(__|#define __|#undef __|EXTERN_C|extern )' | \
-              ${MAPNAMES} -map /tmp/$$USER.htmlmap -inhtml | sed -e s?ROOT?$${IROOT}?g >> $${loc}/$$i.html ; \
-	    fi; \
-         done
-	-@ROOT=`echo ${LOCDIR} | sed -e s?/[a-z]*?/..?g -e s?src/??g -e s?include/??g` ;\
-          loc=`pwd | sed -e s?\$${TAO_DIR}?$${LOC}/?g -e s?/disks??g`; ${RM} $${loc}/index.html; \
-          cat ${TAO_DIR}/docs/manpages/sec/bop.${MANSEC} | sed -e "s?<A HREF=\"PETSC_DIR[a-z/]*\">Examples</A>?<A HREF=\"$${ROOT}/docs/manpages/${MANSEC}\">Man pages</A>?g" -e "s?TAO_DIR?$${ROOT}/?g"> $${loc}/index.html; \
-          echo "<p>" >> $${loc}/index.html
-	-@loc=`pwd | sed -e s?\$${PETSC_DIR}?$${LOC}/?g -e s?/disks??g`;\
-            if [ "${EXAMPLESC}" != "" ] ; then \
-               for file in ${EXAMPLESC} foo ; do \
-		if [ -f $$file ]; then \
-                   cmess=`grep "static char help" $${file} | cut -d\" -f2 | cut -d\. -f1`; \
-                   echo "<a href=\"$${file}.html\">$${file}: $${cmess}</a><br>" >> $${loc}/index.html;\
-		fi; \
-               done ;\
-            else \
-               for file in ${DIRS} foo; do \
-		 if [ -d $$file ]; then \
-                   echo "<a href=\"$${file}/\">$${file}/</a><br>" >> $${loc}/index.html; \
-		 fi; \
-               done; \
-               echo " " >> $${loc}/index.html; \
-               for file in ${SOURCEH} ${SOURCEC} ${SOURCEF} foo ; do \
-		 if [ -f $$file ]; then \
-                   echo "<a href=\"$${file}.html\">$${file}</a><br>" >> $${loc}/index.html; \
-		 fi; \
-               done; \
-            fi ;\
-            echo " " >> $${loc}/index.html; \
-            echo "<a href=\"makefile.html\">makefile</a><br>" >> $${loc}/index.html
-	-@loc=`pwd | sed -e s?\$${TAO_DIR}?$${LOC}/?g -e s?/disks??g`;  \
-	   cat makefile | ${C2HTML}  | ${MAPNAMES} -map /tmp/$$USER.htmlmap -inhtml > $${loc}/makefile.html
-	-@${RM} /tmp/$$USER.htmlmap tmp
-
-#
-#   Example usage for man pages; adds each example that uses a function to that functions
-# man page up to a limit of 20 examples.
-#
-tao_manexamples:
-	-@base=`basename ${LOCDIR}`; \
-        if [ "$${base}" = "tutorials" ] || [ "$${base}" = "examples" ] ; then \
-          echo "Generating man example links" ; \
-	  echo "LOC=${TAO_DIR}" ; \
-          for i in ${EXAMPLESC} ${EXAMPLESF} foo ; do \
-            echo $$i; \
-            if [ "$$i" != "foo" ] ; then \
-              a=`cat $$i | ${MAPNAMES} -map ${LOC}/docs/manpages/manpages.cit \
-                   -printmatch -o /dev/null | sort | uniq` ;  echo $$a; \
-              for j in $$a ; do \
-                b=`ls ${LOC}/docs/manpages/*/$${j}.html | cut -f9` ; \
-		echo $$b; \
-                l=`grep tutorials $${b} | wc -l`; \
-                if [ $$l -le 20 ] ; then \
-                  if [ $$l -eq 0 ] ; then \
-                    echo "<P><H3><FONT COLOR=\"#CC3333\">Examples</FONT></H3>" >> $$b; \
-                  fi; \
-                  echo  "<A HREF=\"../../../BB\">BB</A><BR>" | sed s?BB?${LOCDIR}$$i.html?g >> $$b; \
-                  grep -v /BODY $$b > ltmp; \
-                  echo "</BODY></HTML>" >> ltmp; \
-                  mv -f ltmp $$b; \
-                fi; \
-              done; \
-            fi; \
-	  done; \
-        fi
-

File conf/tao_variables

-#
-# TAO uses PETSc for linear algebra tools, system utilities, and
-# portable makefiles
-#
-# TAO-specific definitions:
-#
-# LIBNAME       - library name
-# TAO_INCLUDE   - locations of include files
-#
-# Definitions from the PETSc makefile system:
-#
-# SOURCE        - source files
-# SSOURCE       - single precision versions of some source code
-# OBJS          - object files
-# SOBJS         - single precision versions of some object files
-# DOCS          - files that contain documentation, readmes etc.
-# CPPFLAGS      - preprocessor flags for *.c, *.F preprocessing
-#
-
-INSTALL_LIB_DIR	= ${TAO_DIR}/${PETSC_ARCH}/lib
-TAO_LIB_DIR     = ${TAO_DIR}/${PETSC_ARCH}/lib
-TAO_INCLUDE	= -I${TAO_DIR} -I${TAO_DIR}/include 
-CPP_FLAGS	= ${TAO_INCLUDE} 
-
-FPP_FLAGS	= ${TAO_INCLUDE} 
-
-
-C_SH_LIB_PATH	= ${CC_LINKER_SLFLAG}${TAO_LIB_DIR} ${TAO_C_SH_LIB_PATH} ${PETSC_C_SH_LIB_PATH}
-F_SH_LIB_PATH	= ${FC_LINKER_SLFLAG}${TAO_LIB_DIR} ${TAO_F_SH_LIB_PATH} ${PETSC_C_SH_LIB_PATH}
-
-TAO_LIB		= -L${TAO_LIB_DIR}  -ltao
-
-#
-# Some variables used to build shared libraries
-#
-SHLIBS       = libtao
-
-LIBNAME = ${INSTALL_LIB_DIR}/${LIBBASE}.${AR_LIB_SUFFIX}
-
-tao_clean: clean
-tao_chkopts: chkopts
-

File docs/makefile

-
-CFLAGS   =
-FFLAGS   =
-SOURCEC  =
-SOURCEF  =
-SOURCEH  = 
-DOCS     = manpages/sec/* manpages/index.html tex/manual/manual.tex \
-	   tex/manual/part1.tex tex/manual/part2.tex tex/manual/intro.tex \
-	   tex/manual/abstract.tex tex/manual/acknowl.tex tex/manual/manual_tex.tex \
-	   tex/tao.bib tex/tao-patches.html tex/tao-benchmarks.html \
-	   tex/tao-components.html tex/tao-patches*
-OBJSC    =
-OBJSF    =
-LIBBASE  = libtao
-LINCLUDE = ${SOURCEH}
-DIRS     = 
-LOCDIR   = docs/
-
-include ${TAO_DIR}/conf/tao_base
-
-runexamples:
-