ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/mports/trunk/emulators/bochs/Makefile
Revision: 14011
Committed: Thu Apr 11 12:21:50 2013 UTC (11 years ago) by laffer1
File size: 11507 byte(s)
Log Message:
2.6

File Contents

# Content
1 # $MidnightBSD: mports/emulators/bochs/Makefile,v 1.9 2011/02/02 21:42:14 laffer1 Exp $
2
3 PORTNAME= bochs
4 PORTVERSION= 2.6
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
12 LICENSE= lpgl
13
14 OPTIONS_DEFINE= A20_PIN ALIGN_CHECK ASSERT_CHECK \
15 CDROM CHAINING CLGD54XX CONF_MSRS CPP_SUFX \
16 DISASM DOCS \
17 E1000 ES1370 FAST_FUNCCALL FPU \
18 GAMEPORT IDLE_HACK IODEBUG \
19 LARGE_RAMFILE LOGGING LONG_PHY_ADDR \
20 MISALIGNEDSSE MWAIT NE2000 OPTIMIZATIONS PCI PLUGINS PNIC \
21 RAW_SERIAL READLINE REPEAT_SPEED RFB \
22 SB16 SDL SHOW_IPS SMP SVGA SVM TERM USB USB_OHCI USB_XHCI \
23 VMX WX X11 X86_64 XPM
24 OPTIONS_RADIO= DEBUG
25 OPTIONS_RADIO_DEBUG= DEBUGGER GDB_STUB
26 OPTIONS_DEFAULT=A20_PIN ALIGN_CHECK CDROM CONF_MSRS DISASM FPU LOGGING \
27 NE2000 OPTIMIZATIONS SB16 X11
28
29 A20_PIN_DESC= Enable support for A20 pin
30 ALIGN_CHECK_DESC= Enable alignment check support
31 ASSERT_CHECK_DESC= Enable BX_ASSERT checks
32 CDROM_DESC= Enable CDROM support
33 CHAINING_DESC= Enable handlers-chaining emulation speedups
34 CLGD54XX_DESC= Enable Cirrus Logic GD54xx video card
35 CONF_MSRS_DESC= Enable configurable MSR registers support
36 CPP_SUFX_DESC= Use .cpp as C++ suffix
37 DEBUG_DESCR= Enable Debugging, select this and one of DEBUGGER or GDB_STUB (or none)
38 DEBUGGER_DESC= Enable debugger support
39 DEBUGGER_X86_DESC= Enable x86 hardware debugger
40 DISASM_DESC= Enable disassemler support
41 E1000_DESC= Enable Intel(R) Gigabit Ethernet support
42 ES1370_DESC= Enable ES1370 soundcard support
43 FAST_FUNCCALL_DESC= Enable fast function calls support (x86 only)
44 FPU_DESC= Enable FPU emulator
45 GAMEPORT_DESC= Enable standard PC gameport support
46 GDB_STUB_DESC= Enable GDB stub support
47 IDLE_HACK_DESC= Keep Bochs from using all CPU time
48 IODEBUG_DESC= Enable I/O interface to debugger
49 LARGE_RAMFILE_DESC= Enable large ramfile support
50 LOGGING_DESC= Enable logging
51 LONG_PHY_ADDR_DESC= Enable support for physical address >= 32bit
52 MISALIGNEDSSE_DESC= Enable misaligned SSE support
53 MWAIT_DESC= Enable experimental MONITOR/MWAIT support
54 NE2000_DESC= Enable limited ne2000 support
55 OPTIMIZATIONS_DESC= Enable all safe speed optimizations
56 PCI_DESC= Enable limited i440FX PCI support
57 PLUGINS_DESC= Enable building dynamic loadable plugins
58 PNIC_DESC= Enable PCI pseudo NIC (network card) support
59 RAW_SERIAL_DESC= Use raw serial port access
60 READLINE_DESC= Enable readline support in debugger
61 REPEAT_SPEED_DESC= Enable repeated IO and mem copy speedups
62 RFB_DESC= Enable VNC server support in display
63 SB16_DESC= Enable Sound Blaster 16 emulation
64 SDL_DESC= Enable SDL display interface
65 SHOW_IPS_DESC= Enable logging of measured IPS
66 SMP_DESC= Enable SMP simulation support (CPU level 6)
67 SVGA_DESC= Enable SVGAlib support
68 SVM_DESC= Enable SVM (AMD: secure virtual machine) emulation
69 TERM_DESC= Use text only, console based interface
70 USB_DESC= Enable limited USB UHCI support
71 USB_OHCI_DESC= Enable limited USB OHCI support
72 USB_XHCI_DESC= Enable limited USB xHCI support
73 VMX_DESC= Enable Virtialization extensions
74 WX_DESC= Use WxWidgets display interface
75 X86_64_DESC= Enable AMD x86-64 support
76 XPM_DESC= Enable XPM library support
77
78 USE_GMAKE= yes
79 USE_AUTOTOOLS= libtool
80 CONFIGURE_ARGS= --disable-docbook --disable-instrumentation
81 MAKE_JOBS_SAFE= yes
82
83 CFLAGS+= -fno-exceptions -fomit-frame-pointer ${CPPFLAGS}
84 CXXFLAGS+= -fno-rtti
85 CPPFLAGS+= -I${LOCALBASE}/include
86 LDFLAGS+= -L${LOCALBASE}/lib
87
88 MANCOMPRESSED= yes
89 MAN1= bochs.1 bochs-dlx.1 bxcommit.1 bximage.1
90 MAN5= bochsrc.5
91
92 SUB_FILES= pkg-message
93
94 .include <bsd.mport.options.mk>
95
96 .if empty(PORT_OPTIONS:MTERM) && empty(PORT_OPTIONS:MWX) && empty(PORT_OPTIONS:MX11)
97 CONFIGURE_ARGS+=--with-nogui
98 .endif
99
100 .if ${PORT_OPTIONS:MA20_PIN}
101 CONFIGURE_ARGS+=--enable-a20-pin
102 .else
103 CONFIGURE_ARGS+=--disable-a20-pin
104 .endif
105
106 .if ${PORT_OPTIONS:MALIGN_CHECK}
107 CONFIGURE_ARGS+=--enable-alignment-check
108 .else
109 CONFIGURE_ARGS+=--disable-alignment-check
110 .endif
111
112 .if ${PORT_OPTIONS:MASSERT_CHECK}
113 CONFIGURE_ARGS+=--enable-assert-checks
114 .else
115 CONFIGURE_ARGS+=--disable-assert-checks
116 .endif
117
118 .if ${PORT_OPTIONS:MCDROM}
119 CONFIGURE_ARGS+=--enable-cdrom
120 .else
121 CONFIGURE_ARGS+=--disable-cdrom
122 .endif
123
124 .if ${PORT_OPTIONS:MCHAINING}
125 CONFIGURE_ARGS+=--enable-handlers-chaining
126 .else
127 CONFIGURE_ARGS+=--disable-handlers-chaining
128 .endif
129
130 .if ${PORT_OPTIONS:MCLGD54XX}
131 CONFIGURE_ARGS+=--enable-clgd54xx
132 .else
133 CONFIGURE_ARGS+=--disable-clgd54xx
134 .endif
135
136 .if ${PORT_OPTIONS:MCONF_MSRS}
137 CONFIGURE_ARGS+=--enable-configurable-msrs
138 .else
139 CONFIGURE_ARGS+=--disable-configurable-msrs
140 .endif
141
142 .if ${PORT_OPTIONS:MCPP_SUFX}
143 CONFIGURE_ARGS+=--enable-cpp
144 .else
145 CONFIGURE_ARGS+=--disable-cpp
146 .endif
147
148 .if ${PORT_OPTIONS:MDEBUGGER}
149 CONFIGURE_ARGS+=--enable-debugger
150 .else
151 CONFIGURE_ARGS+=--disable-debugger
152 .endif
153
154 .if ${PORT_OPTIONS:MDEBUGGER_X86}
155 CONFIGURE_ARGS+=--enable-x86-debugger
156 .else
157 CONFIGURE_ARGS+=--disable-x86-debugger
158 .endif
159
160 .if ${PORT_OPTIONS:MDISASM}
161 CONFIGURE_ARGS+=--enable-disasm
162 .else
163 CONFIGURE_ARGS+=--disable-disasm
164 .endif
165
166 .if ${PORT_OPTIONS:ME1000}
167 CONFIGURE_ARGS+=--enable-e1000
168 .else
169 CONFIGURE_ARGS+=--disable-e1000
170 .endif
171
172 .if ${PORT_OPTIONS:MES1370}
173 CONFIGURE_ARGS+=--enable-es1370
174 .else
175 CONFIGURE_ARGS+=--disable-es1370
176 .endif
177
178 .if ${PORT_OPTIONS:MFAST_FUNCCALL}
179 CONFIGURE_ARGS+=--enable-fast-function-calls
180 .else
181 CONFIGURE_ARGS+=--disable-fast-function-calls
182 .endif
183
184 .if ${PORT_OPTIONS:MFPU}
185 CONFIGURE_ARGS+=--enable-fpu
186 .else
187 CONFIGURE_ARGS+=--disable-fpu
188 .endif
189
190 .if ${PORT_OPTIONS:MGAMEPORT}
191 CONFIGURE_ARGS+=--enable-gameport
192 .else
193 CONFIGURE_ARGS+=--disable-gameport
194 .endif
195
196 .if ${PORT_OPTIONS:MGDB_STUB}
197 CONFIGURE_ARGS+=--enable-gdb-stub
198 .else
199 CONFIGURE_ARGS+=--disable-gdb-stub
200 .endif
201
202 .if ${PORT_OPTIONS:MIDLE_HACK}
203 CONFIGURE_ARGS+=--enable-idle-hack
204 .else
205 CONFIGURE_ARGS+=--disable-idle-hack
206 .endif
207
208 .if ${PORT_OPTIONS:MIODEBUG}
209 CONFIGURE_ARGS+=--enable-iodebug
210 .else
211 CONFIGURE_ARGS+=--disable-iodebug
212 .endif
213
214 .if ${PORT_OPTIONS:MLARGE_RAMFILE}
215 CONFIGURE_ARGS+=--enable-large-ramfile
216 .else
217 CONFIGURE_ARGS+=--disable-large-ramfile
218 .endif
219
220 .if ${PORT_OPTIONS:MLOGGING}
221 CONFIGURE_ARGS+=--enable-logging
222 .else
223 CONFIGURE_ARGS+=--disable-logging
224 .endif
225
226 .if ${PORT_OPTIONS:MLONG_PHY_ADDR}
227 CONFIGURE_ARGS+=--enable-long-phy-address
228 .else
229 CONFIGURE_ARGS+=--disable-long-phy-address
230 .endif
231
232 .if ${PORT_OPTIONS:MMISALIGNEDSSE}
233 CONFIGURE_ARGS+=--enable-misaligned-sse
234 .else
235 CONFIGURE_ARGS+=--disable-misaligned-sse
236 .endif
237
238 .if ${PORT_OPTIONS:MMWAIT}
239 CONFIGURE_ARGS+=--enable-monitor-mwait
240 .else
241 CONFIGURE_ARGS+=--disable-monitor-mwait
242 .endif
243
244 .if ${PORT_OPTIONS:MNE2000}
245 CONFIGURE_ARGS+=--enable-ne2000
246 .else
247 CONFIGURE_ARGS+=--disable-ne2000
248 .endif
249
250 .if ${PORT_OPTIONS:MOPTIMIZATIONS}
251 CONFIGURE_ARGS+=--enable-all-optimizations
252 .else
253 CONFIGURE_ARGS+=--disable-all-optimizations
254 .endif
255
256 .if ${PORT_OPTIONS:MPCI}
257 CONFIGURE_ARGS+=--enable-pci
258 .else
259 CONFIGURE_ARGS+=--disable-pci
260 .endif
261
262 .if ${PORT_OPTIONS:MPLUGINS}
263 CONFIGURE_ARGS+=--enable-plugins
264 .else
265 CONFIGURE_ARGS+=--disable-plugins
266 .endif
267
268 .if ${PORT_OPTIONS:MPNIC}
269 CONFIGURE_ARGS+=--enable-pnic
270 .else
271 CONFIGURE_ARGS+=--disable-pnic
272 .endif
273
274 .if ${PORT_OPTIONS:MRAW_SERIAL}
275 CONFIGURE_ARGS+=--enable-raw-serial
276 .else
277 CONFIGURE_ARGS+=--disable-raw-serial
278 .endif
279
280 .if ${PORT_OPTIONS:MREADLINE}
281 USE_READLINE= yes
282 CONFIGURE_ARGS+=--enable-readline
283 .else
284 CONFIGURE_ARGS+=--disable-readline
285 .endif
286
287 .if ${PORT_OPTIONS:MREPEAT_SPEED}
288 CONFIGURE_ARGS+=--enable-repeat-speedups
289 .else
290 CONFIGURE_ARGS+=--disable-repeat-speedups
291 .endif
292
293 .if ${PORT_OPTIONS:MRFB}
294 CONFIGURE_ARGS+=--with-rfb
295 .else
296 CONFIGURE_ARGS+=--without-rfb
297 .endif
298
299 .if ${PORT_OPTIONS:MSB16}
300 CONFIGURE_ARGS+=--enable-sb16
301 .endif
302
303 .if ${PORT_OPTIONS:MSDL}
304 USE_SDL= sdl
305 CONFIGURE_ARGS+=--with-sdl
306 .endif
307
308 .if ${PORT_OPTIONS:MSHOW_IPS}
309 CONFIGURE_ARGS+=--enable-show-ips
310 .else
311 CONFIGURE_ARGS+=--disable-show-ips
312 .endif
313
314 .if ${PORT_OPTIONS:MSMP}
315 CONFIGURE_ARGS+=--enable-smp
316 WITH_CPU_LEVEL= 6
317 .endif
318
319 .if ${PORT_OPTIONS:MSVGA}
320 LIB_DEPENDS+= vga:${PORTSDIR}/graphics/svgalib
321 CONFIGURE_ARGS+=--with-svga
322 .else
323 CONFIGURE_ARGS+=--without-svga
324 .endif
325
326 .if ${PORT_OPTIONS:MSVM}
327 CONFIGURE_ARGS+=--enable-svm
328 .else
329 CONFIGURE_ARGS+=--disable-svm
330 .endif
331
332 .if ${PORT_OPTIONS:MTERM}
333 CONFIGURE_ARGS+=--with-term
334 .else
335 CONFIGURE_ARGS+=--without-term
336 .endif
337
338 .if ${PORT_OPTIONS:MUSB}
339 CONFIGURE_ARGS+=--enable-usb
340 .else
341 CONFIGURE_ARGS+=--disable-usb
342 .endif
343
344 .if ${PORT_OPTIONS:MUSB_OHCI}
345 CONFIGURE_ARGS+=--enable-usb-ohci
346 .else
347 CONFIGURE_ARGS+=--disable-usb-ohci
348 .endif
349
350 .if ${PORT_OPTIONS:MUSB_XHCI}
351 CONFIGURE_ARGS+=--enable-usb-xhci
352 .else
353 CONFIGURE_ARGS+=--disable-usb-xhci
354 .endif
355
356 .if ${PORT_OPTIONS:MVMX}
357 CONFIGURE_ARGS+=--enable-vmx
358 WITH_CPU_LEVEL= 6
359 .else
360 CONFIGURE_ARGS+=--disable-vmx
361 .endif
362
363 .if ${PORT_OPTIONS:MWX}
364 USE_WX= 2.4+
365 CONFIGURE_ENV= WX_CONFIG="${WX_CONFIG}"
366 CONFIGURE_ARGS+=--with-wx
367 .else
368 CONFIGURE_ARGS+=--disable-debugger-gui
369 .endif
370
371 .if ${PORT_OPTIONS:MX11}
372 USE_XORG= xrandr
373 CONFIGURE_ARGS+=--with-x11
374 .endif
375
376 .if ${PORT_OPTIONS:MX86_64}
377 CONFIGURE_ARGS+=--enable-x86-64
378 .else
379 CONFIGURE_ARGS+=--disable-x86-64
380 .endif
381
382 .if ${PORT_OPTIONS:MXPM} && ${PORT_OPTIONS:MX11}
383 USE_XORG+= xpm
384 CONFIGURE_ARGS+=--enable-xpm
385 .else
386 CONFIGURE_ARGS+=--disable-xpm
387 .endif
388
389 .if defined(WITH_CPU_LEVEL)
390 .if ${WITH_CPU_LEVEL} < 3 || ${WITH_CPU_LEVEL} > 6
391 IGNORE= can not install: WITH_CPU_LEVEL must be an integer value between 3 and 6
392 .endif
393 CONFIGURE_ARGS+=--enable-cpu-level=${WITH_CPU_LEVEL}
394 .endif
395
396 .if ${PORT_OPTIONS:MSB16} || ${PORT_OPTIONS:MES1370}
397 LIB_DEPENDS+= asound:${PORTSDIR}/audio/alsa-lib
398 CONFIGURE_ENV+= SOUND_LINK_OPTS="-L${LOCALBASE}/lib"
399 .endif
400
401 .if ${PORT_OPTIONS:MGDB_STUB} && ${PORT_OPTIONS:MSMP}
402 IGNORE= GDB_STUB is incompatible with multiprocessor
403 .endif
404
405 pre-everything::
406 .if !defined(WITH_CPU_LEVEL)
407 @${ECHO_CMD}
408 @${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}
409 @${ECHO_CMD}
410 .endif
411
412 post-patch:
413 @${REINPLACE_CMD} -Ee \
414 's|$$BXSHARE/|${DATADIR}/|; \
415 s|^#clock: sync=none|clock: sync=realtime|; \
416 s|^log: .+|log: /dev/null|; \
417 s|^panic: .+|panic: action=ask|; \
418 s|^parport1: .+|#&|' \
419 ${WRKSRC}/.bochsrc
420 @${REINPLACE_CMD} -Ee \
421 's|install_share install_doc|install_share|; \
422 s|(^sharedir.+=).+|\1 ${DATADIR}|; \
423 s|(^docdir.+=).+|\1 ${DOCSDIR}|' \
424 ${WRKSRC}/Makefile.in
425 @${REINPLACE_CMD} -e \
426 's|/usr/local/share/bochs|${DATADIR}|; \
427 s|/usr/local/share/doc/bochs|${DOCSDIR}|' \
428 ${WRKSRC}/doc/docbook/user/user.dbk ${WRKSRC}/doc/man/*.[15]
429 @${REINPLACE_CMD} -Ee 's|/usr/(include/vga\.h)|${LOCALBASE}/\1|' \
430 ${WRKSRC}/gui/svga.cc
431 @${REINPLACE_CMD} -Ee \
432 's|(^LOCAL_CXXFLAGS.+=)|\1 @CPPFLAGS@|; \
433 s|(-lvgagl)$$|\1 @LDFLAGS@|' \
434 ${WRKSRC}/gui/Makefile.in
435
436 post-install:
437 .if ${PORT_OPTIONS:MPLUGINS}
438 @${FIND} ${PREFIX}/lib/bochs ! -type d | \
439 ${SED} 's,^${PREFIX}/,,' >> ${TMPPLIST}
440 @${FIND} ${PREFIX}/lib/bochs -type d | ${SORT} -r | \
441 ${SED} 's,^${PREFIX}/,@dirrm ,' >> ${TMPPLIST}
442 .endif
443 .if ${PORT_OPTIONS:MDOCS}
444 @${MKDIR} ${DOCSDIR}
445 @${INSTALL_DATA} ${WRKSRC}/CHANGES ${DOCSDIR}/CHANGES
446 @${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}/README
447 @${INSTALL_DATA} ${WRKSRC}/TODO ${DOCSDIR}/TODO
448 @${INSTALL_DATA} ${WRKSRC}/.bochsrc ${DOCSDIR}/bochsrc-sample.txt
449 @${INSTALL_DATA} ${WRKSRC}/docs-html/*.txt ${DOCSDIR}
450 @${MKDIR} ${DOCSDIR}/html
451 @${INSTALL_DATA} ${WRKSRC}/docs-html/*.html ${DOCSDIR}/html
452 .endif
453 @${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
454
455 .include <bsd.port.mk>

Properties

Name Value
cvs2svn:cvs-rev 1.10