all: patch/tree/map/definition.csv DESTDIR ?= install MODNAME ?= randchgs MODPATH ?= C:/Users/User/Documents/Paradox Interactive/Hearts of Iron IV/mod/randchgs # patch VANILLA_SRC ?= ../vanilla patchwork/map/definition.csv: $(VANILLA_SRC)/map/definition.csv patches/map_definition.patch mkdir -p $(@D) patch -u --binary -N -o $@ $^ #build raw_requsites := src/* patched_requisites := patchwork/map/definition.csv build: mkdir $@ release: build/release.zip image/$(MODNAME): src/* $(patched_requisites) mkdir -p $@ rsync -rv src/ $@/ rsync -rv patchwork/ $@/ image/$(MODNAME).zip: image/$(MODNAME) image/$(MODNAME).mod cd image && zip -r $(MODNAME).zip $(MODNAME) cd image && zip $(MODNAME).zip $(MODNAME).mod image/$(MODNAME).mod: src/descriptor.mod cp $< $@ printf '\n%s\n' 'path="$(MODPATH)/$(MODNAME)"' >> $@ build/release.zip: src/* $(patched_requisites) | build cd src && zip -r ../build/$(@F) ./ cd patchwork && zip -r ../build/$(@F) ./ # install install: $(DESTDIR)/$(MODNAME).mod | $(DESTDIR)/$(MODNAME) $(DESTDIR)/$(MODNAME) $(DESTDIR): mkdir -p $@ $(DESTDIR)/$(MODNAME)/descriptor.mod: build/release.zip | $(DESTDIR)/$(MODNAME) cd $| && unzip -o $(abspath build/release.zip) $(DESTDIR)/$(MODNAME).mod: $(DESTDIR)/$(MODNAME)/descriptor.mod cp $< $@ printf '\n%s\n' 'path="$(MODPATH)/$(MODNAME)"' >> $@ #clean clean: rm -rf patchwork build .PHONY: all release clean patch install