/*
 BeginILUCopyright
 
 Copyright (c) 1991-1998 Xerox Corporation.  All Rights Reserved.
 
 Unlimited use, reproduction, modification, and distribution of this
 software and modified versions thereof is permitted.  Permission is
 granted to make derivative works from this software or a modified
 version thereof.  Any copy of this software, a modified version
 thereof, or a derivative work must include both the above copyright
 notice of Xerox Corporation and this paragraph.  Any distribution of
 this software, a modified version thereof, or a derivative work 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.
 
 EndILUCopyright
$Id: Imakefile,v 1.175 1998/10/29 00:25:32 jacobi Exp $
*/
/* Chris Jacobi, October 28, 1998 4:18 pm PST */


/* ======================================================== */

/* Dealing with JNI versus ONI
 *
 * Manual setup; non of our builds are setting up JNI automatically
 */

/* #define JAVA_JNI 999999999  */

#ifdef JAVA_JNI
#define DO_JNI 1
JNI_INCLUDES = -DJNI
GNH_FLAG = -jni
#else
#define DONT_JNI 1
JNI_INCLUDES = 
GNH_FLAG = -oni
#endif

/* ======================================================== */


/* NETSCAPE 4.05
 * This about the "vm" FROM netscape; this is not used
 * for activator (plugin) which is a "vm" from sun, even if
 * it would run within netscape browser.
 *
 * This has only been tested very lightly and only
 * on sparc station using netscape 4.05 with jdk 1.1 
 * patch on solaris 2.5.1.
 * Ilu system must be on the class path (NATIVE CODE)
 * Ilu stubs must be on the class path (CLASSES MUST NOT BE UNLOADING)
 * 
 * The build includes a few manual steps; Look at 
 * ilusource/runtime/java/IluMozillaExtra.java
 * for more instructions; sorry, this file needs editing.
 *
 * Alternate good news:  build for activator (plugin) does not need
 * any extra flags but is identical to build for JRE.  Except setup
 * junk...
 */

/* #define JAVA_NETSCAPE_VM 999999999 */

#ifdef JAVA_NETSCAPE_VM
#undef HAVE_POLL
NETSCAPE_INCLUDES = -DNetscapeVM_ONI
#else
NETSCAPE_INCLUDES = 
#endif


/* ======================================================== */

/* native threads versus green threads */
/*
 * TWO symbols can be defined as _D flags for the C compiler
 *
 * -DNATIVE
 *	NATIVE is used in java header files from sun
 *  	Define this exactly when needed
 *
 * -DILUJAVA_NATIVE_THREADS
 *	ILUJAVA_NATIVE_THREADS is used by ilu's own header and c files
 * 	This may be defined even when not needed
 */


#ifdef JAVA_USE_NATIVE_THREADS

ILUNINCL = -DILUJAVA_NATIVE_THREADS

#else

/* define it anyway ... less system dependencies at cost of missing an inline... */
ILUNINCL = -DILUJAVA_NATIVE_THREADS

#endif

OMG_PATH_PART = org/omg

/* ======================================================== */

#ifdef JAVA_BOOTCLASSES_IN_JRE
BOOT_CLASSES = $(JAVA_HOME)/jre/lib/rt.jar
SOURCE_PATH_SWITCH = -sourcepath ./jsrc
#else
BOOT_CLASSES = $(JAVA_HOME)/lib/classes.zip
SOURCE_PATH_SWITCH = 
#endif

/* ======================================================== */
/* ======================================================== */

make.describe0:	make.gnh0 
	echo Make options
#ifdef JAVA_JNI
	    echo "JAVA_JNI DEFINED"
#else
	    echo "JAVA_JNI NOT defined"
#endif
#ifdef HAVE_POLL
	    echo "HAVE_POLL DEFINED"
#else
	    echo "HAVE_POLL NOT defined"
#endif
#ifdef JAVA_BOOTCLASSES_IN_JRE
	    echo "JAVA_BOOTCLASSES_IN_JRE DEFINED"
#else
	    echo "JAVA_BOOTCLASSES_IN_JRE NOT defined"
#endif
#ifdef DO_JNI
	    echo "DO_JNI DEFINED"
#else
	    echo "DO_JNI NOT defined"
#endif
#ifdef JAVA_USE_NATIVE_THREADS
	    echo "JAVA_USE_NATIVE_THREADS DEFINED"
#else
	    echo "JAVA_USE_NATIVE_THREADS NOT defined"
#endif
#ifdef JAVA_DONTUSE_POLL
	    echo "JAVA_DONTUSE_POLL DEFINED"
#else
	    echo "JAVA_DONTUSE_POLL NOT defined"
#endif
#ifdef JDK12FCS
	    echo "JDK12FCS DEFINED"
#else
	    echo "JDK12FCS NOT defined"
#endif
#ifdef JDK12
	    echo "JDK12 DEFINED"
#else
	    echo "JDK12 NOT defined"
#endif
	echo "JAVA_SRC_DIR is $(JAVA_SRC_DIR)"
	echo "JAVA_CLASS_DIR is $(JAVA_CLASS_DIR)"
	echo "JAVA_WAITTECH_CALL is $(JAVA_WAITTECH_CALL)"
	echo "CFLAGS is $(CFLAGS)"
	echo "ILUCINCLUDES is $(ILUCINCLUDES)"
	echo "ILUNINCL is $(ILUNINCL)"
	touch make.describe0


/* ======================================================== */


/*
 * Compiling a java source file
 * Use this for ilu itself but not for test programs
 * (Test programs need to import the java-ilu classes and shouldn't install)
 */
#define JavaCompileTarget(compiled, sources, extraSources)			@@\
all:: compiled extraSources								@@\
											@@\
compiled : sources									@@\
	$(JAVAC) -g -d "$(JAVA_CLASS_DIR)" -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" $(SOURCE_PATH_SWITCH)  sources @@\
											@@\
install:: compiled									@@\
	@sh -c 'for i in compiled;  do  \						@@\
		if test -r $(DESTDIR)/lib/$$i ; then \				@@\
			$(RM) -f $(DESTDIR)/lib/$$i ; fi ; \			@@\
		echo "installing $$i..." ; \						@@\
		$(CP) $$i $(DESTDIR)/lib/$$i ; \					@@\
		$(CHMOD_READONLY) $(DESTDIR)/lib/$$i ; \		@@\
          done'									@@\
											@@\
CleanTarget(compiled)



/*
 * Stubbing a java class 
 * (generating both .h and .c stubs)
 * (used if the java class defines native methods)
 */

#ifdef DO_JNI

#define JStubHCTargets(stubdir, stubfiles, sourcefile, classname)		@@\
											@@\
all:: stubfiles										@@\
											@@\
stubfiles: sourcefile									@@\
	$(RM) $@									@@\
	$(JAVAH) -jni -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" -d stubdir classname @@\
											@@\
CleanTarget(stubfiles)

#else

#ifdef JDK12FCS
HSTUB_OLD = -old
#else
HSTUB_OLD =
#endif

#define JStubHCTargets(stubdir, stubfiles, sourcefile, classname)		@@\
											@@\
all:: stubfiles										@@\
											@@\
stubfiles: sourcefile									@@\
	$(RM) $@									@@\
	$(JAVAH) $(HSTUB_OLD) -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" -d stubdir -stubs classname @@\
	$(JAVAH) $(HSTUB_OLD) -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" -d stubdir classname	@@\
											@@\
CleanTarget(stubfiles)

#endif




/*
 * Stubbing a java class 
 * (generating .h stubs only)
 * (used if the java class defines fields accessed by native methods of other classes)
 */
#define JStubHTarget(stubdir, stubfile, sourcefile, classname)	@@\
											@@\
all:: stubfile										@@\
											@@\
stubfile : sourcefile								@@\
	$(RM) $@									@@\
	$(JAVAH) $(HSTUB_OLD) -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" -d stubdir classname	@@\
											@@\
CleanTarget(stubfile)


/*
 * Like ObjectTarget but the .c and the o are both in subdir.
 * (This is not used for JNI) 
 */
#define ObjectTargetSDir(subdir, name)				@@\
all:: subdir/name.o							@@\
subdir/name.o:	subdir/name.c make.gnh $(SYSMACROS_FILE)	@@\
	$(RM) $@							@@\
	$(ANSI_C_COMPILER) -c $(CFLAGS) $(ILUCINCLUDES) subdir/name.c -o $@


/*
 * Like ObjectTarget but the .o goes into subdir 
 * (the .c is in .) 
 */
 
#ifdef JAVA_USE_NATIVE_THREADS
 
#define ObjectTargetXDir(name)				@@\
all:: $(BUILD_DIR)/name.o 							@@\
$(BUILD_DIR)/name.o:	name.c make.gnh $(SYSMACROS_FILE) 	@@\
	$(RM) $@							@@\
	$(ANSI_C_COMPILER) -c $(CFLAGS) $(ILUCINCLUDES) -I$(BUILD_DIR) $(ILUNINCL) name.c -o $@	@@\
$(BUILD_DIR_NATIVE_THREADS)/name.o:	name.c make.gnh $(SYSMACROS_FILE) 	@@\
	$(RM) $@							@@\
	$(ANSI_C_COMPILER) -c $(CFLAGS) $(ILUCINCLUDES) -I$(BUILD_DIR) -DNATIVE $(ILUNINCL) name.c -o $@

#else

#define ObjectTargetXDir(name)				@@\
all:: $(BUILD_DIR)/name.o 							@@\
$(BUILD_DIR)/name.o:	name.c make.gnh $(SYSMACROS_FILE) 	@@\
	$(RM) $@							@@\
	$(ANSI_C_COMPILER) -c $(CFLAGS) $(ILUCINCLUDES) -I$(BUILD_DIR) $(ILUNINCL) name.c -o $@	@@\

#endif

/* ======================================================== */


BUILD_DIR = ./build
#ifdef JAVA_USE_NATIVE_THREADS
BUILD_DIR_NATIVE_THREADS = ./build4nativethreads
#endif /* def JAVA_USE_NATIVE_THREADS */
JAVA_INCLUDES = -I$(JAVA_HOME)/include -I$(JAVA_MACH_DEP_INCLUDES) -I$(JAVA_HOME)/include-old -I$(JAVA_OLD_MACH_DEP_INCLUDES) -DILU_JAVA_MAJOR_VERSION=JAVA_MAJOR_VERSION -DILU_JAVA_MINOR_VERSION=JAVA_MINOR_VERSION -DILU_JAVA_VERSION=\"JAVA_VERSION\"
LOCALINCLUDES = -I../kernel $(JAVA_INCLUDES) $(JNI_INCLUDES) $(NETSCAPE_INCLUDES) $(BUILD_SECURITY_INCLUDES) $(BUILD_BIGNUM_INCLUDES) 
JAVA_CLASS_DIR = ./javaclasses
JAVA_SRC_DIR = ./jsrc

#ifdef JDK12FCS
ILUCINCLUDES = -DJDK12FCS 
#else
ILUCINCLUDES =
#endif


/*
 * Special handling for native methods in different ways depending 
 * on the java version...
 *
 * first compile the gnh program  (gnh = generate native headers)
 * then run gnh...
 */

make.gnh0:	$(JAVA_SRC_DIR)/xerox/ilu/tools/gnh.java
	$(JAVAC) -d "$(JAVA_CLASS_DIR)" -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" $(SOURCE_PATH_SWITCH)  $(JAVA_SRC_DIR)/xerox/ilu/tools/gnh.java
	touch make.gnh0

make.gnh:	make.gnh0 ilunative.in
	rm -f ilunative.h
	rm -f ilunative.c
	$(JAVA_HOME)/bin/java -classpath "$(JAVA_CLASS_DIR):$(BOOT_CLASSES)" xerox.ilu.tools.gnh  $(GNH_FLAG) ilunative.in
	touch make.gnh

CleanTarget(make.gnh0)
CleanTarget(make.gnh)
CleanTarget($(JAVA_CLASS_DIR)/xerox/ilu/tools/gnh.class)



NormalObjectRule()

CleanTarget(sysmacros_md.h)

BuildDir($(JAVA_CLASS_DIR) $(BUILD_DIR) $(BUILD_DIR_NATIVE_THREADS))

MkdirTarget($(DESTDIR)/lib)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR))
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/org)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/$(OMG_PATH_PART))
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/portable)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/PortableServer)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/xerox)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/xerox/basics)
MkdirTarget($(DESTDIR)/lib/$(JAVA_CLASS_DIR)/xerox/ilu)

/*
below are listed Java files that need to be converted to .class
files by running the compiler.  The rule JavaCompileTarget() runs
the compiler.
*/


BASIC_CLASSES = \
	$(JAVA_CLASS_DIR)/xerox/basics/NowhereStream.class \
	$(JAVA_CLASS_DIR)/xerox/basics/NowhereWriter.class \
	$(JAVA_CLASS_DIR)/xerox/basics/Consumer0.class \
	$(JAVA_CLASS_DIR)/xerox/basics/Queue.class \
	$(JAVA_CLASS_DIR)/xerox/basics/Environment.class \
	$(JAVA_CLASS_DIR)/xerox/basics/VMExtras.class \
	$(JAVA_CLASS_DIR)/xerox/basics/VMExtrasThread.class \
	$(JAVA_CLASS_DIR)/xerox/basics/IntTab.class \
	$(JAVA_CLASS_DIR)/xerox/basics/IntTabNode.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/float128.class

  
BASIC_SOURCES = \
	$(JAVA_SRC_DIR)/xerox/basics/NowhereStream.java \
	$(JAVA_SRC_DIR)/xerox/basics/NowhereWriter.java \
	$(JAVA_SRC_DIR)/xerox/basics/Consumer0.java \
	$(JAVA_SRC_DIR)/xerox/basics/Queue.java \
	$(JAVA_SRC_DIR)/xerox/basics/Environment.java \
	$(JAVA_SRC_DIR)/xerox/basics/VMExtras.java \
	$(JAVA_SRC_DIR)/xerox/basics/IntTab.java \
	$(JAVA_SRC_DIR)/xerox/ilu/float128.java

JavaCompileTarget($(BASIC_CLASSES), $(BASIC_SOURCES),)


PRE_CLASSES = \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluInit.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluMozillaBase.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPreLoad.class

  
PRE_SOURCES = \
	$(JAVA_SRC_DIR)/xerox/ilu/IluInit.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluMozillaBase.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluPreLoad.java


JavaCompileTarget($(PRE_CLASSES), $(PRE_SOURCES),)




PRE_EXCEPTION_CLASSES = \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/CompletionStatus.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/NO_MEMORY.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/IMP_LIMIT.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/COMM_FAILURE.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INITIALIZE.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/NO_IMPLEMENT.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BAD_TYPECODE.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/NO_RESOURCES.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/NO_RESPONSE.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/PERSIST_STORE.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BAD_INV_ORDER.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TRANSIENT.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/FREE_MEM.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INV_IDENT.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INV_FLAG.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INTF_REPOS.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BAD_CONTEXT.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/OBJ_ADAPTER.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/OBJECT_NOT_EXIST.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TRANSACTIONREQUIRED.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TRANSACTIONROLLEDBACK.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/MARSHAL.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INTERNAL.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BAD_PARAM.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/PortableServer/POA.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/PortableServer/DynamicImplementation.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluBadParameterException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/UNKNOWN.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluInconsistentCallException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluNoObjectException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluNotConfiguredException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSomeSystemException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluGcRegFailedException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluUnexpectedException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluInternalException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/SystemException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSystemException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSystemException0.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRuntimeError.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluUserExceptionBase.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSystemExceptionBase.class
	 

PRE_EXCEPTION_SOURCES = \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/CompletionStatus.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/NO_MEMORY.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/IMP_LIMIT.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/COMM_FAILURE.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INITIALIZE.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/NO_IMPLEMENT.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BAD_TYPECODE.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/NO_RESOURCES.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/NO_RESPONSE.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/PERSIST_STORE.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BAD_INV_ORDER.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TRANSIENT.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/FREE_MEM.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INV_IDENT.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INV_FLAG.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INTF_REPOS.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BAD_CONTEXT.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/OBJ_ADAPTER.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/OBJECT_NOT_EXIST.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TRANSACTIONREQUIRED.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TRANSACTIONROLLEDBACK.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INTERNAL.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/MARSHAL.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BAD_PARAM.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluBadParameterException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/UNKNOWN.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluInconsistentCallException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluNoObjectException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluInternalException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluUnexpectedException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluNotConfiguredException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSomeSystemException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluGcRegFailedException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/SystemException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSystemException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSystemException0.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluRuntimeError.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluUserExceptionBase.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSystemExceptionBase.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/PortableServer/POA.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/PortableServer/DynamicImplementation.java

JavaCompileTarget($(PRE_EXCEPTION_CLASSES), $(PRE_EXCEPTION_SOURCES),)





EXCEPTION_CLASSES = \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluCallException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/UserException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluEnumerationRangeException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BAD_OPERATION.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluUnionDiscriminantException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/DATA_CONVERSION.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluCharacterRangeException.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/NO_PERMISSION.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/INV_OBJREF.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluConstantValueKind.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeKind.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TCKind.class

EXCEPTION_SOURCES = \
	$(JAVA_SRC_DIR)/xerox/ilu/IluCallException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/UserException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluEnumerationRangeException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BAD_OPERATION.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluUnionDiscriminantException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/DATA_CONVERSION.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluCharacterRangeException.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/NO_PERMISSION.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/INV_OBJREF.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluConstantValueKind.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluTypeKind.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TCKind.java

JavaCompileTarget($(EXCEPTION_CLASSES), $(EXCEPTION_SOURCES),)





RT_CLASSES = \
	$(JAVA_CLASS_DIR)/xerox/ilu/CStringHolder.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/CStringHelper.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/ORB.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BOA.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluLifetimeArgs.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluLifetimeRemember.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluLifetimeForget.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluUserException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluDebugWriter.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluEnvironment.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluDebug.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluDataSupport.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluIHProposer.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluObject.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/Object.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/portable/ObjectImpl.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluWPBase.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluObjectBase.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluFactory.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPassport.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPipeline.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSerializationContext.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluIdentity.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluIdentityType.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSurrogateConnection.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRegularSurrConnectionThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluOtherSurrogateConnForkerThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServiceThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServerConnection.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServerConnectionThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServerConnectionExtraThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluInit2.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluDebugHooks.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluClassRep.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRootClassObjects_stub.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluClassAccess.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRuntimeException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluExceptionRep.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluOInt.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluAlarmTech.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluForkTech.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluCall.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluMethodRep.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluMethodArgRep.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServer.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServerRelocationInfo.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServerRelocation.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluObjectTable.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRT0.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSkeleton.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSurrogateObject.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTransportInfo.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPort.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluBatcher.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluGssCred.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluGssOid.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPortWatcherThread.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluServantFinalizable.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/corba_ServantFinalizer.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluGCClient.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/Ilu.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSBH.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluSimpleBinding.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluFinalizeReporter.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluOIntFinalizer.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluReEnableFinalization.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeCode.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TypeCode.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/Any.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluAny.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluIOFunctions.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluCustomMappingException.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluCustomMapping.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluPickle.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluRootObjectHelper.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/CORBA_WStringHelper.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/CORBA_ObjectStub.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/_CORBA_Object_skeletonClass.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/_CORBA_Object_Factory.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/CORBA_ObjectHelper.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/SpecialIOFuncs.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_Record.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_baseWithChain.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_RecordFld.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_ChainEl.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_Enum.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_EnumEl.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_Union.class \
	$(JAVA_CLASS_DIR)/xerox/ilu/IluTypeRep_UnionArm.class


RT_SOURCES = \
	$(JAVA_SRC_DIR)/xerox/ilu/CStringHolder.java \
	$(JAVA_SRC_DIR)/xerox/ilu/CStringHelper.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BOA.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/ORB.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluLifetimeArgs.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluLifetimeRemember.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluLifetimeForget.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluUserException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluDebugWriter.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluEnvironment.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluDebug.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluDataSupport.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluIHProposer.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluObject.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/Object.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/portable/ObjectImpl.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluWPBase.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluObjectBase.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluFactory.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluPassport.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluPipeline.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSerializationContext.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluIdentity.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluIdentityType.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSurrogateConnection.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServerConnection.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServiceThread.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluInit2.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluDebugHooks.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluClassRep.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluClassAccess.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluRuntimeException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluExceptionRep.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluOInt.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluAlarmTech.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluForkTech.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluCall.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluMethodRep.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluMethodArgRep.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServer.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServerRelocation.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServerRelocationInfo.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluObjectTable.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluRT0.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSkeleton.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSurrogateObject.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluTransportInfo.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluPort.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluBatcher.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluGssCred.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluGssOid.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluServantFinalizable.java \
	$(JAVA_SRC_DIR)/xerox/ilu/corba_ServantFinalizer.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluGCClient.java \
	$(JAVA_SRC_DIR)/xerox/ilu/Ilu.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSBH.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluSimpleBinding.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluTypeCode.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TypeCode.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluTypeRep.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/Any.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluAny.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluIOFunctions.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluCustomMappingException.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluCustomMapping.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluPickle.java \
	$(JAVA_SRC_DIR)/xerox/ilu/IluRootObjectHelper.java \
	$(JAVA_SRC_DIR)/xerox/ilu/CORBA_ObjectStub.java \
	$(JAVA_SRC_DIR)/xerox/ilu/CORBA_ObjectHelper.java \
	$(JAVA_SRC_DIR)/xerox/ilu/CORBA_WStringHelper.java

JavaCompileTarget($(RT_CLASSES), $(RT_SOURCES),)




/* holder classes with and without ilu dependencies */

HOLDER_CLASSES = \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/ShortHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/IntHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/LongHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/ByteHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/FloatHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/DoubleHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/CharHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/BooleanHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/StringHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/ObjectHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/AnyHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/TypeCodeHolder.class \
	$(JAVA_CLASS_DIR)/$(OMG_PATH_PART)/CORBA/PrincipalHolder.class

HOLDER_SOURCES = \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/ShortHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/IntHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/LongHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/ByteHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/FloatHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/DoubleHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/CharHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/BooleanHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/StringHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/ObjectHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/AnyHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/TypeCodeHolder.java \
	$(JAVA_SRC_DIR)/$(OMG_PATH_PART)/CORBA/PrincipalHolder.java 

JavaCompileTarget($(HOLDER_CLASSES), $(HOLDER_SOURCES),)



/*
below are files which need to have both .c code and .h header files
generated by running javah -stubs and javah on them. 
(Classes requiring native methods for implementation)
*/
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluInit2.c $(BUILD_DIR)/xerox_ilu_IluInit2.h,$(JAVA_SRC_DIR)/xerox/ilu/IluInit2.java,xerox.ilu.IluInit2)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluPassport.c $(BUILD_DIR)/xerox_ilu_IluPassport.h,$(JAVA_SRC_DIR)/xerox/ilu/IluPassport.java,xerox.ilu.IluPassport)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluPipeline.c $(BUILD_DIR)/xerox_ilu_IluPipeline.h,$(JAVA_SRC_DIR)/xerox/ilu/IluPipeline.java,xerox.ilu.IluPipeline)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluSerializationContext.c $(BUILD_DIR)/xerox_ilu_IluSerializationContext.h,$(JAVA_SRC_DIR)/xerox/ilu/IluSerializationContext.java,xerox.ilu.IluSerializationContext)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluIdentityType.c $(BUILD_DIR)/xerox_ilu_IluIdentityType.h,$(JAVA_SRC_DIR)/xerox/ilu/IluIdentityType.java,xerox.ilu.IluIdentityType)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluIdentity.c $(BUILD_DIR)/xerox_ilu_IluIdentity.h,$(JAVA_SRC_DIR)/xerox/ilu/IluIdentity.java,xerox.ilu.IluIdentity)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluServerConnection.c $(BUILD_DIR)/xerox_ilu_IluServerConnection.h,$(JAVA_SRC_DIR)/xerox/ilu/IluServerConnection.java,xerox.ilu.IluServerConnection)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluSurrogateConnection.c $(BUILD_DIR)/xerox_ilu_IluSurrogateConnection.h,$(JAVA_SRC_DIR)/xerox/ilu/IluSurrogateConnection.java,xerox.ilu.IluSurrogateConnection)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluOInt.c $(BUILD_DIR)/xerox_ilu_IluOInt.h,$(JAVA_SRC_DIR)/xerox/ilu/IluOInt.java,xerox.ilu.IluOInt)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluClassRep.c $(BUILD_DIR)/xerox_ilu_IluClassRep.h,$(JAVA_SRC_DIR)/xerox/ilu/IluClassRep.java,xerox.ilu.IluClassRep)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluServer.c $(BUILD_DIR)/xerox_ilu_IluServer.h,$(JAVA_SRC_DIR)/xerox/ilu/IluServer.java,xerox.ilu.IluServer)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluAlarmTech.c $(BUILD_DIR)/xerox_ilu_IluAlarmTech.h,$(JAVA_SRC_DIR)/xerox/ilu/IluAlarmTech.java,xerox.ilu.IluAlarmTech)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluForkTech.c $(BUILD_DIR)/xerox_ilu_IluForkTech.h,$(JAVA_SRC_DIR)/xerox/ilu/IluForkTech.java,xerox.ilu.IluForkTech)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluCall.c $(BUILD_DIR)/xerox_ilu_IluCall.h,$(JAVA_SRC_DIR)/xerox/ilu/IluCall.java,xerox.ilu.IluCall)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluExceptionRep.c $(BUILD_DIR)/xerox_ilu_IluExceptionRep.h,$(JAVA_SRC_DIR)/xerox/ilu/IluExceptionRep.java,xerox.ilu.IluExceptionRep)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluRT0.c $(BUILD_DIR)/xerox_ilu_IluRT0.h,$(JAVA_SRC_DIR)/xerox/ilu/IluRT0.java,xerox.ilu.IluRT0)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluTransportInfo.c $(BUILD_DIR)/xerox_ilu_IluTransportInfo.h,$(JAVA_SRC_DIR)/xerox/ilu/IluTransportInfo.java,xerox.ilu.IluTransportInfo)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluPort.c $(BUILD_DIR)/xerox_ilu_IluPort.h,$(JAVA_SRC_DIR)/xerox/ilu/IluPort.java,xerox.ilu.IluPort)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluBatcher.c $(BUILD_DIR)/xerox_ilu_IluBatcher.h,$(JAVA_SRC_DIR)/xerox/ilu/IluBatcher.java,xerox.ilu.IluBatcher)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluGssCred.c $(BUILD_DIR)/xerox_ilu_IluGssCred.h,$(JAVA_SRC_DIR)/xerox/ilu/IluGssCred.java,xerox.ilu.IluGssCred)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluGssOid.c $(BUILD_DIR)/xerox_ilu_IluGssOid.h,$(JAVA_SRC_DIR)/xerox/ilu/IluGssOid.java,xerox.ilu.IluGssOid)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluDebugHooks.c $(BUILD_DIR)/xerox_ilu_IluDebugHooks.h,$(JAVA_SRC_DIR)/xerox/ilu/IluDebugHooks.java,xerox.ilu.IluDebugHooks)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluGCClient.c $(BUILD_DIR)/xerox_ilu_IluGCClient.h,$(JAVA_SRC_DIR)/xerox/ilu/IluGCClient.java,xerox.ilu.IluGCClient)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluDebug.c $(BUILD_DIR)/xerox_ilu_IluDebug.h,$(JAVA_SRC_DIR)/xerox/ilu/IluDebug.java,xerox.ilu.IluDebug)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluDebugWriter.c $(BUILD_DIR)/xerox_ilu_IluDebugWriter.h,$(JAVA_SRC_DIR)/xerox/ilu/IluDebugWriter.java,xerox.ilu.IluDebugWriter)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluPickle.c $(BUILD_DIR)/xerox_ilu_IluPickle.h,$(JAVA_SRC_DIR)/xerox/ilu/IluPickle.java,xerox.ilu.IluPickle)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluTypeCode.c $(BUILD_DIR)/xerox_ilu_IluTypeCode.h,$(JAVA_SRC_DIR)/xerox/ilu/IluTypeCode.java,xerox.ilu.IluTypeCode)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluTypeRep.c $(BUILD_DIR)/xerox_ilu_IluTypeRep.h,$(JAVA_SRC_DIR)/xerox/ilu/IluTypeRep.java,xerox.ilu.IluTypeRep)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluSBH.c $(BUILD_DIR)/xerox_ilu_IluSBH.h,$(JAVA_SRC_DIR)/xerox/ilu/IluSBH.java,xerox.ilu.IluSBH)
JStubHCTargets($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluWPBase.c $(BUILD_DIR)/xerox_ilu_IluWPBase.h,$(JAVA_SRC_DIR)/xerox/ilu/IluWPBase.java,xerox.ilu.IluWPBase)




/*
below are files which need to have only .h header files generated
by running javah on them.
(Classes permitting field access by native methods of other classes)
*/
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluObject.h,$(JAVA_SRC_DIR)/xerox/ilu/IluObject.java,xerox.ilu.IluObject)
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluMethodRep.h,$(JAVA_SRC_DIR)/xerox/ilu/IluMethodRep.java,xerox.ilu.IluMethodRep)
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluMethodArgRep.h,$(JAVA_SRC_DIR)/xerox/ilu/IluMethodArgRep.java,xerox.ilu.IluMethodArgRep)
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluObjectTable.h,$(JAVA_SRC_DIR)/xerox/ilu/IluObjectTable.java,xerox.ilu.IluObjectTable)
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluSurrogateObject.h,$(JAVA_SRC_DIR)/xerox/ilu/IluSurrogateObject.java,xerox.ilu.IluSurrogateObject)
JStubHTarget($(BUILD_DIR),$(BUILD_DIR)/xerox_ilu_IluServerRelocationInfo.h,$(JAVA_SRC_DIR)/xerox/ilu/IluServerRelocationInfo.java,xerox.ilu.IluServerRelocationInfo)

/*
below are files which need to have only .h header files generated
by running javah on them.
(non public classes in the file of another class)
*/

/* Use poll(2) form of wait tech if possible, select(2) form otherwise */
#ifdef JAVA_DONTUSE_POLL
#undef HAVE_POLL
#endif
#ifdef HAVE_POLL
JAVA_WAITTECH_CALL=IluJava_pollwt
#else
JAVA_WAITTECH_CALL=IluJava_selectwt
#endif

/* 
below are C source files which need to be compiled to link into the
Java extension .so file
*/
ObjectTargetXDir(IluJava_IluConnOps)
ObjectTargetXDir(IluJava_IluAlarmTech)
ObjectTargetXDir(IluJava_IluOInt)
ObjectTargetXDir(IluJava_JOps)
ObjectTargetXDir(IluJava_IluCall)
ObjectTargetXDir(IluJava_IluClassRep)
ObjectTargetXDir(IluJava_IluServer)
ObjectTargetXDir(IluJava_IluRT0)
ObjectTargetXDir(IluJava_LockTech)
ObjectTargetXDir(IluJava_IluDebug)
ObjectTargetXDir(IluJava_IluPort)
ObjectTargetXDir($(JAVA_WAITTECH_CALL))
ObjectTargetXDir(IluJava_GCClient)
ObjectTargetXDir(IluJava_IluInit)
ObjectTargetXDir(IluJava_IluPickle)
ObjectTargetXDir(IluJava_JMon)
ObjectTargetXDir(ilunative)

/*
below are C stub files which need to be compiled to link into the
Java extension .so file
*/
#ifdef DONT_JNI
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluInit2)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluAlarmTech)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluForkTech)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluSurrogateConnection)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluServerConnection)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluServer)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluOInt)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluCall)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluClassRep)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluExceptionRep)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluRT0)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluPassport)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluSerializationContext)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluPipeline)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluIdentity)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluIdentityType)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluTransportInfo)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluPort)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluBatcher)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluGssCred)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluGssOid)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluSBH)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluDebugHooks)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluGCClient)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluDebug)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluDebugWriter)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluPickle)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluTypeCode)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluTypeRep)
ObjectTargetSDir($(BUILD_DIR),xerox_ilu_IluWPBase)
#endif

/*
the following var OBJS is a list of all object files which get 
linked into our extension
*/
#ifdef DONT_JNI
OBJS_stubs = \
$(BUILD_DIR)/xerox_ilu_IluInit2.o \
$(BUILD_DIR)/xerox_ilu_IluAlarmTech.o \
$(BUILD_DIR)/xerox_ilu_IluForkTech.o \
$(BUILD_DIR)/xerox_ilu_IluSurrogateConnection.o \
$(BUILD_DIR)/xerox_ilu_IluServerConnection.o \
$(BUILD_DIR)/xerox_ilu_IluServer.o \
$(BUILD_DIR)/xerox_ilu_IluOInt.o \
$(BUILD_DIR)/xerox_ilu_IluCall.o \
$(BUILD_DIR)/xerox_ilu_IluClassRep.o \
$(BUILD_DIR)/xerox_ilu_IluExceptionRep.o \
$(BUILD_DIR)/xerox_ilu_IluRT0.o \
$(BUILD_DIR)/xerox_ilu_IluSBH.o \
$(BUILD_DIR)/xerox_ilu_IluTransportInfo.o \
$(BUILD_DIR)/xerox_ilu_IluPort.o \
$(BUILD_DIR)/xerox_ilu_IluBatcher.o \
$(BUILD_DIR)/xerox_ilu_IluGssCred.o \
$(BUILD_DIR)/xerox_ilu_IluGssOid.o \
$(BUILD_DIR)/xerox_ilu_IluDebugHooks.o \
$(BUILD_DIR)/xerox_ilu_IluGCClient.o \
$(BUILD_DIR)/xerox_ilu_IluDebug.o \
$(BUILD_DIR)/xerox_ilu_IluDebugWriter.o \
$(BUILD_DIR)/xerox_ilu_IluPickle.o \
$(BUILD_DIR)/xerox_ilu_IluTypeCode.o \
$(BUILD_DIR)/xerox_ilu_IluTypeRep.o \
$(BUILD_DIR)/xerox_ilu_IluWPBase.o \
$(BUILD_DIR)/xerox_ilu_IluPassport.o \
$(BUILD_DIR)/xerox_ilu_IluPipeline.o \
$(BUILD_DIR)/xerox_ilu_IluSerializationContext.o \
$(BUILD_DIR)/xerox_ilu_IluIdentityType.o \
$(BUILD_DIR)/xerox_ilu_IluIdentity.o 
#else
OBJS_stubs = 
#endif

OBJS_manual = \
$(BUILD_DIR)/IluJava_IluConnOps.o \
$(BUILD_DIR)/IluJava_IluAlarmTech.o \
$(BUILD_DIR)/IluJava_IluOInt.o \
$(BUILD_DIR)/IluJava_JOps.o \
$(BUILD_DIR)/IluJava_IluCall.o \
$(BUILD_DIR)/IluJava_IluClassRep.o \
$(BUILD_DIR)/IluJava_IluServer.o \
$(BUILD_DIR)/IluJava_IluRT0.o \
$(BUILD_DIR)/IluJava_LockTech.o \
$(BUILD_DIR)/IluJava_IluDebug.o \
$(BUILD_DIR)/IluJava_IluPort.o \
$(BUILD_DIR)/$(JAVA_WAITTECH_CALL).o \
$(BUILD_DIR)/IluJava_GCClient.o \
$(BUILD_DIR)/IluJava_IluPickle.o \
$(BUILD_DIR)/IluJava_IluInit.o \
$(BUILD_DIR)/IluJava_JMon.o \
$(BUILD_DIR)/ilunative.o 

OBJS_manualNativeThreads = \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluConnOps.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluAlarmTech.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluOInt.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_JOps.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluCall.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluClassRep.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluServer.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluRT0.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_LockTech.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluDebug.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluPort.o \
$(BUILD_DIR_NATIVE_THREADS)/$(JAVA_WAITTECH_CALL).o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_GCClient.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluPickle.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_IluInit.o \
$(BUILD_DIR_NATIVE_THREADS)/IluJava_JMon.o \
$(BUILD_DIR_NATIVE_THREADS)/ilunative.o 

/* ======================================================== */

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

CleanTarget(ilu.jar)

all:: ilu.jar

ilu.jar: $(PRE_EXCEPTION_CLASSES) $(RT_CLASSES)
	cd $(JAVA_CLASS_DIR); $(JAVAJAR) -0cf ../ilu.jar *

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

/* ======================================================== */

#ifdef JDK12
LIB_POSTFIX = _12
#else
LIB_POSTFIX = 
#endif

/* don't modify these rules without help... */

JavaExtension(libIluJava$(LIB_POSTFIX), $(OBJS_stubs) $(OBJS_manual), ../kernel/libilu.a, $(BUILD_GSS_LIBS))
InstallLink($(DESTDIR)/lib/libIluJava$(LIB_POSTFIX).$(SHAREDEXT), $(DESTDIR)/lib/libIluJava$(LIB_POSTFIX)_g.$(SHAREDEXT))

#ifdef JAVA_USE_NATIVE_THREADS
JavaExtension(libIluJava$(LIB_POSTFIX)_alt, $(OBJS_stubs) $(OBJS_manualNativeThreads), ../kernel/libilu.a, $(BUILD_GSS_LIBS))
InstallLink($(DESTDIR)/lib/libIluJava$(LIB_POSTFIX)_alt.$(SHAREDEXT), $(DESTDIR)/lib/libIluJava$(LIB_POSTFIX)_alt_g.$(SHAREDEXT))
#endif

/* ======================================================== */

make.describe:	make.gnh0 
	echo Make options
#ifdef JAVA_JNI
	    echo "JAVA_JNI DEFINED"
#else
	    echo "JAVA_JNI NOT defined"
#endif
#ifdef HAVE_POLL
	    echo "HAVE_POLL DEFINED"
#else
	    echo "HAVE_POLL NOT defined"
#endif
#ifdef JAVA_BOOTCLASSES_IN_JRE
	    echo "JAVA_BOOTCLASSES_IN_JRE DEFINED"
#else
	    echo "JAVA_BOOTCLASSES_IN_JRE NOT defined"
#endif
#ifdef DO_JNI
	    echo "DO_JNI DEFINED"
#else
	    echo "DO_JNI NOT defined"
#endif
#ifdef JAVA_USE_NATIVE_THREADS
	    echo "JAVA_USE_NATIVE_THREADS DEFINED"
#else
	    echo "JAVA_USE_NATIVE_THREADS NOT defined"
#endif
#ifdef JAVA_DONTUSE_POLL
	    echo "JAVA_DONTUSE_POLL DEFINED"
#else
	    echo "JAVA_DONTUSE_POLL NOT defined"
#endif
#ifdef JDK12FCS
	    echo "JDK12FCS DEFINED"
#else
	    echo "JDK12FCS NOT defined"
#endif
#ifdef JDK12
	    echo "JDK12 DEFINED"
#else
	    echo "JDK12 NOT defined"
#endif
	echo "JAVA_SRC_DIR is $(JAVA_SRC_DIR)"
	echo "JAVA_CLASS_DIR is $(JAVA_CLASS_DIR)"
	echo "JAVA_WAITTECH_CALL is $(JAVA_WAITTECH_CALL)"
	echo "CFLAGS is $(CFLAGS)"
	echo "ILUCINCLUDES is $(ILUCINCLUDES)"
	echo "ILUNINCL is $(ILUNINCL)"
	touch make.describe


/* ======================================================== */
