# Asetukset. Java-kooditiedostot sisltv hakemisto, hakemisto johon luokat
# knnetn, luokat jotka pit ajaa rmic:n lpi.
JAVA_SOURCE_PATH := ../src
CLASS_TARGET_PATH := ../classes
JAVADOC_PATH := ../javadoc
IMAGE_PATH := ../images
DIST_PATH := ../dist
RMIC_CLASS_NAMES := Engine Server


# Niksulan freebsdeill rmic on gjc:n rmic, joka ei toimi. rmic_g on sunin.
ifeq ($(notdir $(shell which rmic_g)),rmic_g)
  RMIC := rmic_g
else
  RMIC := rmic
endif


RMIC_TARGETS := $(RMIC_CLASS_NAMES:%=$(CLASS_TARGET_PATH)/%_Stub.class)
JAVAC_SOURCES := $(shell find $(JAVA_SOURCE_PATH) -name '*.java')
JAVAC_TARGETS := $(JAVAC_SOURCES:$(JAVA_SOURCE_PATH)%.java=$(CLASS_TARGET_PATH)%.class)


default : build dist

dist :
	mkdir -p $(DIST_PATH)
	cp $(CLASS_TARGET_PATH)/* $(DIST_PATH)
	cp $(IMAGE_PATH)/* $(DIST_PATH)

build : $(CLASS_TARGET_PATH) $(JAVAC_TARGETS) $(RMIC_TARGETS)

clean :
	rm -r $(CLASS_TARGET_PATH) $(JAVADOC_PATH)

javadoc : $(JAVADOC_PATH)
	javadoc -d $(JAVADOC_PATH) $(JAVAC_SOURCES)


.PHONY : default clean javadoc


$(CLASS_TARGET_PATH) :
	mkdir $(CLASS_TARGET_PATH)

$(JAVADOC_PATH) :
	mkdir $(JAVADOC_PATH)

$(CLASS_TARGET_PATH)/%.class : $(JAVA_SOURCE_PATH)/%.java
	javac -d $(CLASS_TARGET_PATH) -sourcepath $(JAVA_SOURCE_PATH) -classpath $(CLASS_TARGET_PATH) $<

$(CLASS_TARGET_PATH)/%_Stub.class : $(CLASS_TARGET_PATH)/%.class
	$(RMIC) -d $(CLASS_TARGET_PATH) -sourcepath $(JAVA_SOURCE_PATH) -classpath $(CLASS_TARGET_PATH) $(*F)


