my problem is that my list of dependencies $^ is coming through empty, I know this because I echoed out the zip command and the last parameters are empty (the @zip -j $@ part works fine)
You should indent by tabs, not spaces, in a makefile.
This was the most complained "mistake" left by the original Make authors! It has caused endless hours debugging by new developers using make command. I almost fell into the same trap until I search Google for developers facing the same issues as me!
I believe latter version of the make command improve on it ?