# Part of the A-A-P recipe executive: Setup using BCC
# Copyright (c) 2002-2003 stichting NLnet Labs
# Permission to copy and use this file is specified in the file COPYING.
# If this file is missing you can find it here: http://www.a-a-p.org/COPYING
#
# This module sets up variables and actions for using the Borland C++
# compiler tools.
#
from RecPython import *
import Global
from Action import action_add
from Dictlist import str2dictlist
from RecPos import RecPos
def exists():
"""
Return TRUE when the BCC toolchain can be found.
"""
return program_path("bcc32")
def define_actions():
"""
Define the actions that BCC can accomplish.
"""
rd = Global.globals
# TODO: use DEBUG and OPTIMIZE
rpstack = [ RecPos ("compile_bcc action") ]
action_add(rpstack, rd, str2dictlist(rpstack, "compile_bcc object c"),
"defi = $?DEFINE\n"
"incl = $?INCLUDE\n"
":sys $BCC $CPPFLAGS $defi $incl $CFLAGS -c -WE -o$target $source")
if not rd.get("BCC"):
rd["BCC"] = "bcc32"
rpstack = [ RecPos("build_bcc action") ]
action_add(rpstack, rd, str2dictlist(rpstack, "build_bcc object"),
":sys $BCCLINK $LINKFLAGS $source c0x32.obj, $target, , import32.lib cw32.lib")
if not rd.get("BCCLINK"):
rd["BCCLINK"] = "ilink32"
if not rd.get("LINKFLAGS"):
rd["LINKFLAGS"] = "-q"
def use_actions(scope):
"""
Setup variables so that the default actions use the BCC actions.
"""
scope["C_COMPILE_ACTION"] = "compile_bcc"
scope["CXX_COMPILE_ACTION"] = "compile_bcc"
scope["C_BUILD_ACTION"] = "build_bcc"
scope["CXX_BUILD_ACTION"] = "build_bcc"
# Avoid using gcc for dependency checks. It may exist but won't work with
# the BCC compiler flags.
scope["HASGCC"] = "no"
scope["HASGCCXX"] = "no"
# vim: set sw=4 et sts=4 tw=79 fo+=l:
|