128 lines
3.5 KiB
Makefile
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-mon.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
|