home *** CD-ROM | disk | FTP | other *** search
- #! /bin/sh
- #
- # ============================================================================
- # FILE: defmakexp_aix
- # TYPE: standalone executable
- # SYSTEM: AIX, Solaris
- #
- # DESCRIPTION: This script creates the default export list file "python.exp"
- # for AIX platforms which has to be included in the Modules
- # directory of the python source tree.
- # It contains all global symbols defined in the following files:
- # a) main.o config.o getpath.o
- # b) libModules.a libPython.a libObjects.a libParser.a
- #
- # The script should be run after a new unpack, configure & make
- # of the python release, without any options nor changes to
- # Modules/Setup.in (i.e. a default static build).
- #
- # USAGE: defmakexp_aix [path]
- #
- # where [path] points to the Python source root directory.
- # ============================================================================
- #
-
-
- #
- # Check for AIX or Solaris
- #
- if (test `uname -s` != "AIX") &&
- (test `uname -s` != "IRIX") &&
- (test `uname -s` != "SunOS" || test `uname -r | cut -d. -f1` != "5"); then
- echo "*** Make sure you are running AIX or Solaris"
- exit 1
- fi
-
- if test "$*" = ""; then
- echo "Usage: defmakexp_aix [path to python's source root directory]"
- exit 1
- fi
-
- #
- # Variables
- #
- ROOTDIR=$1
- MODSDIR=$ROOTDIR/Modules
- PYTHDIR=$ROOTDIR/Python
- OBJSDIR=$ROOTDIR/Objects
- PARSDIR=$ROOTDIR/Parser
-
- OBJFILES="$MODSDIR/main.o $MODSDIR/config.o $MODSDIR/getpath.o"
- LIBFILES="$MODSDIR/libModules.a $OBJSDIR/libObjects.a $PARSDIR/libParser.a"
- LIBFILES="$LIBFILES $PYTHDIR/libPython.a"
- ALLFILES="$OBJFILES $LIBFILES"
-
- #
- # Check for object and library files
- #
- for i in $ALLFILES; do
- echo "checking for $i"
- if test ! -f $i; then echo "*** Cannot find $i"; exit 1; fi
- done
-
- #
- # Setup the header of Modules/python.exp
- #
- pyexp=$MODSDIR/python.exp
- echo "making export list $pyexp"
- echo "#!" > $pyexp
- echo "*" >> $pyexp
- echo "* ========================================================= " >> $pyexp
- echo "* This is the default export list of the python executable. " >> $pyexp
- echo "* This file is used for the AIX platform ONLY. It provides " >> $pyexp
- echo "* a list of all variables in the python executable that are " >> $pyexp
- echo "* "exported" -- that is, which may be used by any extension " >> $pyexp
- echo "* modules that are created. This file should be used as an " >> $pyexp
- echo "* AIX "import" file when creating extension modules on that " >> $pyexp
- echo "* platform. " >> $pyexp
- echo "* " >> $pyexp
- echo "* This file was generated from the default configuration of " >> $pyexp
- echo "* the distribution (that is, from a build in which NONE of " >> $pyexp
- echo "* the python Modules were built as shared libraries). " >> $pyexp
- echo "* " >> $pyexp
- echo "* THIS FILE IS OVERWRITTEN anytime the python executable is " >> $pyexp
- echo "* re-built using a Modules/Setup file that was customized " >> $pyexp
- echo "* to call for the building of some or all python Modules as " >> $pyexp
- echo "* shared libraries and with the definition of LINKCC having " >> $pyexp
- echo "* been uncommented. A new python.exp will be generated by " >> $pyexp
- echo "* such a build; it will list ONLY the global symbols which " >> $pyexp
- echo "* are defined in the statically-bound modules and libraries." >> $pyexp
- echo "* ========================================================= " >> $pyexp
- echo "*" >> $pyexp
-
- #
- # Make the export list
- #
- if test `uname -s` = "AIX"; then
- nmflags='-Bex'
- else
- nmflags='-p'
- fi
- : ${nm=nm}
- $nm $nmflags $ALLFILES \
- | sed -e '/ [^BDT] /d' -e '/\./d' -e 's/.* [BDT] //' \
- | sort | uniq >> $pyexp
-
- echo "done"
-