Support for compiling plugin version of Bochs with MSVC nmake now complete.

- embedding combined manifest makes BOCHS.EXE usable
- list of DLL plugins now depends on the pci and debugger options
- 'make clean' now removes the generated manifest files
- renamed variable for external rules
- documentation update
This commit is contained in:
Volker Ruppert 2014-05-03 10:58:10 +00:00
parent 87e0196fda
commit ed41df332a
11 changed files with 27 additions and 16 deletions

View File

@ -1,4 +1,4 @@
Changes after 2.6.2 (updated Apr 1, 2014):
Changes after 2.6.2 (updated May 3, 2014):
- CPU
- Bugfixes for CPU emulation correctness (critical fixes for XSAVE, VMX, TBM/BMI and RDRAND instructions)
@ -31,6 +31,7 @@ Changes after 2.6.2 (updated Apr 1, 2014):
- configure and compilation fixes for Cygwin and Visual Studio environment
- configure option --enable-cdrom now only controls the presence of
platform-specific code for device access
- building plugin version with MSVC nmake now supported
- Config interface
- Added global sound control option for the driver and wave input/output

View File

@ -191,6 +191,7 @@ bochs@EXE@: @IODEV_LIB_VAR@ @DISPLAY_LIB_VAR@ @HDIMAGE_LIB_VAR@ @USB_LIB_VAR@ @N
$(READLINE_LIB) \
$(EXTRA_LINK_OPTS) \
$(LIBS)
@MANIFEST_LINE@
# Special make target for cygwin/mingw using dlltool instead of
# libtool. This creates a .DEF file, and exports file, an import library,
@ -541,7 +542,7 @@ clean:
@RMCOMMAND@ niclist.exe
@RMCOMMAND@ bochs.out
@RMCOMMAND@ bochsout.txt
@RMCOMMAND@ bochs.exp
@RMCOMMAND@ *.exp *.lib *.exe.manifest
@RMCOMMAND@ bochs.def
@RMCOMMAND@ bochs.scpt
@RMCOMMAND@ -rf bochs.app

View File

@ -2561,16 +2561,23 @@ case $target in
LIBS="$LIBS advapi32.lib comctl32.lib comdlg32.lib gdi32.lib shell32.lib user32.lib"
PLUGIN_TARGET_2=plugins_msvc
LINK_VAR="_VCPP"
EXTRA_DLL_TARGET="!INCLUDE makeincl.vc"
EXT_IODEV_DLL_RULES="!INCLUDE makeincl.vc"
echo -e "# DLL PLUGIN TEST\n" > iodev/makeincl.vc
IODEV_DLL_TARGETS=""
DLL_LIST="acpi biosdev busmouse cmos dma extfpuirq harddrv ioapic iodebug parallel pci pci2isa pci_ide pic speaker unmapped"
DLL_LIST="biosdev busmouse cmos dma extfpuirq harddrv ioapic parallel pic speaker unmapped"
if test "$pci" = "1"; then
DLL_LIST="$DLL_LIST acpi pci pci2isa pci_ide"
fi
if test "$bx_debugger" = 1; then
DLL_LIST="$DLL_LIST iodebug"
fi
for i in $DLL_LIST
do
echo -e "bx_$i.dll: $i.o" >> iodev/makeincl.vc
echo -e "\tlink /dll /nologo /subsystem:console /incremental:no /out:\$@ $i.o \$(WIN32_DLL_IMPORT_LIBRARY)\n" >> iodev/makeincl.vc
IODEV_DLL_TARGETS="$IODEV_DLL_TARGETS bx_$i.dll"
done
MANIFEST_LINE="mt -manifest bochs.exe.manifest build\win32\bochs.manifest -outputresource:bochs.exe;1"
else
if test "$with_win32" != yes; then
LIBS="$LIBS comctl32.lib"
@ -2959,8 +2966,9 @@ AC_SUBST(PLUGIN_LIB)
AC_SUBST(PLUGIN_TARGET)
AC_SUBST(PLUGIN_TARGET_2)
AC_SUBST(IODEV_DLL_TARGETS)
AC_SUBST(EXTRA_DLL_TARGET)
AC_SUBST(EXT_IODEV_DLL_RULES)
AC_SUBST(WIN32_DLL_IMPORT_LIB)
AC_SUBST(MANIFEST_LINE)
AC_SUBST(INSTALL_PLUGINS_VAR)
AC_PATH_PROG(GZIP, gzip)

View File

@ -533,7 +533,8 @@ currently work with.
<entry>Plugins</entry>
<entry>Yes</entry>
<entry>Compiling gui and devices as plugins is supported on Linux, MacOS X,
Solaris, Cygwin, MinGW/MSYS and VS2008Ex (workspace provided).</entry>
Solaris, Cygwin, MinGW/MSYS, MSVC nmake and the VS2008Ex IDE (workspace provided).
</entry>
</row>
<row>
<entry>PIC</entry>
@ -2230,7 +2231,7 @@ to explicitly turn it off.
<entry>--enable-voodoo</entry>
<entry>no</entry>
<entry>Enable experimental 3dfx Voodoo Graphics emulation. Currently only
the Voodoo1 model can be emulated.
the Voodoo1 model is known to work (Voodoo2 is under construction).
</entry>
</row>
<row>

View File

@ -179,7 +179,7 @@ bx_win32.dll: $(GUI_OBJS_WIN32)
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.la *.a *.lo *.o *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.la *.a *.lo *.o *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile

View File

@ -156,15 +156,15 @@ bx_serial.dll: serial.o serial_raw.o
bx_floppy.dll: floppy.o
@LINK_DLL@ floppy.o $(WIN32_DLL_IMPORT_LIBRARY) $(FDC_LINK_OPTS@LINK_VAR@)
@EXTRA_DLL_TARGET@
@EXT_IODEV_DLL_RULES@
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile
@RMCOMMAND@ Makefile makeincl.vc
###########################################
# dependencies generated by

View File

@ -112,7 +112,7 @@ bx_voodoo.dll: voodoo.o
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile

View File

@ -107,7 +107,7 @@ bx_hdimage.dll: hdimage.o $(HDIMAGE_EXTRA_OBJS) $(CDROM_OBJS)
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile

View File

@ -134,7 +134,7 @@ bx_ne2k.dll: ne2k.o
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs slirp@SLASH@.libs *.lo slirp@SLASH@*.lo *.o slirp@SLASH@*.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs slirp@SLASH@.libs *.lo slirp@SLASH@*.lo *.o slirp@SLASH@*.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile

View File

@ -113,7 +113,7 @@ bx_sb16.dll: sb16.o
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile

View File

@ -114,7 +114,7 @@ bx_usb_xhci.dll: usb_xhci.o
##### end DLL section
clean:
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib
@RMCOMMAND@ -rf .libs *.lo *.o *.la *.a *.dll *.exp *.lib *.dll.manifest
dist-clean: clean
@RMCOMMAND@ Makefile