# a simple makefile, for simple people
# $Id: kalah-makefile,v 1.4 2021/01/04 18:49:42 oj14ozun Exp $
#
# to prepare:		$ make init
# build using:		$ make all
# or run using:		$ make run

ROOT	= ./src/main/scala/info/kwarc/teaching/AI/Kalah/
CPATH	= $(ROOT)
BIN	= bin

SSRC   != find $(ROOT) -name '*.scala'
JSRC   != find $(ROOT) -name '*.java'
AJSRC  != find $(ROOT)/WS2021 -name '*.java'
ASSRC  != find $(ROOT)/WS2021 -name '*.scala'
ASSRC  += $(ROOT)/Test.scala

# this might have to be changed, depending on where your package
# manager installs scala-library.jar
SLIB    = /usr/share/scala/lib/scala-library.jar

ASCLASS  = $(ASSRC:./src/main/scala/%.scala=./build/%.class)
AJCLASS	= $(AJSRC:./src/main/scala/%.java=./build/%.class)

CPATH	= $(BUILD):$(SLIB)

BUILD   = build
JAR	= kalah.jar

all: $(JAR)

$(BUILD):
	mkdir -p $@

init: $(BUILD)
	scalac -d $(BUILD) $(SCFLAGS) $(SSRC) $(JSRC)
	javac -d $(BUILD) -cp $(CPATH) $(JCFLAGS) $(JSRC)

$(JAR): $(ASCLASS) $(AJCLASS)
	jar cfe $@ info.kwarc.teaching.AI.Kalah.Test -C $(BUILD) .

$(AJCLASS): ./$(BUILD)/%.class: ./src/main/scala/%.java
	javac -d $(BUILD) -cp $(CPATH) $(JCFLAGS) $<

$(ASCLASS): ./$(BUILD)/%.class: ./src/main/scala/%.scala
	scalac -d $(BUILD) -cp $(CPATH) $(SCFLAGS) $<

clean:
	rm -rf $(JAR) $(BUILD)

run: $(JAR)
	scala -cp $(CPATH) info.kwarc.teaching.AI.Kalah.Test

.PHONY: all init run clean