1 # Copyright (C) 2002 MandrakeSoft S.A.
6 # http://www.linux-mandrake.com/
7 # http://www.mandrakesoft.com/
9 # This library is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU Lesser General Public
11 # License as published by the Free Software Foundation; either
12 # version 2 of the License, or (at your option) any later version.
14 # This library is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # Lesser General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public
20 # License along with this library; if not, write to the Free Software
21 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 ####################################################
24 # NOTE: To be compatibile with nmake (microsoft vc++) please follow
25 # the following rules:
26 # use $(VAR) not ${VAR}
29 exec_prefix = @
exec_prefix@
34 plugdir
= @
libdir@
/bochs
/plugins
36 man1dir = $(mandir)/man1
37 man5dir = $(mandir)/man5
38 docdir
= $(prefix)/share
/doc
/bochs
39 sharedir
= $(prefix)/share
/bochs
41 top_srcdir
= $(srcdir)
46 VER_STRING
=@VER_STRING@
47 REL_STRING
=@REL_STRING@
48 MAN_PAGE_1_LIST
=bochs bximage bxcommit bochs-dlx
49 MAN_PAGE_5_LIST
=bochsrc
50 INSTALL_LIST_SHARE
=bios
/BIOS-bochs-
* bios
/VGABIOS
* @INSTALL_LIST_FOR_PLATFORM@
51 INSTALL_LIST_DOC
=CHANGES COPYING README TODO
52 INSTALL_LIST_BIN
=bochs@EXE@ bximage@EXE@ bxcommit@EXE@
53 INSTALL_LIST_BIN_OPTIONAL
=bochsdbg@EXE@
54 INSTALL_LIST_WIN32
=$(INSTALL_LIST_SHARE
) $(INSTALL_LIST_DOC
) $(INSTALL_LIST_BIN
) $(INSTALL_LIST_BIN_OPTIONAL
) niclist@EXE@
55 INSTALL_LIST_MACOSX
=$(INSTALL_LIST_SHARE
) $(INSTALL_LIST_DOC
) bochs.scpt
56 # for win32 and macosx, these files get renamed to *.txt in install process
57 TEXT_FILE_LIST
=README CHANGES COPYING TODO VGABIOS-elpin-LICENSE VGABIOS-lgpl-README
63 DLXLINUX_TAR
=dlxlinux4.
tar.gz
64 DLXLINUX_TAR_URL
=http
://bochs.sourceforge.net
/guestos
/$(DLXLINUX_TAR
)
65 DLXLINUX_ROMFILE
=BIOS-bochs-latest
73 # the GZIP variable is reserved by gzip program
93 CFLAGS
= @CFLAGS@ @GUI_CFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
) @DEFINE_PLUGIN_PATH@
-DBX_SHARE_PATH
='"$(sharedir)"'
94 CXXFLAGS
= @CXXFLAGS@ @GUI_CXXFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
) @DEFINE_PLUGIN_PATH@
-DBX_SHARE_PATH
='"$(sharedir)"'
98 # To compile with readline:
99 # linux needs just -lreadline
100 # solaris needs -lreadline -lcurses
102 X_PRE_LIBS
= @X_PRE_LIBS@
104 GUI_LINK_OPTS_X
= $(X_LIBS
) $(X_PRE_LIBS
) -lX11
$(XPM_LIB
)
105 GUI_LINK_OPTS_SDL
= `sdl-config --cflags --libs`
106 GUI_LINK_OPTS_SVGA
= -lvga
-lvgagl
107 GUI_LINK_OPTS_BEOS
= -lbe
108 GUI_LINK_OPTS_RFB
= @RFB_LIBS@
109 GUI_LINK_OPTS_AMIGAOS
=
110 GUI_LINK_OPTS_WIN32
= -luser32
-lgdi32
-lcomdlg32
-lcomctl32
-lwsock32
-lshell32
111 GUI_LINK_OPTS_WIN32_VCPP
= user32.lib gdi32.lib winmm.lib \
112 comdlg32.lib comctl32.lib wsock32.lib advapi32.lib shell32.lib
113 GUI_LINK_OPTS_MACOS
=
114 GUI_LINK_OPTS_CARBON
= -framework Carbon
115 GUI_LINK_OPTS_NOGUI
=
116 GUI_LINK_OPTS_TERM
= @GUI_LINK_OPTS_TERM@
117 GUI_LINK_OPTS_WX
= @GUI_LINK_OPTS_WX@
118 GUI_LINK_OPTS
= @GUI_LINK_OPTS@ @DEVICE_LINK_OPTS@
121 CFLAGS_CONSOLE
= @CFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
)
122 CXXFLAGS_CONSOLE
= @CXXFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
)
123 BXIMAGE_LINK_OPTS
= @BXIMAGE_LINK_OPTS@
125 BX_INCDIRS
= -I.
-I
$(srcdir)/.
-I@INSTRUMENT_DIR@
-I
$(srcdir)/@INSTRUMENT_DIR@
127 #SUBDIRS = iodev bx_debug
129 #all install uninstall: config.h#
130 # for subdir in $(SUBDIRS); do #
131 # echo making $@ in $$subdir; #
132 # (cd $$subdir && $(MAKE) $(MDEFINES) $@) || exit 1; #
137 # gnu flags for clean up
138 #CFLAGS = -ansi -O -g -Wunused -Wuninitialized
152 EXTERN_ENVIRONMENT_OBJS
= \
158 DEBUGGER_LIB
= bx_debug
/libdebug.a
159 DISASM_LIB
= disasm
/libdisasm.a
160 INSTRUMENT_LIB
= @INSTRUMENT_DIR@
/libinstrument.a
161 FPU_LIB
= fpu
/libfpu.a
162 READLINE_LIB
= @READLINE_LIB@
163 EXTRA_LINK_OPTS
= @EXTRA_LINK_OPTS@
165 GDBSTUB_OBJS
= gdbstub.o
167 BX_OBJS
= @NONINLINE_VAR@
169 BX_INCLUDES
= bochs.h config.h osdep.h
173 $(CXX
) @DASH@c
$(BX_INCDIRS
) $(CXXFLAGS
) @CXXFP@
$< @OFP@
$@
175 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS
) $(FPU_FLAGS
) $< @OFP@
$@
178 all: @PRIMARY_TARGET@ @PLUGIN_TARGET@ bximage@EXE@ bxcommit@EXE@ @BUILD_DOCBOOK_VAR@
180 @EXTERNAL_DEPENDENCY@
182 bochs@EXE@
: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
183 cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
184 @DISASM_VAR@ @INSTRUMENT_VAR@
$(BX_OBJS
) \
185 $(SIMX86_OBJS
) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
186 @LINK@ @EXPORT_DYNAMIC@
$(BX_OBJS
) $(SIMX86_OBJS
) \
187 iodev
/libiodev.a cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
188 @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
189 @GDBSTUB_VAR@ @FPU_VAR@ \
190 @NONPLUGIN_GUI_LINK_OPTS@ \
192 $(SIMX86_LINK_FLAGS
) \
197 # Special make target for cygwin/mingw using dlltool instead of
198 # libtool. This creates a .DEF file, and exports file, an import library,
199 # and then links bochs.exe with the exports file.
200 .win32_dll_plugin_target
: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
201 cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
202 @DISASM_VAR@ @INSTRUMENT_VAR@
$(BX_OBJS
) \
203 $(SIMX86_OBJS
) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
204 $(DLLTOOL
) --export-all-symbols
--output-def bochs.def \
205 $(BX_OBJS
) $(SIMX86_OBJS
) \
206 @IODEV_LIB_VAR@ cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
207 @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
208 @GDBSTUB_VAR@ @FPU_VAR@
209 $(DLLTOOL
) --dllname bochs.exe
--def bochs.def
--output-lib dllexports.a
210 $(DLLTOOL
) --dllname bochs.exe
--output-exp bochs.exp
--def bochs.def
211 $(CXX
) -o bochs.exe
$(CXXFLAGS
) $(LDFLAGS
) -export-dynamic \
212 $(BX_OBJS
) bochs.exp
$(SIMX86_OBJS
) \
213 @IODEV_LIB_VAR@ cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
214 @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
215 @GDBSTUB_VAR@ @FPU_VAR@ \
218 $(SIMX86_LINK_FLAGS
) \
222 touch .win32_dll_plugin_target
225 cd gui
&& $(MAKE
) plugins
226 cd iodev
&& $(MAKE
) plugins
228 bximage@EXE@
: misc
/bximage.o
229 @LINK_CONSOLE@
$(BXIMAGE_LINK_OPTS
) misc
/bximage.o
231 bxcommit@EXE@
: misc
/bxcommit.o
232 @LINK_CONSOLE@ misc
/bxcommit.o
234 niclist@EXE@
: misc
/niclist.o
235 @LINK_CONSOLE@ misc
/niclist.o
237 # compile with console CXXFLAGS, not gui CXXFLAGS
238 misc
/bximage.o
: $(srcdir)/misc
/bximage.c
$(srcdir)/iodev
/hdimage.h
239 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bximage.c @OFP@
$@
241 misc
/bxcommit.o
: $(srcdir)/misc
/bxcommit.c
$(srcdir)/iodev
/hdimage.h
242 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bxcommit.c @OFP@
$@
244 misc
/niclist.o
: $(srcdir)/misc
/niclist.c
245 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/niclist.c @OFP@
$@
247 $(BX_OBJS
): $(BX_INCLUDES
)
251 echo
'/////////////////////////////////////////////////////////////////////////' > bxversion.h
252 echo
'// $$Id: Makefile.in,v 1.183 2007/05/17 15:47:34 vruppert Exp $$' >> bxversion.h
253 echo
'/////////////////////////////////////////////////////////////////////////' >> bxversion.h
254 echo
'// This file is generated by "make bxversion.h"' >> bxversion.h
255 echo
"#define VER_STRING \"$(VER_STRING)\"" >> bxversion.h
256 echo
"#define REL_STRING \"$(REL_STRING)\"" >> bxversion.h
259 cd iodev @COMMAND_SEPARATOR@
260 $(MAKE
) $(MDEFINES
) libiodev.a
263 bx_debug
/libdebug.a
::
264 cd bx_debug @COMMAND_SEPARATOR@
265 $(MAKE
) $(MDEFINES
) libdebug.a
269 cd cpu @COMMAND_SEPARATOR@
270 $(MAKE
) $(MDEFINES
) libcpu.a
274 cd memory @COMMAND_SEPARATOR@
275 $(MAKE
) $(MDEFINES
) libmemory.a
279 cd gui @COMMAND_SEPARATOR@
280 $(MAKE
) $(MDEFINES
) libgui.a
284 cd disasm @COMMAND_SEPARATOR@
285 $(MAKE
) $(MDEFINES
) libdisasm.a
288 @INSTRUMENT_DIR@
/libinstrument.a
::
289 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
290 $(MAKE
) $(MDEFINES
) libinstrument.a
294 cd fpu @COMMAND_SEPARATOR@
295 $(MAKE
) $(MDEFINES
) libfpu.a
300 ar rv libbochs.a
$(EXTERN_ENVIRONMENT_OBJS
)
303 libbochs_cpu.a
: @DEBUGGER_VAR@
$(BX_OBJS
)
304 -rm -f libbochs_cpu.a
305 ar rv libbochs_cpu.a
$(BX_OBJS
)
306 $(RANLIB
) libbochs_cpu.a
308 # for wxWidgets port, on win32 platform
309 wxbochs_resources.o
: wxbochs.rc
310 windres
$(srcdir)/wxbochs.rc
-o
$@
--include-dir
=`@WX_CONFIG@ --prefix`/include
313 win32res.o
: win32res.rc
314 $(RC_CMD
)$@
$(srcdir)/win32res.rc
316 #####################################################################
317 # Install target for all platforms.
318 #####################################################################
320 install: all @INSTALL_TARGET@
322 #####################################################################
323 # Install target for win32
325 # This is intended to be run in cygwin, since it has better scripting
327 #####################################################################
329 install_win32
: download_dlx @INSTALL_DOCBOOK_VAR@
331 cp obj-release
/*.exe .
332 for i in
$(INSTALL_LIST_WIN32
); do if
test -f
$$i; then cp
$$i $(prefix); else cp
$(srcdir)/$$i $(prefix); fi
; done
333 cp
$(srcdir)/misc
/sb16
/sb16ctrl.example
$(prefix)/sb16ctrl.txt
334 cp
$(srcdir)/misc
/sb16
/sb16ctrl.exe
$(prefix)
335 #cat $(srcdir)/build/win32/DOC-win32.htm | $(SED) -e 's/@VERSION@/$(VERSION)/g' > $(prefix)/DOC-win32.htm
336 cp
$(srcdir)/.bochsrc
$(prefix)/bochsrc-sample.txt
337 -mkdir
$(prefix)/keymaps
338 cp
$(srcdir)/gui
/keymaps
/*.map
$(prefix)/keymaps
339 cat
$(DLXLINUX_TAR
) |
(cd
$(prefix) && tar xzvf
-)
340 echo
'..\bochs' > $(prefix)/dlxlinux
/start.bat
341 dlxrc
=$(prefix)/dlxlinux
/bochsrc.txt
; mv
$$dlxrc $$dlxrc.orig
&& sed
< $$dlxrc.orig
's/\/usr\/local\/bochs\/latest/../' > $$dlxrc && rm -f
$$dlxrc.orig
342 mv
$(prefix)/README
$(prefix)/README.orig
343 cat
$(srcdir)/build
/win32
/README.win32-binary
$(prefix)/README.orig
> $(prefix)/README
344 rm -f
$(prefix)/README.orig
345 for i in
$(TEXT_FILE_LIST
); do mv
$(prefix)/$$i $(prefix)/$$i.txt
; done
346 cd
$(prefix); $(UNIX2DOS
) *.txt
*/*.txt
347 cd
$(prefix); NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(ZIP
) $$NAME.zip
-r
$$NAME); ls
-l ..
/$$NAME.zip
349 #####################################################################
350 # install target for unix
351 #####################################################################
353 install_unix
: install_bin @INSTALL_PLUGINS_VAR@ install_man install_share install_doc @INSTALL_DOCBOOK_VAR@
356 for i in
$(DESTDIR
)$(bindir); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
357 for i in
$(INSTALL_LIST_BIN
); do if
test -f
$$i; then
install $$i $(DESTDIR
)$(bindir); else install $(srcdir)/$$i $(DESTDIR
)$(bindir); fi
; done
358 -for i in
$(INSTALL_LIST_BIN_OPTIONAL
); do if
test -f
$$i; then
install $$i $(DESTDIR
)$(bindir); else install $(srcdir)/$$i $(DESTDIR
)$(bindir); fi
; done
360 install_libtool_plugins
::
361 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
362 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install gui
/$$i $(DESTDIR
)$(plugdir
); done
363 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install iodev
/$$i $(DESTDIR
)$(plugdir
); done
364 $(LIBTOOL
) --finish
$(DESTDIR
)$(plugdir
)
366 install_dll_plugins
::
367 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
368 list
=`cd gui && echo *.dll`; for i in
$$list; do cp gui
/$$i $(DESTDIR
)$(plugdir
); done
369 list
=`cd iodev && echo *.dll`; for i in
$$list; do cp iodev
/$$i $(DESTDIR
)$(plugdir
); done
372 for i in
$(DESTDIR
)$(sharedir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
373 for i in
$(INSTALL_LIST_SHARE
); do if
test -f
$$i; then
install -m
644 $$i $(DESTDIR
)$(sharedir
); else install -m
644 $(srcdir)/$$i $(DESTDIR
)$(sharedir
); fi
; done
374 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
375 for i in
$(srcdir)/gui
/keymaps
/*.map
; do
install -m
644 $$i $(DESTDIR
)$(sharedir
)/keymaps
/; done
378 for i in
$(DESTDIR
)$(docdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
379 for i in
$(INSTALL_LIST_DOC
); do if
test -f
$$i; then
install -m
644 $$i $(DESTDIR
)$(docdir
); else install -m
644 $(srcdir)/$$i $(DESTDIR
)$(docdir
); fi
; done
380 $(RM
) -f
$(DESTDIR
)$(docdir
)/README
381 $(CAT
) $(srcdir)/build
/linux
/README.linux-binary
$(srcdir)/README
> $(DESTDIR
)$(docdir
)/README
382 install -m
644 $(srcdir)/.bochsrc
$(DESTDIR
)$(docdir
)/bochsrc-sample.txt
389 cd doc
/docbook
; make dl_docs
391 install_docbook
: build_docbook
392 cd doc
/docbook
; make
install
395 -mkdir
-p
$(DESTDIR
)$(man1dir)
396 -mkdir
-p
$(DESTDIR
)$(man5dir)
397 for i in
$(MAN_PAGE_1_LIST
); do cat
$(srcdir)/doc
/man
/$$i.1 |
$(SED
) 's/@version@/$(VERSION)/g' |
$(GZIP_BIN
) -c
> $(DESTDIR
)$(man1dir)/$$i.1.gz
; chmod
644 $(DESTDIR
)$(man1dir)/$$i.1.gz
; done
398 for i in
$(MAN_PAGE_5_LIST
); do cat
$(srcdir)/doc
/man
/$$i.5 |
$(GZIP_BIN
) -c
> $(DESTDIR
)$(man5dir)/$$i.5.gz
; chmod
644 $(DESTDIR
)$(man5dir)/$$i.5.gz
; done
400 download_dlx
: $(DLXLINUX_TAR
)
403 $(RM
) -f
$(DLXLINUX_TAR
)
404 $(WGET
) $(DLXLINUX_TAR_URL
)
405 test -f
$(DLXLINUX_TAR
)
407 unpack_dlx
: $(DLXLINUX_TAR
)
409 $(GUNZIP
) -c
$(DLXLINUX_TAR
) |
$(TAR
) -xvf
-
411 (cd dlxlinux
; $(MV
) bochsrc.txt bochsrc.txt.orig
; $(SED
) -e
"s/1\.1\.2/$(VERSION)/g" -e
's,/usr/local/bochs/latest,$(prefix)/share/bochs,g' < bochsrc.txt.orig
> bochsrc.txt
; rm -f bochsrc.txt.orig
)
414 $(RM
) -rf
$(DESTDIR
)$(sharedir
)/dlxlinux
415 cp
-r dlxlinux
$(DESTDIR
)$(sharedir
)/dlxlinux
416 $(CHMOD
) 755 $(DESTDIR
)$(sharedir
)/dlxlinux
417 $(GZIP_BIN
) $(DESTDIR
)$(sharedir
)/dlxlinux
/hd10meg.img
418 $(CHMOD
) 644 $(DESTDIR
)$(sharedir
)/dlxlinux
/*
419 for i in bochs-dlx
; do cp
$(srcdir)/build
/linux
/$$i $(DESTDIR
)$(bindir)/$$i; $(CHMOD
) 755 $(DESTDIR
)$(bindir)/$$i; done
422 $(RM
) -rf
$(DESTDIR
)$(sharedir
)
423 $(RM
) -rf
$(DESTDIR
)$(docdir
)
424 $(RM
) -rf
$(DESTDIR
)$(libdir)/bochs
425 for i in bochs bximage bxcommit bochs-dlx
; do
rm -f
$(DESTDIR
)$(bindir)/$$i; done
426 for i in
$(MAN_PAGE_1_LIST
); do
$(RM
) -f
$(man1dir)/$$i.1.gz
; done
427 for i in
$(MAN_PAGE_5_LIST
); do
$(RM
) -f
$(man5dir)/$$i.5.gz
; done
429 V6WORKSPACE_ZIP
=build
/win32
/workspace.zip
430 V6WORKSPACE_FILES
=bochs.dsw bochs.dsp bochs.opt cpu
/cpu.dsp \
431 memory
/memory.dsp iodev
/iodev.dsp instrument
/stubs
/stubs.dsp \
432 gui
/gui.dsp fpu
/fpu.dsp disasm
/disasm.dsp bx_debug
/bx_debug.dsp \
433 misc
/niclist.dsp bximage.dsp bxcommit.dsp
436 zip
$(V6WORKSPACE_ZIP
) $(V6WORKSPACE_FILES
)
439 # the win32_snap target is used to create a ZIP of bochs sources configured
440 # for VC++. This ZIP is stuck on the website every once in a while to make
441 # it easier for VC++ users to compile bochs. First, you should
442 # run "sh .conf.win32-vcpp" to configure the source code, then do
443 # "make win32_snap" to unzip the workspace files and create the ZIP.
446 unzip
$(V6WORKSPACE_ZIP
)
447 $(SHELL
) .
/build
/win32
/cc2cpp
449 $(SHELL
) .
/build
/win32
/cpp2cc
452 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; tar cf
- $$NAME |
$(GZIP_BIN
) > $$NAME.
tar.gz
); ls
-l ..
/$$NAME.
tar.gz
455 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; $(ZIP
) $$NAME.zip
-r
$$NAME -x \
*CVS\
* -x \
*.cvsignore
); ls
-l ..
/$$NAME.zip
461 @RMCOMMAND@ bochs.exe
463 @RMCOMMAND@ bximage.exe
465 @RMCOMMAND@ bxcommit.exe
467 @RMCOMMAND@ niclist.exe
468 @RMCOMMAND@ bochs.out
469 @RMCOMMAND@ bochsout.txt
470 @RMCOMMAND@ bochs.exp
471 @RMCOMMAND@ bochs.def
472 @RMCOMMAND@ bochs.scpt
473 @RMCOMMAND@
-rf bochs.app
474 @RMCOMMAND@
-rf .libs
475 @RMCOMMAND@ .win32_dll_plugin_target
477 local-dist-clean
: clean
478 @RMCOMMAND@ config.h config.status config.log config.cache
479 @RMCOMMAND@ .dummy
`find . -name '*.dsp' -o -name '*.dsw' -o -name '*.opt' -o -name '.DS_Store'`
480 @RMCOMMAND@ bxversion.h build
/linux
/bochs-dlx _rpm_top
*.rpm
481 @RMCOMMAND@ build
/win32
/nsis
/Makefile build
/win32
/nsis
/bochs.nsi
482 @RMCOMMAND@ build
/macosx
/Info.plist build
/macosx
/script_compiled.rsrc
484 @RMCOMMAND@ ltdlconf.h
487 cd iodev @COMMAND_SEPARATOR@
490 cd bx_debug @COMMAND_SEPARATOR@
493 cd cpu @COMMAND_SEPARATOR@
496 cd memory @COMMAND_SEPARATOR@
499 cd gui @COMMAND_SEPARATOR@
502 cd disasm @COMMAND_SEPARATOR@
505 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
508 cd misc @COMMAND_SEPARATOR@
511 cd fpu @COMMAND_SEPARATOR@
514 cd doc
/docbook @COMMAND_SEPARATOR@
517 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
521 dist-clean
: local-dist-clean
522 cd iodev @COMMAND_SEPARATOR@
525 cd bx_debug @COMMAND_SEPARATOR@
528 cd bios @COMMAND_SEPARATOR@
531 cd cpu @COMMAND_SEPARATOR@
534 cd memory @COMMAND_SEPARATOR@
537 cd gui @COMMAND_SEPARATOR@
540 cd disasm @COMMAND_SEPARATOR@
543 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
546 cd misc @COMMAND_SEPARATOR@
549 cd fpu @COMMAND_SEPARATOR@
552 cd doc
/docbook @COMMAND_SEPARATOR@
555 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
560 ###########################################
561 # Build app on MacOS X
562 ###########################################
563 MACOSX_STUFF
=build
/macosx
564 MACOSX_STUFF_SRCDIR
=$(srcdir)/$(MACOSX_STUFF
)
567 SCRIPT_EXEC
=bochs.scpt
568 SCRIPT_DATA
=$(MACOSX_STUFF_SRCDIR
)/script.data
569 SCRIPT_R
=$(MACOSX_STUFF_SRCDIR
)/script.r
570 SCRIPT_APPLESCRIPT
=$(MACOSX_STUFF_SRCDIR
)/bochs.applescript
571 SCRIPT_COMPILED_RSRC
=$(MACOSX_STUFF
)/script_compiled.rsrc
572 REZ
=/Developer
/Tools
/Rez
573 CPMAC
=/Developer
/Tools
/CpMac
574 RINCLUDES
=/System
/Library
/Frameworks
/Carbon.framework
/Libraries
/RIncludes
575 REZ_ARGS
=-append
-i
$RINCLUDES -d SystemSevenOrLater
=1 -useDF
576 STANDALONE_LIBDIR
=`pwd`/$(APP
)/Contents
/$(APP_PLATFORM
)/lib
577 OSACOMPILE
=/usr
/bin
/osacompile
578 SETFILE
=/Developer
/Tools
/Setfile
580 # On a MacOS X machine, you run rez, osacompile, and setfile to
581 # produce the script executable, which has both a data fork and a
582 # resource fork. Ideally, we would just recompile the whole
583 # executable at build time, but unfortunately this cannot be done on
584 # the SF compile farm through an ssh connection because osacompile
585 # needs to be run locally for some reason. Solution: If the script
586 # sources are changed, rebuild the executable on a MacOSX machine,
587 # split it into its data and resource forks and check them into CVS
588 # as separate files. Then at release time, all that's left to do is
589 # put the data and resource forks back together to make a working script.
590 # (This can be done through ssh.)
593 # 1. script.r: resources for the script
594 # 2. script.data: binary data for the script
595 # 3. bochs.applescript: the source of the script
597 # NOTE: All of this will fail if you aren't building on an HFS+
598 # filesystem! On the SF compile farm building in your user directory
599 # will fail, while doing the build in /tmp will work ok.
601 # check if this filesystem supports resource forks at all
603 $(RM
) -rf test_hfsplus
604 echo data
> test_hfsplus
605 # if you get "Not a directory", then this filesystem doesn't support resources
606 echo resource
> test_hfsplus
/rsrc
608 $(RM
) -rf test_hfsplus
610 # Step 1 (must be done locally on MacOSX, only when sources change)
611 # Compile and pull out just the resource fork. The resource fork is
612 # checked into CVS as script_compiled.rsrc. Note that we don't need
613 # to check in the data fork of tmpscript because it is identical to the
614 # script.data input file.
615 $(SCRIPT_COMPILED_RSRC
): $(SCRIPT_R
) $(SCRIPT_APPLESCRIPT
)
617 $(CP
) -f
$(SCRIPT_DATA
) tmpscript
618 $(REZ
) -append
$(SCRIPT_R
) -o tmpscript
619 $(OSACOMPILE
) -o tmpscript
$(SCRIPT_APPLESCRIPT
)
620 $(CP
) tmpscript
/rsrc
$(SCRIPT_COMPILED_RSRC
)
623 # Step 2 (can be done locally or remotely on MacOSX)
624 # Combine the data fork and resource fork, and set attributes.
625 $(SCRIPT_EXEC
): $(SCRIPT_DATA
) $(SCRIPT_COMPILED_RSRC
)
627 $(CP
) $(SCRIPT_DATA
) $(SCRIPT_EXEC
)
628 if
test ! -f
$(SCRIPT_COMPILED_RSRC
); then
$(CP
) $(srcdir)/$(SCRIPT_COMPILED_RSRC
) $(SCRIPT_COMPILED_RSRC
); fi
629 $(CP
) $(SCRIPT_COMPILED_RSRC
) $(SCRIPT_EXEC
)/rsrc
630 $(SETFILE
) -t
"APPL" -c
"aplt" $(SCRIPT_EXEC
)
632 $(APP
)/.build
: bochs test_hfsplus
$(SCRIPT_EXEC
)
635 $(MKDIR
) -p
$(APP
)/Contents
636 $(CP
) -f
$(MACOSX_STUFF
)/Info.plist
$(APP
)/Contents
637 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/pbdevelopment.plist
$(APP
)/Contents
638 echo
-n
"APPL????" > $(APP
)/Contents
/PkgInfo
639 $(MKDIR
) -p
$(APP
)/Contents
/$(APP_PLATFORM
)
640 $(CP
) bochs
$(APP
)/Contents
/$(APP_PLATFORM
)
641 $(MKDIR
) -p
$(APP
)/Contents
/Resources
642 $(REZ
) $(REZ_ARGS
) $(MACOSX_STUFF_SRCDIR
)/bochs.r
-o
$(APP
)/Contents
/Resources
/bochs.rsrc
643 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/bochs-icn.icns
$(APP
)/Contents
/Resources
644 ls
-ld $(APP
) $(SCRIPT_EXEC
) $(SCRIPT_EXEC
)/rsrc
647 $(APP
)/.build_plugins
: $(APP
)/.build bochs_plugins
648 rm -f
$(APP
)/.build_plugins
649 $(MKDIR
) -p
$(STANDALONE_LIBDIR
);
650 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp gui
/$$i $(STANDALONE_LIBDIR
); done
;
651 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp iodev
/$$i $(STANDALONE_LIBDIR
); done
;
652 $(LIBTOOL
) --finish
$(STANDALONE_LIBDIR
);
653 touch
$(APP
)/.build_plugins
655 install_macosx
: all download_dlx install_man @INSTALL_DOCBOOK_VAR@
656 -mkdir
-p
$(DESTDIR
)$(prefix)
657 for i in
$(INSTALL_LIST_MACOSX
); do if
test -e
$$i; then
$(CPMAC
) -r
$$i $(DESTDIR
)$(sharedir
); else $(CPMAC
) -r
$(srcdir)/$$i $(DESTDIR
)$(sharedir
); fi
; done
658 $(CPMAC
) $(srcdir)/.bochsrc
$(DESTDIR
)$(sharedir
)/bochsrc-sample.txt
659 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
660 $(CPMAC
) $(srcdir)/gui
/keymaps
/*.map
$(DESTDIR
)$(sharedir
)/keymaps
661 cat
$(DLXLINUX_TAR
) |
(cd
$(DESTDIR
)$(sharedir
) && tar xzvf
-)
662 dlxrc
=$(DESTDIR
)$(sharedir
)/dlxlinux
/bochsrc.txt
; mv
"$$dlxrc" "$$dlxrc.orig" && sed
< "$$dlxrc.orig" 's/\/usr\/local\/bochs\/latest/../' > "$$dlxrc" && rm -f
"$$dlxrc.orig"
663 mv
$(srcdir)/README
$(srcdir)/README.orig
664 cat
$(srcdir)/build
/macosx
/README.macosx-binary
$(srcdir)/README.orig
> $(DESTDIR
)$(sharedir
)/README
665 rm -f
$(DESTDIR
)$(sharedir
)/README.orig
666 $(CPMAC
) $(SCRIPT_EXEC
) $(DESTDIR
)$(sharedir
)/dlxlinux
667 # for i in $(TEXT_FILE_LIST); do mv $(srcdir)/$$i $(DESTDIR)$(sharedir)/$$i.txt; done
669 ###########################################
671 # Build the binary normally, then copy the resource attributes.
672 ###########################################
673 .bochs_beos_target
: bochs@EXE@
674 unzip
$(srcdir)/build
/beos
/resource.zip
675 copyattr
-t ICON BeBochs.rsrc bochs
676 copyattr
-t MICN BeBochs.rsrc bochs
678 ###########################################
679 # dependencies generated by
680 # gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,cpu/,g'
681 ###########################################
682 config.o
: config.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
683 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
684 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
685 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
686 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
687 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
688 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
689 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
690 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
691 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
692 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
693 crc.o
: crc.@CPP_SUFFIX@ config.h
694 gdbstub.o
: gdbstub.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
695 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
696 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
697 gui
/keymap.h instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h \
698 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
699 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
700 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
701 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
702 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
703 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
704 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
705 load32bitOShack.o
: load32bitOShack.@CPP_SUFFIX@ bochs.h config.h osdep.h \
706 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
707 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
708 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
709 cpu
/cpu.h .
/cpu
/lazy_flags.h .
/cpu
/hostasm.h .
/disasm
/disasm.h \
710 .
/config.h cpu
/descriptor.h cpu
/icache.h iodev
/iodev.h .
/bochs.h \
711 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
712 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
713 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
714 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
715 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
716 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
717 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
718 logio.o
: logio.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
719 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
720 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
721 instrument
/stubs
/instrument.h cpu
/cpu.h .
/cpu
/lazy_flags.h \
722 .
/cpu
/hostasm.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
723 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
724 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
725 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
726 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
727 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
728 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
729 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
730 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
731 main.o
: main.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
732 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
733 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
734 instrument
/stubs
/instrument.h cpu
/cpu.h .
/cpu
/lazy_flags.h \
735 .
/cpu
/hostasm.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
736 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
737 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
738 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
739 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
740 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
741 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
742 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
743 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
744 osdep.o
: osdep.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
745 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
746 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
747 instrument
/stubs
/instrument.h
748 pc_system.o
: pc_system.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
749 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
750 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
751 gui
/keymap.h instrument
/stubs
/instrument.h cpu
/cpu.h .
/cpu
/lazy_flags.h \
752 .
/cpu
/hostasm.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
753 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
754 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
755 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
756 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
757 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
758 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
759 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
760 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
761 plex86-interface.o
: plex86-interface.@CPP_SUFFIX@ bochs.h config.h osdep.h \
762 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
763 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
764 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
765 plex86-interface.h plex86
/plex86.h .
/config.h plex86
/descriptor.h
766 plugin.o
: plugin.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
767 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
768 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
769 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
770 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
771 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
772 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
773 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
774 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
775 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
776 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h