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 # ($(MAKE) -C $$subdir $(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 @COMMAND_SEPARATOR@
229 cd iodev @COMMAND_SEPARATOR@
233 bximage@EXE@
: misc
/bximage.o
234 @LINK_CONSOLE@
$(BXIMAGE_LINK_OPTS
) misc
/bximage.o
236 bxcommit@EXE@
: misc
/bxcommit.o
237 @LINK_CONSOLE@ misc
/bxcommit.o
239 niclist@EXE@
: misc
/niclist.o
240 @LINK_CONSOLE@ misc
/niclist.o
242 # compile with console CXXFLAGS, not gui CXXFLAGS
243 misc
/bximage.o
: $(srcdir)/misc
/bximage.c
$(srcdir)/iodev
/hdimage.h
244 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bximage.c @OFP@
$@
246 misc
/bxcommit.o
: $(srcdir)/misc
/bxcommit.c
$(srcdir)/iodev
/hdimage.h
247 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/bxcommit.c @OFP@
$@
249 misc
/niclist.o
: $(srcdir)/misc
/niclist.c
250 $(CC
) @DASH@c
$(BX_INCDIRS
) $(CFLAGS_CONSOLE
) $(srcdir)/misc
/niclist.c @OFP@
$@
252 $(BX_OBJS
): $(BX_INCLUDES
)
254 # cannot use -C option to be compatible with Microsoft nmake
256 cd iodev @COMMAND_SEPARATOR@
257 $(MAKE
) $(MDEFINES
) libiodev.a
260 bx_debug
/libdebug.a
::
261 cd bx_debug @COMMAND_SEPARATOR@
262 $(MAKE
) $(MDEFINES
) libdebug.a
266 cd cpu @COMMAND_SEPARATOR@
267 $(MAKE
) $(MDEFINES
) libcpu.a
271 cd memory @COMMAND_SEPARATOR@
272 $(MAKE
) $(MDEFINES
) libmemory.a
276 cd gui @COMMAND_SEPARATOR@
277 $(MAKE
) $(MDEFINES
) libgui.a
281 cd disasm @COMMAND_SEPARATOR@
282 $(MAKE
) $(MDEFINES
) libdisasm.a
285 @INSTRUMENT_DIR@
/libinstrument.a
::
286 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
287 $(MAKE
) $(MDEFINES
) libinstrument.a
291 cd fpu @COMMAND_SEPARATOR@
292 $(MAKE
) $(MDEFINES
) libfpu.a
297 ar rv libbochs.a
$(EXTERN_ENVIRONMENT_OBJS
)
300 libbochs_cpu.a
: @DEBUGGER_VAR@
$(BX_OBJS
)
301 -rm -f libbochs_cpu.a
302 ar rv libbochs_cpu.a
$(BX_OBJS
)
303 $(RANLIB
) libbochs_cpu.a
305 # for wxWidgets port, on win32 platform
306 wxbochs_resources.o
: wxbochs.rc
307 windres
$(srcdir)/wxbochs.rc
-o
$@
--include-dir
=`@WX_CONFIG@ --prefix`/include
310 win32res.o
: win32res.rc bxversion.rc
311 $(RC_CMD
)$@
$(srcdir)/win32res.rc
313 #####################################################################
314 # Install target for all platforms.
315 #####################################################################
317 install: all @INSTALL_TARGET@
319 #####################################################################
320 # Install target for win32
322 # This is intended to be run in cygwin, since it has better scripting
324 #####################################################################
326 install_win32
: download_dlx @INSTALL_DOCBOOK_VAR@
328 cp obj-release
/*.exe .
329 for i in
$(INSTALL_LIST_WIN32
); do if
test -f
$$i; then cp
$$i $(prefix); else cp
$(srcdir)/$$i $(prefix); fi
; done
330 cp
$(srcdir)/misc
/sb16
/sb16ctrl.example
$(prefix)/sb16ctrl.txt
331 cp
$(srcdir)/misc
/sb16
/sb16ctrl.exe
$(prefix)
332 #cat $(srcdir)/build/win32/DOC-win32.htm | $(SED) -e 's/@VERSION@/$(VERSION)/g' > $(prefix)/DOC-win32.htm
333 cp
$(srcdir)/.bochsrc
$(prefix)/bochsrc-sample.txt
334 -mkdir
$(prefix)/keymaps
335 cp
$(srcdir)/gui
/keymaps
/*.map
$(prefix)/keymaps
336 cat
$(DLXLINUX_TAR
) |
(cd
$(prefix) && tar xzvf
-)
337 echo
'..\bochs' > $(prefix)/dlxlinux
/start.bat
338 dlxrc
=$(prefix)/dlxlinux
/bochsrc.txt
; mv
$$dlxrc $$dlxrc.orig
&& sed
< $$dlxrc.orig
's/\/usr\/local\/bochs\/latest/../' > $$dlxrc && rm -f
$$dlxrc.orig
339 mv
$(prefix)/README
$(prefix)/README.orig
340 cat
$(srcdir)/build
/win32
/README.win32-binary
$(prefix)/README.orig
> $(prefix)/README
341 rm -f
$(prefix)/README.orig
342 for i in
$(TEXT_FILE_LIST
); do mv
$(prefix)/$$i $(prefix)/$$i.txt
; done
343 cd
$(prefix); $(UNIX2DOS
) *.txt
*/*.txt
344 cd
$(prefix); NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(ZIP
) $$NAME.zip
-r
$$NAME); ls
-l ..
/$$NAME.zip
346 #####################################################################
347 # install target for unix
348 #####################################################################
350 install_unix
: install_bin @INSTALL_PLUGINS_VAR@ install_man install_share install_doc @INSTALL_DOCBOOK_VAR@
353 for i in
$(DESTDIR
)$(bindir); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
354 for i in
$(INSTALL_LIST_BIN
); do if
test -f
$$i; then
install $$i $(DESTDIR
)$(bindir); else install $(srcdir)/$$i $(DESTDIR
)$(bindir); fi
; done
355 -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
357 install_libtool_plugins
::
358 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
359 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install gui
/$$i $(DESTDIR
)$(plugdir
); done
360 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) --mode
=install install iodev
/$$i $(DESTDIR
)$(plugdir
); done
361 $(LIBTOOL
) --finish
$(DESTDIR
)$(plugdir
)
363 install_dll_plugins
::
364 for i in
$(DESTDIR
)$(plugdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
365 list
=`cd gui && echo *.dll`; for i in
$$list; do cp gui
/$$i $(DESTDIR
)$(plugdir
); done
366 list
=`cd iodev && echo *.dll`; for i in
$$list; do cp iodev
/$$i $(DESTDIR
)$(plugdir
); done
369 for i in
$(DESTDIR
)$(sharedir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
370 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
371 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
372 for i in
$(srcdir)/gui
/keymaps
/*.map
; do
install -m
644 $$i $(DESTDIR
)$(sharedir
)/keymaps
/; done
375 for i in
$(DESTDIR
)$(docdir
); do mkdir
-p
$$i && test -d
$$i && test -w
$$i; done
376 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
377 $(RM
) -f
$(DESTDIR
)$(docdir
)/README
378 $(CAT
) $(srcdir)/build
/linux
/README.linux-binary
$(srcdir)/README
> $(DESTDIR
)$(docdir
)/README
379 install -m
644 $(srcdir)/.bochsrc
$(DESTDIR
)$(docdir
)/bochsrc-sample.txt
386 cd doc
/docbook
; make dl_docs
388 install_docbook
: build_docbook
389 cd doc
/docbook
; make
install
392 -mkdir
-p
$(DESTDIR
)$(man1dir)
393 -mkdir
-p
$(DESTDIR
)$(man5dir)
394 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
395 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
397 download_dlx
: $(DLXLINUX_TAR
)
400 $(RM
) -f
$(DLXLINUX_TAR
)
401 $(WGET
) $(DLXLINUX_TAR_URL
)
402 test -f
$(DLXLINUX_TAR
)
404 unpack_dlx
: $(DLXLINUX_TAR
)
406 $(GUNZIP
) -c
$(DLXLINUX_TAR
) |
$(TAR
) -xvf
-
408 (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
)
411 $(RM
) -rf
$(DESTDIR
)$(sharedir
)/dlxlinux
412 cp
-r dlxlinux
$(DESTDIR
)$(sharedir
)/dlxlinux
413 $(CHMOD
) 755 $(DESTDIR
)$(sharedir
)/dlxlinux
414 $(GZIP_BIN
) $(DESTDIR
)$(sharedir
)/dlxlinux
/hd10meg.img
415 $(CHMOD
) 644 $(DESTDIR
)$(sharedir
)/dlxlinux
/*
416 for i in bochs-dlx
; do cp
$(srcdir)/build
/linux
/$$i $(DESTDIR
)$(bindir)/$$i; $(CHMOD
) 755 $(DESTDIR
)$(bindir)/$$i; done
419 $(RM
) -rf
$(DESTDIR
)$(sharedir
)
420 $(RM
) -rf
$(DESTDIR
)$(docdir
)
421 $(RM
) -rf
$(DESTDIR
)$(libdir)/bochs
422 for i in bochs bximage bxcommit bochs-dlx
; do
rm -f
$(DESTDIR
)$(bindir)/$$i; done
423 for i in
$(MAN_PAGE_1_LIST
); do
$(RM
) -f
$(man1dir)/$$i.1.gz
; done
424 for i in
$(MAN_PAGE_5_LIST
); do
$(RM
) -f
$(man5dir)/$$i.5.gz
; done
426 V6WORKSPACE_ZIP
=build
/win32
/workspace.zip
427 V6WORKSPACE_FILES
=bochs.dsw bochs.dsp bochs.opt cpu
/cpu.dsp \
428 memory
/memory.dsp iodev
/iodev.dsp instrument
/stubs
/stubs.dsp \
429 gui
/gui.dsp fpu
/fpu.dsp disasm
/disasm.dsp bx_debug
/bx_debug.dsp \
430 misc
/niclist.dsp bximage.dsp bxcommit.dsp
433 zip
$(V6WORKSPACE_ZIP
) $(V6WORKSPACE_FILES
)
436 # the win32_snap target is used to create a ZIP of bochs sources configured
437 # for VC++. This ZIP is stuck on the website every once in a while to make
438 # it easier for VC++ users to compile bochs. First, you should
439 # run "sh .conf.win32-vcpp" to configure the source code, then do
440 # "make win32_snap" to unzip the workspace files and create the ZIP.
443 unzip
$(V6WORKSPACE_ZIP
)
444 $(SHELL
) .
/build
/win32
/cc2cpp
446 $(SHELL
) .
/build
/win32
/cpp2cc
449 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; tar cf
- $$NAME |
$(GZIP_BIN
) > $$NAME.
tar.gz
); ls
-l ..
/$$NAME.
tar.gz
452 NAME
=`pwd|$(SED) 's/.*\///'`; (cd ..
; $(RM
) -f
$$NAME.zip
; $(ZIP
) $$NAME.zip
-r
$$NAME -x \
*CVS\
* -x \
*.cvsignore
); ls
-l ..
/$$NAME.zip
458 @RMCOMMAND@ bochs.exe
460 @RMCOMMAND@ bximage.exe
462 @RMCOMMAND@ bxcommit.exe
464 @RMCOMMAND@ niclist.exe
465 @RMCOMMAND@ bochs.out
466 @RMCOMMAND@ bochsout.txt
467 @RMCOMMAND@ bochs.exp
468 @RMCOMMAND@ bochs.def
469 @RMCOMMAND@ bochs.scpt
470 @RMCOMMAND@
-rf bochs.app
471 @RMCOMMAND@
-rf .libs
472 @RMCOMMAND@ .win32_dll_plugin_target
474 local-dist-clean
: clean
475 @RMCOMMAND@ config.h config.status config.log config.cache
476 @RMCOMMAND@ .dummy
`find . -name '*.dsp' -o -name '*.dsw' -o -name '*.opt' -o -name '.DS_Store'`
477 @RMCOMMAND@ bxversion.h build
/linux
/bochs-dlx _rpm_top
*.rpm
478 @RMCOMMAND@ build
/win32
/nsis
/Makefile build
/win32
/nsis
/bochs.nsi
479 @RMCOMMAND@ build
/macosx
/Info.plist build
/macosx
/script_compiled.rsrc
481 @RMCOMMAND@ ltdlconf.h
484 cd iodev @COMMAND_SEPARATOR@
487 cd bx_debug @COMMAND_SEPARATOR@
490 cd cpu @COMMAND_SEPARATOR@
493 cd memory @COMMAND_SEPARATOR@
496 cd gui @COMMAND_SEPARATOR@
499 cd disasm @COMMAND_SEPARATOR@
502 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
505 cd misc @COMMAND_SEPARATOR@
508 cd fpu @COMMAND_SEPARATOR@
511 cd doc
/docbook @COMMAND_SEPARATOR@
514 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
518 dist-clean
: local-dist-clean
519 cd iodev @COMMAND_SEPARATOR@
522 cd bx_debug @COMMAND_SEPARATOR@
525 cd bios @COMMAND_SEPARATOR@
528 cd cpu @COMMAND_SEPARATOR@
531 cd memory @COMMAND_SEPARATOR@
534 cd gui @COMMAND_SEPARATOR@
537 cd disasm @COMMAND_SEPARATOR@
540 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
543 cd misc @COMMAND_SEPARATOR@
546 cd fpu @COMMAND_SEPARATOR@
549 cd doc
/docbook @COMMAND_SEPARATOR@
552 cd host
/linux
/pcidev @COMMAND_SEPARATOR@
557 ###########################################
558 # Build app on MacOS X
559 ###########################################
560 MACOSX_STUFF
=build
/macosx
561 MACOSX_STUFF_SRCDIR
=$(srcdir)/$(MACOSX_STUFF
)
564 SCRIPT_EXEC
=bochs.scpt
565 SCRIPT_DATA
=$(MACOSX_STUFF_SRCDIR
)/script.data
566 SCRIPT_R
=$(MACOSX_STUFF_SRCDIR
)/script.r
567 SCRIPT_APPLESCRIPT
=$(MACOSX_STUFF_SRCDIR
)/bochs.applescript
568 SCRIPT_COMPILED_RSRC
=$(MACOSX_STUFF
)/script_compiled.rsrc
569 REZ
=/Developer
/Tools
/Rez
570 CPMAC
=/Developer
/Tools
/CpMac
571 RINCLUDES
=/System
/Library
/Frameworks
/Carbon.framework
/Libraries
/RIncludes
572 REZ_ARGS
=-append
-i
$RINCLUDES -d SystemSevenOrLater
=1 -useDF
573 STANDALONE_LIBDIR
=`pwd`/$(APP
)/Contents
/$(APP_PLATFORM
)/lib
574 OSACOMPILE
=/usr
/bin
/osacompile
575 SETFILE
=/Developer
/Tools
/Setfile
577 # On a MacOS X machine, you run rez, osacompile, and setfile to
578 # produce the script executable, which has both a data fork and a
579 # resource fork. Ideally, we would just recompile the whole
580 # executable at build time, but unfortunately this cannot be done on
581 # the SF compile farm through an ssh connection because osacompile
582 # needs to be run locally for some reason. Solution: If the script
583 # sources are changed, rebuild the executable on a MacOSX machine,
584 # split it into its data and resource forks and check them into CVS
585 # as separate files. Then at release time, all that's left to do is
586 # put the data and resource forks back together to make a working script.
587 # (This can be done through ssh.)
590 # 1. script.r: resources for the script
591 # 2. script.data: binary data for the script
592 # 3. bochs.applescript: the source of the script
594 # NOTE: All of this will fail if you aren't building on an HFS+
595 # filesystem! On the SF compile farm building in your user directory
596 # will fail, while doing the build in /tmp will work ok.
598 # check if this filesystem supports resource forks at all
600 $(RM
) -rf test_hfsplus
601 echo data
> test_hfsplus
602 # if you get "Not a directory", then this filesystem doesn't support resources
603 echo resource
> test_hfsplus
/rsrc
605 $(RM
) -rf test_hfsplus
607 # Step 1 (must be done locally on MacOSX, only when sources change)
608 # Compile and pull out just the resource fork. The resource fork is
609 # checked into CVS as script_compiled.rsrc. Note that we don't need
610 # to check in the data fork of tmpscript because it is identical to the
611 # script.data input file.
612 $(SCRIPT_COMPILED_RSRC
): $(SCRIPT_R
) $(SCRIPT_APPLESCRIPT
)
614 $(CP
) -f
$(SCRIPT_DATA
) tmpscript
615 $(REZ
) -append
$(SCRIPT_R
) -o tmpscript
616 $(OSACOMPILE
) -o tmpscript
$(SCRIPT_APPLESCRIPT
)
617 $(CP
) tmpscript
/rsrc
$(SCRIPT_COMPILED_RSRC
)
620 # Step 2 (can be done locally or remotely on MacOSX)
621 # Combine the data fork and resource fork, and set attributes.
622 $(SCRIPT_EXEC
): $(SCRIPT_DATA
) $(SCRIPT_COMPILED_RSRC
)
624 $(CP
) $(SCRIPT_DATA
) $(SCRIPT_EXEC
)
625 if
test ! -f
$(SCRIPT_COMPILED_RSRC
); then
$(CP
) $(srcdir)/$(SCRIPT_COMPILED_RSRC
) $(SCRIPT_COMPILED_RSRC
); fi
626 $(CP
) $(SCRIPT_COMPILED_RSRC
) $(SCRIPT_EXEC
)/rsrc
627 $(SETFILE
) -t
"APPL" -c
"aplt" $(SCRIPT_EXEC
)
629 $(APP
)/.build
: bochs test_hfsplus
$(SCRIPT_EXEC
)
632 $(MKDIR
) -p
$(APP
)/Contents
633 $(CP
) -f
$(MACOSX_STUFF
)/Info.plist
$(APP
)/Contents
634 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/pbdevelopment.plist
$(APP
)/Contents
635 echo
-n
"APPL????" > $(APP
)/Contents
/PkgInfo
636 $(MKDIR
) -p
$(APP
)/Contents
/$(APP_PLATFORM
)
637 $(CP
) bochs
$(APP
)/Contents
/$(APP_PLATFORM
)
638 $(MKDIR
) -p
$(APP
)/Contents
/Resources
639 $(REZ
) $(REZ_ARGS
) $(MACOSX_STUFF_SRCDIR
)/bochs.r
-o
$(APP
)/Contents
/Resources
/bochs.rsrc
640 $(CP
) -f
$(MACOSX_STUFF_SRCDIR
)/bochs-icn.icns
$(APP
)/Contents
/Resources
641 ls
-ld $(APP
) $(SCRIPT_EXEC
) $(SCRIPT_EXEC
)/rsrc
644 $(APP
)/.build_plugins
: $(APP
)/.build bochs_plugins
645 rm -f
$(APP
)/.build_plugins
646 $(MKDIR
) -p
$(STANDALONE_LIBDIR
);
647 list
=`cd gui && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp gui
/$$i $(STANDALONE_LIBDIR
); done
;
648 list
=`cd iodev && echo *.la`; for i in
$$list; do
$(LIBTOOL
) cp iodev
/$$i $(STANDALONE_LIBDIR
); done
;
649 $(LIBTOOL
) --finish
$(STANDALONE_LIBDIR
);
650 touch
$(APP
)/.build_plugins
652 install_macosx
: all download_dlx install_man @INSTALL_DOCBOOK_VAR@
653 -mkdir
-p
$(DESTDIR
)$(prefix)
654 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
655 $(CPMAC
) $(srcdir)/.bochsrc
$(DESTDIR
)$(sharedir
)/bochsrc-sample.txt
656 -mkdir
$(DESTDIR
)$(sharedir
)/keymaps
657 $(CPMAC
) $(srcdir)/gui
/keymaps
/*.map
$(DESTDIR
)$(sharedir
)/keymaps
658 cat
$(DLXLINUX_TAR
) |
(cd
$(DESTDIR
)$(sharedir
) && tar xzvf
-)
659 dlxrc
=$(DESTDIR
)$(sharedir
)/dlxlinux
/bochsrc.txt
; mv
"$$dlxrc" "$$dlxrc.orig" && sed
< "$$dlxrc.orig" 's/\/usr\/local\/bochs\/latest/../' > "$$dlxrc" && rm -f
"$$dlxrc.orig"
660 mv
$(srcdir)/README
$(srcdir)/README.orig
661 cat
$(srcdir)/build
/macosx
/README.macosx-binary
$(srcdir)/README.orig
> $(DESTDIR
)$(sharedir
)/README
662 rm -f
$(DESTDIR
)$(sharedir
)/README.orig
663 $(CPMAC
) $(SCRIPT_EXEC
) $(DESTDIR
)$(sharedir
)/dlxlinux
664 # for i in $(TEXT_FILE_LIST); do mv $(srcdir)/$$i $(DESTDIR)$(sharedir)/$$i.txt; done
666 ###########################################
668 # Build the binary normally, then copy the resource attributes.
669 ###########################################
670 .bochs_beos_target
: bochs@EXE@
671 unzip
$(srcdir)/build
/beos
/resource.zip
672 copyattr
-t ICON BeBochs.rsrc bochs
673 copyattr
-t MICN BeBochs.rsrc bochs
675 ###########################################
676 # dependencies generated by
677 # gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,cpu/,g'
678 ###########################################
679 config.o
: config.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
680 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
681 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
682 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
683 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
684 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
685 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
686 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
687 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
688 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
689 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
690 crc.o
: crc.@CPP_SUFFIX@ config.h
691 gdbstub.o
: gdbstub.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
692 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
693 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
694 gui
/keymap.h instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h \
695 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
696 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
697 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
698 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
699 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
700 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
701 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
702 load32bitOShack.o
: load32bitOShack.@CPP_SUFFIX@ bochs.h config.h osdep.h \
703 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
704 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
705 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
706 cpu
/cpu.h cpu
/instr.h cpu
/crregs.h .
/cpu
/lazy_flags.h .
/disasm
/disasm.h \
707 .
/config.h cpu
/descriptor.h cpu
/icache.h iodev
/iodev.h .
/bochs.h \
708 .
/iodev
/pci.h .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h \
709 .
/iodev
/vga.h .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h \
710 .
/iodev
/dma.h .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
711 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
712 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
713 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
714 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
715 logio.o
: logio.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
716 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
717 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
718 instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
719 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
720 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
721 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
722 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
723 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
724 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
725 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
726 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
727 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
728 main.o
: main.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
729 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
730 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
731 instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
732 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
733 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
734 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
735 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
736 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
737 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
738 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
739 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
740 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
741 osdep.o
: osdep.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
742 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
743 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
744 instrument
/stubs
/instrument.h
745 pc_system.o
: pc_system.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h \
746 .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h \
747 pc_system.h plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h \
748 gui
/keymap.h instrument
/stubs
/instrument.h cpu
/cpu.h cpu
/instr.h cpu
/crregs.h \
749 .
/cpu
/lazy_flags.h .
/disasm
/disasm.h .
/config.h cpu
/descriptor.h \
750 cpu
/icache.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h .
/iodev
/pci2isa.h \
751 .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h .
/iodev
/svga_cirrus.h \
752 .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h .
/iodev
/floppy.h \
753 .
/iodev
/harddrv.h .
/iodev
/keyboard.h .
/iodev
/parallel.h .
/iodev
/pic.h \
754 .
/config.h .
/iodev
/pit_wrap.h .
/bochs.h \
755 .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h .
/iodev
/serial.h \
756 .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
757 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h
758 plex86-interface.o
: plex86-interface.@CPP_SUFFIX@ bochs.h config.h osdep.h \
759 bx_debug
/debug.h .
/config.h .
/osdep.h bxversion.h gui
/siminterface.h \
760 memory
/memory.h pc_system.h plugin.h extplugin.h gui
/gui.h \
761 gui
/textconfig.h .
/config.h gui
/keymap.h instrument
/stubs
/instrument.h \
762 plex86-interface.h plex86
/plex86.h .
/config.h plex86
/descriptor.h
763 plugin.o
: plugin.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug
/debug.h .
/config.h \
764 .
/osdep.h bxversion.h gui
/siminterface.h memory
/memory.h pc_system.h \
765 plugin.h extplugin.h gui
/gui.h gui
/textconfig.h .
/config.h gui
/keymap.h \
766 instrument
/stubs
/instrument.h iodev
/iodev.h .
/bochs.h .
/iodev
/pci.h \
767 .
/iodev
/pci2isa.h .
/iodev
/pci_ide.h .
/iodev
/pcivga.h .
/iodev
/vga.h \
768 .
/iodev
/svga_cirrus.h .
/iodev
/biosdev.h .
/iodev
/cmos.h .
/iodev
/dma.h \
769 .
/iodev
/floppy.h .
/iodev
/harddrv.h .
/iodev
/keyboard.h \
770 .
/iodev
/parallel.h .
/iodev
/pic.h .
/config.h \
771 .
/iodev
/pit_wrap.h .
/bochs.h .
/iodev
/pit82c54.h .
/iodev
/virt_timer.h \
772 .
/iodev
/serial.h .
/iodev
/unmapped.h .
/iodev
/ne2k.h .
/iodev
/guest2host.h \
773 .
/iodev
/slowdown_timer.h .
/iodev
/extfpuirq.h .
/iodev
/gameport.h