Commit c9ec1fe474ee9085b7eaad2326ee1c688f0c2d19
1 parent
e3086fbf
kqemu support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1278 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
66 additions
and
1 deletions
configure
| ... | ... | @@ -81,6 +81,8 @@ fmod="no" |
| 81 | 81 | fmod_lib="" |
| 82 | 82 | fmod_inc="" |
| 83 | 83 | linux="no" |
| 84 | +kqemu="no" | |
| 85 | +kernel_path="" | |
| 84 | 86 | |
| 85 | 87 | # OS specific |
| 86 | 88 | targetos=`uname -s` |
| ... | ... | @@ -107,6 +109,9 @@ darwin="yes" |
| 107 | 109 | *) |
| 108 | 110 | oss="yes" |
| 109 | 111 | linux="yes" |
| 112 | +if [ "$cpu" = "i386" ] ; then | |
| 113 | + kqemu="yes" | |
| 114 | +fi | |
| 110 | 115 | ;; |
| 111 | 116 | esac |
| 112 | 117 | |
| ... | ... | @@ -169,6 +174,10 @@ for opt do |
| 169 | 174 | ;; |
| 170 | 175 | --enable-adlib) adlib="yes" |
| 171 | 176 | ;; |
| 177 | + --disable-kqemu) kqemu="no" | |
| 178 | + ;; | |
| 179 | + --kernel-path=*) kernel_path=${opt#--kernel-path=} | |
| 180 | + ;; | |
| 172 | 181 | esac |
| 173 | 182 | done |
| 174 | 183 | |
| ... | ... | @@ -193,7 +202,7 @@ if test -z "$target_list" ; then |
| 193 | 202 | target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu sparc64-softmmu" |
| 194 | 203 | # the following are Linux specific |
| 195 | 204 | if [ "$linux" = "yes" ] ; then |
| 196 | - target_list="i386-user i386 arm-user armeb-user sparc-user ppc-user sparc64-user $target_list" | |
| 205 | + target_list="i386-user arm-user armeb-user sparc-user ppc-user sparc64-user $target_list" | |
| 197 | 206 | fi |
| 198 | 207 | fi |
| 199 | 208 | |
| ... | ... | @@ -300,6 +309,10 @@ echo " --interp-prefix=PREFIX where to find shared libraries, etc." |
| 300 | 309 | echo " use %M for cpu name [$interp_prefix]" |
| 301 | 310 | echo " --target-list=LIST set target list [$target_list]" |
| 302 | 311 | echo "" |
| 312 | +echo "kqemu kernel acceleration support:" | |
| 313 | +echo " --disable-kqemu disable kqemu build" | |
| 314 | +echo " --kernel-path=PATH set the kernel path (configure probes it)" | |
| 315 | +echo "" | |
| 303 | 316 | echo "Advanced options (experts only):" |
| 304 | 317 | echo " --source-path=PATH path of source code [$source_path]" |
| 305 | 318 | echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" |
| ... | ... | @@ -333,6 +346,40 @@ docdir="$prefix/share/doc/qemu" |
| 333 | 346 | bindir="$prefix/bin" |
| 334 | 347 | fi |
| 335 | 348 | |
| 349 | +# kernel module support | |
| 350 | +if test $kqemu = "yes" ; then | |
| 351 | +# find the kernel path | |
| 352 | +if test -z "$kernel_path" ; then | |
| 353 | +kernel_version=`uname -r` | |
| 354 | +kernel_path="/lib/modules/$kernel_version/build" | |
| 355 | +if test '!' -d "$kernel_path/include" ; then | |
| 356 | + kernel_path="/usr/src/linux" | |
| 357 | + if test '!' -d "$kernel_path/include" ; then | |
| 358 | + echo "Could not find kernel includes in /lib/modules or /usr/src/linux - cannot build the kqemu module" | |
| 359 | + kqemu="no" | |
| 360 | + fi | |
| 361 | +fi | |
| 362 | +fi | |
| 363 | + | |
| 364 | +if test $kqemu = "yes" ; then | |
| 365 | + | |
| 366 | +# test that the kernel config is present | |
| 367 | +if test '!' -f "$kernel_path/Makefile" ; then | |
| 368 | + echo "No .config file present in $kernel_path - kqemu cannot be built" | |
| 369 | + kqemu="no" | |
| 370 | +fi | |
| 371 | + | |
| 372 | +# find build system (2.6 or legacy) | |
| 373 | +kbuild26="yes" | |
| 374 | +if grep -q "PATCHLEVEL = 4" $kernel_path/Makefile ; then | |
| 375 | +kbuild26="no" | |
| 376 | +fi | |
| 377 | + | |
| 378 | +fi # kqemu | |
| 379 | + | |
| 380 | +fi # kqemu | |
| 381 | + | |
| 382 | + | |
| 336 | 383 | echo "Install prefix $prefix" |
| 337 | 384 | echo "BIOS directory $datadir" |
| 338 | 385 | echo "binary directory $bindir" |
| ... | ... | @@ -357,6 +404,17 @@ if test $fmod = "yes"; then |
| 357 | 404 | echo -n " (lib='$fmod_lib' include='$fmod_inc')" |
| 358 | 405 | fi |
| 359 | 406 | echo "" |
| 407 | +if test $kqemu = "yes" ; then | |
| 408 | +echo "" | |
| 409 | +echo "KQEMU module configuration:" | |
| 410 | +echo "kernel sources $kernel_path" | |
| 411 | +echo -n "kbuild type " | |
| 412 | +if test $kbuild26 = "yes"; then | |
| 413 | +echo "2.6" | |
| 414 | +else | |
| 415 | +echo "2.4" | |
| 416 | +fi | |
| 417 | +fi | |
| 360 | 418 | |
| 361 | 419 | if test $sdl_too_old = "yes"; then |
| 362 | 420 | echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support" |
| ... | ... | @@ -481,6 +539,13 @@ echo -n "#define QEMU_VERSION \"" >> $config_h |
| 481 | 539 | head $source_path/VERSION >> $config_h |
| 482 | 540 | echo "\"" >> $config_h |
| 483 | 541 | |
| 542 | +if test $kqemu = "yes" ; then | |
| 543 | + echo "CONFIG_KQEMU=yes" >> $config_mak | |
| 544 | + echo "KERNEL_PATH=$kernel_path" >> $config_mak | |
| 545 | + if test $kbuild26 = "yes" ; then | |
| 546 | + echo "CONFIG_KBUILD26=yes" >> $config_mak | |
| 547 | + fi | |
| 548 | +fi | |
| 484 | 549 | echo "SRC_PATH=$source_path" >> $config_mak |
| 485 | 550 | echo "TARGET_DIRS=$target_list" >> $config_mak |
| 486 | 551 | ... | ... |