| 1 | #! /bin/sh |
| 2 | # Generate CGEN opcode files: arch-opc.[ch], arch-asm.c, arch-asm.c. |
| 3 | # |
| 4 | # We store the generated files in the source directory until we decide to |
| 5 | # ship a scheme with gdb/binutils. Maybe we never will. |
| 6 | |
| 7 | # We want to behave like make, any error forces us to stop. |
| 8 | set -e |
| 9 | |
| 10 | srcdir=$1 |
| 11 | cgendir=$2 |
| 12 | cgenflags=$3 |
| 13 | scheme=$4 |
| 14 | schemeflags=$5 |
| 15 | arch=$6 |
| 16 | |
| 17 | rm -f tmp-opc.h tmp-opc.c tmp-asm.c tmp-dis.c |
| 18 | rm -f tmp-opc.h1 tmp-opc.c1 tmp-asm.c1 tmp-dis.c1 |
| 19 | rm -f tmp-asm.in tmp-asm.in1 tmp-dis.in tmp-dis.in1 |
| 20 | |
| 21 | $scheme $schemeflags $cgendir/cgen-opc.scm \ |
| 22 | -s $cgendir \ |
| 23 | $cgenflags \ |
| 24 | -m all \ |
| 25 | -a $arch \ |
| 26 | -h tmp-opc.h1 \ |
| 27 | -t tmp-opc.c1 \ |
| 28 | -A tmp-asm.in1 \ |
| 29 | -D tmp-dis.in1 |
| 30 | |
| 31 | sed -e "s/@arch@/${arch}/g" < tmp-opc.h1 > tmp-opc.h |
| 32 | ${srcdir}/../move-if-change tmp-opc.h ${srcdir}/${arch}-opc.h |
| 33 | sed -e "s/@arch@/${arch}/g" < tmp-opc.c1 > tmp-opc.c |
| 34 | ${srcdir}/../move-if-change tmp-opc.c ${srcdir}/${arch}-opc.c |
| 35 | sed -e "/ -- assembler routines/ r tmp-asm.in1" ${srcdir}/cgen-asm.in \ |
| 36 | | sed -e "s/@arch@/${arch}/g" > tmp-asm.c |
| 37 | ${srcdir}/../move-if-change tmp-asm.c ${srcdir}/${arch}-asm.c |
| 38 | sed -e "/ -- disassembler routines/ r tmp-dis.in1" ${srcdir}/cgen-dis.in \ |
| 39 | | sed -e "s/@arch@/${arch}/g" > tmp-dis.c |
| 40 | ${srcdir}/../move-if-change tmp-dis.c ${srcdir}/${arch}-dis.c |
| 41 | |
| 42 | rm -f tmp-opc.h1 tmp-opc.c1 tmp-asm.c1 tmp-dis.c1 |
| 43 | rm -f tmp-asm.in tmp-asm.in1 tmp-dis.in tmp-dis.in1 |