#===-- Build Script For tools/hlvm-xml2xml --------------------*- 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 os.path import join as pjoin
from build import hlvm
Import('env')
prog = env.Program('hlvm-compiler', hlvm.GetAllCXXFiles(env),
 LIBS=[
   'HLVMCodeGen',
   'HLVMReader',
   'HLVMWriter',
   'HLVMPass',
   'HLVMAST',
   'HLVMBase',
   'xml2',
   'LLVMLinker',
   'LLVMBitReader',
   'LLVMBitWriter',
   'LLVMipo',
   'LLVMipa',
   'LLVMScalarOpts',
   'LLVMAnalysis',
   'LLVMTarget',
   'LLVMTransformUtils',
   'LLVMCore',
   'LLVMSupport',
   'LLVMSystem',
   'aprutil-1',
   'apr-1',
   'stdc++'
  ]
)
hlvm.InstallProgram(env,prog)

