##############
## Makefile ##
##############
#
#  Makefile for mlm.pak64
#  Author: Nazalassa
#  Got inspiration from pak48.Excentrique and pak48.bitlit makefiles
#
##############

# Makeobj 60.2 is 124.1-compatible, but Makeobj 60.7 isn't 120.4-compatible.
# This uses my version of Makeobj, 60.2.
# But whatever.
MAKEOBJ    ?= ./makeobj
PREPROCESS ?= ./preprocess

DESTDIR    ?= .
PAKDIR     ?= $(DESTDIR)/mlm.pak64
ARCHIVEDIR ?= $(DESTDIR)/archives
PAKVERSION ?= "α5"
DESTFILE   ?= mlm.pak64.$(PAKVERSION)
SINGLEPAK  ?= cirrus

COPYDIRS :=
COPYDIRS += text

DIRS :=
DIRS += infrastructure
DIRS += vehicles
DIRS += wayobj
DIRS += ways
# Add more directories



all: copy $(DIRS) tar

all-single: copy $(DIRS) singlepak tar

all-catpak: copy $(DIRS) catpak tar

archives: tar zip

tar: $(DESTFILE).tgz
zip: $(DESTFILE).zip

copy: $(COPYDIRS)

singlepak:
	@echo "'-> singlepak"
	@mkdir -p $(PAKDIR)
	@$(MAKEOBJ) quiet MERGE $(PAKDIR)/$(SINGLEPAK) $(PAKDIR)/*.pak > /dev/null
	@rm -f $(PAKDIR)/*.pak
	@mv $(PAKDIR)/$(SINGLEPAK) $(PAKDIR)/$(SINGLEPAK).pak

catpak:
	@echo "'-> catpak"
	@mkdir -p $(PAKDIR)
	@$(MAKEOBJ) quiet MERGE $(PAKDIR)/cirrus $(PAKDIR)/*cirrus*.pak > /dev/null
	@$(MAKEOBJ) quiet MERGE $(PAKDIR)/stops $(PAKDIR)/*building*.pak > /dev/null
	@rm -f $(PAKDIR)/*.pak
	@mv $(PAKDIR)/cirrus $(PAKDIR)/cirrus.pak
	@mv $(PAKDIR)/stops $(PAKDIR)/stops.pak

clean:
	@echo "'-> clean"
	@rm -fr $(PAKDIR) $(DESTFILE).tgz $(DESTFILE).zip

sandwich:
	@echo "'-> sandwich"
	@if [ `id -u` -eq 0 ]; then echo "Making sandwich... done." ;\
	else echo "What? Make it yourself!" ; fi

preprocess:
	@echo "'-> preprocess"
	@$(PREPROCESS) vehicles/*.proto

$(DESTFILE).tgz: $(PAKDIR)
	@echo "'-> tgz $@"
	@mkdir -p $(ARCHIVEDIR)
	@tar czf $(ARCHIVEDIR)/$@ $(PAKDIR)
	@tar czf $(ARCHIVEDIR)/src.$@ --exclude='archives' .

$(DESTFILE).zip: $(PAKDIR)
	@echo "'-> zip $@"
	@mkdir -p $(ARCHIVEDIR)
	@zip -rq $(ARCHIVEDIR)/$@ $(PAKDIR)
	@zip -rq $(ARCHIVEDIR)/src.$@ $(DIRS) $(COPYDIRS) $(ADDONDIRS) Makefile \
	   CHANGELOG

$(COPYDIRS):
	@echo "'-> copy $@"
	@mkdir -p $(PAKDIR)/$@
	@if [ "`ls $@`" ]; then cp -p $@/* $(PAKDIR)/$@ ; fi

$(DIRS): preprocess
	@echo "'-> pak64 $@"
	@mkdir -p $(PAKDIR)
	@$(MAKEOBJ) quiet PAK64 $(PAKDIR)/ $@/ > /dev/null
