744 lines
28 KiB
Makefile
744 lines
28 KiB
Makefile
# Copyright (C) 2002 MandrakeSoft S.A.
|
|
#
|
|
# MandrakeSoft S.A.
|
|
# 43, rue d'Aboukir
|
|
# 75002 Paris - France
|
|
# http://www.linux-mandrake.com/
|
|
# http://www.mandrakesoft.com/
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
####################################################
|
|
# NOTE: To be compatibile with nmake (microsoft vc++) please follow
|
|
# the following rules:
|
|
# use $(VAR) not ${VAR}
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
plugdir = @libdir@/bochs/plugins
|
|
mandir = @mandir@
|
|
man1dir = $(mandir)/man1
|
|
man5dir = $(mandir)/man5
|
|
docdir = $(prefix)/share/doc/bochs
|
|
sharedir = $(prefix)/share/bochs
|
|
top_builddir = .
|
|
top_srcdir = $(srcdir)
|
|
|
|
DESTDIR =
|
|
|
|
VERSION=@VERSION@
|
|
VER_STRING=@VER_STRING@
|
|
REL_STRING=@REL_STRING@
|
|
MAN_PAGE_1_LIST=bochs bximage bxcommit bochs-dlx
|
|
MAN_PAGE_5_LIST=bochsrc
|
|
INSTALL_LIST_SHARE=bios/BIOS-* bios/VGABIOS* @INSTALL_LIST_FOR_PLATFORM@
|
|
INSTALL_LIST_DOC=CHANGES COPYING README
|
|
INSTALL_LIST_BIN=bochs@EXE@ bximage@EXE@ bxcommit@EXE@
|
|
INSTALL_LIST_BIN_OPTIONAL=bochsdbg@EXE@
|
|
INSTALL_LIST_WIN32=$(INSTALL_LIST_SHARE) $(INSTALL_LIST_DOC) $(INSTALL_LIST_BIN) $(INSTALL_LIST_BIN_OPTIONAL) niclist@EXE@
|
|
INSTALL_LIST_MACOSX=$(INSTALL_LIST_SHARE) $(INSTALL_LIST_DOC) bochs.app bochs.scpt bximage bxcommit
|
|
# for win32 and macosx, these files get renamed to *.txt in install process
|
|
TEXT_FILE_LIST=README CHANGES COPYING VGABIOS-elpin-LICENSE VGABIOS-lgpl-README
|
|
CP=cp
|
|
CAT=cat
|
|
RM=rm
|
|
MV=mv
|
|
LN_S=ln -sf
|
|
DLXLINUX_TAR=dlxlinux4.tar.gz
|
|
DLXLINUX_TAR_URL=http://bochs.sourceforge.net/guestos/$(DLXLINUX_TAR)
|
|
DLXLINUX_ROMFILE=BIOS-bochs-latest
|
|
GUNZIP=gunzip
|
|
WGET=wget
|
|
SED=sed
|
|
MKDIR=mkdir
|
|
RMDIR=rmdir
|
|
TAR=tar
|
|
CHMOD=chmod
|
|
GZIP=gzip -9
|
|
GUNZIP=gunzip
|
|
ZIP=zip
|
|
UNIX2DOS=unix2dos
|
|
LIBTOOL=@LIBTOOL@
|
|
DLLTOOL=dlltool
|
|
RC_CMD=@RC_CMD@
|
|
|
|
@SUFFIX_LINE@
|
|
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
SHELL = /bin/sh
|
|
|
|
@SET_MAKE@
|
|
|
|
CC = @CC@
|
|
CXX = @CXX@
|
|
CFLAGS = @CFLAGS@ @GUI_CFLAGS@ $(MCH_CFLAGS) $(FLA_FLAGS) @DEFINE_PLUGIN_PATH@ -DBX_SHARE_PATH='"$(sharedir)"'
|
|
CXXFLAGS = @CXXFLAGS@ @GUI_CXXFLAGS@ $(MCH_CFLAGS) $(FLA_FLAGS) @DEFINE_PLUGIN_PATH@ -DBX_SHARE_PATH='"$(sharedir)"'
|
|
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBS = @LIBS@
|
|
# To compile with readline:
|
|
# linux needs just -lreadline
|
|
# solaris needs -lreadline -lcurses
|
|
X_LIBS = @X_LIBS@
|
|
X_PRE_LIBS = @X_PRE_LIBS@
|
|
XPM_LIB = @XPM_LIB@
|
|
GUI_LINK_OPTS_X = $(X_LIBS) $(X_PRE_LIBS) -lX11 $(XPM_LIB)
|
|
GUI_LINK_OPTS_SDL = `sdl-config --cflags --libs`
|
|
GUI_LINK_OPTS_SVGA = -lvga -lvgagl
|
|
GUI_LINK_OPTS_BEOS = -lbe
|
|
GUI_LINK_OPTS_RFB = @RFB_LIBS@
|
|
GUI_LINK_OPTS_AMIGAOS =
|
|
GUI_LINK_OPTS_WIN32 = -luser32 -lgdi32 -lcomdlg32 -lcomctl32
|
|
GUI_LINK_OPTS_WIN32_VCPP = user32.lib gdi32.lib winmm.lib \
|
|
comdlg32.lib comctl32.lib wsock32.lib advapi.lib
|
|
GUI_LINK_OPTS_MACOS =
|
|
GUI_LINK_OPTS_CARBON = -framework Carbon
|
|
GUI_LINK_OPTS_NOGUI =
|
|
GUI_LINK_OPTS_TERM = @GUI_LINK_OPTS_TERM@
|
|
GUI_LINK_OPTS_WX = @GUI_LINK_OPTS_WX@
|
|
GUI_LINK_OPTS = @GUI_LINK_OPTS@ @DEVICE_LINK_OPTS@
|
|
RANLIB = @RANLIB@
|
|
|
|
CFLAGS_CONSOLE = @CFLAGS@ $(MCH_CFLAGS) $(FLA_FLAGS)
|
|
CXXFLAGS_CONSOLE = @CXXFLAGS@ $(MCH_CFLAGS) $(FLA_FLAGS)
|
|
|
|
BX_INCDIRS = -I. -I$(srcdir)/. -I@INSTRUMENT_DIR@ -I$(srcdir)/@INSTRUMENT_DIR@
|
|
|
|
#SUBDIRS = iodev bx_debug
|
|
|
|
#all install uninstall: config.h#
|
|
# for subdir in $(SUBDIRS); do #
|
|
# echo making $@ in $$subdir; #
|
|
# (cd $$subdir && $(MAKE) $(MDEFINES) $@) || exit 1; #
|
|
# done#
|
|
|
|
|
|
|
|
# gnu flags for clean up
|
|
#CFLAGS = -ansi -O -g -Wunused -Wuninitialized
|
|
|
|
|
|
NONINLINE_OBJS = \
|
|
logio.o \
|
|
main.o \
|
|
load32bitOShack.o \
|
|
state_file.o \
|
|
pc_system.o \
|
|
osdep.o \
|
|
plugin.o \
|
|
@EXTRA_BX_OBJS@
|
|
|
|
EXTERN_ENVIRONMENT_OBJS = \
|
|
main.o \
|
|
load32bitOShack.o \
|
|
state_file.o \
|
|
pc_system.o
|
|
|
|
DEBUGGER_LIB = bx_debug/libdebug.a
|
|
DISASM_LIB = disasm/libdisasm.a
|
|
INSTRUMENT_LIB = @INSTRUMENT_DIR@/libinstrument.a
|
|
FPU_LIB = fpu/libfpu.a
|
|
READLINE_LIB = @READLINE_LIB@
|
|
EXTRA_LINK_OPTS = @EXTRA_LINK_OPTS@
|
|
|
|
GDBSTUB_OBJS = gdbstub.o
|
|
|
|
BX_OBJS = @NONINLINE_VAR@
|
|
|
|
BX_INCLUDES = bochs.h config.h osdep.h
|
|
|
|
|
|
.@CPP_SUFFIX@.o:
|
|
$(CXX) @DASH@c $(BX_INCDIRS) $(CXXFLAGS) @CXXFP@$< @OFP@$@
|
|
.c.o:
|
|
$(CC) @DASH@c $(BX_INCDIRS) $(CFLAGS) $(FPU_FLAGS) $< @OFP@$@
|
|
|
|
|
|
all: @PRIMARY_TARGET@ @PLUGIN_TARGET@ bximage@EXE@ bxcommit@EXE@ @BUILD_DOCBOOK_VAR@
|
|
|
|
@EXTERNAL_DEPENDENCY@
|
|
|
|
bochs@EXE@: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
|
|
cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
|
@DISASM_VAR@ @INSTRUMENT_VAR@ $(BX_OBJS) \
|
|
$(SIMX86_OBJS) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
|
|
@LINK@ -export-dynamic $(BX_OBJS) $(SIMX86_OBJS) \
|
|
iodev/libiodev.a cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
|
@DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
|
|
@GDBSTUB_VAR@ @FPU_VAR@ \
|
|
@NONPLUGIN_GUI_LINK_OPTS@ \
|
|
$(MCH_LINK_FLAGS) \
|
|
$(SIMX86_LINK_FLAGS) \
|
|
$(READLINE_LIB) \
|
|
$(EXTRA_LINK_OPTS) \
|
|
$(LIBS)
|
|
|
|
# Special make target for cygwin/mingw using dlltool instead of
|
|
# libtool. This creates a .DEF file, and exports file, an import library,
|
|
# and then links bochs.exe with the exports file.
|
|
.win32_dll_plugin_target: @IODEV_LIB_VAR@ @DEBUGGER_VAR@ \
|
|
cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
|
@DISASM_VAR@ @INSTRUMENT_VAR@ $(BX_OBJS) \
|
|
$(SIMX86_OBJS) @FPU_VAR@ @GDBSTUB_VAR@ @PLUGIN_VAR@
|
|
$(DLLTOOL) --export-all-symbols --output-def bochs.def \
|
|
$(BX_OBJS) $(SIMX86_OBJS) \
|
|
@IODEV_LIB_VAR@ cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
|
@DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
|
|
@GDBSTUB_VAR@ @FPU_VAR@
|
|
$(DLLTOOL) --dllname bochs.exe --def bochs.def --output-lib dllexports.a
|
|
$(DLLTOOL) --dllname bochs.exe --output-exp bochs.exp --def bochs.def
|
|
$(CXX) -o bochs.exe $(CXXFLAGS) $(LDFLAGS) -export-dynamic \
|
|
$(BX_OBJS) bochs.exp $(SIMX86_OBJS) \
|
|
@IODEV_LIB_VAR@ cpu/libcpu.a memory/libmemory.a gui/libgui.a \
|
|
@DEBUGGER_VAR@ @DISASM_VAR@ @INSTRUMENT_VAR@ @PLUGIN_VAR@ \
|
|
@GDBSTUB_VAR@ @FPU_VAR@ \
|
|
$(GUI_LINK_OPTS) \
|
|
$(MCH_LINK_FLAGS) \
|
|
$(SIMX86_LINK_FLAGS) \
|
|
$(READLINE_LIB) \
|
|
$(EXTRA_LINK_OPTS) \
|
|
$(LIBS)
|
|
touch .win32_dll_plugin_target
|
|
|
|
bochs_plugins:
|
|
cd gui && $(MAKE) plugins
|
|
cd iodev && $(MAKE) plugins
|
|
|
|
bximage@EXE@: misc/bximage.o
|
|
@LINK_CONSOLE@ misc/bximage.o
|
|
|
|
bxcommit@EXE@: misc/bxcommit.o
|
|
@LINK_CONSOLE@ misc/bxcommit.o
|
|
|
|
# compile with console CXXFLAGS, not gui CXXFLAGS
|
|
misc/bximage.o: $(srcdir)/misc/bximage.c
|
|
$(CC) @DASH@c $(BX_INCDIRS) $(CFLAGS_CONSOLE) @CXXFP@$(srcdir)/misc/bximage.c @OFP@$@
|
|
|
|
misc/bxcommit.o: $(srcdir)/misc/bxcommit.c
|
|
$(CC) @DASH@c $(BX_INCDIRS) $(CFLAGS_CONSOLE) @CXXFP@$(srcdir)/misc/bxcommit.c @OFP@$@
|
|
|
|
niclist@EXE@: misc/niclist.o
|
|
@LINK@ misc/niclist.o
|
|
|
|
$(BX_OBJS): $(BX_INCLUDES)
|
|
|
|
bxversion.h:
|
|
$(RM) -f bxversion.h
|
|
echo '/////////////////////////////////////////////////////////////////////////' > bxversion.h
|
|
echo '// $$Id: Makefile.in,v 1.161 2003-12-29 21:53:03 cbothamy Exp $$' >> bxversion.h
|
|
echo '/////////////////////////////////////////////////////////////////////////' >> bxversion.h
|
|
echo '// This file is generated by "make bxversion.h"' >> bxversion.h
|
|
echo "#define VER_STRING \"$(VER_STRING)\"" >> bxversion.h
|
|
echo "#define REL_STRING \"$(REL_STRING)\"" >> bxversion.h
|
|
|
|
iodev/libiodev.a::
|
|
cd iodev @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libiodev.a
|
|
@CD_UP_ONE@
|
|
|
|
bx_debug/libdebug.a::
|
|
cd bx_debug @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libdebug.a
|
|
@CD_UP_ONE@
|
|
|
|
cpu/libcpu.a::
|
|
cd cpu @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libcpu.a
|
|
@CD_UP_ONE@
|
|
|
|
memory/libmemory.a::
|
|
cd memory @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libmemory.a
|
|
@CD_UP_ONE@
|
|
|
|
gui/libgui.a::
|
|
cd gui @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libgui.a
|
|
@CD_UP_ONE@
|
|
|
|
disasm/libdisasm.a::
|
|
cd disasm @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libdisasm.a
|
|
@CD_UP_ONE@
|
|
|
|
@INSTRUMENT_DIR@/libinstrument.a::
|
|
cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libinstrument.a
|
|
@CD_UP_TWO@
|
|
|
|
fpu/libfpu.a::
|
|
cd fpu @COMMAND_SEPARATOR@
|
|
$(MAKE) $(MDEFINES) libfpu.a
|
|
@CD_UP_ONE@
|
|
|
|
libbochs.a:
|
|
-rm -f libbochs.a
|
|
ar rv libbochs.a $(EXTERN_ENVIRONMENT_OBJS)
|
|
$(RANLIB) libbochs.a
|
|
|
|
libbochs_cpu.a: @DEBUGGER_VAR@ $(BX_OBJS)
|
|
-rm -f libbochs_cpu.a
|
|
ar rv libbochs_cpu.a $(BX_OBJS)
|
|
$(RANLIB) libbochs_cpu.a
|
|
|
|
# for wxWindows port, on win32 platform
|
|
wxbochs_resources.o: wxbochs.rc
|
|
windres $(srcdir)/wxbochs.rc -o $@ --include-dir=`@WX_CONFIG@ --prefix`/include
|
|
|
|
# for win32 gui
|
|
win32res.o: win32res.rc
|
|
$(RC_CMD)$@ $(srcdir)/win32res.rc
|
|
|
|
#####################################################################
|
|
# Install target for all platforms.
|
|
#####################################################################
|
|
|
|
install: all @INSTALL_TARGET@
|
|
|
|
#####################################################################
|
|
# Install target for win32
|
|
#
|
|
# This is intended to be run in cygwin, since it has better scripting
|
|
# tools.
|
|
#####################################################################
|
|
|
|
install_win32: download_dlx @INSTALL_DOCBOOK_VAR@
|
|
-mkdir -p $(prefix)
|
|
cp obj-release/*.exe .
|
|
for i in $(INSTALL_LIST_WIN32); do if test -f $$i; then cp $$i $(prefix); else cp $(srcdir)/$$i $(prefix); fi; done
|
|
cp $(srcdir)/misc/sb16/sb16ctrl.example $(prefix)/sb16ctrl.txt
|
|
cp $(srcdir)/misc/sb16/sb16ctrl.exe $(prefix)
|
|
#cat $(srcdir)/build/win32/DOC-win32.htm | $(SED) -e 's/@VERSION@/$(VERSION)/g' > $(prefix)/DOC-win32.htm
|
|
cp $(srcdir)/.bochsrc $(prefix)/bochsrc-sample.txt
|
|
-mkdir $(prefix)/keymaps
|
|
cp $(srcdir)/gui/keymaps/*.map $(prefix)/keymaps
|
|
cat $(DLXLINUX_TAR) | (cd $(prefix) && tar xzvf -)
|
|
echo '..\bochs' > $(prefix)/dlxlinux/start.bat
|
|
dlxrc=$(prefix)/dlxlinux/bochsrc.txt; mv $$dlxrc $$dlxrc.orig && sed < $$dlxrc.orig 's/\/usr\/local\/bochs\/latest/../' > $$dlxrc && rm -f $$dlxrc.orig
|
|
mv $(prefix)/README $(prefix)/README.orig
|
|
cat $(srcdir)/build/win32/README.win32-binary $(prefix)/README.orig > $(prefix)/README
|
|
rm -f $(prefix)/README.orig
|
|
for i in $(TEXT_FILE_LIST); do mv $(prefix)/$$i $(prefix)/$$i.txt; done
|
|
cd $(prefix); $(UNIX2DOS) *.txt */*.txt
|
|
cd $(prefix); NAME=`pwd|$(SED) 's/.*\///'`; (cd ..; $(ZIP) $$NAME.zip -r $$NAME); ls -l ../$$NAME.zip
|
|
|
|
#####################################################################
|
|
# install target for unix
|
|
#####################################################################
|
|
|
|
install_unix: install_bin @INSTALL_PLUGINS_VAR@ install_man install_share install_doc @INSTALL_DOCBOOK_VAR@
|
|
|
|
install_bin::
|
|
for i in $(DESTDIR)$(bindir); do mkdir -p $$i && test -d $$i && test -w $$i; done
|
|
for i in $(INSTALL_LIST_BIN); do if test -f $$i; then cp $$i $(DESTDIR)$(bindir); else cp $(srcdir)/$$i $(DESTDIR)$(bindir); fi; done
|
|
-for i in $(INSTALL_LIST_BIN_OPTIONAL); do if test -f $$i; then cp $$i $(DESTDIR)$(bindir); else cp $(srcdir)/$$i $(DESTDIR)$(bindir); fi; done
|
|
|
|
install_libtool_plugins::
|
|
for i in $(DESTDIR)$(plugdir); do mkdir -p $$i && test -d $$i && test -w $$i; done
|
|
list=`cd gui && echo *.la`; for i in $$list; do $(LIBTOOL) cp gui/$$i $(DESTDIR)$(plugdir); done
|
|
list=`cd iodev && echo *.la`; for i in $$list; do $(LIBTOOL) cp iodev/$$i $(DESTDIR)$(plugdir); done
|
|
$(LIBTOOL) --finish $(DESTDIR)$(plugdir)
|
|
|
|
install_dll_plugins::
|
|
for i in $(DESTDIR)$(plugdir); do mkdir -p $$i && test -d $$i && test -w $$i; done
|
|
list=`cd gui && echo *.dll`; for i in $$list; do cp gui/$$i $(DESTDIR)$(plugdir); done
|
|
list=`cd iodev && echo *.dll`; for i in $$list; do cp iodev/$$i $(DESTDIR)$(plugdir); done
|
|
|
|
install_share::
|
|
for i in $(DESTDIR)$(sharedir); do mkdir -p $$i && test -d $$i && test -w $$i; done
|
|
for i in $(INSTALL_LIST_SHARE); do if test -f $$i; then cp $$i $(DESTDIR)$(sharedir); else cp $(srcdir)/$$i $(DESTDIR)$(sharedir); fi; done
|
|
$(CP) -r $(srcdir)/gui/keymaps $(DESTDIR)$(sharedir)
|
|
|
|
install_doc::
|
|
for i in $(DESTDIR)$(docdir); do mkdir -p $$i && test -d $$i && test -w $$i; done
|
|
for i in $(INSTALL_LIST_DOC); do if test -f $$i; then cp $$i $(DESTDIR)$(docdir); else cp $(srcdir)/$$i $(DESTDIR)$(docdir); fi; done
|
|
$(RM) -f $(DESTDIR)$(docdir)/README
|
|
$(CAT) $(srcdir)/build/linux/README.linux-binary $(srcdir)/README > $(DESTDIR)$(docdir)/README
|
|
$(CP) $(srcdir)/.bochsrc $(DESTDIR)$(docdir)/bochsrc-sample.txt
|
|
|
|
|
|
build_docbook::
|
|
cd doc/docbook; make
|
|
|
|
dl_docbook::
|
|
cd doc/docbook; make dl_docs
|
|
|
|
install_docbook: build_docbook
|
|
cd doc/docbook; make install
|
|
|
|
install_man::
|
|
-mkdir -p $(DESTDIR)$(man1dir)
|
|
-mkdir -p $(DESTDIR)$(man5dir)
|
|
for i in $(MAN_PAGE_1_LIST); do cat $(srcdir)/doc/man/$$i.1 | $(SED) 's/@version@/$(VERSION)/g' | $(GZIP) -c > $(DESTDIR)$(man1dir)/$$i.1.gz; chmod 644 $(DESTDIR)$(man1dir)/$$i.1.gz; done
|
|
for i in $(MAN_PAGE_5_LIST); do cat $(srcdir)/doc/man/$$i.5 | $(GZIP) -c > $(DESTDIR)$(man5dir)/$$i.5.gz; chmod 644 $(DESTDIR)$(man5dir)/$$i.5.gz; done
|
|
|
|
download_dlx: $(DLXLINUX_TAR)
|
|
|
|
$(DLXLINUX_TAR):
|
|
$(RM) -f $(DLXLINUX_TAR)
|
|
$(WGET) $(DLXLINUX_TAR_URL)
|
|
test -f $(DLXLINUX_TAR)
|
|
|
|
unpack_dlx: $(DLXLINUX_TAR)
|
|
rm -rf dlxlinux
|
|
$(GUNZIP) -c $(DLXLINUX_TAR) | $(TAR) -xvf -
|
|
test -d dlxlinux
|
|
(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)
|
|
|
|
install_dlx:
|
|
$(RM) -rf $(DESTDIR)$(sharedir)/dlxlinux
|
|
cp -r dlxlinux $(DESTDIR)$(sharedir)/dlxlinux
|
|
$(CHMOD) 755 $(DESTDIR)$(sharedir)/dlxlinux
|
|
$(GZIP) $(DESTDIR)$(sharedir)/dlxlinux/hd10meg.img
|
|
$(CHMOD) 644 $(DESTDIR)$(sharedir)/dlxlinux/*
|
|
for i in bochs-dlx; do cp $(srcdir)/build/linux/$$i $(bindir)/$$i; $(CHMOD) 755 $(DESTDIR)$(bindir)/$$i; done
|
|
|
|
uninstall::
|
|
$(RM) -rf $(DESTDIR)$(sharedir)
|
|
$(RM) -rf $(DESTDIR)$(docdir)
|
|
for i in bochs bximage bxcommit bochs-dlx; do rm -f $(DESTDIR)$(bindir)/$$i; done
|
|
for i in $(MAN_PAGE_1_LIST); do $(RM) -f $(man1dir)/$$i.1.gz; done
|
|
for i in $(MAN_PAGE_5_LIST); do $(RM) -f $(man5dir)/$$i.5.gz; done
|
|
|
|
V6WORKSPACE_ZIP=build/win32/workspace.zip
|
|
V6WORKSPACE_FILES=bochs.dsw bochs.dsp bochs.opt cpu/cpu.dsp \
|
|
memory/memory.dsp iodev/iodev.dsp instrument/stubs/stubs.dsp \
|
|
gui/gui.dsp fpu/fpu.dsp disasm/disasm.dsp bx_debug/bx_debug.dsp \
|
|
misc/niclist.dsp bximage.dsp bxcommit.dsp
|
|
|
|
v6workspace:
|
|
zip $(V6WORKSPACE_ZIP) $(V6WORKSPACE_FILES)
|
|
|
|
########
|
|
# the win32_snap target is used to create a ZIP of bochs sources configured
|
|
# for VC++. This ZIP is stuck on the website every once in a while to make
|
|
# it easier for VC++ users to compile bochs. First, you should
|
|
# run "sh .conf.win32-vcpp" to configure the source code, then do
|
|
# "make win32_snap" to unzip the workspace files and create the ZIP.
|
|
########
|
|
win32_snap:
|
|
unzip $(V6WORKSPACE_ZIP)
|
|
$(SHELL) ./build/win32/cc2cpp
|
|
make zip
|
|
$(SHELL) ./build/win32/cpp2cc
|
|
|
|
tar:
|
|
NAME=`pwd|$(SED) 's/.*\///'`; (cd ..; $(RM) -f $$NAME.zip; tar cf - $$NAME | $(GZIP) > $$NAME.tar.gz); ls -l ../$$NAME.tar.gz
|
|
|
|
zip:
|
|
NAME=`pwd|$(SED) 's/.*\///'`; (cd ..; $(RM) -f $$NAME.zip; $(ZIP) $$NAME.zip -r $$NAME -x \*CVS\* -x \*.cvsignore ); ls -l ../$$NAME.zip
|
|
|
|
clean:
|
|
@RMCOMMAND@ *.o
|
|
@RMCOMMAND@ *.a
|
|
@RMCOMMAND@ bochs
|
|
@RMCOMMAND@ bochs.exe
|
|
@RMCOMMAND@ bximage
|
|
@RMCOMMAND@ bximage.exe
|
|
@RMCOMMAND@ bxcommit
|
|
@RMCOMMAND@ bxcommit.exe
|
|
@RMCOMMAND@ niclist
|
|
@RMCOMMAND@ niclist.exe
|
|
@RMCOMMAND@ bochs.out
|
|
@RMCOMMAND@ bochsout.txt
|
|
@RMCOMMAND@ bochs.exp
|
|
@RMCOMMAND@ bochs.def
|
|
@RMCOMMAND@ bochs.scpt
|
|
@RMCOMMAND@ -rf bochs.app
|
|
@RMCOMMAND@ -rf .libs
|
|
@RMCOMMAND@ .win32_dll_plugin_target
|
|
|
|
local-dist-clean: clean
|
|
@RMCOMMAND@ config.h config.status config.log config.cache
|
|
@RMCOMMAND@ .dummy `find . -name '*.dsp' -o -name '*.dsw' -o -name '*.opt' -o -name '.DS_Store'`
|
|
@RMCOMMAND@ bxversion.h build/linux/bochs-dlx _rpm_top *.rpm
|
|
@RMCOMMAND@ build/win32/nsis/Makefile build/win32/nsis/bochs.nsi
|
|
@RMCOMMAND@ build/macosx/Info.plist build/macosx/script_compiled.rsrc
|
|
@RMCOMMAND@ libtool
|
|
@RMCOMMAND@ ltdlconf.h
|
|
|
|
all-clean: clean
|
|
cd iodev @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd bx_debug @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd cpu @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd memory @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd gui @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd disasm @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_TWO@
|
|
cd misc @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd fpu @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_ONE@
|
|
cd doc/docbook @COMMAND_SEPARATOR@
|
|
$(MAKE) clean
|
|
@CD_UP_TWO@
|
|
|
|
dist-clean: local-dist-clean
|
|
cd iodev @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd bx_debug @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd bios @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd cpu @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd memory @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd gui @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd disasm @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd @INSTRUMENT_DIR@ @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_TWO@
|
|
cd misc @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd fpu @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_ONE@
|
|
cd doc/docbook @COMMAND_SEPARATOR@
|
|
$(MAKE) dist-clean
|
|
@CD_UP_TWO@
|
|
@RMCOMMAND@ Makefile
|
|
|
|
###########################################
|
|
# Build app on MacOS X
|
|
###########################################
|
|
MACOSX_STUFF=build/macosx
|
|
MACOSX_STUFF_SRCDIR=$(srcdir)/$(MACOSX_STUFF)
|
|
APP=bochs.app
|
|
APP_PLATFORM=MacOS
|
|
SCRIPT_EXEC=bochs.scpt
|
|
SCRIPT_DATA=$(MACOSX_STUFF_SRCDIR)/script.data
|
|
SCRIPT_R=$(MACOSX_STUFF_SRCDIR)/script.r
|
|
SCRIPT_APPLESCRIPT=$(MACOSX_STUFF_SRCDIR)/bochs.applescript
|
|
SCRIPT_COMPILED_RSRC=$(MACOSX_STUFF)/script_compiled.rsrc
|
|
REZ=/Developer/Tools/Rez
|
|
CPMAC=/Developer/Tools/CpMac
|
|
RINCLUDES=/System/Library/Frameworks/Carbon.framework/Libraries/RIncludes
|
|
REZ_ARGS=-append -i $RINCLUDES -d SystemSevenOrLater=1 -useDF
|
|
STANDALONE_LIBDIR=`pwd`/$(APP)/Contents/$(APP_PLATFORM)/lib
|
|
OSACOMPILE=/usr/bin/osacompile
|
|
SETFILE=/Developer/Tools/Setfile
|
|
|
|
# On a MacOS X machine, you run rez, osacompile, and setfile to
|
|
# produce the script executable, which has both a data fork and a
|
|
# resource fork. Ideally, we would just recompile the whole
|
|
# executable at build time, but unfortunately this cannot be done on
|
|
# the SF compile farm through an ssh connection because osacompile
|
|
# needs to be run locally for some reason. Solution: If the script
|
|
# sources are changed, rebuild the executable on a MacOSX machine,
|
|
# split it into its data and resource forks and check them into CVS
|
|
# as separate files. Then at release time, all that's left to do is
|
|
# put the data and resource forks back together to make a working script.
|
|
# (This can be done through ssh.)
|
|
#
|
|
# Sources:
|
|
# 1. script.r: resources for the script
|
|
# 2. script.data: binary data for the script
|
|
# 3. bochs.applescript: the source of the script
|
|
#
|
|
# NOTE: All of this will fail if you aren't building on an HFS+
|
|
# filesystem! On the SF compile farm building in your user directory
|
|
# will fail, while doing the build in /tmp will work ok.
|
|
|
|
# check if this filesystem supports resource forks at all
|
|
test_hfsplus:
|
|
$(RM) -rf test_hfsplus
|
|
echo data > test_hfsplus
|
|
# if you get "Not a directory", then this filesystem doesn't support resources
|
|
echo resource > test_hfsplus/rsrc
|
|
# test succeeded
|
|
$(RM) -rf test_hfsplus
|
|
|
|
# Step 1 (must be done locally on MacOSX, only when sources change)
|
|
# Compile and pull out just the resource fork. The resource fork is
|
|
# checked into CVS as script_compiled.rsrc. Note that we don't need
|
|
# to check in the data fork of tmpscript because it is identical to the
|
|
# script.data input file.
|
|
$(SCRIPT_COMPILED_RSRC): $(SCRIPT_R) $(SCRIPT_APPLESCRIPT)
|
|
$(RM) -f tmpscript
|
|
$(CP) -f $(SCRIPT_DATA) tmpscript
|
|
$(REZ) -append $(SCRIPT_R) -o tmpscript
|
|
$(OSACOMPILE) -o tmpscript $(SCRIPT_APPLESCRIPT)
|
|
$(CP) tmpscript/rsrc $(SCRIPT_COMPILED_RSRC)
|
|
$(RM) -f tmpscript
|
|
|
|
# Step 2 (can be done locally or remotely on MacOSX)
|
|
# Combine the data fork and resource fork, and set attributes.
|
|
$(SCRIPT_EXEC): $(SCRIPT_DATA) $(SCRIPT_COMPILED_RSRC)
|
|
rm -f $(SCRIPT_EXEC)
|
|
$(CP) $(SCRIPT_DATA) $(SCRIPT_EXEC)
|
|
if test ! -f $(SCRIPT_COMPILED_RSRC); then $(CP) $(srcdir)/$(SCRIPT_COMPILED_RSRC) $(SCRIPT_COMPILED_RSRC); fi
|
|
$(CP) $(SCRIPT_COMPILED_RSRC) $(SCRIPT_EXEC)/rsrc
|
|
$(SETFILE) -t "APPL" -c "aplt" $(SCRIPT_EXEC)
|
|
|
|
$(APP)/.build: bochs test_hfsplus $(SCRIPT_EXEC)
|
|
rm -f $(APP)/.build
|
|
$(MKDIR) -p $(APP)
|
|
$(MKDIR) -p $(APP)/Contents
|
|
$(CP) -f $(MACOSX_STUFF)/Info.plist $(APP)/Contents
|
|
$(CP) -f $(MACOSX_STUFF_SRCDIR)/pbdevelopment.plist $(APP)/Contents
|
|
echo -n "APPL????" > $(APP)/Contents/PkgInfo
|
|
$(MKDIR) -p $(APP)/Contents/$(APP_PLATFORM)
|
|
$(CP) bochs $(APP)/Contents/$(APP_PLATFORM)
|
|
$(MKDIR) -p $(APP)/Contents/Resources
|
|
$(REZ) $(REZ_ARGS) $(MACOSX_STUFF_SRCDIR)/bochs.r -o $(APP)/Contents/Resources/bochs.rsrc
|
|
$(CP) -f $(MACOSX_STUFF_SRCDIR)/bochs-icn.icns $(APP)/Contents/Resources
|
|
ls -ld $(APP) $(SCRIPT_EXEC) $(SCRIPT_EXEC)/rsrc
|
|
touch $(APP)/.build
|
|
|
|
$(APP)/.build_plugins: $(APP)/.build bochs_plugins
|
|
rm -f $(APP)/.build_plugins
|
|
$(MKDIR) -p $(STANDALONE_LIBDIR);
|
|
list=`cd gui && echo *.la`; for i in $$list; do $(LIBTOOL) cp gui/$$i $(STANDALONE_LIBDIR); done;
|
|
list=`cd iodev && echo *.la`; for i in $$list; do $(LIBTOOL) cp iodev/$$i $(STANDALONE_LIBDIR); done;
|
|
$(LIBTOOL) --finish $(STANDALONE_LIBDIR);
|
|
touch $(APP)/.build_plugins
|
|
|
|
install_macosx: all download_dlx @INSTALL_DOCBOOK_VAR@
|
|
-mkdir -p $(prefix)
|
|
for i in $(INSTALL_LIST_MACOSX); do if test -e $$i; then $(CPMAC) -r $$i $(prefix); else $(CPMAC) -r $(srcdir)/$$i $(prefix); fi; done
|
|
$(CPMAC) $(srcdir)/.bochsrc $(prefix)/bochsrc-sample.txt
|
|
-mkdir $(prefix)/keymaps
|
|
$(CPMAC) $(srcdir)/gui/keymaps/*.map $(prefix)/keymaps
|
|
cat $(DLXLINUX_TAR) | (cd $(prefix) && tar xzvf -)
|
|
dlxrc=$(prefix)/dlxlinux/bochsrc.txt; mv "$$dlxrc" "$$dlxrc.orig" && sed < "$$dlxrc.orig" 's/\/usr\/local\/bochs\/latest/../' > "$$dlxrc" && rm -f "$$dlxrc.orig"
|
|
mv $(prefix)/README $(prefix)/README.orig
|
|
cat $(srcdir)/build/macosx/README.macosx-binary $(prefix)/README.orig > $(prefix)/README
|
|
rm -f $(prefix)/README.orig
|
|
$(CPMAC) $(SCRIPT_EXEC) $(prefix)/dlxlinux
|
|
for i in $(TEXT_FILE_LIST); do mv $(prefix)/$$i $(prefix)/$$i.txt; done
|
|
|
|
###########################################
|
|
# BeOS make target.
|
|
# Build the binary normally, then copy the resource attributes.
|
|
###########################################
|
|
.bochs_beos_target: bochs@EXE@
|
|
unzip $(srcdir)/build/beos/resource.zip
|
|
copyattr -t ICON BeBochs.rsrc bochs
|
|
copyattr -t MICN BeBochs.rsrc bochs
|
|
|
|
###########################################
|
|
# dependencies generated by
|
|
# gcc -MM -I. -Iinstrument/stubs *.cc | sed -e 's/\.cc/.@CPP_SUFFIX@/g' -e 's,cpu/,cpu/,g'
|
|
###########################################
|
|
gdbstub.o: gdbstub.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h \
|
|
bxversion.h gui/siminterface.h state_file.h cpu/cpu.h \
|
|
cpu/lazy_flags.h cpu/i387.h memory/memory.h pc_system.h gui/gui.h \
|
|
gui/textconfig.h gui/keymap.h iodev/iodev.h iodev/pci.h iodev/pci2isa.h \
|
|
iodev/vga.h iodev/biosdev.h iodev/cmos.h iodev/dma.h iodev/floppy.h \
|
|
iodev/harddrv.h iodev/cdrom.h iodev/keyboard.h iodev/parallel.h \
|
|
iodev/pic.h iodev/pit.h iodev/pit_wrap.h iodev/pit82c54.h \
|
|
iodev/serial.h iodev/unmapped.h iodev/eth.h iodev/ne2k.h \
|
|
iodev/guest2host.h iodev/slowdown_timer.h plugin.h \
|
|
instrument/stubs/instrument.h
|
|
load32bitOShack.o: load32bitOShack.@CPP_SUFFIX@ bochs.h config.h osdep.h \
|
|
bx_debug/debug.h bxversion.h gui/siminterface.h state_file.h cpu/cpu.h \
|
|
cpu/lazy_flags.h cpu/i387.h memory/memory.h pc_system.h gui/gui.h \
|
|
gui/textconfig.h gui/keymap.h iodev/iodev.h iodev/pci.h iodev/pci2isa.h \
|
|
iodev/vga.h iodev/biosdev.h iodev/cmos.h iodev/dma.h iodev/floppy.h \
|
|
iodev/harddrv.h iodev/cdrom.h iodev/keyboard.h iodev/parallel.h \
|
|
iodev/pic.h iodev/pit.h iodev/pit_wrap.h iodev/pit82c54.h \
|
|
iodev/serial.h iodev/unmapped.h iodev/eth.h iodev/ne2k.h \
|
|
iodev/guest2host.h iodev/slowdown_timer.h plugin.h \
|
|
instrument/stubs/instrument.h
|
|
logio.o: logio.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h bxversion.h \
|
|
gui/siminterface.h state_file.h cpu/cpu.h cpu/lazy_flags.h cpu/i387.h \
|
|
memory/memory.h pc_system.h gui/gui.h gui/textconfig.h gui/keymap.h \
|
|
iodev/iodev.h iodev/pci.h iodev/pci2isa.h iodev/vga.h iodev/biosdev.h \
|
|
iodev/cmos.h iodev/dma.h iodev/floppy.h iodev/harddrv.h iodev/cdrom.h \
|
|
iodev/keyboard.h iodev/parallel.h iodev/pic.h iodev/pit.h \
|
|
iodev/pit_wrap.h iodev/pit82c54.h iodev/serial.h iodev/unmapped.h \
|
|
iodev/eth.h iodev/ne2k.h iodev/guest2host.h iodev/slowdown_timer.h \
|
|
plugin.h instrument/stubs/instrument.h
|
|
main.o: main.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h bxversion.h \
|
|
gui/siminterface.h state_file.h cpu/cpu.h cpu/lazy_flags.h cpu/i387.h \
|
|
memory/memory.h pc_system.h gui/gui.h gui/textconfig.h gui/keymap.h \
|
|
iodev/iodev.h iodev/pci.h iodev/pci2isa.h iodev/vga.h iodev/biosdev.h \
|
|
iodev/cmos.h iodev/dma.h iodev/floppy.h iodev/harddrv.h iodev/cdrom.h \
|
|
iodev/keyboard.h iodev/parallel.h iodev/pic.h iodev/pit.h \
|
|
iodev/pit_wrap.h iodev/pit82c54.h iodev/serial.h iodev/unmapped.h \
|
|
iodev/eth.h iodev/ne2k.h iodev/guest2host.h iodev/slowdown_timer.h \
|
|
plugin.h instrument/stubs/instrument.h
|
|
osdep.o: osdep.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h bxversion.h \
|
|
gui/siminterface.h state_file.h cpu/cpu.h cpu/lazy_flags.h cpu/i387.h \
|
|
memory/memory.h pc_system.h gui/gui.h gui/textconfig.h gui/keymap.h \
|
|
iodev/iodev.h iodev/pci.h iodev/pci2isa.h iodev/vga.h iodev/biosdev.h \
|
|
iodev/cmos.h iodev/dma.h iodev/floppy.h iodev/harddrv.h iodev/cdrom.h \
|
|
iodev/keyboard.h iodev/parallel.h iodev/pic.h iodev/pit.h \
|
|
iodev/pit_wrap.h iodev/pit82c54.h iodev/serial.h iodev/unmapped.h \
|
|
iodev/eth.h iodev/ne2k.h iodev/guest2host.h iodev/slowdown_timer.h \
|
|
plugin.h instrument/stubs/instrument.h
|
|
pc_system.o: pc_system.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h \
|
|
bxversion.h gui/siminterface.h state_file.h cpu/cpu.h \
|
|
cpu/lazy_flags.h cpu/i387.h memory/memory.h pc_system.h gui/gui.h \
|
|
gui/textconfig.h gui/keymap.h iodev/iodev.h iodev/pci.h iodev/pci2isa.h \
|
|
iodev/vga.h iodev/biosdev.h iodev/cmos.h iodev/dma.h iodev/floppy.h \
|
|
iodev/harddrv.h iodev/cdrom.h iodev/keyboard.h iodev/parallel.h \
|
|
iodev/pic.h iodev/pit.h iodev/pit_wrap.h iodev/pit82c54.h \
|
|
iodev/serial.h iodev/unmapped.h iodev/eth.h iodev/ne2k.h \
|
|
iodev/guest2host.h iodev/slowdown_timer.h plugin.h \
|
|
instrument/stubs/instrument.h
|
|
plugin.o: plugin.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h bxversion.h \
|
|
gui/siminterface.h state_file.h cpu/cpu.h cpu/lazy_flags.h cpu/i387.h \
|
|
memory/memory.h pc_system.h gui/gui.h gui/textconfig.h gui/keymap.h \
|
|
iodev/iodev.h iodev/pci.h iodev/pci2isa.h iodev/vga.h iodev/biosdev.h \
|
|
iodev/cmos.h iodev/dma.h iodev/floppy.h iodev/harddrv.h iodev/cdrom.h \
|
|
iodev/keyboard.h iodev/parallel.h iodev/pic.h iodev/pit.h \
|
|
iodev/pit_wrap.h iodev/pit82c54.h iodev/serial.h iodev/unmapped.h \
|
|
iodev/eth.h iodev/ne2k.h iodev/guest2host.h iodev/slowdown_timer.h \
|
|
plugin.h instrument/stubs/instrument.h
|
|
state_file.o: state_file.@CPP_SUFFIX@ bochs.h config.h osdep.h bx_debug/debug.h \
|
|
bxversion.h gui/siminterface.h state_file.h cpu/cpu.h \
|
|
cpu/lazy_flags.h cpu/i387.h memory/memory.h pc_system.h gui/gui.h \
|
|
gui/textconfig.h gui/keymap.h iodev/iodev.h iodev/pci.h iodev/pci2isa.h \
|
|
iodev/vga.h iodev/biosdev.h iodev/cmos.h iodev/dma.h iodev/floppy.h \
|
|
iodev/harddrv.h iodev/cdrom.h iodev/keyboard.h iodev/parallel.h \
|
|
iodev/pic.h iodev/pit.h iodev/pit_wrap.h iodev/pit82c54.h \
|
|
iodev/serial.h iodev/unmapped.h iodev/eth.h iodev/ne2k.h \
|
|
iodev/guest2host.h iodev/slowdown_timer.h plugin.h \
|
|
instrument/stubs/instrument.h
|