# reprap-objects Makefile, reuseable parts
#
# Build scripts for various 3D designs
-# Copyright 2012-2016 Ian Jackson
+#
+# Copyright 2012-2023 Ian Jackson
#
# This work is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
M4=m4
CWD := $(shell pwd)
-PLAY ?= $(CWD)
+DUTILS ?= $(CWD)/diziet-utils
+PLAY ?= $(CWD) # deprecated, for compatibility only
-AUTO_TOPLEVELS := $(foreach m,$(USING_AUTOS),$(shell $(PLAY)/toplevel-find $m))
+AUTO_TOPLEVELS := $(foreach m,$(USING_AUTOS),$(shell $(DUTILS)/toplevel-find $m))
AUTO_INCS += funcs.scad
default: autoincs scads
-$(shell set -xe; $(PLAY)/commitid.scad.pl >commitid.scad.tmp; cmp commitid.scad.tmp commitid.scad || mv -f commitid.scad.tmp commitid.scad )
+$(shell set -xe; $(DUTILS)/commitid.scad.pl >commitid.scad.tmp; cmp commitid.scad.tmp commitid.scad || mv -f commitid.scad.tmp commitid.scad )
autoincs: $(AUTO_INCS) $(AUTO_STLS_INCS)
scads: $(addsuffix .auto.scad, $(AUTO_TOPLEVELS))
stls: $(addsuffix .auto.stl, $(AUTO_TOPLEVELS))
%.auto.scads: %.scad
- $(MAKE) $(addsuffix .auto.scad, $(shell $(PLAY)/toplevel-find $*))
+ $(MAKE) $(addsuffix .auto.scad, $(shell $(DUTILS)/toplevel-find $*))
%.auto.stls:
- $(MAKE) $(addsuffix .auto.stl, $(shell $(PLAY)/toplevel-find $*))
+ $(MAKE) $(addsuffix .auto.stl, $(shell $(DUTILS)/toplevel-find $*))
+
+i=mv -f $@.tmp $@
+o= >$@.tmp && $i
-include .*.d
AUTOBASE=$(shell echo $(1) | perl -pe 's/,\w+\.auto$$//')
%: %.cpp
- cpp -nostdinc -P <$< >$@.tmp && mv -f $@.tmp $@
+ cpp -nostdinc -P <$< $o
-funcs.scad:
+funcs.scad: diziet-utils/funcs.scad.cpp
+ cpp -nostdinc -P $< $o
%.gcode: manual-gcode-generator %.m-g
- $(PLAY)/$^ >$@.tmp && mv -f $@.tmp $@
+ $(CWD)/$^ $o
%.dxf: %.eps
pstoedit -dt -f "dxf: -polyaslines -mm" $< $@
%: %.pl
- ./$< >$@.tmp && mv -f $@.tmp $@
+ ./$< $o
%: %.m4
- $(M4) -P >$@.tmp $< && mv -f $@.tmp $@
+ $(M4) -P >$@.tmp $< && $i
.PRECIOUS: %.auto.scad
-%.auto.scad: $(PLAY)/toplevel-make Makefile $(PLAY)/toplevel-find
+%.auto.scad: $(DUTILS)/toplevel-make Makefile $(DUTILS)/toplevel-find
@echo ' write $@'
$< $@ >$@.tmp
- @mv -f $@.tmp $@
+ @$i
.PRECIOUS: %.stl %.gcode %.eps %.dxf