mirror of
https://github.com/mupen64plus/mupen64plus-core.git
synced 2025-04-02 10:21:45 -04:00
38 lines
1.3 KiB
Bash
Executable file
38 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
set +f
|
|
|
|
# Set the "print" outputs
|
|
NASM_FILE="$1/asm_defines_nasm.h"
|
|
GAS_FILE="$1/asm_defines_gas.h"
|
|
rm -f "$1/asm_defines_*"
|
|
|
|
# Adaptation of 'gen_asm_defines.awk' / 'gen_asm_script.cmd':
|
|
#
|
|
# 1. Display 'asm_defines.o' as a list, looking only for
|
|
# patterns '@ASM_DEFINE'
|
|
# 2. Sort for easy reading, the result is interpreted as an array or
|
|
# worksheet with ' ' as a self-imposed delimiter in the 'cut' command
|
|
# 3. The cut's '-f2,3' discards column "1" (@ASM_DEFINE) and anything
|
|
# beyond "3", take "2" (offset* column), the delimiters and
|
|
# "3" (hex* column) to be kept
|
|
# 4. After setting 'GAS_OBJSTR', all the next lines (LF) are degraded
|
|
# to ' ' and thus all patterns in columns "2" and "3" become a
|
|
# predictable text sequence
|
|
GAS_OBJSTR=$(LC_ALL=C grep -a "@ASM_DEFINE" "$2" | sort | cut -d ' ' -f2,3)
|
|
for GAS_CURSTR in ${GAS_OBJSTR}; do
|
|
|
|
# 5. If the current value doesn't contain a hex glob (pattern matching),
|
|
# it must be a "offset* value"
|
|
if [ "${GAS_CURSTR:0:2}" != "0x" ]; then
|
|
|
|
# 6. Save current value and repeat step 5 on the next value
|
|
GAS_OFFSET=${GAS_CURSTR}
|
|
else
|
|
|
|
# 7. Print current values and repeat steps 5-7 on the next value
|
|
# until EOL is reached
|
|
echo "%define ${GAS_OFFSET} (${GAS_CURSTR})" >> "$NASM_FILE"
|
|
echo "#define ${GAS_OFFSET} (${GAS_CURSTR})" >> "$GAS_FILE"
|
|
fi
|
|
done
|