[makefile] use mktemp to create unique temp files

This assumes that mktemp is available, but should provide a better solution for issue #229.

Also create a variable holding the tempfile name which is unique to each target.
This should prevent problems with parallel builds, since these variables are global.
This commit is contained in:
Felix Ruess
2013-03-21 16:43:42 +01:00
parent 7325f9fec8
commit 77cd732702
7 changed files with 112 additions and 94 deletions
+8 -9
View File
@@ -31,9 +31,6 @@ XLINKPKG = $(XPKG) -linkpkg -dllpath-pkg pprz.xlib
PAPARAZZICENTERCMO = gtk_pc.cmo gtk_process.cmo pc_common.cmo pc_aircraft.cmo pc_control_panel.cmo paparazzicenter.cmo
# default directory for temporary files
TMPDIR ?= /tmp
all: paparazzicenter
paparazzicenter : $(PAPARAZZICENTERCMO)
@@ -42,15 +39,17 @@ paparazzicenter : $(PAPARAZZICENTERCMO)
gtk_pc.ml : paparazzicenter.glade
@echo GLADE $@
$(Q)grep -v invisible_char $< > $(TMPDIR)/$<
$(Q)lablgladecc2 -hide-default -root window $(TMPDIR)/$< > $@
$(Q)rm $(TMPDIR)/$<
$(eval $@_TMP := $(shell mktemp))
$(Q)grep -v invisible_char $< > $($@_TMP)
$(Q)lablgladecc2 -hide-default -root window $($@_TMP) > $@
$(Q)rm -f $($@_TMP)
gtk_process.ml : paparazzicenter.glade
@echo GLADE $@
$(Q)grep -v invisible_char $< > $(TMPDIR)/$<
$(Q)lablgladecc2 -hide-default -root hbox_program $(TMPDIR)/$< | grep -B 1000000 " end" > $@
$(Q)rm $(TMPDIR)/$<
$(eval $@_TMP := $(shell mktemp))
$(Q)grep -v invisible_char $< > $($@_TMP)
$(Q)lablgladecc2 -hide-default -root hbox_program $($@_TMP) | grep -B 1000000 " end" > $@
$(Q)rm -f $($@_TMP)
%.cmo : %.ml
@echo OC $<