[Pythonmac-SIG] customize distutils universal extension build?

William Kyngesburye woklist at kyngchaos.com
Thu May 18 16:11:21 CEST 2006


On May 18, 2006, at 2:14 AM, Ronald Oussoren wrote:

>
> On 18-mei-2006, at 5:29, William Kyngesburye wrote:
>
>> Is there some way to customize or override the build flags for
>> building a Python extension (a C library wrapper)?
>>
>> My main problem is that it adds the -g debug flag, ballooning the
>> size of the module.  I want to build WITHOUT the -g flag.
>
> It is possible to add additonal flags, but that won't help you  
> because you want to remove an existing flag and that is not  
> possible. GCC also doesn't have a flag that negates the -g flag.
>
> If you want to remove the debugging information you can use the  
> strip command to remove this from the compiled extension.
>
I've had mostly bad luck with stripping libraries - it would  
sometimes create an unstable or broken library.  I'd prefer not using  
-g in the first place.

Is there maybe a python config file with the flags that distutils  
uses?  I looked around a bit in the framework but didn't see  
anything.  Or is that built into the python binary/library?


> But, why do care about the size of the compiled extension?  Disk  
> space is cheap these days ;-).

Disk space is cheap, but not always download bandwidth.  I build and  
package this for others.

And I'm a frugal person and like things compact, with little bloat.   
One library I've built was a difference of 20MB with debug or 2MB  
optimized (and that's one of those where I had problems stripping  
it).  An application (in constant development) was something like  
150MB or 35MB.  Add to that the doubling affect of universal builds  
now...


> Furthermore, if you redistribute the extension as part of an  
> applicationt that is build using py2app the extension will be  
> stripped when it is stuffed inside the application bundle.
>
It's not really meant for application use, but as a part of using  
Python for web serving.  Another reason for being small - less to  
load, and reload..., into memory for the webserver.

Tho that's an interesting possibility - I've seen a question about  
that on the software's mailing list before.

-----
William Kyngesburye <kyngchaos at kyngchaos.com>
http://www.kyngchaos.com/

"Time is an illusion - lunchtime doubly so."

- Ford Prefect



More information about the Pythonmac-SIG mailing list