srcanamdw/codescanner/pyinstaller/source/linux/Make.py
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
#! /usr/bin/env python
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
# Based on previous work under copyright (c) 2002 McMillan Enterprises, Inc.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     4
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     5
# This program is free software; you can redistribute it and/or
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     6
# modify it under the terms of the GNU General Public License
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     7
# as published by the Free Software Foundation; either version 2
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     8
# of the License, or (at your option) any later version.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
     9
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    10
# This program is distributed in the hope that it will be useful,
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    13
# GNU General Public License for more details.
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    14
#
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    15
# You should have received a copy of the GNU General Public License
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    16
# along with this program; if not, write to the Free Software
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    17
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    18
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    19
""" Make.py
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    20
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    21
    -h help
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    22
    -n use separate archive / executable (nonELF)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    23
    -e use concatenated executable / archive (ELF)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    24
    -p prefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    25
    -P execprefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    26
"""
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    27
import sys
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    28
import os
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    29
import getopt
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    30
import string
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    31
import marshal
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    32
import bkfile
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    33
import makemakefile
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    34
import pprint
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    35
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    36
try:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    37
	from distutils import sysconfig
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    38
except:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    39
	print "ERROR: distutils with sysconfig required"
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    40
	sys.exit(1)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    41
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    42
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    43
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    44
def main():
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    45
    dirnm = os.path.dirname(sys.argv[0])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    46
    if dirnm not in ('', '.'):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    47
        os.chdir(dirnm)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    48
    # overridable context
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    49
    prefix = None                       # settable with -p option
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    50
    exec_prefix = None                  # settable with -P option
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    51
    non_elf = 1                         # settable with -e option
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    52
    if ( sys.platform[:5] == 'linux' or
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    53
         sys.platform[:3] == 'win' or
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    54
         sys.platform[:7] in ['freebsd','darwin'] or
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    55
         sys.platform[:6] == 'cygwin' ):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    56
        non_elf = 0                         # settable with -n option
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    57
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    58
    try:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    59
        opts, args = getopt.getopt(sys.argv[1:], 'hneo:p:P:')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    60
    except getopt.error, msg:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    61
        usage('getopt error: ' + str(msg))
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    62
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    63
    # proces option arguments
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    64
    for o, a in opts:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    65
        if o == '-h':
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    66
            print __doc__
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    67
            return
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    68
        if o == '-p':
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    69
            prefix = a
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    70
        if o == '-P':
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    71
            exec_prefix = a
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    72
        if o == '-n':
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    73
            non_elf = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    74
        if o == '-e':
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    75
            non_elf = 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    76
    # default prefix and exec_prefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    77
    if not exec_prefix:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    78
        if prefix:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    79
            exec_prefix = prefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    80
        else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    81
            exec_prefix = sysconfig.EXEC_PREFIX
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    82
    if not prefix:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    83
        prefix = sysconfig.PREFIX
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    84
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    85
    # determine whether -p points to the Python source tree
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    86
    ishome = os.path.exists(os.path.join(prefix, 'Python', 'ceval.c'))
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    87
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    88
    cygwin = sys.platform == 'cygwin'
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    89
    darwin = sys.platform[:7] == 'darwin'
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    90
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    91
    if ishome:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    92
        print "(Using Python source directory)"
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    93
        binlib = exec_prefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    94
        incldir = os.path.join(prefix, 'Include')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    95
        config_h_dir = exec_prefix
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    96
        makefile_in = os.path.join(exec_prefix, 'Modules', 'Makefile')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    97
    else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    98
#	binlib = os.path.join (sysconfig.get_python_lib(True, True, exec_prefix), 'config')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
    99
	binlib = sysconfig.get_config_vars('LIBDIR')[0]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   100
	# TODO: Is it possible to have more than one path returned? if so fix "includes" list
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   101
	incldir_list =  sysconfig.get_config_vars('INCLUDEDIR')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   102
	includes = []
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   103
	for dir in incldir_list:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   104
		if dir != None:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   105
			includes.append('-I' + dir)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   106
	config_h_dir =  os.path.join (sysconfig.get_python_inc(True,exec_prefix))
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   107
        includes.append('-I' + config_h_dir)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   108
        makefile_in = sysconfig.get_makefile_filename()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   109
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   110
    # salt config.dat with the exe type
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   111
    try:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   112
        config = eval(open('../../config.dat', 'r').read())
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   113
    except IOError:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   114
        config = {}
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   115
    config['useELFEXE'] = not non_elf
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   116
    configf = open('../../config.dat', 'w')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   117
    pprint.pprint(config, configf)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   118
    configf.close()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   119
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   120
    targets = [None, None]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   121
    targets[0] = os.path.join('../../support/loader/', 'run')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   122
    targets[1] = os.path.join('../../support/loader/', 'run_d')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   123
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   124
    # include local 'common' dir
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   125
    includes.append('-I../common')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   126
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   127
    have_warnings = 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   128
    import exceptions
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   129
    if not hasattr(exceptions, '__file__'):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   130
        freeze_exceptions = 0
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   131
        files = ['main.c', '../common/launch.c']
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   132
        if hasattr(exceptions, 'Warning'):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   133
            have_warnings = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   134
    else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   135
        freeze_exceptions = 1
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   136
        import exceptions
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   137
        print "reading exceptions from", exceptions.__file__
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   138
        inf = open(exceptions.__file__, 'rb')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   139
        inf.seek(8)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   140
        code = inf.read()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   141
        codelen = len(code)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   142
        outfp = bkfile.open('M_exceptions.c', 'w')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   143
        files = ['M_exceptions.c', 'main.c', '../common/launch.c']
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   144
        outfp.write('unsigned char M_exceptions[] = {')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   145
        for i in range(0, len(code), 16):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   146
            outfp.write('\n\t')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   147
            for c in code[i:i+16]:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   148
                outfp.write('%d,' % ord(c))
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   149
        outfp.write('\n};\n')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   150
        outfp.close()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   151
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   152
    includes.append('$(OPT)')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   153
    cflags = includes
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   154
    cflags.append(sysconfig.get_config_vars('CFLAGS')[0]) #save sysconfig CFLAGS
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   155
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   156
    if have_warnings:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   157
        cflags.append('-DHAVE_WARNINGS')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   158
    if freeze_exceptions:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   159
        cflags.append('-DFREEZE_EXCEPTIONS')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   160
        cflags.append('-DEXCEPTIONS_LEN=%d' % codelen)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   161
    if non_elf:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   162
        cflags.append('-DNONELF')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   163
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   164
    libs = [os.path.join(sysconfig.get_config_vars('LIBPL')[0], sysconfig.get_config_vars('LIBRARY')[0])]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   165
    if not os.path.isfile(libs[0]):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   166
        print "WARNING: could not find Python static library at:", libs[0]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   167
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   168
    somevars = {}
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   169
    if os.path.exists(makefile_in):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   170
        makevars = sysconfig.parse_makefile(makefile_in)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   171
    else:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   172
        raise ValueError, "Makefile '%s' not found" % makefile_in
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   173
    for key in makevars.keys():
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   174
        somevars[key] = makevars[key]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   175
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   176
    somevars['CFLAGS'] = string.join(cflags) # override
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   177
    files = ['$(OPT)', '$(LDFLAGS)', '$(LINKFORSHARED)', 'getpath.c'] + \
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   178
            files + libs + \
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   179
            ['$(MODLIBS)', '$(LIBS)', '$(SYSLIBS)', '-lz']  # XXX zlib not always -lz
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   180
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   181
    outfp = bkfile.open('Makefile', 'w')
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   182
    try:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   183
        makemakefile.writevars(outfp, somevars, string.join(targets))
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   184
        makemakefile.writerules(outfp, files[:], '', '', targets[0])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   185
        makemakefile.writerules(outfp, files[:], '_d', '-D_DEBUG -DLAUNCH_DEBUG', targets[1])
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   186
    finally:
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   187
        outfp.close()
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   188
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   189
    # Done!
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   190
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   191
    print 'Now run "make" to build the targets:', string.join(targets)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   192
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   193
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   194
def usage(msg):
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   195
    sys.stdout = sys.stderr
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   196
    print "Error:", msg
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   197
    print "Use ``%s -h'' for help" % sys.argv[0]
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   198
    sys.exit(2)
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   199
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   200
22878952f6e2 Committing the CodeScanner Core tool
noe\swadi
parents:
diff changeset
   201
main()