annotate setup_posix.py @ 60:c9fd1a7932f4 MySQLdb

Merge back change 609 for remaining old style exceptions
author kylev
date Thu, 05 Mar 2009 20:00:51 +0000
parents 6732437eb2ac
children 6cc22ee607da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
1 import os
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
2 import sys
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
3
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
4 def dequote(s):
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
5 """This dequote() business is required for some older versions of
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
6 mysql_config.
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
7 """
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
8 if s[0] in "\"'" and s[0] == s[-1]:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
9 s = s[1:-1]
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
10 return s
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
11
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
12 def compiler_flag(f):
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
13 return "-%s" % f
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
14
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
15 def mysql_config(what):
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
16 f = os.popen("%s --%s" % (mysql_config.path, what))
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
17 data = f.read().strip().split()
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
18 ret = f.close()
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
19 if ret:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
20 if ret/256:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
21 data = []
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
22 if ret/256 > 1:
60
c9fd1a7932f4 Merge back change 609 for remaining old style exceptions
kylev
parents: 58
diff changeset
23 raise EnvironmentError("%s not found" % (mysql_config.path,))
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
24 return data
9
0e37ee00beb7 Merge changes from 1.2 branch (r470:483): Mostly build-related.
adustman
parents: 8
diff changeset
25 mysql_config.path = "mysql_config"
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
26
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
27 def get_config():
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
28 from setup_common import get_metadata_and_options, enabled, create_release_file
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
29
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
30 metadata, options = get_metadata_and_options()
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
31
9
0e37ee00beb7 Merge changes from 1.2 branch (r470:483): Mostly build-related.
adustman
parents: 8
diff changeset
32 if 'mysql_config' in options:
0e37ee00beb7 Merge changes from 1.2 branch (r470:483): Mostly build-related.
adustman
parents: 8
diff changeset
33 mysql_config.path = options['mysql_config']
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
34
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
35 extra_objects = []
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
36 static = enabled(options, 'static')
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
37 if enabled(options, 'embedded'):
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
38 libs = mysql_config("libmysqld-libs")
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
39 client = "mysqld"
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
40 elif enabled(options, 'threadsafe'):
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
41 libs = mysql_config("libs_r")
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
42 client = "mysqlclient_r"
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
43 if not libs:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
44 libs = mysql_config("libs")
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
45 client = "mysqlclient"
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
46 else:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
47 libs = mysql_config("libs")
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
48 client = "mysqlclient"
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
49
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
50 library_dirs = [ dequote(i[2:]) for i in libs if i.startswith(compiler_flag("L")) ]
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
51 libraries = [ dequote(i[2:]) for i in libs if i.startswith(compiler_flag("l")) ]
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
52
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
53 removable_compile_args = [ compiler_flag(f) for f in "ILl" ]
8
fa8974a41c76 New error handling code, plus some small fixes from 1.2
adustman
parents: 5
diff changeset
54 extra_compile_args = [ i.replace("%", "%%") for i in mysql_config("cflags")
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
55 if i[:2] not in removable_compile_args ]
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
56 include_dirs = [ dequote(i[2:])
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
57 for i in mysql_config('include')
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
58 if i.startswith(compiler_flag('I')) ]
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
59 if not include_dirs: # fix for MySQL-3.23
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
60 include_dirs = [ dequote(i[2:])
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
61 for i in mysql_config('cflags')
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
62 if i.startswith(compiler_flag('I')) ]
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
63
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
64 if static:
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
65 extra_objects.append(os.path.join(
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
66 library_dirs[0],'lib%s.a' % client))
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
67
17
7c7a89123d65 egg names already include python versoin, so don't add it to package name.
adustman
parents: 9
diff changeset
68 name = "MySQL-python"
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
69 if enabled(options, 'embedded'):
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
70 name = name + "-embedded"
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
71 metadata['name'] = name
58
6732437eb2ac Minor tidy of whitespace and extra import
kylev
parents: 17
diff changeset
72
5
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
73 define_macros = [
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
74 ('version_info', metadata['version_info']),
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
75 ('__version__', metadata['version']),
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
76 ]
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
77 create_release_file(metadata)
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
78 del metadata['version_info']
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
79 ext_options = dict(
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
80 name = "_mysql",
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
81 library_dirs = library_dirs,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
82 libraries = libraries,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
83 extra_compile_args = extra_compile_args,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
84 include_dirs = include_dirs,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
85 extra_objects = extra_objects,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
86 define_macros = define_macros,
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
87 )
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
88 return metadata, ext_options
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
89
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
90 if __name__ == "__main__":
b70cce9bd065 Merge changes from 1.2 branch r456-468
adustman
parents:
diff changeset
91 print """You shouldn't be running this directly; it is used by setup.py."""