# Makefile.in for kaffevm - a Java(tm) compatible virtual machine.
#
# Copyright (c) 1996 Systems Architecture Research Centre,
#		   City University, 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@sarc.city.ac.uk>, February 1996.

VPATH=		.:./intrp
srcdir=		.
prefix=		@prefix@
exec_prefix=	@exec_prefix@
libdir=		@libdir@
INSTALL=	@INSTALL@
INSTALL_DATA=	@INSTALL_DATA@
LN=		cp
CC=		/boot/develop/tools/mwcc
CXX = $(CC)
LD = $(CC)
PIC=		
LDFLAGS=	-xms
LDTAIL=		-export pragma -lbe -ldll
OBJEXT=		.o
LIBEXT=		.so

jit_CFLAGS=	-DTRANSLATOR -I$(srcdir)/jit
intrp_CFLAGS=	-DINTERPRETER -I$(srcdir)/intrp

CFLAGS= -DBEOS -I. -I$(srcdir) -I$(srcdir)/../config -I../config $(intrp_CFLAGS)

LIBNAME=	libkaffe_vm
LIB=		$(LIBNAME)$(LIBEXT).$(KVER)
LLIB=		$(LIBNAME)$(LIBEXT)

COMMON=\
		code$(OBJEXT) \
		lookup$(OBJEXT) \
		external$(OBJEXT) \
		constants$(OBJEXT) \
		classMethod$(OBJEXT) \
		readClass$(OBJEXT) \
		findClass$(OBJEXT) \
		baseClasses$(OBJEXT) \
		object$(OBJEXT) \
		itypes$(OBJEXT) \
		gc$(OBJEXT) \
		thread$(OBJEXT) \
		locks$(OBJEXT) \
		threadCalls$(OBJEXT) \
		support$(OBJEXT) \
		soft$(OBJXT)\
		zextract$(OBJEXT)\
		flags$(OBJEXT) \
		md$(OBJEXT)\
		be$(OBJEXT)

intrp_OBJECTS=\
		exception$(OBJEXT) \
		machine$(OBJEXT)

jit_OBJECTS=\
		basecode$(OBJEXT) \
		funcs$(OBJEXT) \
		icode$(OBJEXT) \
		labels$(OBJEXT) \
		registers$(OBJEXT) \
		slots$(OBJEXT) \
		machine$(OBJEXT) \
		seq$(OBJEXT) \
		exception$(OBJEXT)

OBJECT=		$(COMMON) $(intrp_OBJECTS)

all:		mkkaffevm

mkkaffevm:	$(LIB)

$(LIB):		$(OBJECT)
		$(LD) $(LDFLAGS) -o $(LIB) $(OBJECT) $(LDTAIL)
		rm -f $(LLIB)
		$(LN) $(LIB) $(LLIB)

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

clean:
		rm -f $(LIB) $(LLIB) $(OBJECT)

distclean:	clean
		rm -f md.h md.c jit.def icode.h
		rm -f Makefile config.log config.status

install:
		test -d $(libdir) || mkdir -p $(libdir)
		$(INSTALL_DATA) $(LIB) $(libdir)/$(LIB)
		rm -f $(libdir)/$(LLIB)
		$(LN) $(LIB) $(libdir)/$(LLIB)
