in reply to [OT] Makefiles - nmake syntax v dmake syntax

Isn't the if exist file del file syntax from the nmake example simply executing the standard cmd.exe if exist built-in command?

And so, for the dmake example, could you not convert that to an equivalent syntax, that the default command processor it uses, understands?

For example, for sh, you might use test -f file && unlink file or similar.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

Replies are listed 'Best First'.
Re^2: [OT] Makefiles - nmake syntax v dmake syntax
by Bloodnok (Vicar) on Jul 16, 2008 at 12:07 UTC
    The rules in make scripts are executed in the default shell - overrideable by an appropriate setting of the SHELL macro in the make script.

    BTW, in your example, if you use test -f ... in a make rule and the file doesn't exist, make(1) will abort since it traps all non-success error codes and quits.

    The prefixing of any line with a -, avoids this.

    Update Using straight shell i.e. no perl available, I tend to use shell expansion together with a case statement - which returns no status, thus avoiding upsetting make(1) - so in this case ...

    target: case "filename*" in \ \*) : ;; \ *) rm file ;; \ esac
    Of course if you're using sh, the easiest solution is to use rm -f file...

    HTH ,

    At last, a user level that overstates my experience :-))