# -*- file-coding-system: *sjis*unix; -*-
CD=../../../horb/orb
HIDLCD=-d ../../..
#HIDLCD=
#OPT=-O

CLS=$(CD)/IOCIService.class \
    $(CD)/HORBException.class \
    $(CD)/HorbURL.class \
    $(CD)/AsyncMethodHandler.class \
    $(CD)/Loopy.class \
    $(CD)/Goldberg.class \
    $(CD)/IOCIInfo.class \
    $(CD)/FofInfo.class \
    $(CD)/IOCI.class \
    $(CD)/Proxy.class \
    $(CD)/Skeleton.class \
    $(CD)/Config.class \
    $(CD)/ACLpair.class \
    $(CD)/ACL.class \
    $(CD)/AclStatus.class \
    $(CD)/ServerStatus.class \
    $(CD)/ObjectStatus.class \
    $(CD)/ThreadStatus.class \
    $(CD)/HORBAgent.class \
    $(CD)/HORBServer.class \
    $(CD)/HORB.class \
    $(CD)/HORBServer.class \
    $(CD)/ObjectStorage.class \
    $(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 \
    $(CD)/ObjectStorage_Impl.class \
    $(CD)/HORBAgent_Impl.class \
    $(CD)/BasicIOCI.class \
    $(CD)/FileIOCI.class \
    $(CD)/Restartable.class \
    $(CD)/FileIOCI.class \
    $(CD)/TestIOCI.class

all: $(CLS)

clean:
	-rm -f *~

fullclean: clean
	-rm -f *.class

	# 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 IOCI.class IOCICommon.class BasicIOCI.class \
	HORBException.class IOCIException.class \
	ArgumentException.class HorbURL.class NoMethodException.class \
	noObjectException.class NoPermissionException.class Proxy.class \
	ProxyException.class RemoteException.class IOCIService.class

fullsize:
	wc *.class

lines:
	wc *.java

$(CD)/ACL.class: ACL.java
	hidl -c $(OPT) $(HIDLCD) ACL.java
$(CD)/ACL_Skeleton.class: ACL.java
	hidl $(OPT) $(HIDLCD) ACL.java
$(CD)/ACLpair.class: ACLpair.java
	hidl -c $(OPT) $(HIDLCD) ACLpair.java
$(CD)/ACLpair_Skeleton.class: ACLpair.java
	hidl $(OPT) $(HIDLCD) ACLpair.java
$(CD)/Proxy.class: Proxy.java
	hidl -c $(OPT) $(HIDLCD) Proxy.java
$(CD)/Skeleton.class: Skeleton.java
	hidl -c $(OPT) $(HIDLCD) Skeleton.java
$(CD)/HORBServer.class $(CD)/ServerStatus.class $(CD)/ObjectStatus.class \
	  $(CD)/ThreadStatus.class $(CD)/HORB.class $(CD)/AclStatus.class \
	  $(CD)/ServerTable.class $(CD)/ObjectTable.class \
	  $(CD)/ThreadTable.class $(CD)/ACL_Impl.class: \
	  HORBServer.java ServerStatus.java ObjectStatus.java AclStatus.java \
	  ThreadStatus.java HORB.java ServerTable.java ObjectTable.java \
	  ThreadTable.java ACL_Impl.java
	javac $(OPT) $(HIDLCD) HORBServer.java ServerStatus.java \
	  ObjectStatus.java ThreadStatus.java HORB.java AclStatus.java \
	  ServerTable.java ObjectTable.java ThreadTable.java ACL_Impl.java

$(CD)/HORBAgent_Impl.class: HORBAgent_Impl.java
	hidl -c $(OPT) $(HIDLCD) HORBAgent_Impl.java
$(CD)/ServerStatus_Skeleton.class: ServerStatus.java
	hidl $(OPT) $(HIDLCD) ServerStatus.java
$(CD)/ObjectStatus.class: ObjectStatus.java
	hidl -c $(OPT) $(HIDLCD) ObjectStatus.java
$(CD)/ObjectStatus_Skeleton.class: ObjectStatus.java
	hidl $(OPT) $(HIDLCD) ObjectStatus.java
$(CD)/ThreadStatus.class: ThreadStatus.java
	hidl -c $(OPT) $(HIDLCD) ThreadStatus.java
$(CD)/ThreadStatus_Skeleton.class: ThreadStatus.java
	hidl $(OPT) $(HIDLCD) ThreadStatus.java
$(CD)/HORBAgent.class: HORBAgent.java
	hidl -c $(OPT) $(HIDLCD) HORBAgent.java
$(CD)/HORBAgent_Skeleton.class: HORBAgent.java
	hidl $(OPT) $(HIDLCD) HORBAgent.java
$(CD)/IOCIInfo_Skeleton.class: IOCIInfo.java
	hidl $(OPT) $(HIDLCD) IOCIInfo.java
#$(CD)/IOCIInfo.class: IOCIInfo.java
#	hidl -c $(OPT) $(HIDLCD) IOCIInfo.java
$(CD)/FofInfo_Skeleton.class: FofInfo.java
	hidl $(OPT) $(HIDLCD) FofInfo.java
$(CD)/HORB_Skeleton.class: HORB.java
	hidl $(OPT) $(HIDLCD) HORB.java
$(CD)/HORB.class: HORB.java
	javac $(OPT) $(HIDLCD) HORB.java

$(CD)/BasicIOCI.class: BasicIOCI.java
	hidl -c $(OPT) $(HIDLCD) BasicIOCI.java
$(CD)/FileIOCI.class: FileIOCI.java
	hidl -c $(OPT) $(HIDLCD) FileIOCI.java
$(CD)/TestIOCI.class: TestIOCI.java
	hidl -c $(OPT) $(HIDLCD) TestIOCI.java
$(CD)/Restartable.class: Restartable.java
	hidl -c $(OPT) $(HIDLCD) Restartable.java

$(CD)/ObjectStorage.class $(CD)/ObjectStorage_Skeleton.class: ObjectStorage.java
	hidl $(OPT) $(HIDLCD) ObjectStorage.java
$(CD)/ObjectStorage_Impl.class: ObjectStorage_Impl.java
	hidl -c $(OPT) $(HIDLCD) ObjectStorage_Impl.java
$(CD)/HorbURL.class: HorbURL.java
	hidl -c $(OPT) $(HIDLCD) HorbURL.java
$(CD)/HORBException.class: HORBException.java
	hidl -c $(OPT) $(HIDLCD) HORBException.java
$(CD)/AsyncMethodHandler.class: AsyncMethodHandler.java
	hidl -c $(OPT) $(HIDLCD) AsyncMethodHandler.java
$(CD)/Loopy.class: Loopy.java
	hidl -c $(OPT) $(HIDLCD) Loopy.java
$(CD)/Goldberg.class: Goldberg.java
	hidl -c $(OPT) $(HIDLCD) Goldberg.java

$(CD)/IOCIService.class $(CD)/NetIOCIInfo.class $(CD)/IOCIInfo.class \
	$(CD)/IOCI.class: \
	IOCIService.java NetIOCIInfo.java IOCIInfo.java IOCI.java
	javac $(OPT) $(HIDLCD) NetIOCIInfo.java IOCIInfo.java IOCI.java
$(CD)/FofInfo.class: FofInfo.java
	hidl -c $(OPT) $(HIDLCD) FofInfo.java
$(CD)/Config.class: Config.java
	hidl -c $(OPT) $(HIDLCD) Config.java
