basedir := $(dir $(realpath $(lastword $(MAKEFILE_LIST)))) OPENSCAD = openscad OPENSCAD_FLATPAK = flatpak run --filesystem=$(basedir) org.openscad.OpenSCAD ifdef USE_FLATPAK OPENSCAD = $(OPENSCAD_FLATPAK) endif BASENAME = mini-tube SOURCE_FILE = $(BASENAME).scad PRESET_FILE = $(BASENAME).json PRESETS = 1ml-50mm2 1ml-100mm2 2ml-50mm2 2ml-100mm2 2ml-200mm2 5ml-100mm2 5ml-200mm2 5ml-333mm2 5ml-500mm2 10ml-333mm2 10ml-500mm2 default: $(foreach preset,$(PRESETS),$(BASENAME)-$(preset).3mf) .PHONY: default $(BASENAME)-%.3mf: params = $(subst -, ,$*) $(BASENAME)-%.3mf: volume_ml = $(patsubst %ml,%,$(word 1,$(params))) $(BASENAME)-%.3mf: preset = $(word 2,$(params)) $(BASENAME)-%.3mf: $(SOURCE_FILE) $(PRESET_FILE) $(OPENSCAD) -o $@ -p $(PRESET_FILE) -P $(preset) -D volume_ml=$(volume_ml) $(SOURCE_FILE)