# Generated automatically from Makefile.in by configure.
#  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      = gcc
CFLAGS  = -g -O2 -Wall -Wstrict-prototypes
LDFLAGS = 
EMU_TARGET = emu.o

srcdir	= .

LD = ld

# 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/lib/modules/2.2.19/build/include -DCPU=586 -DMODULE \
                 -DEMULATION
KLDFLAGS_LINUX = -r

KCFLAGS_BEOS   =
KLDFLAGS_BEOS  = -nostdlib /boot/develop/lib/x86/_KERNEL_

KCFLAGS_NETBSD  = -fno-strength-reduce -nostdinc -fomit-frame-pointer \
                 -malign-loops=2 -malign-jumps=2 -malign-functions=2 \
                 -D_KERNEL -I/sys -DCPU=586 -DMODULE \
                 -DEMULATION -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/sys -DCPU=586 -DMODULE \
                 -DEMULATION -I.. -D_LKM
KLDFLAGS_FREEBSD = -r


KLDFLAGS  = $(KLDFLAGS_LINUX)

ALL_CFLAGS = $(CFLAGS) $(KCFLAGS_LINUX) -I$(srcdir)/../include -I$(srcdir)/../..


.c.o:
	$(CC) -c $(ALL_CFLAGS) -DIN_MONITOR_SPACE $<
.S.o:
	$(CC) -c $(ALL_CFLAGS) -D__ASSEMBLY__ $<


$(EMU_TARGET): \
		emulation.o fetchdecode.o io_pro.o \
		exception.o protect_ctrl.o ctrl_xfer32.o access.o \
		stack_pro.o segment_pro.o paging.o \
		segment_ctrl.o ctrl_xfer_pro.o stack.o flag.o \
		ctrl_xfer16.o data_xfer16.o data_xfer32.o regs.o \
		logical16.o logical32.o vm8086.o soft_int.o tasking.o \
		data_xfer8.o shift32.o io_pro.o \
		proc_ctrl.o arith32.o arith16.o arith8.o logical8.o \
		mult32.o string.o ctrl_xfer8.o io.o shift8.o mult8.o \
		shift16.o mult16.o bcd.o bit.o fpu.o
	$(LD) $(KLDFLAGS) $^ -o $@

clean:
	/bin/rm -f *.o *.so *.s $(KERNEL_TARGET)

dist-clean: clean
	/bin/rm -f Makefile

Makefile:	Makefile.in ../../config.status
		cd ../..; CONFIG_FILES=kernel/emulation/Makefile CONFIG_HEADERS= $(SHELL) config.status
