chiark / gitweb /
Import threads.scad v2.5 from my objects repo to diziet-utils
[reprap-play.git] / reprap-objects.make
index 0d8d6c69359635abb1fdefea6185c5dbe0efe443..9a56e49619da23ea1d3d2349f50e8db01aebb83d 100644 (file)
@@ -1,7 +1,8 @@
 # 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
 
@@ -51,27 +56,28 @@ stls:               $(addsuffix .auto.stl, $(AUTO_TOPLEVELS))
 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