#!/bin/bash #!/bin/bash if [ -z $AC_HOME ] then echo "ASTAROTH_HOME environment variable not set, run \"source ./sourceme.sh\" in Astaroth home directory" exit 1 fi OUTPUT_DIR=${PWD} KERNEL_DIR=${AC_HOME}"/src/core/kernels" ACC_DIR=${AC_HOME}"/acc" ACC_DEFAULT_SAS="mhd_solver/stencil_assembly.sas" ACC_DEFAULT_SPS="mhd_solver/stencil_process.sps" ACC_DEFAULT_HEADER="mhd_solver/stencil_definition.sdh" ACC_DEFAULT_INCLUDE_DIR="mhd_solver" ${ACC_DIR}/clean.sh ${ACC_DIR}/build_acc.sh ACC_SAS=${ACC_DEFAULT_SAS} ACC_SPS=${ACC_DEFAULT_SPS} ACC_HEADER=${ACC_DEFAULT_HEADER} ACC_INCLUDE_DIR=${ACC_DEFAULT_INCLUDE_DIR} while [ "$#" -gt 0 ] do case $1 in -h|--help) echo "This script will help to compile DSL to CUDA code." echo "The resulting kernels will be stored to $OUTPUT_DIR." echo "You can set a custom files for DSL under the path $AC_DIR/" echo "Example:" echo "compile_acc.sh -a custom_setup/custom_assembly.sas -p custom_setup/custom_process.sps --header custom_setup/custom_header.h" exit 0 ;; -I|--include) shift ACC_INCLUDE_DIR=${1} shift echo "CUSTOM include dir!" ;; --header) shift ACC_HEADER=${1} shift echo "CUSTOM Header file!" ;; -a|--assembly) shift ACC_SAS=${1} shift echo "CUSTOM Assembly file!" ;; -p|--process) shift ACC_SPS=${1} shift echo "CUSTOM Process file!" ;; *) break esac done echo "Header file:" ${ACC_DIR}/${ACC_HEADER} echo "Assembly file: ${ACC_DIR}/${ACC_SAS}" echo "Process file: ${ACC_DIR}/${ACC_SPS}" cd ${ACC_DIR}/${ACC_INCLUDE_DIR} echo ${PWD} ${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SAS} ${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SPS} ${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_HEADER} echo "Moving stencil_assembly.cuh -> ${OUTPUT_DIR}" mv stencil_assembly.cuh ${OUTPUT_DIR} echo "Moving stencil_process.cuh -> ${OUTPUT_DIR}" mv stencil_process.cuh ${OUTPUT_DIR} echo "Moving stencil_defines.cuh -> ${OUTPUT_DIR}" mv stencil_defines.h ${OUTPUT_DIR}