annotate setup.py @ 105:9d4cd0803df5

Added a 'build_spidermonkey' target to setup.py.
author Atul Varma <varmaa@toolness.com>
date Sun, 16 Aug 2009 11:44:49 -0700
parents 257de12e58c4
children 1e6523de9df1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
1 #! /usr/bin/env python
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
2
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
3 import os
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
4 import sys
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
5
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
6 if __name__ == '__main__':
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
7 # This code is run if we're executed directly from the command-line.
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
8
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
9 myfile = os.path.abspath(__file__)
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
10 mydir = os.path.dirname(myfile)
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
11 sys.path.insert(0, os.path.join(mydir, 'python-modules'))
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
12
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
13 args = sys.argv[1:]
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
14 if not args:
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
15 args = ['help']
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
16
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
17 # Have paver run this very file as its pavement script.
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
18 args = ['-f', myfile] + args
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
19
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
20 import paver.tasks
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
21 paver.tasks.main(args)
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
22 sys.exit(0)
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
23
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
24 # This code is run if we're executed as a pavement script by paver.
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
26 import os
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
27 import subprocess
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
28 import shutil
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
29 import sys
49
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
30 import webbrowser
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
31 import urllib
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
32 import urllib2
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
33 import StringIO
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
34 import tarfile
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
35 import distutils.dir_util
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
36 import distutils.core
25
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
37
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
38 from paver.easy import *
101
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
39 from paver.setuputils import setup
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
40
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
41 SOURCE_FILES = ['pymonkey.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
42 'utils.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
43 'object.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
44 'function.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
45 'undefined.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
46 'context.cpp',
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
47 'runtime.cpp']
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
48
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
49 SPIDERMONKEY_TAG = "1.8.1pre"
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
50
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
51 SPIDERMONKEY_SRC_URL = ("http://hg.toolness.com/spidermonkey/archive/"
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
52 "%s.tar.bz2" % SPIDERMONKEY_TAG)
101
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
53
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
54 SPIDERMONKEY_DIR = os.path.abspath('spidermonkey-%s' % SPIDERMONKEY_TAG)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
55
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
56 BUILD_DIR = os.path.abspath('build')
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
57
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
58 SPIDERMONKEY_OBJDIR = os.path.join(BUILD_DIR, 'spidermonkey')
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
59
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
60 SPIDERMONKEY_MAKEFILE = os.path.join(SPIDERMONKEY_OBJDIR, 'Makefile')
101
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
61
103
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
62 setup_options = dict(
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
63 name='pymonkey',
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
64 version='0.0.1',
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
65 description='Access SpiderMonkey from Python',
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
66 author='Atul Varma',
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
67 author_email='atul@mozilla.com',
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
68 url='http://www.toolness.com'
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
69 )
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
70
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
71 ext_options = dict(
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
72 include_dirs = [os.path.join(SPIDERMONKEY_OBJDIR, 'dist', 'include')],
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
73 library_dirs = [SPIDERMONKEY_OBJDIR]
103
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
74 )
101
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
75
103
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
76 if sys.platform == 'win32':
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
77 # MSVC can't find the js_static.lib SpiderMonkey library, even though
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
78 # it exists and distutils is trying to tell it to link to it, so
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
79 # we'll just link to the DLL on Windows platforms and install
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
80 # it in a place where Windows can find it at runtime.
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
81 ext_options['libraries'] = ['js3250']
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
82 ext_options['define_macros'] = [('XP_WIN', 1)]
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
83 # TODO: This is almost certainly not the ideal way to distribute
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
84 # a DLL used by a C extension module.
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
85 setup_options['data_files'] = [
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
86 ('Lib\\site-packages', [os.path.join(SPIDERMONKEY_OBJDIR,
103
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
87 'js3250.dll')])
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
88 ]
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
89 else:
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
90 ext_options['libraries'] = ['js_static']
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
91
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
92 setup_options['ext_modules'] = [
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
93 distutils.core.Extension('pymonkey',
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
94 SOURCE_FILES,
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
95 **ext_options)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
96 ]
103
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
97
257de12e58c4 Added windows build support to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 102
diff changeset
98 setup(**setup_options)
25
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
99
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
100 @task
49
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
101 def docs(options):
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
102 """Open the Pymonkey documentation in your web browser."""
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
103
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
104 url = os.path.abspath(os.path.join("docs", "rendered", "index.html"))
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
105 url = urllib.pathname2url(url)
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
106 webbrowser.open(url)
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
107
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
108 @task
105
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
109 def build_spidermonkey(options):
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
110 """Fetch and build SpiderMonkey."""
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
111
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
112 if not os.path.exists(SPIDERMONKEY_DIR):
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
113 print("SpiderMonkey source directory not found, "
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
114 "fetching from %s." % SPIDERMONKEY_SRC_URL)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
115
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
116 urlfile = urllib2.urlopen(SPIDERMONKEY_SRC_URL)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
117 output = StringIO.StringIO()
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
118 done = False
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
119 while not done:
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
120 stuff = urlfile.read(65536)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
121 if stuff:
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
122 output.write(stuff)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
123 sys.stdout.write(".")
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
124 sys.stdout.flush()
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
125 else:
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
126 done = True
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
127 sys.stdout.write("\n")
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
128 urlfile.close()
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
129 output.seek(0)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
130
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
131 print "Extracting files."
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
132
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
133 tar = tarfile.open("", fileobj = output, mode = "r:bz2")
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
134 tar.extractall()
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
135 output.close()
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
136
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
137 distutils.dir_util.mkpath(SPIDERMONKEY_OBJDIR)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
138
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
139 if not os.path.exists(SPIDERMONKEY_MAKEFILE):
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
140 print "Running configure."
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
141
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
142 configure = os.path.join(SPIDERMONKEY_DIR, "js", "src",
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
143 "configure")
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
144 retval = subprocess.call([configure,
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
145 "--enable-static",
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
146 "--disable-tests"],
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
147 cwd = SPIDERMONKEY_OBJDIR)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
148 if retval:
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
149 sys.exit(retval)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
150
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
151 print "Running make."
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
152
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
153 retval = subprocess.call(["make"], cwd = SPIDERMONKEY_OBJDIR)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
154 if retval:
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
155 sys.exit(retval)
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
156
9d4cd0803df5 Added a 'build_spidermonkey' target to setup.py.
Atul Varma <varmaa@toolness.com>
parents: 103
diff changeset
157 @task
49
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
158 def build_docs(options):
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
159 """Build the Pymonkey documentation (requires Sphinx)."""
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
160
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
161 retval = subprocess.call(["sphinx-build",
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
162 "-b", "html",
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
163 os.path.join("docs", "src"),
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
164 os.path.join("docs", "rendered")])
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
165 if retval:
51
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
166 sys.exit(retval)
49
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
167
7401af070bb8 Moved README to Sphinx documentation. Keeping the rendered docs in the repository so that they can be viewed via HG and locally by people who don't have Sphinx installed.
Atul Varma <varmaa@toolness.com>
parents: 37
diff changeset
168 @task
101
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
169 def test(options):
ca94f99ad55d Merged setup.py into manage.py.
Atul Varma <varmaa@toolness.com>
parents: 96
diff changeset
170 """Test the Pymonkey Python C extension."""
25
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
171
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
172 print "Running test suite."
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
173
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
174 new_env = {}
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
175 new_env.update(os.environ)
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
176
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
177 result = subprocess.call(
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
178 [sys.executable,
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
179 "test_pymonkey.py"],
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
180 env = new_env
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
181 )
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
182
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
183 if result:
3c2151124cee Converted pavement.py to manage.py and added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
184 sys.exit(result)
51
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
185
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
186 print "Running doctests."
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
187
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
188 # We have to add our current directory to the python path so that
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
189 # our doctests can find the pymonkey module.
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
190 new_env['PYTHONPATH'] = os.path.abspath('.')
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
191 retval = subprocess.call(["sphinx-build",
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
192 "-b", "doctest",
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
193 os.path.join("docs", "src"),
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
194 "_doctest_output"],
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
195 env = new_env)
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
196 if retval:
fabd3f2271fa Added some basic, incomplete docs on the pymonkey module, which include a doctest that's run when pymonkey is built.
Atul Varma <varmaa@toolness.com>
parents: 49
diff changeset
197 sys.exit(retval)