# Copyright 1997,1998 Alexandre Oliva <oliva@dcc.unicamp.br>

# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.

# This program 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
# General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

GUARANA_VERSION = 1.3
KAFFE_VERSION = 0.10.1
#KAFFE_SNAPSHOT_SUFFIX = _1998-05-12

KAFFE_TGZDIR = .
KAFFE_DIR = kaffe-$(KAFFE_VERSION)
KAFFE_TGZ = $(KAFFE_TGZDIR)/$(KAFFE_DIR).tar.gz
#UPDATE_FILE = kaffe_to$(KAFFE_SNAPSHOT_SUFFIX).patch
UPDATE_FILE = /dev/null
PATCH_FILE = kaffe-$(KAFFE_VERSION).patch

GUARANA_DIR = guarana-$(GUARANA_VERSION)
DIST_TAR_FILE = $(GUARANA_DIR).tar.gz

all: decompress-stmp update-stmp patch-stmp

decompress-stmp: $(KAFFE_TGZ)
	for f in $(KAFFE_TGZ); do gzip -dc $$f | tar -xf -; done
	echo decompressed >$@

update-stmp: $(UPDATE_FILE)
	test -z "$(KAFFE_SNAPSHOT_SUFFIX)" || (cd $(KAFFE_DIR) && patch -p1) < $(UPDATE_FILE)
	echo patched >$@

patch-stmp: $(PATCH_FILE)
	(cd $(KAFFE_DIR) && patch -p1) < $(PATCH_FILE)
	mv guarana-kaffe $(KAFFE_DIR)/kaffe/kaffevm/guarana
	ln -s $(KAFFE_DIR)/kaffe/kaffevm/guarana guarana-kaffe
	echo patched > $@

.PHONY: clean
clean:
	if [ -f $(KAFFE_DIR)/Makefile ]; then \
	    cd $(KAFFE_DIR) && make clean; \
	fi
	-rm -f patch-stmp update-stmp decompress-stmp guarana-kaffe
	-mv $(KAFFE_DIR)/kaffe/kaffevm/guarana guarana-kaffe
	rm -rf $(KAFFE_DIR)

dist: $(DIST_TAR_FILE)

$(DIST_TAR_FILE):
	dir=`pwd` && cd /tmp && mkdir guarana-$$$$ && cd guarana-$$$$ && \
	cvs -q export -r guarana_`echo $(GUARANA_VERSION) | sed 's/\./-/g'` -d $(GUARANA_DIR) guarana && \
	{ test -z "$(KAFFE_SNAPSHOT_SUFFIX)" || cvs -q rdiff -u -r kaffe_`echo $(KAFFE_VERSION) | sed 's/\./-/g'` -r kaffe_`echo $(KAFFE_VERSION) | sed 's/\./-/g'`$(KAFFE_SNAPSHOT_SUFFIX) kaffe > $(GUARANA_DIR)/$(UPDATE_FILE); } && \
	cvs -q rdiff -u -r kaffe_`echo $(KAFFE_VERSION) | sed 's/\./-/g'`$(KAFFE_SNAPSHOT_SUFFIX) -r guarana_`echo $(GUARANA_VERSION) | sed 's/\./-/g'` kaffe > $(GUARANA_DIR)/$(PATCH_FILE) && \
	tar -cf - $(GUARANA_DIR) | gzip -9c > $$dir/$@ && \
	cd /tmp && rm -rf guarana-$$$$
