1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
cmake_minimum_required(VERSION 3.25)
set(VU_SYSCALL_CONF ${PROJECT_SOURCE_DIR}/vu_syscalls.conf)
set(VU_SCRIPT_PATH ${PROJECT_SOURCE_DIR}/scripts)
add_custom_target(Dynamic_Sources ALL
DEPENDS ${VU_SYSCALL_DEFS} ${VU_ARCHTABLE} ${SYSCALL_NR_COMPAT_H} ${VU_SYSNAMES} ${VU_SYSTABLE} ${R_TABLE_H})
add_custom_command(OUTPUT ${VU_DYN_HEADER_PATH}
COMMAND mkdir ${VU_DYN_HEADER_PATH})
add_custom_command(OUTPUT ${VU_DYN_SOURCE_PATH}
COMMAND mkdir ${VU_DYN_SOURCE_PATH})
execute_process(COMMAND ${VU_SCRIPT_PATH}/syscall_deps.sh ${CMAKE_C_COMPILER}
OUTPUT_VARIABLE SYSCALL_DEPS)
# syscall_defs.h
add_custom_command(OUTPUT ${VU_SYSCALL_DEFS}
COMMAND ${VU_SCRIPT_PATH}/syscall_defs_gen.py ${VU_SYSCALL_CONF} > ${VU_SYSCALL_DEFS}
COMMENT "Populating VU syscall list"
DEPENDS ${VU_SYSCALL_CONF} ${VU_DYN_HEADER_PATH})
# r_table.h
add_custom_command(OUTPUT ${R_TABLE_H}
COMMAND ${VU_SCRIPT_PATH}/r_table_gen.sh ${CMAKE_C_COMPILER} ${VU_SCRIPT_PATH} > ${R_TABLE_H}
COMMENT "Generating r_table"
DEPENDS ${VU_DYN_HEADER_PATH} ${SYSCALL_DEPS})
# syscall_nr_compat_gen.h
add_custom_command(OUTPUT ${SYSCALL_NR_COMPAT_H}
COMMAND ${VU_SCRIPT_PATH}/syscall_nr_compat_gen.py ${VU_SYSCALL_CONF} > ${SYSCALL_NR_COMPAT_H}
COMMENT "Generating syscall NR compat list"
DEPENDS ${VU_SYSCALL_CONF} ${VU_DYN_HEADER_PATH})
# syscall_names.c
add_custom_command(OUTPUT ${VU_SYSNAMES}
COMMAND ${VU_SCRIPT_PATH}/syscall_names_gen.sh ${CMAKE_C_COMPILER} ${VU_SCRIPT_PATH} > ${VU_SYSNAMES}
COMMENT "Generating syscall names table"
DEPENDS ${VU_DYN_SOURCE_PATH} ${SYSCALL_DEPS})
# arch_table.c
add_custom_command(OUTPUT ${VU_ARCHTABLE}
COMMAND ${VU_SCRIPT_PATH}/archtable_gen.py ${ARCH} ${VU_SYSCALL_CONF} > ${VU_ARCHTABLE}
COMMENT "Generating architecture table"
DEPENDS ${VU_SYSCALL_CONF} ${VU_DYN_SOURCE_PATH})
# syscall_table.c
add_custom_command(OUTPUT ${VU_SYSTABLE}
COMMAND ${VU_SCRIPT_PATH}/syscall_table_gen.py ${VU_SYSCALL_CONF} > ${VU_SYSTABLE}
COMMENT "Generating VU syscall table"
DEPENDS ${VU_SYSCALL_CONF} ${VU_DYN_SOURCE_PATH})
|