#===-- Build Script For hlvm/Runtime --------------------------*- 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
#
#===----------------------------------------------------------------------===#
Import('env')
from build import hlvm
hlvm.GetBytecode(env)
env.BytecodeArchive('HLVMRuntime.bca',hlvm.GetAllCXXFiles(env) + [
  'hlvm_get_programs.ll'])
asm = env.bc2s(source=['hlvm_get_programs.bc'])
obj = env.StaticObject(source=asm)
lib = env.StaticLibrary('HLVMRuntime',hlvm.GetAllCXXFiles(env) + obj)
hlvm.InstallLibrary(env,lib)
hlvm.InstallHeader(env,hlvm.GetFiles(env,'*.h'))
