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