# Copyright (C) 2001  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



.SUFFIXES: .cpp

srcdir = .


SHELL = /bin/sh



CC = cl
CFLAGS = /nologo /G6 /MT /W3 /GX /DNDEBUG /DWIN32 /D_WINDOWS /O2
CXX = cl
CXXFLAGS = /nologo /G6 /MT /W3 /GX /DNDEBUG /DWIN32 /D_WINDOWS /O2

LDFLAGS = 
LIBS = 
RANLIB = echo

# Definitely use flex.  Use flex version >= 2.5.4
# Flex version 2.5.2 was reported not to work
LEX    = flex
YACC   = yacc


# ===========================================================
# end of configurable options
# ===========================================================


BX_OBJS = \
  dbg_main.o \
  linux.o \
  crc.o 

BX_PARSER_OBJS = \
  parser.o \
  lexer.o

BX_INCLUDES = debug.h

BX_INCDIRS = -I.. -I$(srcdir)/.. -I../instrument/stubs -I$(srcdir)/../instrument/stubs -I. -I$(srcdir)/.

.cpp.o:
	$(CXX) /c $(CXXFLAGS) $(BX_INCDIRS) /Tp$< /Fo$@


.c.o:
	$(CC) /c $(CFLAGS) $(BX_INCDIRS) /Tc$< /Fo$@



libdebug.a: $(BX_OBJS) $(BX_PARSER_OBJS)
	-del libdebug.a
	lib.exe /nologo /subsystem:console /machine:I386 /verbose /out:$@ $(BX_OBJS) $(BX_PARSER_OBJS)
	$(RANLIB) libdebug.a

$(BX_OBJS): $(BX_INCLUDES)


clean:
	-del *.o
	-del libdebug.a

dist-clean: clean
	-del Makefile

parse-clean:
	-del -f  lexer.c
	-del -f  parser.c
	-del -f  parser.h

dbg_main.o: debug.h
sim2.o: debug.h

parser.c: parser.y
	@/bin/rm -f y.tab.c parser.c
	@/bin/rm -f y.tab.h parser.h
	$(YACC) -p bx -d $<
	@/bin/mv -f y.tab.c parser.c
	@/bin/mv -f y.tab.h parser.h

lexer.c: lexer.l
	$(LEX) -Pbx -t $< > lexer.c

###########################################
# dependencies generated by
#  gcc -MM -I.. -I../instrument/stubs *.c  *.cc | sed 's/\.cc/.cpp/g'
###########################################
lexer.o: lexer.c debug.h ../config.h ../osdep.h parser.h
parser.o: parser.c debug.h ../config.h ../osdep.h
crc.o: crc.cpp ../bochs.h ../config.h ../osdep.h ../debug/debug.h \
 ../bxversion.h ../gui/siminterface.h ../state_file.h ../cpu/cpu.h \
 ../cpu/lazy_flags.h ../memory/memory.h ../pc_system.h ../gui/gui.h \
 ../gui/control.h ../iodev/iodev.h ../iodev/pci.h ../iodev/vga.h \
 ../iodev/cmos.h ../iodev/dma.h ../iodev/floppy.h ../iodev/harddrv.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 \
 ../instrument/stubs/instrument.h
dbg_main.o: dbg_main.cpp ../bochs.h ../config.h ../osdep.h \
 ../debug/debug.h ../bxversion.h ../gui/siminterface.h ../state_file.h \
 ../cpu/cpu.h ../cpu/lazy_flags.h ../memory/memory.h ../pc_system.h \
 ../gui/gui.h ../gui/control.h ../iodev/iodev.h ../iodev/pci.h \
 ../iodev/vga.h ../iodev/cmos.h ../iodev/dma.h ../iodev/floppy.h \
 ../iodev/harddrv.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 \
 ../instrument/stubs/instrument.h
linux.o: linux.cpp ../bochs.h ../config.h ../osdep.h ../debug/debug.h \
 ../bxversion.h ../gui/siminterface.h ../state_file.h ../cpu/cpu.h \
 ../cpu/lazy_flags.h ../memory/memory.h ../pc_system.h ../gui/gui.h \
 ../gui/control.h ../iodev/iodev.h ../iodev/pci.h ../iodev/vga.h \
 ../iodev/cmos.h ../iodev/dma.h ../iodev/floppy.h ../iodev/harddrv.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 \
 ../instrument/stubs/instrument.h syscalls-linux.h
sim2.o: sim2.cpp ../bochs.h ../config.h ../osdep.h ../debug/debug.h \
 ../bxversion.h ../gui/siminterface.h ../state_file.h ../cpu/cpu.h \
 ../cpu/lazy_flags.h ../memory/memory.h ../pc_system.h ../gui/gui.h \
 ../gui/control.h ../iodev/iodev.h ../iodev/pci.h ../iodev/vga.h \
 ../iodev/cmos.h ../iodev/dma.h ../iodev/floppy.h ../iodev/harddrv.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 \
 ../instrument/stubs/instrument.h
