]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - opcodes/cgen.sh
Use `set -e' to behave like `make'.
[thirdparty/binutils-gdb.git] / opcodes / cgen.sh
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