In GNU Make 3.81, I need to remove a lockfile in the event of an error in any part of the toolchain. Is there a special target that will allow me to do this? Do I need to write a wrapper script?
In the example below, I need unlock_id to happen if the rule for file.out fails.
Thanks! -Jeff
all: lock_id file.out unlock_id
file.out: file.in
file-maker < file.in > $@
lock_id:
lockfile file.lock
unlock_id:
rm -rf file.lock
I would do the lock/unlock in the same target as file-maker
:
file.out: file.in
lockfile [email protected]
file-maker < $< > $@; \
status=$$?; \
rm -f [email protected]; \
exit $$status
This executes the file-maker
and unlock steps in the same shell, saving the status of file-maker
so make
will fail if file-maker
fails.
This is kind of a kludge, but it works:
all:
@$(MAKE) file.out || $(MAKE) unlock_id
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With