/*
 Copyright (c) 1991-1997 Xerox Corporation.  All Rights Reserved.

 Unlimited use, reproduction, and distribution of this software is
 permitted.  Any copy of this software must include both the above
 copyright notice of Xerox Corporation and this paragraph.  Any
 distribution of this software must comply with all applicable United
 States export control laws.  This software is made available AS IS,
 and XEROX CORPORATION DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
 INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY
 AND FITNESS FOR A PARTICULAR PURPOSE, AND NOTWITHSTANDING ANY OTHER
 PROVISION CONTAINED HEREIN, ANY LIABILITY FOR DAMAGES RESULTING FROM
 THE SOFTWARE OR ITS USE IS EXPRESSLY DISCLAIMED, WHETHER ARISING IN
 CONTRACT, TORT (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, EVEN IF
 XEROX CORPORATION IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/ 
/* $Id: Imakefile,v 1.11 1997/11/25 03:38:05 janssen Exp $ */
/* Chris Jacobi, November 24, 1997 1:55 pm PST */
/* Last edited by Mike Spreitzer November 6, 1997 10:27 pm PST */

#ifdef ADD_SECURE_TRANSPORT
#ifdef INCLUDE_SSL_SECMECH
SSL=../../GSS/ssl/libgss-ssl.a
SSLINCL=-I../../GSS/ssl $(RSAINCL) $(DESINCL)
#endif
SECURITYLIBS = $(SSL) ../../GSS/kernel/libgss.a $(RSALIBS) $(DESLIBS)
SECURITYINCLUDES = -I../../GSS/kernel $(SSLINCL)
#endif

ILUCINCLUDES = -I../../runtime/c -I../../runtime/kernel $(SECURITYINCLUDES)
ILUCLIBS = ../../runtime/c/libilu-c.a ../../runtime/kernel/libilu.a $(SECURITYLIBS)
C_STUBBER = ../../stubbers/c/c-stubber

NormalObjectRule()

ILUHEADERFILES=../../runtime/kernel/iluxport.h ../../runtime/kernel/ilubasic.h ../../runtime/kernel/iludebug.h ../../runtime/kernel/iluconf.h ../../runtime/kernel/iluerror.h ../../runtime/kernel/iluerrs.h ../../runtime/kernel/iluhash.h

CosNaming.h CosNaming-true.c CosNaming-surrogate.c CosNaming-common.c : CosNaming.idl ../../stubbers/c/c-stubber ../../stubbers/parser/ilu.isl
	ILUPATH=../../stubbers/parser:. ; export ILUPATH ; ../../stubbers/c/c-stubber CosNaming.idl

CleanTarget(CosNaming.h CosNaming-surrogate.c CosNaming-common.c CosNaming-true.c)

ObjectTarget(CosNaming-common.o)
ObjectTarget(CosNaming-surrogate.o)
ObjectTarget(CosNaming-true.o)

ObjectTarget(NamingImpl.o)
NamingImpl.o : CosNaming.h NamingImpl.c ${ILUHEADERFILES}

ILUCProgramTarget(ILUCosNaming, NamingImpl.o CosNaming-true.o CosNaming-common.o,,)
InstallProgram(ILUCosNaming, $(DESTDIR)/bin)
InstallRO(CosNaming.idl, $(DESTDIR)/interfaces)
InstallRO(ILUCosNaming.1, $(DESTDIR)/man/man1)

#ifdef ADD_C_LANGUAGE
/*************************************************************************
/*************************************************************************
/*************************************************************************
/******  C
/******
/******/

LibraryTarget(libCosNaming-c.a, CosNaming-surrogate.o CosNaming-common.o)

InstallLibrary(libCosNaming-c.a, $(DESTDIR)/lib)
InstallRO(CosNaming.h, $(DESTDIR)/include)
#endif

#ifdef ADD_PYTHON_LANGUAGE
/*************************************************************************
/*************************************************************************
/*************************************************************************
/******  Python
/******
/******/

CosNaming.py : CosNaming.idl
	ILUPATH=../../stubbers/parser:. ; export ILUPATH ; ../../stubbers/python/python-stubber ./CosNaming.idl

InstallRO(CosNaming.py, $(DESTDIR)/lib)
CleanTarget(CosNaming.py CosNaming__skel.py)
#endif

#ifdef ADD_COMMONLISP_LANGUAGE
/*************************************************************************
/*************************************************************************
/*************************************************************************
/******  Common Lisp
/******
/******/

cos-naming-basics.lisp cos-naming-server-procs.lisp cos-naming-sysdcl.lisp : CosNaming.idl
	ILUPATH=../../stubbers/parser:. ; export ILUPATH ; ../../stubbers/lisp/lisp-stubber ./CosNaming.idl

InstallRO(cos-naming-sysdcl.lisp cos-naming-basics.lisp, $(DESTDIR)/lisp)
CleanTarget(cos-naming-basics.lisp cos-naming-server-procs.lisp cos-naming-sysdcl.lisp)
#endif


#ifdef ADD_JAVA_LANGUAGE
/*************************************************************************
/******  java
/******
/******/

#ifdef SpecialILUJavaCompTarget
#undef SpecialILUJavaCompTarget
#endif


#define SpecialILUJavaCompTarget(touchtarget,sources,extrapendencies)	@@\
all:: touchtarget 								@@\
										@@\
touchtarget: sources extrapendencies					@@\
	CLASSPATH="$(JAVA_CLASS_DIR):$(JAVA_ILU_CLASS_DIR):../../runtime/java/classes"; export CLASSPATH ; $(JAVAC) -d "$(JAVA_CLASS_DIR)" sources @@\
	touch touchtarget							@@\
										@@\
clean::									@@\
	-rm -f touchtarget							@@\
	-rm -rf $(JAVA_CLASS_DIR)*.class


#ifdef SpecialILUJavaStubTarget
#undef SpecialILUJavaStubTarget
#endif


#define SpecialILUJavaStubTarget(touchtarget,islfiles)				@@\
										@@\
all:: touchtarget								@@\
										@@\
touchtarget: islfiles $(JAVA_STUBBER)					@@\
	ILUPATH=.:../../stubbers/parser $(JAVA_STUBBER) $(JAVA_STUB_SWITCHES) islfiles	@@\
	touch touchtarget							@@\
										@@\
clean::									@@\
	-rm -f touchtarget


JAVA_CLASS_DIR = ./classes
JAVA_STUB_DIR = ./javastubs
JAVA_STUB_SWITCHES = -prefix org.omg

BuildDir($(JAVA_CLASS_DIR))
BuildDir($(JAVA_STUB_DIR))

ALL_JAVA_FILES = *java
STUB_SOURCES = \
	$(JAVA_STUB_DIR)/org/omg/CosNaming/$(ALL_JAVA_FILES) \
	$(JAVA_STUB_DIR)/org/omg/CosNaming/NamingContextPackage/$(ALL_JAVA_FILES)

SpecialILUJavaStubTarget(make.java_has_been_stubbed, CosNaming.idl)

SpecialILUJavaCompTarget(make.java_stubs_compiled, $(STUB_SOURCES), make.java_has_been_stubbed)


/*
 * make a java jar file...
 */

CleanTarget(CosNaming.jar)

all:: CosNaming.jar

CosNaming.jar:
	cd $(JAVA_CLASS_DIR); $(JAR) -0cf ../CosNaming.jar *

InstallRO(CosNaming.jar, $(DESTDIR)/lib)

CleanTarget(make.java_has_been_stubbed make.java_stubs_compiled CosNaming.jar)
#endif


