srcanamdw/codescanner/pyinstaller/Sconstruct
author noe\swadi
Thu, 18 Feb 2010 12:29:02 +0530
changeset 1 22878952f6e2
permissions -rw-r--r--
Committing the CodeScanner Core tool This component has been moved from the StaticAnaApps package. BUG : 5889 (http://developer.symbian.org/webbugs/show_bug.cgi?id=5889).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     1
# Sconstruct file to build the bootloader
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     2
# Copyright (C) 2005, Giovanni Bajo
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     3
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     4
# This program is free software; you can redistribute it and/or
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     5
# modify it under the terms of the GNU General Public License
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     6
# as published by the Free Software Foundation; either version 2
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     7
# of the License, or (at your option) any later version.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     8
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     9
# This program is distributed in the hope that it will be useful,
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    12
# GNU General Public License for more details.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    13
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    14
# You should have received a copy of the GNU General Public License
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    15
# along with this program; if not, write to the Free Software
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    17
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    18
platform = Platform()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    19
envs = []
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    20
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    21
if platform.name == "win32":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    22
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    23
    # For Windows, we need generate several different versions of the bootloader:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    24
    # - Either runtime-compatible with Visual Studio 6.0 or with Visual Studio 7.1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    25
    #   (the former is used in all Python versions up to 2.3, the latter since
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    26
    #   Python 2.4).
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    27
    # - Either debug build (with debug messages) or release build.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    28
    # - Either console program or windowed program.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    29
    for msvs_ver in "6.0", "7.1":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    30
        base_env = Environment(MSVS_VERSION = msvs_ver)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    31
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    32
        for flavour in "debug", "release":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    33
            for mode in "cons", "win":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    34
                env = base_env.Copy()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    35
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    36
                # The bootloader is built as a static executable. We want it
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    37
                # to be self-contained. Extra care was put in writing it so
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    38
                # that it does not share objects/memory with python.dll (which
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    39
                # it loads).
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    40
                env.Append(CCFLAGS = ["/ML"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    41
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    42
                if flavour == "debug":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    43
                    # No optimizations
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    44
                    env.Append(CCFLAGS = ["/Od"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    45
                    # Each object has its own pdb, so -jN works
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    46
                    env.Append(CCFLAGS = ["/Zi", "/Fd${TARGET}.pdb"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    47
                    env.Append(LINKFLAGS = ["/DEBUG"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    48
                else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    49
                    # Use some sensible amount of optimizations
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    50
                    env.Append(CCFLAGS = ["/Ox", "/DNDEBUG"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    51
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    52
                if mode == "cons":
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    53
                    env.Append(CPPDEFINES = ["_CONSOLE"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    54
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    55
                env["PYINST_FLAVOUR"] = flavour
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    56
                env["PYINST_MODE"] = mode
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    57
                env["PYINST_SUFFIX"] = "%c%c%c" % (msvs_ver[0], flavour[0], mode[0])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    58
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    59
                env.Append(CPPDEFINES = ["WIN32"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    60
                env.Append(LIBS = ["user32.lib", "comctl32.lib", "kernel32.lib", "ws2_32.lib"])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    61
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    62
                envs.append(env)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    63
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    64
for env in envs:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    65
    run,dll = SConscript("source/SConscript", exports = ["env"],
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    66
                         build_dir = "build/" + env["PYINST_SUFFIX"],
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    67
                         duplicate = 0)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    68
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    69
    env.InstallAs(target="support/loader/run_" + env["PYINST_SUFFIX"] + env["PROGSUFFIX"],
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    70
                  source=run)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    71
    env.InstallAs(target="support/loader/inprocsrvr_" + env["PYINST_SUFFIX"] + env["SHLIBSUFFIX"],
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    72
                  source=dll[0])