There are various ways to do it.
First, always, always use $(MAKE)
and never make
when running a sub-make. Then...
1. You can pass the value on the recursive command line:
itemname = whatever
downloads:
$(MAKE) -f downloads.makefile itemname=$(itemname)
2. You can export the variable in the parent makefile:
export itemname = myvalue
downloads:
$(MAKE) -f downloads.makefile
with sub-makefile such :
download:
echo "downloaded $(itemname): Done!"