#===-- Build Script For hlvm ----------------------------------*- Python -*-===#
#
#                      High Level Virtual Machine (HLVM)
#
# Copyright (C) 2006 Reid Spencer. All Rights Reserved.
#
# This software is free software; you can redistribute it and/or modify it 
# under the terms of the GNU Lesser General Public License as published by 
# the Free Software Foundation; either version 2.1 of the License, or (at 
# your option) any later version.
#
# This software is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for 
# more details.
#
# You should have received a copy of the GNU Lesser General Public License 
# along with this library in the file named LICENSE.txt; if not, write to the 
# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
# MA 02110-1301 USA
#
#===----------------------------------------------------------------------===#
from build import hlvm
Import('env')
hlvm.GetCpp2LLVMCpp(env)
env.Cpp2LLVMCpp('string_decl.inc','string.cxx',
  LLVM2CPPFLAGS='-gen-type -for struct._hlvm_string -funcname getStringDecl')
env.Cpp2LLVMCpp('string_clear.inc','string.cxx',
  LLVM2CPPFLAGS='-gen-inline -for _hlvm_string_clear -funcname getStringClear')
env.Cpp2LLVMCpp('program.inc','program.cxx',
  LLVM2CPPFLAGS='-gen-contents -funcname "getProgramDef"')
lib = env.Library('HLVMCodeGen',hlvm.GetAllCXXFiles(env))
hlvm.InstallLibrary(env,lib)
