- tftp_send_optack() was not 64-bit clean (patch from SF bug #1787500)
[bochs-mirror.git] / Makefile.in
blobee5ce55e1cc45cc53293a0d0215404b42d32a36b
1 # Copyright (C) 2002 MandrakeSoft S.A.
3 # MandrakeSoft S.A.
4 # 43, rue d'Aboukir
5 # 75002 Paris - France
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}
28 prefix = @prefix@
29 exec_prefix = @exec_prefix@
30 srcdir = @srcdir@
31 VPATH = @srcdir@
32 bindir = @bindir@
33 libdir = @libdir@
34 plugdir = @libdir@/bochs/plugins
35 mandir = @mandir@
36 man1dir = $(mandir)/man1
37 man5dir = $(mandir)/man5
38 docdir = $(prefix)/share/doc/bochs
39 sharedir = $(prefix)/share/bochs
40 top_builddir = .
41 top_srcdir = $(srcdir)
43 DESTDIR =
45 VERSION=@VERSION@
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
58 CP=cp
59 CAT=cat
60 RM=rm
61 MV=mv
62 LN_S=ln -sf
63 DLXLINUX_TAR=dlxlinux4.tar.gz
64 DLXLINUX_TAR_URL=http://bochs.sourceforge.net/guestos/$(DLXLINUX_TAR)
65 DLXLINUX_ROMFILE=BIOS-bochs-latest
66 GUNZIP=gunzip
67 WGET=@WGET@
68 SED=sed
69 MKDIR=mkdir
70 RMDIR=rmdir
71 TAR=tar
72 CHMOD=chmod
73 # the GZIP variable is reserved by gzip program
74 GZIP_BIN=gzip -9
75 GUNZIP=gunzip
76 ZIP=zip
77 UNIX2DOS=unix2dos
78 LIBTOOL=@LIBTOOL@
79 DLLTOOL=dlltool
80 RC_CMD=@RC_CMD@
82 @SUFFIX_LINE@
84 srcdir = @srcdir@
85 VPATH = @srcdir@
87 SHELL = /bin/sh
89 @SET_MAKE@
91 CC = @CC@
92 CXX = @CXX@
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)"'
96 LDFLAGS = @LDFLAGS@
97 LIBS = @LIBS@
98 # To compile with readline:
99 # linux needs just -lreadline
100 # solaris needs -lreadline -lcurses
101 X_LIBS = @X_LIBS@
102 X_PRE_LIBS = @X_PRE_LIBS@
103 XPM_LIB = @XPM_LIB@
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@
119 RANLIB = @RANLIB@
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; #
133 # done#
137 # gnu flags for clean up
138 #CFLAGS = -ansi -O -g -Wunused -Wuninitialized
141 NONINLINE_OBJS = \
142 logio.o \
143 main.o \
144 config.o \
145 load32bitOShack.o \
146 pc_system.o \
147 osdep.o \
148 plugin.o \
149 crc.o \
150 @EXTRA_BX_OBJS@
152 EXTERN_ENVIRONMENT_OBJS = \
153 main.o \
154 config.o \
155 load32bitOShack.o \
156 pc_system.o
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
172 .@CPP_SUFFIX@.o:
173 $(CXX) @DASH@c $(BX_INCDIRS) $(CXXFLAGS) @CXXFP@$< @OFP@$@
174 .c.o:
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@ \
191 $(MCH_LINK_FLAGS) \
192 $(SIMX86_LINK_FLAGS) \
193 $(READLINE_LIB) \
194 $(EXTRA_LINK_OPTS) \
195 $(LIBS)
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@ \
216 $(GUI_LINK_OPTS) \
217 $(MCH_LINK_FLAGS) \
218 $(SIMX86_LINK_FLAGS) \
219 $(READLINE_LIB) \
220 $(EXTRA_LINK_OPTS) \
221 $(LIBS)
222 touch .win32_dll_plugin_target
224 bochs_plugins:
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)
249 bxversion.h:
250 $(RM) -f bxversion.h
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
258 iodev/libiodev.a::
259 cd iodev @COMMAND_SEPARATOR@
260 $(MAKE) $(MDEFINES) libiodev.a
261 @CD_UP_ONE@
263 bx_debug/libdebug.a::
264 cd bx_debug @COMMAND_SEPARATOR@
265 $(MAKE) $(MDEFINES) libdebug.a
266 @CD_UP_ONE@
268 cpu/libcpu.a::
269 cd cpu @COMMAND_SEPARATOR@
270 $(MAKE) $(MDEFINES) libcpu.a
271 @CD_UP_ONE@
273 memory/libmemory.a::
274 cd memory @COMMAND_SEPARATOR@
275 $(MAKE) $(MDEFINES) libmemory.a
276 @CD_UP_ONE@
278 gui/libgui.a::
279 cd gui @COMMAND_SEPARATOR@
280 $(MAKE) $(MDEFINES) libgui.a
281 @CD_UP_ONE@
283 disasm/libdisasm.a::
284 cd disasm @COMMAND_SEPARATOR@
285 $(MAKE) $(MDEFINES) libdisasm.a
286 @CD_UP_ONE@
288 @INSTRUMENT_DIR@/libinstrument.a::
289 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
290 $(MAKE) $(MDEFINES) libinstrument.a
291 @CD_UP_TWO@
293 fpu/libfpu.a::
294 cd fpu @COMMAND_SEPARATOR@
295 $(MAKE) $(MDEFINES) libfpu.a
296 @CD_UP_ONE@
298 libbochs.a:
299 -rm -f libbochs.a
300 ar rv libbochs.a $(EXTERN_ENVIRONMENT_OBJS)
301 $(RANLIB) libbochs.a
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
312 # for win32 gui
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
326 # tools.
327 #####################################################################
329 install_win32: download_dlx @INSTALL_DOCBOOK_VAR@
330 -mkdir -p $(prefix)
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@
355 install_bin::
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
371 install_share::
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
377 install_doc::
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
385 build_docbook::
386 cd doc/docbook; make
388 dl_docbook::
389 cd doc/docbook; make dl_docs
391 install_docbook: build_docbook
392 cd doc/docbook; make install
394 install_man::
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)
402 $(DLXLINUX_TAR):
403 $(RM) -f $(DLXLINUX_TAR)
404 $(WGET) $(DLXLINUX_TAR_URL)
405 test -f $(DLXLINUX_TAR)
407 unpack_dlx: $(DLXLINUX_TAR)
408 rm -rf dlxlinux
409 $(GUNZIP) -c $(DLXLINUX_TAR) | $(TAR) -xvf -
410 test -d dlxlinux
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)
413 install_dlx:
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
421 uninstall::
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
435 v6workspace:
436 zip $(V6WORKSPACE_ZIP) $(V6WORKSPACE_FILES)
438 ########
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.
444 ########
445 win32_snap:
446 unzip $(V6WORKSPACE_ZIP)
447 $(SHELL) ./build/win32/cc2cpp
448 make zip
449 $(SHELL) ./build/win32/cpp2cc
451 tar:
452 NAME=`pwd|$(SED) 's/.*\///'`; (cd ..; $(RM) -f $$NAME.zip; tar cf - $$NAME | $(GZIP_BIN) > $$NAME.tar.gz); ls -l ../$$NAME.tar.gz
454 zip:
455 NAME=`pwd|$(SED) 's/.*\///'`; (cd ..; $(RM) -f $$NAME.zip; $(ZIP) $$NAME.zip -r $$NAME -x \*CVS\* -x \*.cvsignore ); ls -l ../$$NAME.zip
457 clean:
458 @RMCOMMAND@ *.o
459 @RMCOMMAND@ *.a
460 @RMCOMMAND@ bochs
461 @RMCOMMAND@ bochs.exe
462 @RMCOMMAND@ bximage
463 @RMCOMMAND@ bximage.exe
464 @RMCOMMAND@ bxcommit
465 @RMCOMMAND@ bxcommit.exe
466 @RMCOMMAND@ niclist
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
483 @RMCOMMAND@ libtool
484 @RMCOMMAND@ ltdlconf.h
486 all-clean: clean
487 cd iodev @COMMAND_SEPARATOR@
488 $(MAKE) clean
489 @CD_UP_ONE@
490 cd bx_debug @COMMAND_SEPARATOR@
491 $(MAKE) clean
492 @CD_UP_ONE@
493 cd cpu @COMMAND_SEPARATOR@
494 $(MAKE) clean
495 @CD_UP_ONE@
496 cd memory @COMMAND_SEPARATOR@
497 $(MAKE) clean
498 @CD_UP_ONE@
499 cd gui @COMMAND_SEPARATOR@
500 $(MAKE) clean
501 @CD_UP_ONE@
502 cd disasm @COMMAND_SEPARATOR@
503 $(MAKE) clean
504 @CD_UP_ONE@
505 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
506 $(MAKE) clean
507 @CD_UP_TWO@
508 cd misc @COMMAND_SEPARATOR@
509 $(MAKE) clean
510 @CD_UP_ONE@
511 cd fpu @COMMAND_SEPARATOR@
512 $(MAKE) clean
513 @CD_UP_ONE@
514 cd doc/docbook @COMMAND_SEPARATOR@
515 $(MAKE) clean
516 @CD_UP_TWO@
517 cd host/linux/pcidev @COMMAND_SEPARATOR@
518 $(MAKE) clean
519 @CD_UP_THREE@
521 dist-clean: local-dist-clean
522 cd iodev @COMMAND_SEPARATOR@
523 $(MAKE) dist-clean
524 @CD_UP_ONE@
525 cd bx_debug @COMMAND_SEPARATOR@
526 $(MAKE) dist-clean
527 @CD_UP_ONE@
528 cd bios @COMMAND_SEPARATOR@
529 $(MAKE) dist-clean
530 @CD_UP_ONE@
531 cd cpu @COMMAND_SEPARATOR@
532 $(MAKE) dist-clean
533 @CD_UP_ONE@
534 cd memory @COMMAND_SEPARATOR@
535 $(MAKE) dist-clean
536 @CD_UP_ONE@
537 cd gui @COMMAND_SEPARATOR@
538 $(MAKE) dist-clean
539 @CD_UP_ONE@
540 cd disasm @COMMAND_SEPARATOR@
541 $(MAKE) dist-clean
542 @CD_UP_ONE@
543 cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
544 $(MAKE) dist-clean
545 @CD_UP_TWO@
546 cd misc @COMMAND_SEPARATOR@
547 $(MAKE) dist-clean
548 @CD_UP_ONE@
549 cd fpu @COMMAND_SEPARATOR@
550 $(MAKE) dist-clean
551 @CD_UP_ONE@
552 cd doc/docbook @COMMAND_SEPARATOR@
553 $(MAKE) dist-clean
554 @CD_UP_TWO@
555 cd host/linux/pcidev @COMMAND_SEPARATOR@
556 $(MAKE) dist-clean
557 @CD_UP_THREE@
558 @RMCOMMAND@ Makefile
560 ###########################################
561 # Build app on MacOS X
562 ###########################################
563 MACOSX_STUFF=build/macosx
564 MACOSX_STUFF_SRCDIR=$(srcdir)/$(MACOSX_STUFF)
565 APP=bochs.app
566 APP_PLATFORM=MacOS
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.)
592 # Sources:
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
602 test_hfsplus:
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
607 # test succeeded
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)
616 $(RM) -f tmpscript
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)
621 $(RM) -f tmpscript
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)
626 rm -f $(SCRIPT_EXEC)
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)
633 rm -f $(APP)/.build
634 $(MKDIR) -p $(APP)
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
645 touch $(APP)/.build
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 ###########################################
670 # BeOS make target.
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