I am working on a setup script for Tkinter, which requires a -DWITH_APPINIT flag at compile time. The docs suggest that I should add the following definition to my Extension constructor call: define_macros=[('WITH_APPINIT', None),], I did this, but it had no effect. It looks like there is no where that the define_macros attribute of the Extension object is actually used. I assumed this is a bug and tried to figure out where the macros definitions ought to be processed. I'm not familiar with the code, so I may have put it in the wrong place. A patch is included below, which allows _tkinter to build. Jeremy *** build_ext.py Tue Sep 12 20:58:48 2000 --- /home/jeremy/src/python/dist/src/Lib/distutils/command/build_ext.py Thu Sep 7 11:09:18 2000 *************** *** 401,407 **** # any sensible compiler will give precedence to later # command line args. Hence we combine them in order: extra_args = ext.extra_compile_args or [] - macros = ext.define_macros or [] # XXX and if we support CFLAGS, why not CC (compiler # executable), CPPFLAGS (pre-processor options), and LDFLAGS --- 401,406 ---- *************** *** 410,419 **** if os.environ.has_key('CFLAGS'): extra_args.extend(string.split(os.environ['CFLAGS'])) ! objects = self.compiler.compile (sources, output_dir=self.build_temp, ! macros=macros, include_dirs=ext.include_dirs, debug=self.debug, extra_postargs=extra_args) --- 409,418 ---- if os.environ.has_key('CFLAGS'): extra_args.extend(string.split(os.environ['CFLAGS'])) ! objects = self.compiler.compile (sources, output_dir=self.build_temp, ! #macros=macros, include_dirs=ext.include_dirs, debug=self.debug, extra_postargs=extra_args)
On 12 September 2000, Jeremy Hylton said:
I am working on a setup script for Tkinter, which requires a -DWITH_APPINIT flag at compile time. The docs suggest that I should add the following definition to my Extension constructor call: define_macros=[('WITH_APPINIT', None),],
I did this, but it had no effect. It looks like there is no where that the define_macros attribute of the Extension object is actually used.
For the record: this bug has now been fixed; it's in the latest code snapshot. Thanks to Jeremy for pointing it out this time. (And I think to AMK for pointing it out a couple months ago... oops...) Greg
participants (2)
-
Greg Ward
-
Jeremy Hylton