##
## Copyright (C) 1990-99 DMS Decision Management Systems Ges.m.b.H.
##
## This program 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
##
## $Id: Makefile,v 1.77 2000/05/23 18:29:12 graf Exp $
##

TOPDIR =	.

# THE NAME OF THIS DIRECTORY
SOURCEDIR =	$(shell pwd)

SUBDIRS =	util compiler jperf optgen msggen			\
		classfile optimize backend lexgen			\
		ksm dis memcnt kjc					\
		sqlc mkjc xtype xlib xkjc xoper				\
		lpr mailer vlib vkjc dbi ikjc kopi

PACKAGEDIR =	at/dms

TEMPDIR =	/tmp
JARDIR =	/extra/kopi/jars
#VERSION =	-1.4F
VERSION =	-1.4F-egp1
ZIPDIR =	/extra/kopi/download
DOCDIR =	$(SOURCEDIR)/../doc/kopi/doc

## ----------------------------------------------------------------------
## TOOLS

JAVA =		java

JAVAC =		jikes +E +P

JCC =		$(JAVA) -mx100000000 antlr.Tool

ZIP =		zip -r -q -9

JAR =		jar cvf

## ----------------------------------------------------------------------
## FILES

BASEFILES =	README Makefile Make.Defs util compiler

KJCFILES =	$(BASEFILES)						\
		classfile optimize backend  dis ksm kjc ikjc jperf	\
		lexgen kopi optgen msggen

XKJCFILES =	$(KJCFILES)						\
		xkjc mkjc sqlc xlib xoper xtype

SQLCFILES =	$(BASEFILES)						\
		sqlc

DBIFILES =	$(SQLCFILES)						\
		dbi 

LPRFILES =	$(BASEFILES)						\
		lpr

MAILERFILES =	$(BASEFILES)						\
		mailer

KOPIFILES =	$(XKJCFILES) $(DBIFILES) $(LPRFILES) $(MAILERFILES)	\
		resource vkjc vlib

## ----------------------------------------------------------------------
## RULES

default:	build

## ----------------------------------------------------------------------
## DISTRIBUTION

release:
		$(MAKE) clean
		$(MAKE) distrib

distrib:	kjc_distrib xkjc_distrib sqlc_distrib dbi_distrib	\
		lpr_distrib mailer_distrib kopi_distrib

ANTLRRUNTIME =	ANTLRException ASTFactory LLkParser			\
		MismatchedTokenException NoViableAltException		\
		Parser ParserException ParserSharedInputState		\
		Token TokenBuffer TokenQueue TokenStream		\
		BaseAST CommonAST collections/impl/BitSet		\
		collections/AST TreeParser ASTNULLType

KJCJARFILES =	gnu $(ANTLRRUNTIME:%=antlr/%.class)

kjc_distrib:
		$(MAKE) distribution DISTRIB=kjc FILES='$(KJCFILES)'	\
		JARFILES='$(KJCJARFILES)' JAR='jar cvmf'		\
		MANIFEST=$(SOURCEDIR)/kjc/manifest

xkjc_distrib:
		$(MAKE) distribution DISTRIB=xkjc FILES='$(XKJCFILES)'	\
		JARFILES='$(KJCJARFILES)'

sqlc_distrib:
		$(MAKE) distribution DISTRIB=sqlc FILES='$(SQLCFILES)'	\
		JARFILES='gnu antlr'

dbi_distrib:
		$(MAKE) distribution DISTRIB=dbi FILES='$(DBIFILES)'	\
		JARFILES='gnu antlr'

lpr_distrib:
		$(MAKE) distribution DISTRIB=lpr FILES='$(LPRFILES)'	\
		JARFILES='gnu'

mailer_distrib:
		$(MAKE) distribution DISTRIB=mailer FILES='$(MAILERFILES)'	\
		JARFILES='gnu'

kopi_distrib:
		$(MAKE) distribution DISTRIB=kopi FILES='$(KOPIFILES)'	\
		JARFILES='$(KJCJARFILES)'

$(CLASSROOT)/$(PACKAGEDIR)/README: $(SOURCEDIR)/README
		cp -p $< $@

$(CLASSROOT)/$(PACKAGEDIR)/Makefile: $(SOURCEDIR)/Makefile
		cp -p $< $@

$(CLASSROOT)/$(PACKAGEDIR)/Make.Defs: $(SOURCEDIR)/Make.Defs
		cp -p $< $@

distribution:	$(FILES:%=$(CLASSROOT)/$(PACKAGEDIR)/%)
		(							\
		  cd $(CLASSROOT);					\
		  $(JAR) $(MANIFEST) $(DISTRIB)$(VERSION)-bin.jar	\
			$(FILES:%=$(PACKAGEDIR)/%) $(JARFILES);		\
		  cd $(TEMPDIR);					\
		  rm -rf kopi;						\
		  mkdir kopi;						\
		  cp $(CLASSROOT)/$(DISTRIB)$(VERSION)-bin.jar kopi;	\
		  cp $(CLASSROOT)/$(DISTRIB)$(VERSION)-bin.jar $(JARDIR);\
		  cp -rf $(FILES:%=$(SOURCEDIR)/%) kopi;		\
		  cp -rf $(DOCDIR) kopi;				\
		  rm -rf `find kopi -name 'CVS'`;			\
		  tar cf $(DISTRIB)$(VERSION).tar kopi;			\
		  gzip -f $(DISTRIB)$(VERSION).tar;			\
		  cp $(DISTRIB)$(VERSION).tar.gz $(ZIPDIR);		\
		  rm -f $(DISTRIB)$(VERSION).zip;			\
		  $(ZIP) $(DISTRIB)$(VERSION).zip kopi;			\
		  cp $(DISTRIB)$(VERSION).zip $(ZIPDIR);		\
		)

## ----------------------------------------------------------------------
## GLOBAL DEFINITIONS

include $(TOPDIR)/Make.Defs
