1#!/usr/local/bin/python 2 3# copy SPARTA src/libsparta.so and sparta.py to system dirs 4 5instructions = """ 6Syntax: python install.py [-h] [libdir] [pydir] 7 libdir = target dir for src/libsparta.so, default = /usr/local/lib 8 pydir = target dir for sparta.py, default = Python site-packages dir 9""" 10 11import sys,os,commands 12 13if (len(sys.argv) > 1 and sys.argv[1] == "-h") or len(sys.argv) > 3: 14 print instructions 15 sys.exit() 16 17if len(sys.argv) >= 2: libdir = sys.argv[1] 18else: libdir = "/usr/local/lib" 19 20if len(sys.argv) == 3: pydir = sys.argv[2] 21else: pydir = "" 22 23# copy C lib to libdir if it exists 24# warn if not in LD_LIBRARY_PATH or LD_LIBRARY_PATH is undefined 25 26if not os.path.isdir(libdir): 27 print "ERROR: libdir %s does not exist" % libdir 28 sys.exit() 29 30if "LD_LIBRARY_PATH" not in os.environ: 31 print "WARNING: LD_LIBRARY_PATH undefined, cannot check libdir %s" % libdir 32else: 33 libpaths = os.environ['LD_LIBRARY_PATH'].split(':') 34 if libdir not in libpaths: 35 print "WARNING: libdir %s not in LD_LIBRARY_PATH" % libdir 36 37str = "cp ../src/libsparta.so %s" % libdir 38print str 39outstr = commands.getoutput(str) 40if len(outstr.strip()): print outstr 41 42# copy sparta.py to pydir if it exists 43# if pydir not specified, install in site-packages via distutils setup() 44 45if pydir: 46 if not os.path.isdir(pydir): 47 print "ERROR: pydir %s does not exist" % pydir 48 sys.exit() 49 str = "cp ../python/sparta.py %s" % pydir 50 print str 51 outstr = commands.getoutput(str) 52 if len(outstr.strip()): print outstr 53 sys.exit() 54 55print "installing sparta.py in Python site-packages dir" 56 57os.chdir('../python') # in case invoked via make in src dir 58 59from distutils.core import setup 60sys.argv = ["setup.py","install"] # as if had run "python setup.py install" 61setup(name = "sparta", 62 version = "2Jul14", 63 author = "Steve Plimpton", 64 author_email = "sjplimp@sandia.gov", 65 url = "http://sparta.sandia.gov", 66 description = "SPARTA DSMC library", 67 py_modules = ["sparta"]) 68