1 |
# $MidnightBSD: mports/emulators/bochs/Makefile,v 1.5 2009/03/01 17:11:03 laffer1 Exp $ |
2 |
|
3 |
PORTNAME= bochs |
4 |
PORTVERSION= 2.3.7 |
5 |
PORTEPOCH= 2 |
6 |
CATEGORIES= emulators |
7 |
MASTER_SITES= SF |
8 |
|
9 |
MAINTAINER= ports@MidnightBSD.org |
10 |
COMMENT= An IA-32 (x86) PC emulator that runs DOS, Win 95, and more |
11 |
LICENSE= lgpl |
12 |
|
13 |
BUILD_DEPENDS= mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir |
14 |
RUN_DEPENDS= mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir |
15 |
|
16 |
USE_GNOME= gnometarget |
17 |
USE_GMAKE= yes |
18 |
USE_AUTOTOOLS= libtool:22 |
19 |
CONFIGURE_ENV= CPPFLAGS="${CPPFLAGS}" LDFLAGS="${LDFLAGS}" |
20 |
CONFIGURE_ARGS= --disable-docbook |
21 |
|
22 |
OPTIONS= ACPI "Enable ACPI emulation" off \ |
23 |
AES "Enable support of AES CPU extensions" off \ |
24 |
CDROM "Enable CDROM support" on \ |
25 |
CLGD54XX "Enable Cirrus Logic GD54xx video card" off \ |
26 |
DEBUGGER "Enable debugger and disassembler support" off \ |
27 |
DEBUGGER_X86 "Enable x86 hardware debugger" off \ |
28 |
FPU "Enable FPU emulator" on \ |
29 |
IDLE_HACK "Keep Bochs from using all CPU time" off \ |
30 |
IGNORE_BAD_MSR "Ignore unknown MSR references (don't panic)" off \ |
31 |
MTRR "Enable MTRR emulation (CPU level >= 6)" off \ |
32 |
MWAIT "Enable experimental MONITOR/MWAIT support" off \ |
33 |
NE2000 "Enable limited ne2000 support" on \ |
34 |
NEW_PIT "Enable use of the new PIT model" on \ |
35 |
OPTIMIZATIONS "Enable all safe speeed optimizations" on \ |
36 |
PCI "Enable limited i440FX PCI support" on \ |
37 |
PLUGINS "Enable building dynamic loadable plugins" off \ |
38 |
PNIC "Enable PCI pseudo NIC (network card) support" off \ |
39 |
PORT_E9_HACK "Writes to port e9 go to console" on \ |
40 |
READLINE "Enable readline support in debugger" off \ |
41 |
RFB "Enable VNC server support in display" off \ |
42 |
SB16 "Enable Sound Blaster 16 emulation" on \ |
43 |
SDL "Enable SDL display interface" off \ |
44 |
SHOW_IPS "Enable logging of measured IPS" off \ |
45 |
SMP "Enable SMP simulation support (CPU level 6)" off \ |
46 |
SSE4 "Enable emulation of SSE4.2 instruction set" off \ |
47 |
SVGA "Enable SVGAlib support" off \ |
48 |
TCACHE "Enable trace cache" on \ |
49 |
TERM "Use text only, console based interface" off \ |
50 |
USB "Enable limited i440FX PCI USB support" off \ |
51 |
VBE "Enable VGA BIOS Extensions" on \ |
52 |
WX "Use WxWidgets display interface" off \ |
53 |
X11 "Use X11 display interface" on \ |
54 |
X86_64 "Enable AMD x86-64 support" off \ |
55 |
XPM "Enable XPM library support" off \ |
56 |
XSAVE "Enable support of XSAVE/XRSTOR CPU extensions" off |
57 |
|
58 |
CFLAGS+= -fno-rtti -fno-exceptions -fomit-frame-pointer |
59 |
CPPFLAGS= -I${LOCALBASE}/include |
60 |
LDFLAGS= -L${LOCALBASE}/lib |
61 |
|
62 |
MANCOMPRESSED= yes |
63 |
MAN1= bochs.1 bochs-dlx.1 bxcommit.1 bximage.1 |
64 |
MAN5= bochsrc.5 |
65 |
|
66 |
SUB_FILES= pkg-message |
67 |
|
68 |
.include <bsd.port.pre.mk> |
69 |
|
70 |
.if defined(WITHOUT_TERM) && defined(WITHOUT_WX) && defined(WITHOUT_X11) |
71 |
CONFIGURE_ARGS+=--with-nogui |
72 |
.endif |
73 |
|
74 |
.if defined(WITH_ACPI) |
75 |
CONFIGURE_ARGS+=--enable-acpi |
76 |
.endif |
77 |
|
78 |
.if defined(WITH_AES) |
79 |
CONFIGURE_ARGS+=--enable-aes |
80 |
.endif |
81 |
|
82 |
.if defined(WITHOUT_CDROM) |
83 |
CONFIGURE_ARGS+=--disable-cdrom |
84 |
.endif |
85 |
|
86 |
.if defined(WITH_CLGD54XX) |
87 |
CONFIGURE_ARGS+=--enable-clgd54xx |
88 |
.endif |
89 |
|
90 |
.if defined(WITH_DEBUGGER) |
91 |
CONFIGURE_ARGS+=--enable-debugger --enable-disasm |
92 |
.endif |
93 |
|
94 |
.if defined(WITH_DEBUGGER_X86) |
95 |
CONFIGURE_ARGS+=--enable-x86-debugger |
96 |
.endif |
97 |
|
98 |
.if defined(WITH_FPU) |
99 |
CONFIGURE_ARGS+=--enable-fpu |
100 |
.endif |
101 |
|
102 |
.if defined(WITH_IDLE_HACK) |
103 |
CONFIGURE_ARGS+=--enable-idle-hack |
104 |
.endif |
105 |
|
106 |
.if defined(WITH_IGNORE_BAD_MSR) |
107 |
CONFIGURE_ARGS+=--enable-ignore-bad-msr |
108 |
.endif |
109 |
|
110 |
.if defined(WITH_MTRR) |
111 |
CONFIGURE_ARGS+=--enable-mtrr |
112 |
.endif |
113 |
|
114 |
.if defined(WITH_MWAIT) |
115 |
CONFIGURE_ARGS+=--enable-monitor-mwait |
116 |
.endif |
117 |
|
118 |
.if defined(WITH_NE2000) |
119 |
CONFIGURE_ARGS+=--enable-ne2000 |
120 |
.endif |
121 |
|
122 |
.if defined(WITHOUT_NEW_PIT) |
123 |
CONFIGURE_ARGS+=--disable-new-pit |
124 |
.endif |
125 |
|
126 |
.if defined(WITH_OPTIMIZATIONS) |
127 |
CONFIGURE_ARGS+=--enable-all-optimizations |
128 |
.endif |
129 |
|
130 |
.if defined(WITH_PCI) |
131 |
CONFIGURE_ARGS+=--enable-pci |
132 |
.endif |
133 |
|
134 |
.if defined(WITH_PLUGINS) |
135 |
CONFIGURE_ARGS+=--enable-plugins |
136 |
.endif |
137 |
|
138 |
.if defined(WITH_PNIC) |
139 |
CONFIGURE_ARGS+=--enable-pnic |
140 |
.endif |
141 |
|
142 |
.if defined(WITHOUT_PORT_E9_HACK) |
143 |
CONFIGURE_ARGS+=--disable-port-e9-hack |
144 |
.endif |
145 |
|
146 |
.if defined(WITH_READLINE) |
147 |
CONFIGURE_ARGS+=--enable-readline |
148 |
.else |
149 |
CONFIGURE_ARGS+=--disable-readline |
150 |
.endif |
151 |
|
152 |
.if defined(WITH_RFB) |
153 |
CONFIGURE_ARGS+=--with-rfb |
154 |
.endif |
155 |
|
156 |
.if defined(WITH_SB16) |
157 |
CONFIGURE_ARGS+=--enable-sb16=freebsd |
158 |
.endif |
159 |
|
160 |
.if defined(WITH_SMP) |
161 |
CONFIGURE_ARGS+=--enable-smp |
162 |
WITH_CPU_LEVEL= 6 |
163 |
.endif |
164 |
|
165 |
.if defined(WITH_SDL) |
166 |
USE_SDL= sdl |
167 |
CONFIGURE_ARGS+=--with-sdl |
168 |
.endif |
169 |
|
170 |
.if defined(WITH_SHOW_IPS) |
171 |
CONFIGURE_ARGS+=--enable-show-ips |
172 |
.endif |
173 |
|
174 |
.if defined(WITH_SSE4) || defined(WITH_AES) || defined(WITH_XSAVE) |
175 |
CONFIGURE_ARGS+=--enable-sse=4 --enable-sse-extension |
176 |
WITH_CPU_LEVEL= 6 |
177 |
.endif |
178 |
|
179 |
.if defined(WITH_SVGA) |
180 |
LIB_DEPENDS+= vga.1:${PORTSDIR}/graphics/svgalib |
181 |
CONFIGURE_ARGS+=--with-svga |
182 |
.endif |
183 |
|
184 |
.if defined(WITH_TERM) |
185 |
CONFIGURE_ARGS+=--with-term |
186 |
.endif |
187 |
|
188 |
.if defined(WITHOUT_TCACHE) |
189 |
CONFIGURE_ARGS+=--disable-trace-cache |
190 |
.else |
191 |
CONFIGURE_ARGS+=--enable-trace-cache |
192 |
.endif |
193 |
|
194 |
.if defined(WITH_USB) |
195 |
CONFIGURE_ARGS+=--enable-usb |
196 |
.endif |
197 |
|
198 |
.if defined(WITH_VBE) |
199 |
CONFIGURE_ARGS+=--enable-vbe |
200 |
.endif |
201 |
|
202 |
.if defined(WITH_WX) |
203 |
USE_WX= 2.4-2.6 |
204 |
CONFIGURE_ARGS+=--with-wx |
205 |
.endif |
206 |
|
207 |
.if defined(WITH_X11) |
208 |
USE_XORG= xext xt |
209 |
CONFIGURE_ARGS+=--with-x11 |
210 |
.endif |
211 |
|
212 |
.if defined(WITH_X86_64) |
213 |
CONFIGURE_ARGS+=--enable-x86-64 |
214 |
.endif |
215 |
|
216 |
.if defined(WITH_XPM) |
217 |
USE_XORG= xpm |
218 |
.else |
219 |
CONFIGURE_ARGS+=--disable-xpm |
220 |
.endif |
221 |
|
222 |
.if defined(WITH_XSAVE) |
223 |
CONFIGURE_ARGS+=--enable-xsave |
224 |
.endif |
225 |
|
226 |
.if defined(WITH_CPU_LEVEL) |
227 |
.if ${WITH_CPU_LEVEL} < 3 || ${WITH_CPU_LEVEL} > 6 |
228 |
IGNORE= can not install: WITH_CPU_LEVEL must be an integer value between 3 and 6 |
229 |
.endif |
230 |
CONFIGURE_ARGS+=--enable-cpu-level=${WITH_CPU_LEVEL} |
231 |
.if ${WITH_CPU_LEVEL} < 5 |
232 |
CONFIGURE_ARGS+=--disable-mmx |
233 |
.endif |
234 |
.endif |
235 |
|
236 |
.if defined(WITH_SSE_LEVEL) |
237 |
.if ${WITH_SSE_LEVEL} >= 1 && ${WITH_SSE_LEVEL} <= 3 |
238 |
CONFIGURE_ARGS+=--enable-sse=${WITH_SSE_LEVEL} |
239 |
.else |
240 |
IGNORE= can not install: WITH_SSE_LEVEL must be an integer value between 1 and 3 |
241 |
.endif |
242 |
.endif |
243 |
|
244 |
pre-everything:: |
245 |
@${ECHO_CMD} |
246 |
.if !defined(WITH_CPU_LEVEL) |
247 |
@${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} |
248 |
.endif |
249 |
.if !defined(WITH_SSE_LEVEL) |
250 |
@${ECHO_CMD} "If you want to enable SSE you have to set WITH_SSE_LEVEL to 1, 2 or 3." | ${FMT} |
251 |
.endif |
252 |
@${ECHO_CMD} |
253 |
|
254 |
post-patch: |
255 |
@${REINPLACE_CMD} -Ee \ |
256 |
's|$$BXSHARE/|${DATADIR}/|; \ |
257 |
s|^#clock: sync=none|clock: sync=realtime|; \ |
258 |
s|^log: .+|log: /dev/null|; \ |
259 |
s|^panic: .+|panic: action=ask|; \ |
260 |
s|^parport1: .+|#&|' \ |
261 |
${WRKSRC}/.bochsrc |
262 |
@${REINPLACE_CMD} -Ee \ |
263 |
's|install_share install_doc|install_share|; \ |
264 |
s|(^sharedir.+=).+|\1 ${DATADIR}|; \ |
265 |
s|(^docdir.+=).+|\1 ${DOCSDIR}|' \ |
266 |
${WRKSRC}/Makefile.in |
267 |
@${REINPLACE_CMD} -e \ |
268 |
's|/usr/local/share/bochs|${DATADIR}|; \ |
269 |
s|/usr/local/share/doc/bochs|${DOCSDIR}|' \ |
270 |
${WRKSRC}/doc/docbook/user/user.dbk ${WRKSRC}/doc/man/*.[15] |
271 |
@${REINPLACE_CMD} -Ee 's|/usr/(include/vga\.h)|${LOCALBASE}/\1|' \ |
272 |
${WRKSRC}/gui/svga.cc |
273 |
@${REINPLACE_CMD} -Ee 's|(^LOCAL_CXXFLAGS.+=)|\1 @CPPFLAGS@|' \ |
274 |
${WRKSRC}/gui/Makefile.in |
275 |
|
276 |
post-install: |
277 |
.if defined(WITH_PLUGINS) |
278 |
@${FIND} ${PREFIX}/lib/bochs ! -type d | \ |
279 |
${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST} |
280 |
@${FIND} ${PREFIX}/lib/bochs -type d | ${SORT} -r | \ |
281 |
${SED} 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST} |
282 |
.endif |
283 |
.if !defined(NOPORTDOCS) |
284 |
@${MKDIR} ${DOCSDIR} |
285 |
@${INSTALL_DATA} ${WRKSRC}/CHANGES ${DOCSDIR}/CHANGES |
286 |
@${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}/README |
287 |
@${INSTALL_DATA} ${WRKSRC}/TODO ${DOCSDIR}/TODO |
288 |
@${INSTALL_DATA} ${WRKSRC}/.bochsrc ${DOCSDIR}/bochsrc-sample.txt |
289 |
@${INSTALL_DATA} ${WRKSRC}/docs-html/*.txt ${DOCSDIR} |
290 |
@${MKDIR} ${DOCSDIR}/html |
291 |
@${INSTALL_DATA} ${WRKSRC}/docs-html/*.html ${DOCSDIR}/html |
292 |
.endif |
293 |
|
294 |
.include <bsd.port.post.mk> |