ASM   ?= /usr/share/java/asm-all.jar
JAVAC ?= javac
JAR   ?= jar
CARGO ?= cargo

PREFIX ?= /usr

# CARGO_TARGET builds the translator for another architecture, as debian/rules does in a cross build.
ifneq ($(CARGO_TARGET),)
CARGO_FLAGS = --target $(CARGO_TARGET)
TRANSLATOR  = enjarify-rs/target/$(CARGO_TARGET)/release/enjarify
else
TRANSLATOR  = enjarify-rs/target/release/enjarify
endif

all: fixup translator

fixup:
	$(MAKE) -C fixup ASM=$(ASM) JAVAC=$(JAVAC) JAR=$(JAR)

translator:
	cd enjarify-rs && $(CARGO) build --release $(CARGO_FLAGS)

install: all
	install -D -m0755 $(TRANSLATOR) $(DESTDIR)$(PREFIX)/lib/eydos-enjarify/enjarify
	install -D -m0644 fixup/enjarify-fixup.jar $(DESTDIR)$(PREFIX)/share/eydos-enjarify/fixup/enjarify-fixup.jar
	install -D -m0755 eydos-enjarify $(DESTDIR)$(PREFIX)/bin/eydos-enjarify

clean:
	$(MAKE) -C fixup clean
	rm -rf enjarify-rs/target
	find . -name __pycache__ -type d -prune -exec rm -rf {} +
	find . -name '*.py[co]' -delete

# Also what running the tests and coverage leave behind.
distclean: clean
	rm -f out.jar
	rm -rf .coverage htmlcov

.PHONY: all fixup translator install clean distclean
