Bochs/bochs/plex86/kernel/Makefile.in
Kevin Lawton 0768d01522 Added plex86 directory to bochs. This directory contains the
new experimental stripped-down version of plex86, which is now
  a user-code-only VM.  I ripped out all the fancy stuff in plex86,
  such that under that right conditions, user-code (protection level 3)
  can run at near native speeds inside the plex86 VM.
The general idea is that bochs emulates all the initial real-mode code,
  and guest kernel code (protection level 0).  When it senses the
  right conditions (like the context switches to user-code), a shim
  is called to execute the guest inside the plex86 VM.  All guest-generated
  faults/exceptions are then forwarded back to bochs to be handled in
  the emulator.
Actually, I'm not yet adding the mods to the bochs code (other than
  the shim code which is in a separate file), until I hear that we're
  back in a more development mode with bochs after the 2.0 release.
The plex86 subdirectory is really a separate project.  It's just more
  convenient to co-develop it with bochs for now.  Both projects are
  currently LGPL, but each should be taken to be a separate project,
  and have their own license file.  Plex86 (it's only a kernel driver
  now) could ultimately be used with other projects, as it's modular.
  I talked with Bryce, and we both agreed it's OK to keep plex86 as
  a subdir in bochs for now.
2003-01-01 17:32:06 +00:00

128 lines
3.5 KiB
Makefile

# plex86: run multiple x86 operating systems concurrently
# Copyright (C) 1999-2001 Kevin P. Lawton
#
# 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
CC = @CC@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
KERNEL_TARGET = @KERNEL_TARGET@
HOST_TARGET = @HOST_TARGET@
HOST_CLEAN = @HOST_CLEAN@
srcdir = @srcdir@
VPATH = @srcdir@
LD = ld
HOST_O = @HOST_O@
# extra kernel CFLAGS and LDFLAGS for each host OS
KCFLAGS_LINUX = -fno-strength-reduce -fomit-frame-pointer \
-malign-loops=2 -malign-jumps=2 -malign-functions=2 \
-D__KERNEL__ -I@LINUX_SRC@/include -DCPU=586 -DMODULE
KLDFLAGS_LINUX = -r
KCFLAGS_NULL = -fno-strength-reduce -fomit-frame-pointer \
-malign-loops=2 -malign-jumps=2 -malign-functions=2 \
-D__KERNEL__ -DCPU=586
KLDFLAGS_NULL = -r
KCFLAGS_NETBSD = -fno-strength-reduce -nostdinc -fomit-frame-pointer \
-malign-loops=2 -malign-jumps=2 -malign-functions=2 \
-D_KERNEL -I@NETBSD_SRC@ -I@NETBSD_SRC@/arch -I. -D_LKM
KLDFLAGS_NETBSD = -r
KCFLAGS_FREEBSD = -fno-strength-reduce -nostdinc -fomit-frame-pointer \
-malign-loops=2 -malign-jumps=2 -malign-functions=2 \
-D_KERNEL -I@FREEBSD_SRC@ -I@FREEBSD_SRC@/sys -I. -D_LKM \
-DFREEBSD_PLEX86_DEBUG
KLDFLAGS_FREEBSD = -r
KCFLAGS_BEOS =
KLDFLAGS_BEOS = -nostdlib /boot/develop/lib/x86/_KERNEL_
KLDFLAGS = $(KLDFLAGS_@HOSTOS@)
ALL_CFLAGS = $(CFLAGS) $(KCFLAGS_@HOSTOS@) -I$(srcdir)/include -I$(srcdir)/..
.c.o:
$(CC) -c $(ALL_CFLAGS) $<
.S.o:
$(CC) -c $(ALL_CFLAGS) -D__ASSEMBLY__ $<
main_target: $(HOST_TARGET) $(KERNEL_TARGET)
@FULL_LINK@
$(KERNEL_TARGET): $(HOST_O) monitor-host.o \
nexus.o print-nexus.o \
util-nexus.o \
fault-mon.o panic-mon.o \
paging-mon.o monitor-mon.o
$(LD) $(KLDFLAGS) $^ -o $@
clean: $(HOST_CLEAN) main_clean
main_clean:
/bin/rm -f *.o *.s $(KERNEL_TARGET) a.out
dist-clean: clean
/bin/rm -f Makefile
# Linux specific targets
linux-target:
linux-clean:
# Null specific targets
null-target:
null-clean:
# NetBSD specific targets
netbsd-target: netbsd-machine
netbsd-machine:
ln -sf @NETBSD_SRC@/arch/i386/include machine
netbsd-clean:
/bin/rm -f machine
# FreeBSD specific targets
freebsd-target: freebsd-machine
[ -r opt_posix.h ] || touch opt_posix.h
freebsd-machine:
ln -sf @FREEBSD_SRC@/i386/include machine
freebsd-clean:
/bin/rm -f opt_posix.h
/bin/rm -f machine
# BeOS specific targets
beos-install: $(KERNEL_TARGET)
cp -f $(KERNEL_TARGET) /boot/home/config/add-ons/kernel/drivers/bin
mkdir -p /boot/home/config/add-ons/kernel/drivers/dev/misc
ln -sf ../../bin/$(KERNEL_TARGET) /boot/home/config/add-ons/kernel/drivers/dev/misc/$(KERNEL_TARGET)
Makefile: Makefile.in ../config.status
cd ..; CONFIG_FILES=kernel/Makefile CONFIG_HEADERS= $(SHELL) config.status