aboutsummaryrefslogtreecommitdiff
path: root/emulators/bochs
diff options
context:
space:
mode:
authorAlejandro Pulver <alepulver@FreeBSD.org>2006-10-31 18:48:16 +0000
committerAlejandro Pulver <alepulver@FreeBSD.org>2006-10-31 18:48:16 +0000
commit78aa7cac7d4699a3cf4c8f56a601d9f882458f16 (patch)
tree927cfc86ed77a113256e106bf1f25b8b8f20a8bb /emulators/bochs
parentaea502d4451348d8fb6ba1f2530f77412fc310e7 (diff)
downloadports-78aa7cac7d4699a3cf4c8f56a601d9f882458f16.tar.gz
ports-78aa7cac7d4699a3cf4c8f56a601d9f882458f16.zip
Notes
Diffstat (limited to 'emulators/bochs')
-rw-r--r--emulators/bochs/Makefile281
-rw-r--r--emulators/bochs/files/bochs.sh25
-rw-r--r--emulators/bochs/files/patch-aa62
-rw-r--r--emulators/bochs/files/pkg-message.in2
-rw-r--r--emulators/bochs/pkg-descr2
-rw-r--r--emulators/bochs/pkg-plist1
6 files changed, 198 insertions, 175 deletions
diff --git a/emulators/bochs/Makefile b/emulators/bochs/Makefile
index 779c3d60e01c..93f576f57ed8 100644
--- a/emulators/bochs/Makefile
+++ b/emulators/bochs/Makefile
@@ -1,4 +1,3 @@
-# ex:ts=8
# Ports collection makefile for: bochs
# Date created: 16 December 1997
# Whom: alex
@@ -10,27 +9,49 @@ PORTNAME= bochs
PORTVERSION= 2.3
PORTEPOCH= 2
CATEGORIES= emulators
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
-MASTER_SITE_SUBDIR= ${PORTNAME}
+MASTER_SITES= SF
MAINTAINER= ports@FreeBSD.org
COMMENT= An IA-32 (x86) PC emulator that runs DOS, Win 95, and more
BUILD_DEPENDS= mkfontdir:${X_CLIENTS_PORT}
-RUN_DEPENDS= mkfontdir:${X_CLIENTS_PORT}
+RUN_DEPENDS:= ${BUILD_DEPENDS}
-USE_XLIB= yes
USE_GMAKE= yes
-
GNU_CONFIGURE= yes
-CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
-CONFIGURE_ARGS= --disable-split-hd \
- --enable-all-optimizations \
- --with-x11 \
- --enable-pci \
- --enable-sb16=freebsd \
- --enable-ne2000 \
- --enable-vbe
+CONFIGURE_ARGS= --disable-docbook
+CONFIGURE_TARGET= --build=${ARCH}-portbld-freebsd${OSREL}
+CONFIGURE_ENV= LDFLAGS="-L${LOCALBASE}/lib"
+
+OPTIONS= CDROM "Enable CDROM support" on \
+ CLGD54XX "Enable Cirrus Logic GD54xx video card" off \
+ DEBUGGER "Enable debugger and disassembler support" off \
+ DEBUGGER_X86 "Enable x86 hardware debugger" off \
+ FPU "Enable FPU emulator" on \
+ IDLE_HACK "Keep Bochs from using all CPU time" off \
+ IGNORE_BAD_MSR "Ignore unknown MSR references (don't panic)" off \
+ NE2000 "Enable limited ne2000 support" on \
+ NEW_PIT "Enable use of the new PIT model" on \
+ OPTIMIZATIONS "Enable all safe speeed optimizations" on \
+ PCI "Enable limited i440FX PCI support" on \
+ PLUGINS "Enable building dynamic loadable plugins" off \
+ PNIC "Enable PCI pseudo NIC (network card) support" off \
+ PORT_E9_HACK "Writes to port e9 go to console" on \
+ READLINE "Enable readline support in debugger" off \
+ RFB "Enable VNC server support in display" off \
+ SAVE_RESTORE "Enable limited save/restore support" off \
+ SB16 "Enable Sound Blaster 16 emulation" on \
+ SDL "Enable SDL display interface" off \
+ SHOW_IPS "Enable logging of measured IPS" off \
+ SMP "Enable SMP simulation support (CPU level 6)" off \
+ SVGA "Enable SVGAlib support" off \
+ TERM "Use text only, console based interface" off \
+ USB "Enable limited i440FX PCI USB support" off \
+ VBE "Enable VGA BIOS Extensions" on \
+ WX "Use WxWidgets display interface" off \
+ X11 "Use X11 display interface" on \
+ X86_64 "Enable AMD x86-64 support" off \
+ XPM "Enable XPM library support" off
CFLAGS+= -fno-rtti -fno-exceptions -fomit-frame-pointer
@@ -40,106 +61,194 @@ MAN5= bochsrc.5
SUB_FILES= pkg-message
-.if defined(WITH_BOCHS_SMP)
-CONFIGURE_ARGS+= --enable-smp
-WITH_BOCHS_CPU_LEVEL= 6
+.include <bsd.port.pre.mk>
+
+.if defined(WITHOUT_TERM) && defined(WITHOUT_WX) && defined(WITHOUT_X11)
+CONFIGURE_ARGS+=--with-nogui
+.endif
+
+.if defined(WITHOUT_CDROM)
+CONFIGURE_ARGS+=--disable-cdrom
+.endif
+
+.if defined(WITH_CLGD54XX)
+CONFIGURE_ARGS+=--enable-clgd54xx
+.endif
+
+.if defined(WITH_DEBUGGER)
+CONFIGURE_ARGS+=--enable-debugger --enable-disasm
+.endif
+
+.if defined(WITH_DEBUGGER_X86)
+CONFIGURE_ARGS+=--enable-x86-debugger
+.endif
+
+.if defined(WITH_FPU)
+CONFIGURE_ARGS+=--enable-fpu
+.endif
+
+.if defined(WITH_IDLE_HACK)
+CONFIGURE_ARGS+=--enable-idle-hack
+.endif
+
+.if defined(WITH_IGNORE_BAD_MSR)
+CONFIGURE_ARGS+=--enable-ignore-bad-msr
+.endif
+
+.if defined(WITH_NE2000)
+CONFIGURE_ARGS+=--enable-ne2000
+.endif
+
+.if defined(WITHOUT_NEW_PIT)
+CONFIGURE_ARGS+=--disable-new-pit
+.endif
+
+.if defined(WITH_OPTIMIZATIONS)
+CONFIGURE_ARGS+=--enable-all-optimizations
+.endif
+
+.if defined(WITH_PCI)
+CONFIGURE_ARGS+=--enable-pci
.endif
-.if defined(WITH_BOCHS_CPU_LEVEL)
-.if ${WITH_BOCHS_CPU_LEVEL} < 3 || ${WITH_BOCHS_CPU_LEVEL} > 6
-IGNORE= cannot install: WITH_BOCHS_CPU_LEVEL must be an integer value between 3 and 6
+.if defined(WITH_PLUGINS)
+CONFIGURE_ARGS+=--enable-plugins
.endif
-CONFIGURE_ARGS+= --enable-cpu-level=${WITH_BOCHS_CPU_LEVEL}
-.if ${WITH_BOCHS_CPU_LEVEL} < 5
-CONFIGURE_ARGS+= --disable-mmx
+
+.if defined(WITH_PNIC)
+CONFIGURE_ARGS+=--enable-pnic
.endif
+
+.if defined(WITHOUT_PORT_E9_HACK)
+CONFIGURE_ARGS+=--disable-port-e9-hack
.endif
-.if defined(WITH_BOCHS_GUI_TERM)
-CONFIGURE_ARGS+= --with-term
+.if defined(WITH_READLINE)
+CONFIGURE_ARGS+=--enable-readline
+.else
+CONFIGURE_ARGS+=--disable-readline
.endif
-.if defined(WITH_BOCHS_GUI_NOGUI)
-CONFIGURE_ARGS+= --with-nogui
+.if defined(WITH_RFB)
+CONFIGURE_ARGS+=--with-rfb
.endif
-.if defined(WITH_BOCHS_AMD64)
-CONFIGURE_ARGS+= --enable-x86-64
+.if defined(WITH_SB16)
+CONFIGURE_ARGS+=--enable-sb16=freebsd
.endif
-.if defined(WITH_BOCHS_DEBUGGER)
-CONFIGURE_ARGS+= --enable-debugger --enable-disasm
+.if defined(WITH_SMP)
+CONFIGURE_ARGS+=--enable-smp
+WITH_CPU_LEVEL= 6
.endif
-.if defined(WITH_BOCHS_X86_DEBUGGER)
-CONFIGURE_ARGS+= --enable-x86-debugger
+.if defined(WITH_SAVE_RESTORE)
+CONFIGURE_ARGS+=--enable-save-restore
.endif
-.if defined(WITH_BOCHS_PORT_E9_HACK)
-CONFIGURE_ARGS+= --enable-port-e9-hack
+.if defined(WITH_SDL)
+USE_SDL= sdl
+CONFIGURE_ARGS+=--with-sdl
.endif
-pre-patch::
- @${ECHO_MSG}
-.if !defined(WITH_BOCHS_CPU_LEVEL)
- @${ECHO_MSG} "If you want to change the processor level to emulate (default is 5, aka Pentium)"
- @${ECHO_MSG} "Choices are 3,4,5,6 which mean target 386, 486, Pentium or Pentium Pro emulation"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_CPU_LEVEL=<cpu level>\""
- @${ECHO_MSG}
+.if defined(WITH_SHOW_IPS)
+CONFIGURE_ARGS+=--enable-show-ips
.endif
-.if !defined(WITH_BOCHS_GUI_TERM)
- @${ECHO_MSG} "If you want to enable the plain text, console-based bochs interface"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_GUI_TERM=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_SVGA)
+LIB_DEPENDS+= vga.1:${PORTSDIR}/graphics/svgalib
+CONFIGURE_ARGS+=--with-svga
.endif
-.if !defined(WITH_BOCHS_GUI_NOGUI)
- @${ECHO_MSG} "If you want the bochs display"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_GUI_NOGUI=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_TERM)
+CONFIGURE_ARGS+=--with-term
.endif
-.if !defined(WITH_BOCHS_SMP)
- @${ECHO_MSG} "If you want to compile with SMP support (implies WITH_BOCHS_CPU_LEVEL=6),"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_SMP\""
- @${ECHO_MSG}
+
+.if defined(WITH_USB)
+CONFIGURE_ARGS+=--enable-usb
.endif
-.if !defined(WITH_BOCHS_DEBUGGER)
- @${ECHO_MSG} "If you want to compile with builtin debugger and disassembler support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_DEBUGGER=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_VBE)
+CONFIGURE_ARGS+=--enable-vbe
.endif
-.if !defined(WITH_BOCHS_X86_DEBUGGER)
- @${ECHO_MSG} "If you want to compile with x86 hardware debugger support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_X86_DEBUGGER=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_WX)
+USE_WX= 2.4-2.6
+CONFIGURE_ARGS+=--with-wx
+.endif
+
+.if defined(WITH_X11)
+USE_XLIB= yes
+CONFIGURE_ARGS+=--with-x11
.endif
-.if !defined(WITH_BOCHS_AMD64)
- @${ECHO_MSG} "If you want to compile with AMD x86-64 support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_AMD64=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_X86_64)
+CONFIGURE_ARGS+=--enable-x86-64
.endif
-.if !defined(WITH_BOCHS_PORT_E9_HACK)
- @${ECHO_MSG} "If you want to compile with port e9 hack support,"
- @${ECHO_MSG} "hit Ctrl-C right now and use \"make WITH_BOCHS_PORT_E9_HACK=yes\""
- @${ECHO_MSG}
+
+.if defined(WITH_XPM)
+USE_XPM= yes
+CONFIGURE_ARGS+=--with-xpm
.endif
+.if defined(WITH_CPU_LEVEL)
+.if ${WITH_CPU_LEVEL} < 3 || ${WITH_CPU_LEVEL} > 6
+IGNORE= can not install: WITH_CPU_LEVEL must be an integer value between 3 and 6
+.endif
+CONFIGURE_ARGS+=--enable-cpu-level=${WITH_CPU_LEVEL}
+.if ${WITH_CPU_LEVEL} < 5
+CONFIGURE_ARGS+=--disable-mmx
+.endif
+.endif
+
+.if defined(WITH_SSE_LEVEL)
+.if ${WITH_SSE_LEVEL} >= 1 && ${WITH_SSE_LEVEL} <= 3
+CONFIGURE_ARGS+=--enable-sse=${WITH_SSE_LEVEL}
+.else
+IGNORE= can not install: WITH_SSE_LEVEL must be an integer value between 1 and 3
+.endif
+.endif
+
+pre-everything::
+ @${ECHO_CMD}
+.if !defined(WITH_CPU_LEVEL)
+ @${ECHO_CMD} "If you want to change the processor level to emulate (default is 5, aka Pentium), set WITH_CPU_LEVEL to the desired value. Choices are 3, 4, 5 and 6 which mean target 386, 486, Pentium or Pentium Pro emulation." | ${FMT}
+.endif
+.if !defined(WITH_SSE_LEVEL)
+ @${ECHO_CMD} "If you want to enable SSE you have to set WITH_SSE_LEVEL to 1, 2 or 3." | ${FMT}
+.endif
+ @${ECHO_CMD}
+
post-patch:
- @${REINPLACE_CMD} -E ' \
- s|file=bios/|file=${DATADIR}/|; \
- s|bios/VGABIOS|${DATADIR}/VGABIOS|; \
- ' ${WRKSRC}/.bochsrc
- @${REINPLACE_CMD} -E ' \
- s|install_share install_doc|install_share|; \
- s|(^sharedir.+=).+|\1 ${DATADIR}|; \
- s|(^docdir.+=).+|\1 ${DOCSDIR}|; \
- ' ${WRKSRC}/Makefile.in
- @${REINPLACE_CMD} -e ' \
- s|/usr/local/share/bochs|${DATADIR}|; \
- s|/usr/local/share/doc/bochs|${DOCSDIR}|; \
- ' ${WRKSRC}/doc/docbook/user/user.dbk ${WRKSRC}/doc/man/*.1 \
- ${WRKSRC}/doc/man/*.5
+ @${REINPLACE_CMD} -Ee \
+ 's|$$BXSHARE/|${DATADIR}/|; \
+ s|^#clock: sync=none|clock: sync=realtime|; \
+ s|^log: .+|log: /dev/null|; \
+ s|^panic: .+|panic: action=ask|; \
+ s|^parport1: .+|#&|' \
+ ${WRKSRC}/.bochsrc
+ @${REINPLACE_CMD} -Ee \
+ 's|(^sharedir.+=).+|\1 ${DATADIR}|; \
+ s|(^docdir.+=).+|\1 ${DOCSDIR}|' \
+ ${WRKSRC}/Makefile.in
+ @${REINPLACE_CMD} -e \
+ 's|/usr/local/share/bochs|${DATADIR}|; \
+ s|/usr/local/share/doc/bochs|${DOCSDIR}|' \
+ ${WRKSRC}/doc/docbook/user/user.dbk ${WRKSRC}/doc/man/*.[15]
+ @${REINPLACE_CMD} -Ee 's|/usr/(include/vga\.h)|${LOCALBASE}/\1|' \
+ ${WRKSRC}/gui/svga.cc
+.if defined(WITH_SVGA)
+ @${REINPLACE_CMD} -e 's|-lvga -lvgagl|@LDFLAGS@ &|' \
+ ${WRKSRC}/gui/Makefile.in
+.endif
post-install:
+.if defined(WITH_PLUGINS)
+ @${FIND} ${PREFIX}/lib/bochs ! -type d | \
+ ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
+ @${FIND} ${PREFIX}/lib/bochs -type d | ${SORT} -r | \
+ ${SED} 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
+.endif
.if !defined(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
@${INSTALL_DATA} ${WRKSRC}/CHANGES ${DOCSDIR}/CHANGES
@@ -150,6 +259,6 @@ post-install:
@${MKDIR} ${DOCSDIR}/html
@${INSTALL_DATA} ${WRKSRC}/docs-html/*.html ${DOCSDIR}/html
.endif
- @${CAT} ${PKGMESSAGE}
+ @${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/emulators/bochs/files/bochs.sh b/emulators/bochs/files/bochs.sh
deleted file mode 100644
index 1c93e9789f2c..000000000000
--- a/emulators/bochs/files/bochs.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-# Bochs wrapper
-#
-
-bin_dir=%%PREFIX%%/libexec
-xbin_dir=%%X11BASE%%/bin
-font_dir=%%FONT_DIR%%
-
-${xbin_dir}/xset -q | grep -q ${font_dir}
-rc=$?
-
-if [ $rc != 0 ]; then
- ${xbin_dir}/xset fp+ ${font_dir}
- ${xbin_dir}/xset fp rehash
-fi
-
-${bin_dir}/bochs.bin ${1+"$@"}
-
-if [ $rc != 0 ]; then
- ${xbin_dir}/xset fp- ${font_dir}
- ${xbin_dir}/xset fp rehash
-fi
diff --git a/emulators/bochs/files/patch-aa b/emulators/bochs/files/patch-aa
deleted file mode 100644
index 12d5dae4a650..000000000000
--- a/emulators/bochs/files/patch-aa
+++ /dev/null
@@ -1,62 +0,0 @@
---- .bochsrc.orig Sun Jan 29 07:56:01 2006
-+++ .bochsrc Mon Feb 20 21:10:38 2006
-@@ -74,7 +74,7 @@
- # now supported, but we still recommend to use the BIOS distributed with
- # Bochs. Now the start address can be calculated from image size.
- #=======================================================================
--romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
-+romimage: file=/usr/local/share/bochs/BIOS-bochs-latest, address=0xf0000
- #romimage: file=mybios.bin, address=0xfff80000 # 512k at memory top
- #romimage: file=mybios.bin # calculate start address from image size
-
-@@ -147,9 +147,9 @@
- # VGAROMIMAGE
- # You now need to load a VGA ROM BIOS into C0000.
- #=======================================================================
--#vgaromimage: file=bios/VGABIOS-elpin-2.40
--vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
--#vgaromimage: file=bios/VGABIOS-lgpl-latest-cirrus
-+#vgaromimage: file=/usr/local/share/bochs/VGABIOS-elpin-2.40
-+vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
-+#vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest-cirrus
-
- #=======================================================================
- # VGA:
-@@ -319,7 +319,7 @@
- #
- # Default value are sync=none, time0=local
- #=======================================================================
--#clock: sync=none, time0=local
-+clock: sync=realtime, time0=local
-
-
- #=======================================================================
-@@ -344,8 +344,8 @@
- # log: ./bochs.out
- # log: /dev/tty
- #=======================================================================
--#log: /dev/null
--log: bochsout.txt
-+log: /dev/null
-+#log: bochsout.txt
-
- #=======================================================================
- # LOGPREFIX:
-@@ -385,7 +385,7 @@
- # cause bochs to become unstable. The panic is a "graceful exit," so
- # if you disable it you may get a spectacular disaster instead.
- #=======================================================================
--panic: action=ask
-+panic: action=fatal
- error: action=report
- info: action=report
- debug: action=ignore
-@@ -442,7 +442,7 @@
- # parport2: enabled=1, file="/dev/lp0"
- # parport1: enabled=0
- #=======================================================================
--parport1: enabled=1, file="parport.out"
-+#parport1: enabled=1, file="parport.out"
-
- #=======================================================================
- # SB16:
diff --git a/emulators/bochs/files/pkg-message.in b/emulators/bochs/files/pkg-message.in
index 2985cb484324..7b46ee416780 100644
--- a/emulators/bochs/files/pkg-message.in
+++ b/emulators/bochs/files/pkg-message.in
@@ -1,7 +1,7 @@
===========================================================================
Bochs requires a .bochsrc file to be present in either your current
-directory or your home directory before starting. A sample .bochsrc
+directory or your home directory before starting. A sample .bochsrc
file can be found in %%DOCSDIR%%/bochsrc-sample.txt
===========================================================================
diff --git a/emulators/bochs/pkg-descr b/emulators/bochs/pkg-descr
index c025bbb90db0..31fb2bd2a0da 100644
--- a/emulators/bochs/pkg-descr
+++ b/emulators/bochs/pkg-descr
@@ -5,7 +5,7 @@ be compiled to emulate a 386, 486, Pentium, Pentium Pro or AMD64 CPU,
including optional MMX, SSE, SSE2 and 3DNow instructions.
Bochs is capable of running most Operating Systems inside the emulation
-including Linux, Windows 95, DOS, and Windows NT 4.
+including Linux, DOS, Windows® 95/98 and Windows® NT/2000/XP.
Bochs was written by Kevin Lawton and is currently maintained by the Bochs
project.
diff --git a/emulators/bochs/pkg-plist b/emulators/bochs/pkg-plist
index b38f76248f03..01fba0ef0b8a 100644
--- a/emulators/bochs/pkg-plist
+++ b/emulators/bochs/pkg-plist
@@ -23,6 +23,7 @@ bin/bximage
%%DATADIR%%/keymaps/x11-pc-si.map
%%DATADIR%%/keymaps/x11-pc-uk.map
%%DATADIR%%/keymaps/x11-pc-us.map
+%%PORTDOCS%%%%DOCSDIR%%/COPYING
%%PORTDOCS%%%%DOCSDIR%%/CHANGES
%%PORTDOCS%%%%DOCSDIR%%/README
%%PORTDOCS%%%%DOCSDIR%%/TODO