#
# Makefile for IDLflex -- A flexible, generic code generator for CORBA IDL
#
# Copyright (C) 2000  Hans Reiser, AspectIX Research Team
#                     University of Erlangen-Nuernberg, Germany
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License.
# The full text of the license can be found in the LICENSE.txt file.
#
# Read the README.txt file before you run make!
#
# $Id: Makefile,v 1.4 2001/09/10 13:30:03 fzhauck Exp $
#
# ----------------------------------------------------------------------------
# make                 to compile everything
# ----------------------------------------------------------------------------
#
# CONFIGURATION
#
# Edit the following definitions to match the correct paths
# (absolut path names should be used):

# Define Java binaries

JAVA_HOME = /local/java-1.2.2

JAVA = $(JAVA_HOME)/bin/java
JAVAC = $(JAVA_HOME)/bin/javac
JAR = $(JAVA_HOME)/bin/jar
JAVADOC = $(JAVA_HOME)/bin/javadoc


# Where is test and rm

TEST = /usr/bin/test
RM = /usr/bin/rm


#
# End of user configuration section
# ----------------------------------------------------------------------------


# Files to compiler

FILES_BASE = src/org/aspectix/IDLflex/IRObj/*.java \
	     src/org/aspectix/IDLflex/IDLflexMain.java \
	     src/org/aspectix/IDLflex/Counter.java \
	     src/org/aspectix/IDLflex/IRBase.java
FILES_MAPPING = src/org/aspectix/IDLflex/mapping/*.java


# Class paths for external libraries (compiling and script files)

CP_JAVAORB = src:lib/JavaORBPatches.jar:lib/JavaORB.jar
#CP_ORBACUS = src:lib/OB.jar

# Class path for compiler

CP_CORBA    = lib/JavaORB.jar
CP_COMPILER = src:lib/xerces.jar:$(CP_CORBA)
CP_MAPPING  = $(CP_COMPILER):lib/cf.jar
#CP_JAVADOC  = $(CP_JAVAORB):$(CP_ORBACUS):$(CP_MAPPING)
CP_JAVADOC  = $(CP_JAVAORB):$(CP_MAPPING)


# ----------------------------------------------------------------------------

# Default action

default: jar


# Compile all classes

compile:
	@echo 'Compiling IDLflex ...'
	@$(JAVAC) -deprecation -classpath $(CP_COMPILER) $(FILES_BASE)
	@echo 'Compiling adaptor to JavaORB ...'
	@$(JAVAC) -classpath $(CP_JAVAORB) \
	    			src/org/aspectix/IDLflex/IR_JavaORB.java
#	@echo 'Compiling adaptor to ORBacus ...'
#	@$(JAVAC) -classpath $(CP_ORBACUS) \
#				src/org/aspectix/IDLflex/IR_ORBacus.java
	@echo 'Compiling standard mappings ...'
	@$(JAVAC) -classpath $(CP_MAPPING) $(FILES_MAPPING)


# Create jar file for IDLflex

jar: compile
	@echo "Generating IDLflex jar file ..."
	@cd src; $(JAR) cf ../lib/IDLflex.jar `find org -name "*.class"`
	@echo "Generating IDLflex mapping jar file ..."
	@cd src; $(JAR) cf ../lib/IDLflexMapping.jar \
		`find org/aspectix/IDLflex/mapping -name "*.class"`


# Clean up directories

clean:
	@echo 'Cleaning directories ...'
	@$(RM) -f src/org/aspectix/IDLflex/*.class
	@$(RM) -f src/org/aspectix/IDLflex/IRObj/*.class
	@$(RM) -f src/org/aspectix/IDLflex/mapping/*.class
	@$(RM) -f src/org/aspectix/IDLflex/*~
	@$(RM) -f src/org/aspectix/IDLflex/IRObj/*~
	@$(RM) -f src/org/aspectix/IDLflex/mapping/*~
	@$(RM) -f src/org/aspectix/IDLflex/#*#
	@$(RM) -f src/org/aspectix/IDLflex/IRObj/#*#
	@$(RM) -f src/org/aspectix/IDLflex/mapping/#*#
	@$(RM) -rf javadoc
	@$(RM) -rf test/HelloApp


# Clean up everything

cleanall: clean
	@echo 'Deleting jar files ...'
	@$(RM) -f lib/IDLflex.jar lib/IDLflexMapping.jar


# Create java docs

javadoc: 
	@echo 'Creating java docs ...'
	@$(TEST) -d javadoc || mkdir javadoc
	@$(JAVADOC) -classpath $(CP_JAVADOC) -d javadoc -private \
		org.aspectix.IDLflex org.aspectix.IDLflex.IRObj \
		org.aspectix.IDLflex.mapping


# Make all

all: jar javadoc


# Make distribution

distribution: jar clean

