+(defmacro proj-comp-insert-variable-once (varname &rest body)
+ "Add VARNAME into the current Makefile if it doesn't exist.
+Execute BODY in a location where a value can be placed."
+ `(let ((addcr t) (v ,varname))
+ (unless (re-search-backward (concat "^" v "\\s-*=") nil t)
+ (insert v "=")
+ ,@body
+ (if addcr (insert "\n"))
+ (goto-char (point-max)))
+ ))
+(put 'proj-comp-insert-variable-once 'lisp-indent-function 1)
+