#############################################################
# This file contains makefile definitions for packages of
# Java source code. It extends the definitions for generic
# libraries that are given in "libdefs".
#
# Requires that JAVA_SOURCES contain the list of Java source files
# Additional dependencies between the Java source files can also be specified.

#### Definitions ####

LCLOBBER = $(LLCLOBBER)
LDIRT = stamp stamp.* *.data *.externs *.[ch] exports/* $(LLDIRT)

CCCINCS = $(CCINCS)
# CCOPTS = $(CCOPTS)

tobadir = $(TOP)/fe/toba

srcdir_ = $(srcdir)/

ifeq ($(HOSTTYPE),alpha)
_JAVA_SOURCES = $(JAVA_SOURCES/^/$(srcdir_))
_CLASS_SOURCES = $(CLASS_SOURCES/^/$(srcdir_))
_CCSRCS = $(CCSRCS/^/$(srcdir_))
else
_JAVA_SOURCES = $(addprefix $(srcdir_),$(JAVA_SOURCES))
_CLASS_SOURCES = $(addprefix $(srcdir_),$(CLASS_SOURCES))
_CCSRCS = $(addprefix $(srcdir_),$(CCSRCS))
endif

#### Rules ####

.SUFFIXES: .c .java .class .h .data

exports: Makefile stamp.toba stamp

stamp.toba: $(TOP)/fe/toba/toba/stamp $(TOP)/fe/toba/bin/toba
	$(RM) stamp

stamp: $(_JAVA_SOURCES) $(_CLASS_SOURCES) $(_CCSRCS) 
	TOPSRC=$(TOPSRC) \
	TOP=$(TOP) \
	srcdir=$(srcdir) \
	tobadir=$(tobadir) \
	JAVA_VDIRS='$(JAVA_VDIRS)' \
	CC='$(CC)' \
	CFLAGS='$(CFLAGS)' \
	TOBAOPTS='$(TOBAOPTS)' \
	RM='$(RM)' \
	ECHO='$(ECHO)' \
	TOUCH='$(TOUCH)' \
	AR='$(AR)' \
	RANLIB='$(RANLIB)' \
	$(TOP)/fe/toba/bin/toba $(_JAVA_SOURCES) $(_CLASS_SOURCES) $(_CCSRCS)
	$(TOUCH) $@
	$(TOUCH) stamp.toba
