rebuild tesseract if libpng or webp so version has changed.
[slapos.git] / component / python-2.4 / python2.4-backport-CPPFLAGS-setup-from-python2.6.patch
1 From: Arnaud Fontaine <arnaud.fontaine@nexedi.com>
2 Date: Mon, 7 Mar 2011 13:02:05 +0900
3 Subject: [PATCH] Pass CPPFLAGS when building modules in Python 2.4
4
5 In contrary to Python 2.6, when building Python 2.4 modules, CPPFLAGS 
6 specified to configure script is not passed at all. This patch backports
7 the fix from Python 2.6.
8
9 --- Makefile.pre.in     2006-10-09 02:41:25.000000000 +0900
10 +++ Makefile.pre.in     2011-03-07 14:58:34.368000777 +0900
11 @@ -56,7 +56,10 @@
12  OPT=           @OPT@
13  BASECFLAGS=    @BASECFLAGS@
14  CFLAGS=                $(BASECFLAGS) $(OPT)
15 -CPPFLAGS=      -I. -I$(srcdir)/Include
16 +# Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
17 +# be able to build extension modules using the directories specified in the
18 +# environment variables
19 +CPPFLAGS=      -I. -I$(srcdir)/Include @CPPFLAGS@
20  LDFLAGS=       @LDFLAGS@
21  LDLAST=                @LDLAST@
22  SGI_ABI=       @SGI_ABI@
23 --- setup.py    2006-10-09 02:41:25.000000000 +0900
24 +++ setup.py    2011-03-07 14:53:36.208000779 +0900
25 @@ -3,7 +3,7 @@
26  
27  __version__ = "$Revision: 52231 $"
28  
29 -import sys, os, getopt, imp, re
30 +import sys, os, getopt, imp, re, optparse
31  
32  from distutils import log
33  from distutils import sysconfig
34 @@ -243,6 +243,39 @@
35          add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
36          add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
37  
38 +        # Add paths specified in the environment variables LDFLAGS and
39 +        # CPPFLAGS for header and library files.
40 +        # We must get the values from the Makefile and not the environment
41 +        # directly since an inconsistently reproducible issue comes up where
42 +        # the environment variable is not set even though the value were passed
43 +        # into configure and stored in the Makefile (issue found on OS X 10.3).
44 +        for env_var, arg_name, dir_list in (
45 +                ('LDFLAGS', '-L', self.compiler.library_dirs),
46 +                ('CPPFLAGS', '-I', self.compiler.include_dirs)):
47 +            env_val = sysconfig.get_config_var(env_var)
48 +            if env_val:
49 +                # To prevent optparse from raising an exception about any
50 +                # options in env_val that is doesn't know about we strip out
51 +                # all double dashes and any dashes followed by a character
52 +                # that is not for the option we are dealing with.
53 +                #
54 +                # Please note that order of the regex is important!  We must
55 +                # strip out double-dashes first so that we don't end up with
56 +                # substituting "--Long" to "-Long" and thus lead to "ong" being
57 +                # used for a library directory.
58 +                env_val = re.sub(r'(^|\s+)-(-|(?!%s))' % arg_name[1],
59 +                                 ' ', env_val)
60 +                parser = optparse.OptionParser()
61 +                # Make sure that allowing args interspersed with options is
62 +                # allowed
63 +                parser.allow_interspersed_args = True
64 +                parser.error = lambda msg: None
65 +                parser.add_option(arg_name, dest="dirs", action="append")
66 +                options = parser.parse_args(env_val.split())[0]
67 +                if options.dirs:
68 +                    for directory in reversed(options.dirs):
69 +                        add_dir_to_list(dir_list, directory)
70 +
71          # Add paths to popular package managers on OS X/darwin
72          if sys.platform == "darwin":
73              # Fink installs into /sw by default
74 --- Lib/optparse.py     2006-05-29 03:15:43.000000000 +0900
75 +++ Lib/optparse.py     2011-03-07 21:20:17.192000789 +0900
76 @@ -69,7 +69,13 @@
77  import sys, os
78  import types
79  import textwrap
80 -from gettext import gettext as _
81 +
82 +try:
83 +    from gettext import gettext
84 +except ImportError:
85 +    def gettext(message):
86 +        return message
87 +_ = gettext
88  
89  def _repr(self):
90      return "<%s at 0x%x: %s>" % (self.__class__.__name__, id(self), self)
91