meson: cpu-emu
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
b309c32125
commit
c9322ab5bf
@ -108,15 +108,6 @@ obj-y += $(LIBQEMU)
|
|||||||
obj-y += trace/
|
obj-y += trace/
|
||||||
|
|
||||||
#########################################################
|
#########################################################
|
||||||
# cpu emulator library
|
|
||||||
obj-y += exec.o exec-vary.o
|
|
||||||
obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
|
|
||||||
obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
|
|
||||||
obj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o
|
|
||||||
obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o
|
|
||||||
obj-$(CONFIG_TCG) += fpu/softfloat.o
|
|
||||||
obj-y += disas.o
|
|
||||||
obj-$(call notempty,$(TARGET_XML_FILES)) += gdbstub-xml.o
|
|
||||||
LIBS := $(libs_cpu) $(LIBS)
|
LIBS := $(libs_cpu) $(LIBS)
|
||||||
|
|
||||||
obj-$(CONFIG_PLUGIN) += plugins/
|
obj-$(CONFIG_PLUGIN) += plugins/
|
||||||
@ -200,9 +191,6 @@ ifdef CONFIG_DARWIN
|
|||||||
$(call quiet-command,SetFile -a C $@,"SETFILE","$(TARGET_DIR)$@")
|
$(call quiet-command,SetFile -a C $@,"SETFILE","$(TARGET_DIR)$@")
|
||||||
endif
|
endif
|
||||||
|
|
||||||
gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh
|
|
||||||
$(call quiet-command,rm -f $@ && $(SHELL) $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES),"GEN","$(TARGET_DIR)$@")
|
|
||||||
|
|
||||||
clean: clean-target
|
clean: clean-target
|
||||||
rm -f *.a *~ $(PROGS)
|
rm -f *.a *~ $(PROGS)
|
||||||
rm -f $(shell find . -name '*.[od]')
|
rm -f $(shell find . -name '*.[od]')
|
||||||
|
10
configure
vendored
10
configure
vendored
@ -5478,9 +5478,13 @@ case "$capstone" in
|
|||||||
LIBCAPSTONE=libcapstone.a
|
LIBCAPSTONE=libcapstone.a
|
||||||
fi
|
fi
|
||||||
libs_cpu="-L$PWD/capstone -lcapstone $libs_cpu"
|
libs_cpu="-L$PWD/capstone -lcapstone $libs_cpu"
|
||||||
|
capstone_libs="-L$PWD/capstone -lcapstone"
|
||||||
|
capstone_cflags="-I${source_path}/capstone/include"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
system)
|
system)
|
||||||
|
capstone_libs="$($pkg_config --libs capstone)"
|
||||||
|
capstone_cflags="$($pkg_config --cflags capstone)"
|
||||||
QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags capstone)"
|
QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags capstone)"
|
||||||
libs_cpu="$($pkg_config --libs capstone) $libs_cpu"
|
libs_cpu="$($pkg_config --libs capstone) $libs_cpu"
|
||||||
;;
|
;;
|
||||||
@ -7712,6 +7716,8 @@ if test "$ivshmem" = "yes" ; then
|
|||||||
fi
|
fi
|
||||||
if test "$capstone" != "no" ; then
|
if test "$capstone" != "no" ; then
|
||||||
echo "CONFIG_CAPSTONE=y" >> $config_host_mak
|
echo "CONFIG_CAPSTONE=y" >> $config_host_mak
|
||||||
|
echo "CAPSTONE_CFLAGS=$capstone_cflags" >> $config_host_mak
|
||||||
|
echo "CAPSTONE_LIBS=$capstone_libs" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
if test "$debug_mutex" = "yes" ; then
|
if test "$debug_mutex" = "yes" ; then
|
||||||
echo "CONFIG_DEBUG_MUTEX=y" >> $config_host_mak
|
echo "CONFIG_DEBUG_MUTEX=y" >> $config_host_mak
|
||||||
@ -7732,6 +7738,8 @@ fi
|
|||||||
|
|
||||||
if test "$libpmem" = "yes" ; then
|
if test "$libpmem" = "yes" ; then
|
||||||
echo "CONFIG_LIBPMEM=y" >> $config_host_mak
|
echo "CONFIG_LIBPMEM=y" >> $config_host_mak
|
||||||
|
echo "LIBPMEM_LIBS=$libpmem_libs" >> $config_host_mak
|
||||||
|
echo "LIBPMEM_CFLAGS=$libpmem_cflags" >> $config_host_mak
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$libdaxctl" = "yes" ; then
|
if test "$libdaxctl" = "yes" ; then
|
||||||
@ -8230,7 +8238,7 @@ fi
|
|||||||
list=""
|
list=""
|
||||||
if test ! -z "$gdb_xml_files" ; then
|
if test ! -z "$gdb_xml_files" ; then
|
||||||
for x in $gdb_xml_files; do
|
for x in $gdb_xml_files; do
|
||||||
list="$list $source_path/gdb-xml/$x"
|
list="$list gdb-xml/$x"
|
||||||
done
|
done
|
||||||
echo "TARGET_XML_FILES=$list" >> $config_target_mak
|
echo "TARGET_XML_FILES=$list" >> $config_target_mak
|
||||||
fi
|
fi
|
||||||
|
37
meson.build
37
meson.build
@ -345,6 +345,16 @@ if 'CONFIG_USB_LIBUSB' in config_host
|
|||||||
libusb = declare_dependency(compile_args: config_host['LIBUSB_CFLAGS'].split(),
|
libusb = declare_dependency(compile_args: config_host['LIBUSB_CFLAGS'].split(),
|
||||||
link_args: config_host['LIBUSB_LIBS'].split())
|
link_args: config_host['LIBUSB_LIBS'].split())
|
||||||
endif
|
endif
|
||||||
|
capstone = not_found
|
||||||
|
if 'CONFIG_CAPSTONE' in config_host
|
||||||
|
capstone = declare_dependency(compile_args: config_host['CAPSTONE_CFLAGS'].split(),
|
||||||
|
link_args: config_host['CAPSTONE_LIBS'].split())
|
||||||
|
endif
|
||||||
|
libpmem = not_found
|
||||||
|
if 'CONFIG_LIBPMEM' in config_host
|
||||||
|
libpmem = declare_dependency(compile_args: config_host['LIBPMEM_CFLAGS'].split(),
|
||||||
|
link_args: config_host['LIBPMEM_LIBS'].split())
|
||||||
|
endif
|
||||||
|
|
||||||
create_config = find_program('scripts/create_config')
|
create_config = find_program('scripts/create_config')
|
||||||
minikconf = find_program('scripts/minikconf.py')
|
minikconf = find_program('scripts/minikconf.py')
|
||||||
@ -529,6 +539,8 @@ target_softmmu_arch = {}
|
|||||||
# Trace files #
|
# Trace files #
|
||||||
###############
|
###############
|
||||||
|
|
||||||
|
# TODO: add each directory to the subdirs from its own meson.build, once
|
||||||
|
# we have those
|
||||||
trace_events_subdirs = [
|
trace_events_subdirs = [
|
||||||
'accel/kvm',
|
'accel/kvm',
|
||||||
'accel/tcg',
|
'accel/tcg',
|
||||||
@ -697,6 +709,20 @@ softmmu_ss.add(when: ['CONFIG_FDT', fdt], if_true: [files('device_tree.c')])
|
|||||||
common_ss.add(files('cpus-common.c'))
|
common_ss.add(files('cpus-common.c'))
|
||||||
|
|
||||||
subdir('softmmu')
|
subdir('softmmu')
|
||||||
|
|
||||||
|
specific_ss.add(files('disas.c', 'exec.c', 'gdbstub.c'), capstone, libpmem)
|
||||||
|
specific_ss.add(files('exec-vary.c'))
|
||||||
|
specific_ss.add(when: 'CONFIG_TCG', if_true: files(
|
||||||
|
'fpu/softfloat.c',
|
||||||
|
'tcg/optimize.c',
|
||||||
|
'tcg/tcg-common.c',
|
||||||
|
'tcg/tcg-op-gvec.c',
|
||||||
|
'tcg/tcg-op-vec.c',
|
||||||
|
'tcg/tcg-op.c',
|
||||||
|
'tcg/tcg.c',
|
||||||
|
))
|
||||||
|
specific_ss.add(when: 'CONFIG_TCG_INTERPRETER', if_true: files('disas/tci.c', 'tcg/tci.c'))
|
||||||
|
|
||||||
subdir('backends')
|
subdir('backends')
|
||||||
subdir('disas')
|
subdir('disas')
|
||||||
subdir('migration')
|
subdir('migration')
|
||||||
@ -788,6 +814,8 @@ common_all = static_library('common',
|
|||||||
dependencies: common_all.dependencies(),
|
dependencies: common_all.dependencies(),
|
||||||
name_suffix: 'fa')
|
name_suffix: 'fa')
|
||||||
|
|
||||||
|
feature_to_c = find_program('scripts/feature_to_c.sh')
|
||||||
|
|
||||||
foreach target : target_dirs
|
foreach target : target_dirs
|
||||||
config_target = config_target_mak[target]
|
config_target = config_target_mak[target]
|
||||||
target_name = config_target['TARGET_NAME']
|
target_name = config_target['TARGET_NAME']
|
||||||
@ -834,6 +862,15 @@ foreach target : target_dirs
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if 'TARGET_XML_FILES' in config_target
|
||||||
|
gdbstub_xml = custom_target(target + '-gdbstub-xml.c',
|
||||||
|
output: target + '-gdbstub-xml.c',
|
||||||
|
input: files(config_target['TARGET_XML_FILES'].split()),
|
||||||
|
command: [feature_to_c, '@INPUT@'],
|
||||||
|
capture: true)
|
||||||
|
arch_srcs += gdbstub_xml
|
||||||
|
endif
|
||||||
|
|
||||||
t = target_arch[arch].apply(config_target, strict: false)
|
t = target_arch[arch].apply(config_target, strict: false)
|
||||||
arch_srcs += t.sources()
|
arch_srcs += t.sources()
|
||||||
|
|
||||||
|
@ -19,16 +19,8 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
output=$1
|
if test -z "$1"; then
|
||||||
shift
|
echo "Usage: $0 INPUTFILE..."
|
||||||
|
|
||||||
if test -z "$output" || test -z "$1"; then
|
|
||||||
echo "Usage: $0 OUTPUTFILE INPUTFILE..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -e "$output"; then
|
|
||||||
echo "Output file \"$output\" already exists; refusing to overwrite."
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -60,17 +52,17 @@ for input; do
|
|||||||
printf "'\''\\n'\'', \n"
|
printf "'\''\\n'\'', \n"
|
||||||
} END {
|
} END {
|
||||||
print " 0 };"
|
print " 0 };"
|
||||||
}' < $input >> $output
|
}' < $input
|
||||||
done
|
done
|
||||||
|
|
||||||
echo >> $output
|
echo
|
||||||
echo "const char *const xml_builtin[][2] = {" >> $output
|
echo "const char *const xml_builtin[][2] = {"
|
||||||
|
|
||||||
for input; do
|
for input; do
|
||||||
basename=$(echo $input | sed 's,.*/,,')
|
basename=$(echo $input | sed 's,.*/,,')
|
||||||
arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g')
|
arrayname=xml_feature_$(echo $input | sed 's,.*/,,; s/[-.]/_/g')
|
||||||
echo " { \"$basename\", $arrayname }," >> $output
|
echo " { \"$basename\", $arrayname },"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo " { (char *)0, (char *)0 }" >> $output
|
echo " { (char *)0, (char *)0 }"
|
||||||
echo "};" >> $output
|
echo "};"
|
||||||
|
Loading…
Reference in New Issue
Block a user