1 Index: sip-4.12.1/configure.py
2 ===================================================================
3 --- sip-4.12.1.orig/configure.py 2011-01-22 14:47:21.000000000 +0100
4 +++ sip-4.12.1/configure.py 2011-03-13 16:47:19.085716739 +0100
5 @@ -19,7 +19,6 @@ import sys
9 -from distutils import sysconfig
13 @@ -197,21 +196,45 @@ def set_platform_directories():
14 global plat_py_site_dir, plat_py_inc_dir, plat_py_conf_inc_dir
15 global plat_bin_dir, plat_py_lib_dir, plat_sip_dir
17 - # We trust distutils for some stuff.
18 - plat_py_site_dir = sysconfig.get_python_lib(plat_specific=1)
19 - plat_py_inc_dir = sysconfig.get_python_inc()
20 - plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename())
22 - if sys.platform == "win32":
23 - plat_py_lib_dir = sys.prefix + "\\libs"
24 - plat_bin_dir = sys.exec_prefix
25 - plat_sip_dir = sys.prefix + "\\sip"
27 - lib_dir = sysconfig.get_python_lib(plat_specific=1, standard_lib=1)
28 + if not opts.crosscompile:
29 + # We trust distutils for some stuff.
30 + from distutils import sysconfig
31 + plat_py_site_dir = sysconfig.get_python_lib(plat_specific=1)
32 + plat_py_inc_dir = sysconfig.get_python_inc()
33 + plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename())
35 + if sys.platform == "win32":
36 + plat_py_lib_dir = sys.prefix + "\\libs"
37 + plat_bin_dir = sys.exec_prefix
38 + plat_sip_dir = sys.prefix + "\\sip"
40 + lib_dir = sysconfig.get_python_lib(plat_specific=1, standard_lib=1)
42 - plat_py_lib_dir = lib_dir + "/config"
43 - plat_bin_dir = sys.exec_prefix + "/bin"
44 - plat_sip_dir = sys.prefix + "/share/sip"
45 + plat_py_lib_dir = lib_dir + "/config"
46 + plat_bin_dir = sys.exec_prefix + "/bin"
47 + plat_sip_dir = sys.prefix + "/share/sip"
50 + if opts.py_site_dir:
51 + plat_py_site_dir = opts.py_site_dir
54 + plat_py_inc_dir = opts.py_inc_dir
56 + if opts.py_conf_inc_dir:
57 + plat_py_conf_inc_dir = opts.py_conf_inc_dir
60 + plat_py_lib_dir = opts.py_lib_dir
63 + plat_py_bin_dir = opts.py_bin_dir
66 + plat_sip_dir = opts.py_sip_dir
68 + if count != 6 and opts.crosscompile:
69 + siputils.error("Need to specify all --py-... options for crosscompile.")
73 @@ -337,6 +360,11 @@ def create_optparser():
74 def store_abspath(option, opt_str, value, parser):
75 setattr(parser.values, option.dest, os.path.abspath(value))
77 + def store_abspath_file(option, opt_str, value, parser):
78 + if not os.path.isfile(value):
79 + raise optparse.OptionValueError("'%s' is not a file" % value)
80 + setattr(parser.values, option.dest, os.path.abspath(value))
82 p = optparse.OptionParser(usage="python %prog [opts] [macro=value] "
83 "[macro+=value]", version=sip_version_str)
85 @@ -411,9 +439,62 @@ def create_optparser():
86 "are normally installed [default: %s]" % default_sipsipdir)
90 + g = optparse.OptionGroup(p, title="Crosscompilation")
91 + g.add_option("--crosscompile", action="store_true",
92 + default=False, dest="crosscompile",
93 + help="Set, if cross-compiling")
94 + g.add_option("--sipconfig-macros", action="callback", metavar="FILE",
95 + default=None, dest="sipconfig_macros", type="string",
96 + callback=store_abspath_file,
97 + help="Path to a file containing sipconfig macros")
98 + g.add_option("--py-site-dir", action="callback",
99 + default=None, dest="py_site_dir", type="string",
100 + callback=store_abspath,
101 + help="Python site directory")
102 + g.add_option("--py-inc-dir", action="callback",
103 + default=None, dest="py_inc_dir", type="string",
104 + callback=store_abspath,
105 + help="Python include directory")
106 + g.add_option("--py-conf-inc-dir", action="callback",
107 + default=None, dest="py_conf_inc_dir", type="string",
108 + callback=store_abspath,
109 + help="Python config include directory")
110 + g.add_option("--py-lib-dir", action="callback",
111 + default=None, dest="py_lib_dir", type="string",
112 + callback=store_abspath,
113 + help="Python library directory")
114 + g.add_option("--py-bin-dir", action="callback",
115 + default=None, dest="py_bin_dir", type="string",
116 + callback=store_abspath,
117 + help="Python binary directory")
118 + g.add_option("--py-sip-dir", action="callback",
119 + default=None, dest="py_sip_dir", type="string",
120 + callback=store_abspath,
121 + help="Python SIP directory")
122 + p.add_option_group(g)
127 +def load_sipconfig_macros(filename):
129 + fd = file(filename, "r")
130 + for line in fd.readlines():
131 + line = line.split()
135 + sipconfig.error("Invalid sipconfig macros file format")
138 + value = " ".join(line[1:])
141 + macros[key] = value
146 """Create the configuration module module.
148 @@ -424,9 +505,6 @@ def main(argv):
149 if py_version < 0x020300:
150 siputils.error("This version of SIP requires Python v2.3 or later.")
152 - # Basic initialisation.
153 - set_platform_directories()
155 # Build up the list of valid specs.
156 for s in os.listdir(os.path.join(src_dir, "specs")):
157 platform_specs.append(s)
158 @@ -438,6 +516,9 @@ def main(argv):
159 p = create_optparser()
160 opts, args = p.parse_args()
162 + # Basic initialisation.
163 + set_platform_directories()
165 # Make sure MacOS specific options get initialised.
166 if sys.platform != 'darwin':
168 @@ -477,14 +558,16 @@ def main(argv):
172 - # Get the platform specific macros for building.
173 - macros = siputils.parse_build_macros(
174 - os.path.join(src_dir, "specs", opts.platform), build_macro_names,
178 - siputils.error("Unsupported macro name specified. Use the --show-build-macros flag to see a list of supported macros.")
180 + if opts.sipconfig_macros:
181 + macros = load_sipconfig_macros(opts.sipconfig_macros)
183 + # Get the platform specific macros for building.
184 + macros = siputils.parse_build_macros(
185 + os.path.join(src_dir, "specs", opts.platform), build_macro_names,
188 + siputils.error("Unsupported macro name specified. Use the --show-build-macros flag to see a list of supported macros.")
191 # Fix the name of the sip module.
192 global sip_module_base
193 Index: sip-4.12.1/siputils.py
194 ===================================================================
195 --- sip-4.12.1.orig/siputils.py 2011-01-22 14:45:38.000000000 +0100
196 +++ sip-4.12.1/siputils.py 2011-03-13 16:47:19.087716533 +0100
197 @@ -1044,9 +1044,11 @@ class Makefile:
199 for f in self.optional_list("DEFINES"):
200 cppflags.append("-D" + f)
201 + print "CPPFLAGS: Adding -D", f
203 for f in self.optional_list("INCDIR"):
204 cppflags.append("-I" + _quote(f))
205 + print "CPPFLAGS: Adding -I", _quote(f)