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
35 datarootdir
= @datarootdir@
37 man1dir = $(mandir)/man1
38 man5dir = $(mandir)/man5
39 docdir
= $(datarootdir
)/doc
/bochs
40 sharedir
= $(datarootdir
)/bochs
42 top_srcdir
= $(srcdir)
47 VER_STRING
=@VER_STRING@
48 REL_STRING
=@REL_STRING@
49 MAN_PAGE_1_LIST
=bochs bximage bxcommit bochs-dlx
50 MAN_PAGE_5_LIST
=bochsrc
51 INSTALL_LIST_SHARE
=bios
/BIOS-bochs-
* bios
/VGABIOS
* @INSTALL_LIST_FOR_PLATFORM@
52 INSTALL_LIST_DOC
=CHANGES COPYING README TODO
53 INSTALL_LIST_BIN
=bochs@EXE@ bximage@EXE@ bxcommit@EXE@
54 INSTALL_LIST_BIN_OPTIONAL
=bochsdbg@EXE@
55 INSTALL_LIST_WIN32
=$(INSTALL_LIST_SHARE
) $(INSTALL_LIST_DOC
) $(INSTALL_LIST_BIN
) $(INSTALL_LIST_BIN_OPTIONAL
) niclist@EXE@
56 INSTALL_LIST_MACOSX
=$(INSTALL_LIST_SHARE
) $(INSTALL_LIST_DOC
) bochs.scpt
57 # for win32 and macosx, these files get renamed to *.txt in install process
58 TEXT_FILE_LIST
=README CHANGES COPYING TODO VGABIOS-elpin-LICENSE VGABIOS-lgpl-README
64 DLXLINUX_TAR
=dlxlinux4.
tar.gz
65 DLXLINUX_TAR_URL
=http
://bochs.sourceforge.net
/guestos
/$(DLXLINUX_TAR
)
66 DLXLINUX_ROMFILE
=BIOS-bochs-latest
74 # the GZIP variable is reserved by gzip program
94 CFLAGS
= @CFLAGS@ @GUI_CFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
) @DEFINE_PLUGIN_PATH@
-DBX_SHARE_PATH
='"$(sharedir)"'
95 CXXFLAGS
= @CXXFLAGS@ @GUI_CXXFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
) @DEFINE_PLUGIN_PATH@
-DBX_SHARE_PATH
='"$(sharedir)"'
99 # To compile with readline:
100 # linux needs just -lreadline
101 # solaris needs -lreadline -lcurses
103 X_PRE_LIBS
= @X_PRE_LIBS@
105 GUI_LINK_OPTS_X
= $(X_LIBS
) $(X_PRE_LIBS
) -lX11
$(XPM_LIB
)
106 GUI_LINK_OPTS_SDL
= `sdl-config --cflags --libs`
107 GUI_LINK_OPTS_SVGA
= -lvga
-lvgagl
108 GUI_LINK_OPTS_BEOS
= -lbe
109 GUI_LINK_OPTS_RFB
= @RFB_LIBS@
110 GUI_LINK_OPTS_AMIGAOS
=
111 GUI_LINK_OPTS_WIN32
= -luser32
-lgdi32
-lcomdlg32
-lcomctl32
-lwsock32
-lshell32
112 GUI_LINK_OPTS_WIN32_VCPP
= user32.lib gdi32.lib winmm.lib \
113 comdlg32.lib comctl32.lib wsock32.lib advapi32.lib shell32.lib
114 GUI_LINK_OPTS_MACOS
=
115 GUI_LINK_OPTS_CARBON
= -framework Carbon
116 GUI_LINK_OPTS_NOGUI
=
117 GUI_LINK_OPTS_TERM
= @GUI_LINK_OPTS_TERM@
118 GUI_LINK_OPTS_WX
= @GUI_LINK_OPTS_WX@
119 GUI_LINK_OPTS
= @GUI_LINK_OPTS@ @DEVICE_LINK_OPTS@
122 CFLAGS_CONSOLE
= @CFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
)
123 CXXFLAGS_CONSOLE
= @CXXFLAGS@
$(MCH_CFLAGS
) $(FLA_FLAGS
)
124 BXIMAGE_LINK_OPTS
= @BXIMAGE_LINK_OPTS@
126 BX_INCDIRS
= -I.
-I
$(srcdir)/.
-I@INSTRUMENT_DIR@
-I
$(srcdir)/@INSTRUMENT_DIR@
128 #SUBDIRS = iodev bx_debug
130 #all install uninstall: config.h#
131 # for subdir in $(SUBDIRS); do #
132 # echo making $@ in $$subdir; #
133 # (cd $$subdir && $(MAKE) $(MDEFINES) $@) || exit 1; #
138 # gnu flags for clean up
139 #CFLAGS = -ansi -O -g -Wunused -Wuninitialized
153 EXTERN_ENVIRONMENT_OBJS
= \
159 DEBUGGER_LIB
= bx_debug
/libdebug.a
160 DISASM_LIB
= disasm
/libdisasm.a
161 INSTRUMENT_LIB
= @INSTRUMENT_DIR@
/libinstrument.a
162 FPU_LIB
= fpu
/libfpu.a
163 READLINE_LIB
= @READLINE_LIB@
164 EXTRA_LINK_OPTS
= @EXTRA_LINK_OPTS@
166 GDBSTUB_OBJS
= gdbstub.o
168 BX_OBJS
= @NONINLINE_VAR@
170 BX_INCLUDES
= bochs.h config.h osdep.h
174 $(CXX
) @DASH@c
$(BX_INCDIRS
) $(CXXFLAGS
) @CXXFP@
$< @OFP@
$@
176 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS
) $(FPU_FLAGS
) $< @OFP@
$@
179 all: @PRIMARY_TARGET@ @PLUGIN_TARGET@ bximage@EXE@ bxcommit@EXE@ @BUILD_DOCBOOK_VAR@
181 @EXTERNAL_DEPENDENCY@
183 bochs@EXE@
: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
184 cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
185 @DISASM_VAR@ @INSTRUMENT_VAR@
$(BX_OBJS
) \
186 $(SIMX86_OBJS
) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
187 @LINK@ @EXPORT_DYNAMIC@
$(BX_OBJS
) $(SIMX86_OBJS
) \
188 @IODEV_LIB_VAR@ @DEBUGGER_VAR@ cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
189 @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
190 @GDBSTUB_VAR@ @FPU_VAR@ \
191 @NONPLUGIN_GUI_LINK_OPTS@ \
193 $(SIMX86_LINK_FLAGS
) \
198 # Special make target for cygwin/mingw using dlltool instead of
199 # libtool. This creates a .DEF file, and exports file, an import library,
200 # and then links bochs.exe with the exports file.
201 .win32_dll_plugin_target
: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
202 cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
203 @DISASM_VAR@ @INSTRUMENT_VAR@
$(BX_OBJS
) \
204 $(SIMX86_OBJS
) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
205 $(DLLTOOL
) --export-all-symbols
--output-def bochs.def \
206 $(BX_OBJS
) $(SIMX86_OBJS
) \
207 @IODEV_LIB_VAR@ cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
208 @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
209 @GDBSTUB_VAR@ @FPU_VAR@
210 $(DLLTOOL
) --dllname bochs.exe
--def bochs.def
--output-lib dllexports.a
211 $(DLLTOOL
) --dllname bochs.exe
--output-exp bochs.exp
--def bochs.def
212 $(CXX
) -o bochs.exe
$(CXXFLAGS
) $(LDFLAGS
) -export-dynamic \
213 $(BX_OBJS
) bochs.exp
$(SIMX86_OBJS
) \
214 @IODEV_LIB_VAR@ cpu
/libcpu.a memory
/libmemory.a gui
/libgui.a \
215 @DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
216 @GDBSTUB_VAR@ @FPU_VAR@ \
219 $(SIMX86_LINK_FLAGS
) \
223 touch .win32_dll_plugin_target
226 cd gui
&& $(MAKE
) plugins
227 cd iodev
&& $(MAKE
) plugins
229 bximage@EXE@
: misc
/bximage.o
230 @LINK_CONSOLE@
$(BXIMAGE_LINK_OPTS
) misc
/bximage.o
232 bxcommit@EXE@
: misc
/bxcommit.o
233 @LINK_CONSOLE@ misc
/bxcommit.o
235 niclist@EXE@
: misc
/niclist.o
236 @LINK_CONSOLE@ misc
/niclist.o
238 # compile with console CXXFLAGS, not gui CXXFLAGS
239 misc
/bximage.o
: $(srcdir)/misc
/bximage.c
$(srcdir)/iodev
/hdimage.h
240 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bximage.c @OFP@
$@
242 misc
/bxcommit.o
: $(srcdir)/misc
/bxcommit.c
$(srcdir)/iodev
/hdimage.h
243 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bxcommit.c @OFP@
$@
245 misc
/niclist.o
: $(srcdir)/misc
/niclist.c
246 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/niclist.c @OFP@
$@
248 $(BX_OBJS
): $(BX_INCLUDES
)
251 cd iodev @COMMAND_SEPARATOR@
252 $(MAKE
) $(MDEFINES
) libiodev.a
255 bx_debug
/libdebug.a
::
256 cd bx_debug @COMMAND_SEPARATOR@
257 $(MAKE
) $(MDEFINES
) libdebug.a
261 cd cpu @COMMAND_SEPARATOR@
262 $(MAKE
) $(MDEFINES
) libcpu.a
266 cd memory @COMMAND_SEPARATOR@
267 $(MAKE
) $(MDEFINES
) libmemory.a
271 cd gui @COMMAND_SEPARATOR@
272 $(MAKE
) $(MDEFINES
) libgui.a
276 cd disasm @COMMAND_SEPARATOR@
277 $(MAKE
) $(MDEFINES
) libdisasm.a
280 @INSTRUMENT_DIR@
/libinstrument.a
::
281 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
282 $(MAKE
) $(MDEFINES
) libinstrument.a
286 cd fpu @COMMAND_SEPARATOR@
287 $(MAKE
) $(MDEFINES
) libfpu.a
292 ar rv libbochs.a
$(EXTERN_ENVIRONMENT_OBJS
)
295 libbochs_cpu.a
: @DEBUGGER_VAR@
$(BX_OBJS
)
296 -rm -f libbochs_cpu.a
297 ar rv libbochs_cpu.a
$(BX_OBJS
)
298 $(RANLIB
) libbochs_cpu.a
300 # for wxWidgets port, on win32 platform
301 wxbochs_resources.o
: wxbochs.rc
302 windres
$(srcdir)/wxbochs.rc
-o
$@
--include-dir
=`@WX_CONFIG@ --prefix`/include
305 win32res.o
: win32res.rc bxversion.rc
306 $(RC_CMD
)$@
$(srcdir)/win32res.rc
308 #####################################################################
309 # Install target for all platforms.
310 #####################################################################
312 install: all @INSTALL_TARGET@
314 #####################################################################
315 # Install target for win32
317 # This is intended to be run in cygwin, since it has better scripting
319 #####################################################################
321 install_win32
: download_dlx @INSTALL_DOCBOOK_VAR@
323 cp obj-release
/*.exe .
324 for i in
$(INSTALL_LIST_WIN32
); do if
test -f
$$i; then cp
$$i $(prefix); else cp
$(srcdir)/$$i $(prefix); fi
; done
325 cp
$(srcdir)/misc
/sb16
/sb16ctrl.example
$(prefix)/sb16ctrl.txt
326 cp
$(srcdir)/misc
/sb16
/sb16ctrl.exe
$(prefix)
327 #cat $(srcdir)/build/win32/DOC-win32.htm | $(SED) -e 's/@VERSION@/$(VERSION)/g' > $(prefix)/DOC-win32.htm
328 cp
$(srcdir)/.bochsrc
$(prefix)/bochsrc-sample.txt
329 -mkdir
$(prefix)/keymaps
330 cp
$(srcdir)/gui
/keymaps
/*.map
$(prefix)/keymaps
331 cat
$(DLXLINUX_TAR
) |
(cd
$(prefix) && tar xzvf
-)
332 echo
'..\bochs' > $(prefix)/dlxlinux
/start.bat
333 dlxrc
=$(prefix)/dlxlinux
/bochsrc.txt
; mv
$$dlxrc $$dlxrc.orig
&& sed
< $$dlxrc.orig
's/\/usr\/local\/bochs\/latest/../' > $$dlxrc && rm -f
$$dlxrc.orig
334 mv
$(prefix)/README
$(prefix)/README.orig
335 cat
$(srcdir)/build
/win32
/README.win32-binary
$(prefix)/README.orig
> $(prefix)/README
336 rm -f
$(prefix)/README.orig
337 for i in
$(TEXT_FILE_LIST
); do mv
$(prefix)/$$i $(prefix)/$$i.txt
; done
338 cd
$(prefix); $(UNIX2DOS
) *.txt
*/*.txt
339 cd
$(prefix); NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(ZIP
) $$NAME.zip
-r
$$NAME); ls
-l ..
/$$NAME.zip
341 #####################################################################
342 # install target for unix
343 #####################################################################
345 install_unix
: install_bin @INSTALL_PLUGINS_VAR@ install_man install_share install_doc @INSTALL_DOCBOOK_VAR@
348 for i in
$(DESTDIR
)$(bindir); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
349 for i in
$(INSTALL_LIST_BIN
); do if
test -f
$$i; then
install $$i $(DESTDIR
)$(bindir); else install $(srcdir)/$$i $(DESTDIR
)$(bindir); fi
; done
350 -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
352 install_libtool_plugins
::
353 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
354 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install gui
/$$i $(DESTDIR
)$(plugdir
); done
355 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install iodev
/$$i $(DESTDIR
)$(plugdir
); done
356 $(LIBTOOL
) --finish
$(DESTDIR
)$(plugdir
)
358 install_dll_plugins
::
359 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
360 list
=`cd gui && echo *.dll`; for i in
$$list; do cp gui
/$$i $(DESTDIR
)$(plugdir
); done
361 list
=`cd iodev && echo *.dll`; for i in
$$list; do cp iodev
/$$i $(DESTDIR
)$(plugdir
); done
364 for i in
$(DESTDIR
)$(sharedir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
365 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
366 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
367 for i in
$(srcdir)/gui
/keymaps
/*.map
; do
install -m
644 $$i $(DESTDIR
)$(sharedir
)/keymaps
/; done
370 for i in
$(DESTDIR
)$(docdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
371 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
372 $(RM
) -f
$(DESTDIR
)$(docdir
)/README
373 $(CAT
) $(srcdir)/build
/linux
/README.linux-binary
$(srcdir)/README
> $(DESTDIR
)$(docdir
)/README
374 install -m
644 $(srcdir)/.bochsrc
$(DESTDIR
)$(docdir
)/bochsrc-sample.txt
378 $(MAKE
) -C doc
/docbook
381 $(MAKE
) -C doc
/docbook dl_docs
383 install_docbook
: build_docbook
384 $(MAKE
) -C doc
/docbook
install
387 -mkdir
-p
$(DESTDIR
)$(man1dir)
388 -mkdir
-p
$(DESTDIR
)$(man5dir)
389 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
390 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
392 download_dlx
: $(DLXLINUX_TAR
)
395 $(RM
) -f
$(DLXLINUX_TAR
)
396 $(WGET
) $(DLXLINUX_TAR_URL
)
397 test -f
$(DLXLINUX_TAR
)
399 unpack_dlx
: $(DLXLINUX_TAR
)
401 $(GUNZIP
) -c
$(DLXLINUX_TAR
) |
$(TAR
) -xvf
-
403 (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
)
406 $(RM
) -rf
$(DESTDIR
)$(sharedir
)/dlxlinux
407 cp
-r dlxlinux
$(DESTDIR
)$(sharedir
)/dlxlinux
408 $(CHMOD
) 755 $(DESTDIR
)$(sharedir
)/dlxlinux
409 $(GZIP_BIN
) $(DESTDIR
)$(sharedir
)/dlxlinux
/hd10meg.img
410 $(CHMOD
) 644 $(DESTDIR
)$(sharedir
)/dlxlinux
/*
411 for i in bochs-dlx
; do cp
$(srcdir)/build
/linux
/$$i $(DESTDIR
)$(bindir)/$$i; $(CHMOD
) 755 $(DESTDIR
)$(bindir)/$$i; done
414 $(RM
) -rf
$(DESTDIR
)$(sharedir
)
415 $(RM
) -rf
$(DESTDIR
)$(docdir
)
416 $(RM
) -rf
$(DESTDIR
)$(libdir)/bochs
417 for i in bochs bximage bxcommit bochs-dlx
; do
rm -f
$(DESTDIR
)$(bindir)/$$i; done
418 for i in
$(MAN_PAGE_1_LIST
); do
$(RM
) -f
$(man1dir)/$$i.1.gz
; done
419 for i in
$(MAN_PAGE_5_LIST
); do
$(RM
) -f
$(man5dir)/$$i.5.gz
; done
421 V6WORKSPACE_ZIP
=build
/win32
/workspace.zip
422 V6WORKSPACE_FILES
=bochs.dsw bochs.dsp bochs.opt cpu
/cpu.dsp \
423 memory
/memory.dsp iodev
/iodev.dsp instrument
/stubs
/stubs.dsp \
424 gui
/gui.dsp fpu
/fpu.dsp disasm
/disasm.dsp bx_debug
/bx_debug.dsp \
425 misc
/niclist.dsp bximage.dsp bxcommit.dsp
428 zip
$(V6WORKSPACE_ZIP
) $(V6WORKSPACE_FILES
)
431 # the win32_snap target is used to create a ZIP of bochs sources configured
432 # for VC++. This ZIP is stuck on the website every once in a while to make
433 # it easier for VC++ users to compile bochs. First, you should
434 # run "sh .conf.win32-vcpp" to configure the source code, then do
435 # "make win32_snap" to unzip the workspace files and create the ZIP.
438 unzip
$(V6WORKSPACE_ZIP
)
439 $(SHELL
) .
/build
/win32
/cc2cpp
441 $(SHELL
) .
/build
/win32
/cpp2cc
444 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; tar cf
- $$NAME |
$(GZIP_BIN
) > $$NAME.
tar.gz
); ls
-l ..
/$$NAME.
tar.gz
447 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; $(ZIP
) $$NAME.zip
-r
$$NAME -x \
*CVS\
* -x \
*.cvsignore
); ls
-l ..
/$$NAME.zip
453 @RMCOMMAND@ bochs.exe
455 @RMCOMMAND@ bximage.exe
457 @RMCOMMAND@ bxcommit.exe
459 @RMCOMMAND@ niclist.exe
460 @RMCOMMAND@ bochs.out
461 @RMCOMMAND@ bochsout.txt
462 @RMCOMMAND@ bochs.exp
463 @RMCOMMAND@ bochs.def
464 @RMCOMMAND@ bochs.scpt
465 @RMCOMMAND@
-rf bochs.app
466 @RMCOMMAND@
-rf .libs
467 @RMCOMMAND@ .win32_dll_plugin_target
469 local-dist-clean
: clean
470 @RMCOMMAND@ config.h config.status config.log config.cache
471 @RMCOMMAND@ .dummy
`find . -name '*.dsp' -o -name '*.dsw' -o -name '*.opt' -o -name '.DS_Store'`
472 @RMCOMMAND@ bxversion.h build
/linux
/bochs-dlx _rpm_top
*.rpm
473 @RMCOMMAND@ build
/win32
/nsis
/Makefile build
/win32
/nsis
/bochs.nsi
474 @RMCOMMAND@ build
/macosx
/Info.plist build
/macosx
/script_compiled.rsrc
476 @RMCOMMAND@ ltdlconf.h
479 cd iodev @COMMAND_SEPARATOR@
482 cd bx_debug @COMMAND_SEPARATOR@
485 cd cpu @COMMAND_SEPARATOR@
488 cd memory @COMMAND_SEPARATOR@
491 cd gui @COMMAND_SEPARATOR@
494 cd disasm @COMMAND_SEPARATOR@
497 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
500 cd misc @COMMAND_SEPARATOR@
503 cd fpu @COMMAND_SEPARATOR@
506 cd doc
/docbook @COMMAND_SEPARATOR@
509 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
513 dist-clean
: local-dist-clean
514 cd iodev @COMMAND_SEPARATOR@
517 cd bx_debug @COMMAND_SEPARATOR@
520 cd bios @COMMAND_SEPARATOR@
523 cd cpu @COMMAND_SEPARATOR@
526 cd memory @COMMAND_SEPARATOR@
529 cd gui @COMMAND_SEPARATOR@
532 cd disasm @COMMAND_SEPARATOR@
535 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
538 cd misc @COMMAND_SEPARATOR@
541 cd fpu @COMMAND_SEPARATOR@
544 cd doc
/docbook @COMMAND_SEPARATOR@
547 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
552 ###########################################
553 # Build app on MacOS X
554 ###########################################
555 MACOSX_STUFF
=build
/macosx
556 MACOSX_STUFF_SRCDIR
=$(srcdir)/$(MACOSX_STUFF
)
559 SCRIPT_EXEC
=bochs.scpt
560 SCRIPT_DATA
=$(MACOSX_STUFF_SRCDIR
)/script.data
561 SCRIPT_R
=$(MACOSX_STUFF_SRCDIR
)/script.r
562 SCRIPT_APPLESCRIPT
=$(MACOSX_STUFF_SRCDIR
)/bochs.applescript
563 SCRIPT_COMPILED_RSRC
=$(MACOSX_STUFF
)/script_compiled.rsrc
564 REZ
=/Developer
/Tools
/Rez
565 CPMAC
=/Developer
/Tools
/CpMac
566 RINCLUDES
=/System
/Library
/Frameworks
/Carbon.framework
/Libraries
/RIncludes
567 REZ_ARGS
=-append
-i
$RINCLUDES -d SystemSevenOrLater
=1 -useDF
568 STANDALONE_LIBDIR
=`pwd`/$(APP
)/Contents
/$(APP_PLATFORM
)/lib
569 OSACOMPILE
=/usr
/bin
/osacompile
570 SETFILE
=/Developer
/Tools
/Setfile
572 # On a MacOS X machine, you run rez, osacompile, and setfile to
573 # produce the script executable, which has both a data fork and a
574 # resource fork. Ideally, we would just recompile the whole
575 # executable at build time, but unfortunately this cannot be done on
576 # the SF compile farm through an ssh connection because osacompile
577 # needs to be run locally for some reason. Solution: If the script
578 # sources are changed, rebuild the executable on a MacOSX machine,
579 # split it into its data and resource forks and check them into CVS
580 # as separate files. Then at release time, all that's left to do is
581 # put the data and resource forks back together to make a working script.
582 # (This can be done through ssh.)
585 # 1. script.r: resources for the script
586 # 2. script.data: binary data for the script
587 # 3. bochs.applescript: the source of the script
589 # NOTE: All of this will fail if you aren't building on an HFS+
590 # filesystem! On the SF compile farm building in your user directory
591 # will fail, while doing the build in /tmp will work ok.
593 # check if this filesystem supports resource forks at all
595 $(RM
) -rf test_hfsplus
596 echo data
> test_hfsplus
597 # if you get "Not a directory", then this filesystem doesn't support resources
598 echo resource
> test_hfsplus
/rsrc
600 $(RM
) -rf test_hfsplus
602 # Step 1 (must be done locally on MacOSX, only when sources change)
603 # Compile and pull out just the resource fork. The resource fork is
604 # checked into CVS as script_compiled.rsrc. Note that we don't need
605 # to check in the data fork of tmpscript because it is identical to the
606 # script.data input file.
607 $(SCRIPT_COMPILED_RSRC
): $(SCRIPT_R
) $(SCRIPT_APPLESCRIPT
)
609 $(CP
) -f
$(SCRIPT_DATA
) tmpscript
610 $(REZ
) -append
$(SCRIPT_R
) -o tmpscript
611 $(OSACOMPILE
) -o tmpscript
$(SCRIPT_APPLESCRIPT
)
612 $(CP
) tmpscript
/rsrc
$(SCRIPT_COMPILED_RSRC
)
615 # Step 2 (can be done locally or remotely on MacOSX)
616 # Combine the data fork and resource fork, and set attributes.
617 $(SCRIPT_EXEC
): $(SCRIPT_DATA
) $(SCRIPT_COMPILED_RSRC
)
619 $(CP
) $(SCRIPT_DATA
) $(SCRIPT_EXEC
)
620 if
test ! -f
$(SCRIPT_COMPILED_RSRC
); then
$(CP
) $(srcdir)/$(SCRIPT_COMPILED_RSRC
) $(SCRIPT_COMPILED_RSRC
); fi
621 $(CP
) $(SCRIPT_COMPILED_RSRC
) $(SCRIPT_EXEC
)/rsrc
622 $(SETFILE
) -t
"APPL" -c
"aplt" $(SCRIPT_EXEC
)
624 $(APP
)/.build
: bochs test_hfsplus
$(SCRIPT_EXEC
)
627 $(MKDIR
) -p
$(APP
)/Contents
628 $(CP
) -f
$(MACOSX_STUFF
)/Info.plist
$(APP
)/Contents
629 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/pbdevelopment.plist
$(APP
)/Contents
630 echo
-n
"APPL????" > $(APP
)/Contents
/PkgInfo
631 $(MKDIR
) -p
$(APP
)/Contents
/$(APP_PLATFORM
)
632 $(CP
) bochs
$(APP
)/Contents
/$(APP_PLATFORM
)
633 $(MKDIR
) -p
$(APP
)/Contents
/Resources
634 $(REZ
) $(REZ_ARGS
) $(MACOSX_STUFF_SRCDIR
)/bochs.r
-o
$(APP
)/Contents
/Resources
/bochs.rsrc
635 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/bochs-icn.icns
$(APP
)/Contents
/Resources
636 ls
-ld $(APP
) $(SCRIPT_EXEC
) $(SCRIPT_EXEC
)/rsrc
639 $(APP
)/.build_plugins
: $(APP
)/.build bochs_plugins
640 rm -f
$(APP
)/.build_plugins
641 $(MKDIR
) -p
$(STANDALONE_LIBDIR
);
642 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp gui
/$$i $(STANDALONE_LIBDIR
); done
;
643 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp iodev
/$$i $(STANDALONE_LIBDIR
); done
;
644 $(LIBTOOL
) --finish
$(STANDALONE_LIBDIR
);
645 touch
$(APP
)/.build_plugins
647 install_macosx
: all download_dlx install_man @INSTALL_DOCBOOK_VAR@
648 -mkdir
-p
$(DESTDIR
)$(prefix)
649 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
650 $(CPMAC
) $(srcdir)/.bochsrc
$(DESTDIR
)$(sharedir
)/bochsrc-sample.txt
651 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
652 $(CPMAC
) $(srcdir)/gui
/keymaps
/*.map
$(DESTDIR
)$(sharedir
)/keymaps
653 cat
$(DLXLINUX_TAR
) |
(cd
$(DESTDIR
)$(sharedir
) && tar xzvf
-)
654 dlxrc
=$(DESTDIR
)$(sharedir
)/dlxlinux
/bochsrc.txt
; mv
"$$dlxrc" "$$dlxrc.orig" && sed
< "$$dlxrc.orig" 's/\/usr\/local\/bochs\/latest/../' > "$$dlxrc" && rm -f
"$$dlxrc.orig"
655 mv
$(srcdir)/README
$(srcdir)/README.orig
656 cat
$(srcdir)/build
/macosx
/README.macosx-binary
$(srcdir)/README.orig
> $(DESTDIR
)$(sharedir
)/README
657 rm -f
$(DESTDIR
)$(sharedir
)/README.orig
658 $(CPMAC
) $(SCRIPT_EXEC
) $(DESTDIR
)$(sharedir
)/dlxlinux
659 # for i in $(TEXT_FILE_LIST); do mv $(srcdir)/$$i $(DESTDIR)$(sharedir)/$$i.txt; done
661 ###########################################
663 # Build the binary normally, then copy the resource attributes.
664 ###########################################
665 .bochs_beos_target
: bochs@EXE@
666 unzip
$(srcdir)/build
/beos
/resource.zip
667 copyattr
-t ICON BeBochs.rsrc bochs
668 copyattr
-t MICN BeBochs.rsrc bochs
670 ###########################################
671 # dependencies generated by
672 # gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,cpu/,g'
673 ###########################################
674 config.o
: config.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
675 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
676 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
677 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
678 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
679 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
680 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
681 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
682 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
683 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
684 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
685 crc.o
: crc.@CPP_SUFFIX@ config.h
686 gdbstub.o
: gdbstub.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
687 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
688 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
689 gui
/keymap.h instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h \
690 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
691 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
692 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
693 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
694 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
695 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
696 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
697 load32bitOShack.o
: load32bitOShack.@CPP_SUFFIX@ bochs.h config.h osdep.h \
698 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
699 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
700 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
701 cpu
/cpu.h cpu
/instr.h cpu
/crregs.h .
/cpu
/lazy_flags.h .
/disasm
/disasm.h \
702 .
/config.h cpu
/descriptor.h cpu
/icache.h iodev
/iodev.h .
/bochs.h \
703 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
704 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
705 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
706 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
707 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
708 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
709 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
710 logio.o
: logio.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
711 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
712 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
713 instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
714 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
715 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
716 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
717 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
718 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
719 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
720 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
721 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
722 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
723 main.o
: main.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
724 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
725 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
726 instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
727 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
728 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
729 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
730 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
731 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
732 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
733 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
734 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
735 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
736 osdep.o
: osdep.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
737 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
738 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
739 instrument
/stubs
/instrument.h
740 pc_system.o
: pc_system.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
741 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
742 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
743 gui
/keymap.h instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
744 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
745 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
746 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
747 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
748 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
749 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
750 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
751 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
752 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
753 plex86-interface.o
: plex86-interface.@CPP_SUFFIX@ bochs.h config.h osdep.h \
754 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
755 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
756 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
757 plex86-interface.h plex86
/plex86.h .
/config.h plex86
/descriptor.h
758 plugin.o
: plugin.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
759 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
760 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
761 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
762 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
763 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
764 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
765 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
766 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
767 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
768 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h