| # This script is sourced from the top-level Android emulator |
| # configuration script, and relies on the following macro |
| # definitions: |
| # |
| # QEMU2_TOP_DIR: top-level QEMU2 source directory. |
| # OUT_DIR: top-level build output directory. |
| |
| QEMU2_AUTOGENERATED_DIR=$OUT_DIR/build/qemu2-qapi-auto-generated |
| |
| probe_prebuilts_dir "QEMU2 Dependencies" \ |
| QEMU2_DEPS_PREBUILTS_DIR \ |
| qemu-android-deps |
| |
| echo "QEMU2_DEPS_PREBUILTS_DIR := $QEMU2_DEPS_PREBUILTS_DIR" >> $config_mk |
| |
| python $QEMU2_TOP_DIR/scripts/qapi-types.py \ |
| --builtins \ |
| -i $QEMU2_TOP_DIR/qapi-schema.json \ |
| -o $QEMU2_AUTOGENERATED_DIR |
| |
| python $QEMU2_TOP_DIR/scripts/qapi-visit.py \ |
| --builtins \ |
| -i $QEMU2_TOP_DIR/qapi-schema.json \ |
| -o $QEMU2_AUTOGENERATED_DIR |
| |
| python $QEMU2_TOP_DIR/scripts/qapi-event.py \ |
| --builtins \ |
| -i $QEMU2_TOP_DIR/qapi-schema.json \ |
| -o $QEMU2_AUTOGENERATED_DIR |
| |
| python $QEMU2_TOP_DIR/scripts/qapi-commands.py \ |
| --middle \ |
| -i $QEMU2_TOP_DIR/qapi-schema.json \ |
| -o $QEMU2_AUTOGENERATED_DIR |
| |
| mkdir -p "$QEMU2_AUTOGENERATED_DIR"/trace |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=h \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-tracers.h |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=c \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-tracers.c |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=events-h \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-events.h |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=events-c \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-events.c |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=tcg-helper-h \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-helpers.h |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=tcg-helper-wrapper-h \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-helpers-wrappers.h |
| |
| python $QEMU2_TOP_DIR/scripts/tracetool.py \ |
| --backends=nop \ |
| --format=tcg-h \ |
| --target-type system \ |
| < $QEMU2_TOP_DIR/trace-events \ |
| > $QEMU2_AUTOGENERATED_DIR/trace/generated-tcg-tracers.h |
| |
| bash $QEMU2_TOP_DIR/scripts/hxtool -h \ |
| < $QEMU2_TOP_DIR/qemu-options.hx \ |
| > $QEMU2_AUTOGENERATED_DIR/qemu-options.def |
| |
| bash $QEMU2_TOP_DIR/scripts/hxtool -h \ |
| < $QEMU2_TOP_DIR/hmp-commands.hx \ |
| > $QEMU2_AUTOGENERATED_DIR/hmp-commands.h |
| |
| bash $QEMU2_TOP_DIR/scripts/hxtool -h \ |
| < $QEMU2_TOP_DIR/qmp-commands.hx \ |
| > $QEMU2_AUTOGENERATED_DIR/qmp-commands-old.h |
| |
| bash $QEMU2_TOP_DIR/scripts/hxtool -h \ |
| < $QEMU2_TOP_DIR/qemu-img-cmds.hx \ |
| > $QEMU2_AUTOGENERATED_DIR/qemu-img-cmds.h |
| |
| HEX_FILES=$(find $QEMU2_TOP_DIR/hw/i386/ -name "*.hex.generated" | \ |
| sed -e 's|'$QEMU2_TOP_DIR/'||g') |
| mkdir -p $QEMU2_AUTOGENERATED_DIR/hw/i386 |
| for HEX_FILES in $HEX_FILES; do |
| cp "$QEMU2_TOP_DIR/$HEX_FILES" "$QEMU2_AUTOGENERATED_DIR/${HEX_FILES%.generated}" |
| done |
| |
| rm -f $QEMU2_AUTOGENERATED_DIR/gdbstub-xml-arm64.c |
| bash $QEMU2_TOP_DIR/scripts/feature_to_c.sh \ |
| $QEMU2_AUTOGENERATED_DIR/gdbstub-xml-arm64.c \ |
| $QEMU2_TOP_DIR/gdb-xml/aarch64-core.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/aarch64-fpu.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-core.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-vfp.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-vfp3.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-neon.xml |
| |
| rm -f $QEMU2_AUTOGENERATED_DIR/gdbstub-xml-arm.c |
| bash $QEMU2_TOP_DIR/scripts/feature_to_c.sh \ |
| $QEMU2_AUTOGENERATED_DIR/gdbstub-xml-arm.c \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-core.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-vfp.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-vfp3.xml \ |
| $QEMU2_TOP_DIR/gdb-xml/arm-neon.xml |
| |
| if [ "$OPT_MINGW" ]; then |
| $OUT_DIR/objs/build/toolchain/x86_64-mingw32-windres \ |
| -o $QEMU2_AUTOGENERATED_DIR/version.o \ |
| $QEMU2_TOP_DIR/version.rc |
| fi |
| |
| # Work-around for a QEMU2 bug: |
| # $QEMU2/linux-headers/linux/kvm.h includes <asm/kvm.h> |
| # but $QEMU2/linux-headers/asm/ doesn't exist. It is supposed |
| # to be a symlink to $QEMU2/linux-headers/asm-x86/ |
| # |
| # The end result is that the <asm/kvm.h> from the host system |
| # or toolchain sysroot is being included, which ends up in a |
| # conflict. Work around it by creating a symlink here |
| ln -sf $QEMU2_TOP_DIR/linux-headers/asm-x86 $QEMU2_AUTOGENERATED_DIR/asm |