CFLAGS=-g -I/usr/include -I../../include/ -O0 -Wall
CC=gcc

.y.c:
    bison -d -o $@ $<
.l.c:
    flex -o$@ $< 

SRCS = main.c io.c x86emu.c int.c pci.c
OBJS = main.o io.o x86emu.o int.o pci.o

all : vbios.vm86 v86bios.vm86 cbios.vm86 cbios.x86emu vbios.x86emu v86bios.x86emu 
#all :  cbios.x86emu vbios.x86emu v86bios.x86emu 

parser.c : parser.y
lex.c : lex.l
cbios.o : cbios.c v86bios.h debug.h
main.o : main.c v86bios.h pci.h debug.h
io.o : v86bios.h AsmMacros.h debug.h
mem.o : mem.c debug.h v86bios.h
int.o : int.c v86bios.h debug.h
pci.o : pci.c pci.h debug.h
console.o : console.c v86bios.h debug.h
v86.o : v86.c debug.h
parser.o : parser.c
lex.o : lex.c
v86bios.o: v86bios.c v86bios.h pci.h debug.h
logging.o: logging.c v86bios.h
x86emu.o : x86emu.c v86bios.h debug.h
    $(CC) -c -DX86EMU $(CFLAGS) $*.c

vbios.x86emu : main.o x86emu.o io.o int.o pci.o console.o mem.o logging.o
    gcc -Wl,-defsym -Wl,printk=lprintf -o vbios.x86emu main.o \
    x86emu.o io.o int.o pci.o console.o mem.o logging.o \
    -L../x86emu -lx86emud -lc 
vbios.vm86 : main.o v86.o io.o int.o pci.o console.o logging.o
    gcc -o vbios.vm86 main.o v86.o io.o int.o pci.o console.o \
    logging.o -lc 
cbios.x86emu : cbios.o x86emu.o io.o int.o pci.o console.o mem.o logging.o
    gcc -Wl,-defsym -Wl,printk=lprintf -o cbios.x86emu cbios.o \
    x86emu.o io.o int.o pci.o console.o mem.o logging.o \
    -L../x86emu -lx86emud -lc 
cbios.vm86 : cbios.o v86.o io.o int.o pci.o console.o logging.o
    gcc -o cbios.vm86 cbios.o v86.o io.o int.o pci.o console.o \
    logging.o -lc 
v86bios.vm86: command.o parser.o lex.o v86bios.o v86.o io.o int.o pci.o console.o logging.o
     gcc -o v86bios.vm86 command.o parser.o lex.o v86bios.o v86.o io.o \
     int.o pci.o console.o logging.o -L/usr/lib/curses -lfl \
     -lreadline -lc -lncurses /usr/lib/libc.a
v86bios.x86emu: command.o parser.o lex.o v86bios.o x86emu.o io.o int.o pci.o console.o logging.o
    gcc -Wl,-defsym -Wl,printk=lprintf -o v86bios.x86emu \
    command.o parser.o lex.o v86bios.o x86emu.o io.o \
    int.o pci.o console.o logging.o -L/usr/lib/curses -lfl \
    -lreadline -lc -lncurses  /usr/lib/libc.a -L../x86emu -lx86emud

clean:
    rm -f *.o vbios.x86emu vbios.vm86 cbios.x86emu cbios.vm86 parser.c \
    lex.c parser.h v86bios.x86emu v86bios.vm86

