# Makefile.in for kaffevm - a Java(tm) compatible virtual machine.
# for MSVC
# Copyright (c) 1996 T. J. Wilkinson & Associates, London, UK.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# Written by Tim Wilkinson <tim@tjwassoc.demon.co.uk>, 1996.

srcdir=		../../../lib/native
prefix=		
exec_prefix=	
libdir=		c:/kaffe/lib
INSTALL=	
INSTALL_DATA=	copy
CC=		cl
PIC=		
LDFLAGS=	
LDTAIL=		
KVER=		0.5p3
OBJEXT=.obj
LIBEXT=.dll

LINK32=link.exe

CFLAGS=		/nologo /Zp1 /MDd /W3 /Gm /GX /Zi /Od \
 /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /YX \
 /c /Fo./ -I$(srcdir) -I../support -I$(srcdir)/../support \
 -I../../config -I$(srcdir)/../../config -I../../kaffevm

LIBNAME=	libkaffe_native
LIBX=		$(LIBNAME)$(LIBEXT).$(KVER)
LLIB=		$(LIBNAME)$(LIBEXT)

OBJECT_IO=	FileDescriptorStub$(OBJEXT) \
		FileDescriptor$(OBJEXT) \
		FileInputStreamStub$(OBJEXT) \
		FileInputStream$(OBJEXT) \
		FileOutputStreamStub$(OBJEXT) \
		FileOutputStream$(OBJEXT) \
		FileStub$(OBJEXT) \
		File$(OBJEXT) \
		RandomAccessFileStub$(OBJEXT) \
		RandomAccessFile$(OBJEXT)

OBJECT_LANG=	ClassLoaderStub$(OBJEXT) \
		ClassLoader$(OBJEXT) \
		ClassStub$(OBJEXT) \
		Class$(OBJEXT) \
		CompilerStub$(OBJEXT) \
		Compiler$(OBJEXT) \
		DoubleStub$(OBJEXT) \
		Double$(OBJEXT) \
		FloatStub$(OBJEXT) \
		Float$(OBJEXT) \
		MathStub$(OBJEXT) \
		Math$(OBJEXT) \
		ObjectStub$(OBJEXT) \
		Object$(OBJEXT) \
		ProcessReaperStub$(OBJEXT) \
		ProcessReaper$(OBJEXT) \
		RuntimeStub$(OBJEXT) \
		Runtime$(OBJEXT) \
		SecurityManagerStub$(OBJEXT) \
		SecurityManager$(OBJEXT) \
		SystemStub$(OBJEXT) \
		System$(OBJEXT) \
		ThreadStub$(OBJEXT) \
		Thread$(OBJEXT) \
		ThrowableStub$(OBJEXT) \
		Throwable$(OBJEXT) \
		UNIXProcessStub$(OBJEXT) \
		UNIXProcess$(OBJEXT)

OBJECT_UTIL=	DateStub$(OBJEXT) \
		Date$(OBJEXT)

OBJECT=	$(OBJECT_LANG) $(OBJECT_IO) $(OBJECT_UTIL)

all:	links $(LLIB)

{$(srcdir)/java.io}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{$(srcdir)/java.lang}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{$(srcdir)/java.util}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{$(srcdir)/java.io.stubs}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{$(srcdir)/java.lang.stubs}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{$(srcdir)/java.util.stubs}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

{.}.c$(OBJEXT):
		$(CC) $(CFLAGS) -c $(PIC) $<

LINK32_FLAGS=../../kaffevm/libkaffe_vm.lib kernel32.lib user32.lib gdi32.lib winspool.lib\
 comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib\
 odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /incremental:yes\
 /pdb:$(LIBNAME).pdb /debug /machine:I386 /def:$(LIBNAME).def\
 /out:$(LLIB) /implib:$(LIBNAME).lib 
DEF_FILE= \
	$(LIBNAME).def

$(LLIB) : $(DEF_FILE) $(OBJECT)
    $(LINK32) @<<
  $(LINK32_FLAGS) $(OBJECT)
<<

links:		..\support\jtypes.h $(LIBNAME).def ..\..\config\config.h

..\support\jtypes.h:	..\..\..\config\i386\win32\msvc\jtypes.h
		copy ..\..\..\config\i386\win32\msvc\jtypes.h ..\support\jtypes.h

$(LIBNAME).def: ..\..\..\config\i386\win32\msvc\$(LIBNAME).def
		copy ..\..\..\config\i386\win32\msvc\$(LIBNAME).def $(LIBNAME).def

..\..\config\config.h:	..\..\..\config\i386\win32\msvc\config.h
		copy ..\..\..\config\i386\win32\msvc\config.h ..\..\config\config.h



clean:
		del *.obj
		del *.lib
		del *.dll
	-@erase $(LIBNAME).dll
	-@erase $(LIBNAME).exp
	-@erase $(LIBNAME).ilk
	-@erase $(LIBNAME).lib
	-@erase $(LIBNAME).pdb
	-@erase vc40.idb
	-@erase vc40.pdb
	-@erase vc41.pch

distclean:	clean
		del ..\support\jtypes.h
		del $(LIBNAME).def
		del ..\..\config\config.h
		del Makefile

install:
        if not exist "$(libdir)/$(NULL)" mkdir "$(libdir)"
		$(INSTALL_DATA) $(LLIB) $(libdir)/$(LLIB)
		del $(libdir)/$(LLIB)
