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