root/05/tools/build.py

Revision 146, 4.7 kB (checked in by ug, 5 years ago)

No menus.def anymore

  • Property svn:executable set to *
Line 
1 #!/usr/bin/python
2
3 import os
4 import sys
5 from string import find, join
6
7 base = '/home/ug/kombilo/'
8 version = '05'
9 htmldir = '/home/ug/html/kombilo/'
10 sourcedir = base + version + '/' + sys.argv[1] + '/'
11
12 def general(target):
13
14     targetdir = base + target + '/kombilo' + version
15
16     os.system('rm -r %s-old' % targetdir)
17     os.system('mv %s %s-old' % (targetdir, targetdir))
18
19     os.system('mkdir %s' % targetdir)
20    
21     for file in ['kombilo.py', 'v.py', 'board1.py', 'sgfparser.py',
22                  'kombilo.app', 'v.app', 'matchC.cc',
23                  'sgfpars.cc', 'sgfpars.h', 'sgfpars.i',
24                  'setup-ext.py', 'references']:
25         os.system('cp %s%s %s' % (sourcedir, file, targetdir))
26
27     os.system('mkdir %s/doc' % targetdir)
28     for file in ['tutorial.html', 'readme.txt',
29                  'license.txt', 'onepixel.gif', '*.jpg']:
30         os.system('cp %sdoc/%s %s/doc' % (sourcedir, file, targetdir))
31
32     os.system('mkdir %s/gifs' % targetdir)
33     for file in ['*.gif']:
34         os.system('cp %sgifs/%s %s/gifs' % (sourcedir, file, targetdir))
35
36    
37 def linux():
38
39     targetdir = base + 'lin/kombilo' + version
40
41     os.chdir(sourcedir)
42
43     print 'swig'
44     os.system('pwd')
45     os.system('swig -c++ -python -shadow sgfpars.i')
46     print '... done'
47    
48     for file in ['unixinst.py', 'sgfpars.py', 'sgfpars_wrap.cxx']:
49         os.system('cp %s%s %s' % (sourcedir, file, targetdir))
50
51     # first line of kombilo.py, v.py should be #!/usr/bin/python
52
53     for filename in ['kombilo.py', 'v.py']:
54         file = open('%s/%s' % (targetdir, filename))
55         lines = file.readlines()
56         file.close()
57
58         lines[0] = '#! /usr/bin/env python\n'
59         file = open('%s/%s' % (targetdir, filename), 'w')
60         for l in lines: file.write(l)
61         file.close()
62
63     # tar, gz everything
64
65     os.chdir(base + 'lin')
66    
67     os.system('tar cf kombilo%s.tar kombilo%s' % (version, version))
68     os.system('gzip -f kombilo%s.tar' % version)
69
70     os.system('cp kombilo%s.tar.gz %s' % (version, htmldir))
71
72     # compile C++ extension
73
74     for python_version in ['2.1', '2.2', '2.3']:
75         os.chdir(targetdir)
76         filelist = ['matchC.so', '_sgfpars.so']
77
78         os.system('python%s setup-ext.py build' % (python_version))
79
80         os.system('tar cf Cext%s-%s.tar  -C build/lib.linux-i686-%s %s' % (version, python_version, python_version,
81                                                                            join([ f for f in filelist], ' ')))
82         os.system('gzip -f Cext%s-%s.tar' % (version, python_version[-3:]))
83         os.system('cp Cext%s-%s.tar.gz %s' % (version, python_version[-3:], htmldir))
84
85 def windows():
86
87     targetdir = base + 'win/kombilo' + version
88
89     # adapt matchC.cc
90
91     for filename in ['matchC.cc']:
92
93         file = open('%s/%s' % (targetdir, filename))
94         lines = file.readlines()
95         file.close()
96
97         file = open('%s/%s' % (targetdir, filename), 'w')
98         for line in lines:
99             file.write(line)
100             if find(line, 'extern') != -1:
101                 file.write('  __declspec(dllexport)\n')
102         file.close()
103
104     # unix2dos text files
105
106     os.chdir(targetdir)
107     for filename in ['*.py', '*.cc', '*.app', '*.h', '*.i', 'references',
108                      'doc/*.txt', 'doc/tutorial.html']:
109         os.system('unix2dos %s' % filename)
110
111     os.system('mv kombilo.py kombilo.pyw')
112
113     # zip everything
114
115     os.chdir(base + 'win')
116     os.system('rm kombilo%swin.zip' % version)
117     os.system('zip -r -q kombilo%swin kombilo%s' % (version, version))
118
119     os.system('cp kombilo%swin.zip %s' % (version, htmldir))
120
121
122 def others():
123
124     targetdir = base + 'oth/kombilo' + version
125
126     for file in ['sgfpars.py', 'sgfpars_wrap.cxx']:
127         os.system('cp %s%s %s' % (sourcedir, file, targetdir))
128
129     # unix2dos text files
130
131     os.chdir(targetdir)
132     for filename in ['*.py', '*.cc', '*.app', '*.h', '*.i', '*.cxx', 'references',
133                      'doc/*.txt',
134                      'doc/tutorial.html']:
135         os.system('unix2dos %s' % filename)
136
137     # zip everything
138
139     os.chdir(base + 'oth')
140     os.system('rm kombilo%s.zip' % version)
141     os.system('zip -r -q kombilo%s kombilo%s' % (version, version))
142
143     os.system('cp kombilo%s.zip %s' % (version, htmldir))
144    
145
146 for target in sys.argv[2:]:
147     if target == 'lin':
148         general('lin')
149         linux()
150         print 'built linux'
151     elif target == 'win':
152         general('win')
153         windows()
154         print 'built windows'
155     elif target == 'oth':
156         general('oth')
157         others()
158         print 'built others'
159     elif target == 'html':
160         os.system('cp %s/doc/tutorial.html %s' % (sourcedir, version, sys.argv[1], htmldir))
161         os.system('cp %s/doc/*.jpg %s' % (sourcedir, version, htmldir))
162         print 'copied tutorial to html'
163
164
Note: See TracBrowser for help on using the browser.