When considering parallel builds, make decides the order in which to build things solely by the prerequisite lists. If target FOO is not defined as a prerequisite of target BAR, then make will feel free to build both FOO and BAR at the same time.
Remember that having two targets listed as prerequisites to the same target, as in TARGET : FOO BAR
, just means that both FOO and BAR must be built before TARGET. It does NOT mean that FOO and BAR have any relationship to each other, at all. So if you have:
foo: rmlink mklink
then make is free to run both rmlink and mklink at the same time. If you want to have rmlink always completed before mklink is started, you have to declare a prequisite relationship between them, like:
mklink: rmlink
And of course, remember you must ensure that the mklink target is a prerequisite of any linker target that needs those links to exist.
There may well be more wrong here but given the parts of the makefile you've shown and the question you asked, that should fix it.