Thanks @kennethlimcp. That took me a step further.
Now I get the following:
make PLATFORM=photon -s program-dfu
/home/kourosh/temp/spark-photon/firmware/modules/photon/system-part1/makefile /home/kourosh/temp/spark-photon/firmware/modules/photon/system-part2/makefile /home/kourosh/temp/spark-photon/firmware/modules/photon/user-part/makefile
make: *** No rule to make target
../../../build/target/communication/platform-6-m-prod-6/libcommunication.a', needed by…/…/…/build/target/system-part1/platform-6-m/system-part1.elf’. Stop.
make: *** [/home/kourosh/temp/spark-photon/firmware/modules/photon/system-part1/makefile] Error 2
As you can see it tries to backtrack too many directories which explains why it does not find libcommunication.a, which I can’t figure out why. The only place I found that construct was in …/build/target/user-part/platform-6-m/user-part.map
And the only place where I could see a mention of this .map file was in: ./shared/stm32f2xx/part1_build.mk
Is there anything else I should do to get it to build OK before flashing?