# -*- file-coding-system: *sjis*unix; -*-

# class directory
CD=../../../horb/orb

# class directory for horbc -d option
DESTDIR=-d ../../..
JAVADOCDEST=../../doc

# compiler optimization flag
OPT=-O

# compiler name
JAVAC=javac
HORBC=horbc -major 1 -minor 3

REMOTE= \
    $(CD)/ACLpair_Skeleton.class \
    $(CD)/ACL_Skeleton.class \
    $(CD)/ServerStatus_Skeleton.class \
    $(CD)/ObjectStatus_Skeleton.class \
    $(CD)/ThreadStatus_Skeleton.class \
    $(CD)/HORBAgent_Skeleton.class \
    $(CD)/IOCIInfo_Skeleton.class \
    $(CD)/FofInfo_Skeleton.class \
    $(CD)/HORB_Skeleton.class \
    $(CD)/ObjectStorage_Skeleton.class

CLS=$(CD)/HORBServer.class \
    $(REMOTE) \
    $(CD)/ACL_Impl.class

all: $(CLS) recompile

remote: $(REMOTE)

clean:
	-rm -f *~

fullclean: clean
	-rm -f *_Proxy.java *_Skeleton.java

# count the total size of class files for client side
clientsize:
	wc HORB.class IOCI.class IOCICommon.class BasicIOCI.class \
	HorbURL.class

clientsizefull:
	wc HORB.class HORBClient.class IOCI.class IOCICommon.class BasicIOCI.class \
	HORBException.class NetException.class IOCIException.class \
	ArgumentException.class HorbURL.class NoMethodException.class \
	noObjectException.class NoPermissionException.class Proxy.class \
	ProxyException.class RemoteException.class IOCIService.class

html:
	javadoc 		      \
	ACL.java                              \
	ArgumentException.java                \
	AsyncMethodHandler.java               \
	BasicIOCI.java                        \
	FileIOCI.java                         \
	FofInfo.java                          \
	HORB.java                             \
	HORBClient.java                             \
	HORBAgent.java                        \
	HORBException.java                    \
	NetException.java                    \
	HORBServer.java                       \
	HorbURL.java                          \
	IOCI.java                             \
	IOCICommon.java                       \
	IOCIException.java                    \
	IOCIInfo.java                         \
	IOCIService.java                      \
	NoMethodException.java                \
	NoObjectException.java                \
	NoPermissionException.java            \
	ObjectStatus.java                     \
	ObjectStorage.java                    \
	Proxy.java                            \
	ProxyException.java                   \
	RemoteException.java                  \
	Restartable.java                      \
	ServerStatus.java                     \
	Skeleton.java                         \
	ThreadStatus.java                     
	-mv horb.orb.*.html $(JAVADOCDEST)
	-mv AllNames.html tree.html $(JAVADOCDEST)


fullsize:
	wc *.class

lines:
	wc *.java

HORBServer $(CD)/HORBServer.class: HORBServer.java
	-$(JAVAC) $(OPT) $(DESTDIR) *.java

$(CD)/ACL_Skeleton.class: ACL.java
	$(HORBC) $(OPT) $(DESTDIR) ACL.java
$(CD)/ACLpair_Skeleton.class: ACLpair.java
	$(HORBC) $(OPT) $(DESTDIR) ACLpair.java
$(CD)/ServerStatus_Skeleton.class: ServerStatus.java
	$(HORBC) $(OPT) $(DESTDIR) ServerStatus.java
$(CD)/ObjectStatus_Skeleton.class: ObjectStatus.java
	$(HORBC) $(OPT) $(DESTDIR) ObjectStatus.java
$(CD)/ThreadStatus_Skeleton.class: ThreadStatus.java
	$(HORBC) $(OPT) $(DESTDIR) ThreadStatus.java
$(CD)/HORBAgent_Skeleton.class: HORBAgent.java
	$(HORBC) $(OPT) $(DESTDIR) HORBAgent.java
$(CD)/IOCIInfo_Skeleton.class: IOCIInfo.java
	$(HORBC) $(OPT) $(DESTDIR) IOCIInfo.java
$(CD)/FofInfo_Skeleton.class: FofInfo.java
	$(HORBC) $(OPT) $(DESTDIR) FofInfo.java
$(CD)/HORB_Skeleton.class: HORB.java
	$(HORBC) $(OPT) $(DESTDIR) HORB.java
$(CD)/ObjectStorage_Skeleton.class: ObjectStorage.java
	$(HORBC) $(OPT) $(DESTDIR) ObjectStorage.java

ACL $(CD)/ACL.class: ACL.java
	$(JAVAC) $(OPT) $(DESTDIR) ACL.java
ACL_Impl $(CD)/ACL_Impl.class: ACL_Impl.java
	$(JAVAC) $(OPT) $(DESTDIR) ACL_Impl.java
ACLpair $(CD)/ACLpair.class: ACLpair.java
	$(JAVAC) $(OPT) $(DESTDIR) ACLpair.java
AclStatus $(CD)/AclStatus.class: AclStatus.java
	$(JAVAC) $(OPT) $(DESTDIR) AclStatus.java
ArgumentException $(CD)/ArgumentException.class: ArgumentException.java
	$(JAVAC) $(OPT) $(DESTDIR) ArgumentException.java
AsyncMethodHandler $(CD)/AsyncMethodHandler.class: AsyncMethodHandler.java
	$(JAVAC) $(OPT) $(DESTDIR) AsyncMethodHandler.java
BasicIOCI $(CD)/BasicIOCI.class: BasicIOCI.java
	$(JAVAC) $(OPT) $(DESTDIR) BasicIOCI.java
Config $(CD)/Config.class: Config.java
	$(JAVAC) $(OPT) $(DESTDIR) Config.java
ConfigElem $(CD)/ConfigElem.class: ConfigElem.java
	$(JAVAC) $(OPT) $(DESTDIR) ConfigElem.java
FileIOCI $(CD)/FileIOCI.class: FileIOCI.java
	$(JAVAC) $(OPT) $(DESTDIR) FileIOCI.java
FofInfo $(CD)/FofInfo.class: FofInfo.java
	$(JAVAC) $(OPT) $(DESTDIR) FofInfo.java
Goldberg $(CD)/Goldberg.class: Goldberg.java
	$(JAVAC) $(OPT) $(DESTDIR) Goldberg.java
HORB $(CD)/HORB.class: HORB.java
	$(JAVAC) $(OPT) $(DESTDIR) HORB.java
HORBClient $(CD)/HORBClient.class: HORBClient.java
	$(JAVAC) $(OPT) $(DESTDIR) HORBClient.java
HORBAgent $(CD)/HORBAgent.class: HORBAgent.java
	$(JAVAC) $(OPT) $(DESTDIR) HORBAgent.java
HORBAgent_Impl $(CD)/HORBAgent_Impl.class: HORBAgent_Impl.java
	$(JAVAC) $(OPT) $(DESTDIR) HORBAgent_Impl.java
HORBException $(CD)/HORBException.class: HORBException.java
	$(JAVAC) $(OPT) $(DESTDIR) HORBException.java
NetException $(CD)/NetException.class: NetException.java
	$(JAVAC) $(OPT) $(DESTDIR) NetException.java
HorbURL $(CD)/HorbURL.class: HorbURL.java
	$(JAVAC) $(OPT) $(DESTDIR) HorbURL.java
HostList $(CD)/HostList.cclass: HostList.class
	$(JAVAC) $(OPT) $(DESTDIR) HostList.class
IOCI $(CD)/IOCI.class: IOCI.java
	$(JAVAC) $(OPT) $(DESTDIR) IOCI.java
IOCICommon $(CD)/IOCICommon.class: IOCICommon.java
	$(JAVAC) $(OPT) $(DESTDIR) IOCICommon.java
IOCIException $(CD)/IOCIException.class: IOCIException.java
	$(JAVAC) $(OPT) $(DESTDIR) IOCIException.java
IOCIInfo $(CD)/IOCIInfo.class: IOCIInfo.java
	$(JAVAC) $(OPT) $(DESTDIR) IOCIInfo.java
IOCIService $(CD)/IOCIService.class: IOCIService.java
	$(JAVAC) $(OPT) $(DESTDIR) IOCIService.java
Lock $(CD)/Lock.class: Lock.java
	$(JAVAC) $(OPT) $(DESTDIR) Lock.java
Loopy $(CD)/Loopy.class: Loopy.java
	$(JAVAC) $(OPT) $(DESTDIR) Loopy.java
NetIOCIInfo $(CD)/NetIOCIInfo.class: NetIOCIInfo.java
	$(JAVAC) $(OPT) $(DESTDIR) NetIOCIInfo.java
NoMethodException $(CD)/NoMethodException.class: NoMethodException.java
	$(JAVAC) $(OPT) $(DESTDIR) NoMethodException.java
NoObjectException $(CD)/NoObjectException.class: NoObjectException.java
	$(JAVAC) $(OPT) $(DESTDIR) NoObjectException.java
NoPermissionException $(CD)/NoPermissionException.class: NoPermissionException.java
	$(JAVAC) $(OPT) $(DESTDIR) NoPermissionException.java
ObjectInfo $(CD)/ObjectInfo.class: ObjectInfo.java
	$(JAVAC) $(OPT) $(DESTDIR) ObjectInfo.java
ObjectStatus $(CD)/ObjectStatus.class: ObjectStatus.java
	$(JAVAC) $(OPT) $(DESTDIR) ObjectStatus.java
ObjectStorage $(CD)/ObjectStorage.class: ObjectStorage.java
	$(JAVAC) $(OPT) $(DESTDIR) ObjectStorage.java
ObjectStorage_Impl $(CD)/ObjectStorage_Impl.class: ObjectStorage_Impl.java
	$(JAVAC) $(OPT) $(DESTDIR) ObjectStorage_Impl.java
ObjectTable $(CD)/ObjectTable.class: ObjectTable.java
	$(JAVAC) $(OPT) $(DESTDIR) ObjectTable.java
Proxy $(CD)/Proxy.class: Proxy.java
	$(JAVAC) $(OPT) $(DESTDIR) Proxy.java
ProxyException $(CD)/ProxyException.class: ProxyException.java
	$(JAVAC) $(OPT) $(DESTDIR) ProxyException.java
Proxyingsocket $(CD)/Proxyingsocket.javaclass: Proxyingsocket.javajava
	$(JAVAC) $(OPT) $(DESTDIR) Proxyingsocket.javajava
RemoteException $(CD)/RemoteException.class: RemoteException.java
	$(JAVAC) $(OPT) $(DESTDIR) RemoteException.java
Restartable $(CD)/Restartable.class: Restartable.java
	$(JAVAC) $(OPT) $(DESTDIR) Restartable.java
ServerStatus $(CD)/ServerStatus.class: ServerStatus.java
	$(JAVAC) $(OPT) $(DESTDIR) ServerStatus.java
ServerTable $(CD)/ServerTable.class: ServerTable.java
	$(JAVAC) $(OPT) $(DESTDIR) ServerTable.java
Skeleton $(CD)/Skeleton.class: Skeleton.java
	$(JAVAC) $(OPT) $(DESTDIR) Skeleton.java
TestIOCI $(CD)/TestIOCI.class: TestIOCI.java
	$(JAVAC) $(OPT) $(DESTDIR) TestIOCI.java
ThreadServer $(CD)/ThreadServer.class: ThreadServer.java
	$(JAVAC) $(OPT) $(DESTDIR) ThreadServer.java
ThreadStatus $(CD)/ThreadStatus.class: ThreadStatus.java
	$(JAVAC) $(OPT) $(DESTDIR) ThreadStatus.java
ThreadTable $(CD)/ThreadTable.class: ThreadTable.java
	$(JAVAC) $(OPT) $(DESTDIR) ThreadTable.java

#
# JDK 1.0.2 javac has bug in -O 
recompile:
	$(JAVAC) $(DESTDIR) ObjectTable.java
	$(JAVAC) $(DESTDIR) FileIOCI.java
