SOURCE := ../Src/Folder1/source.a66
OBJ := ../Src/Folder1/source._ia
OUT := ../Obj
all: $(OBJ)
echo "DONE"
# 1) Works
%._ia: %.a66
echo "Test" > $@
# 2) Don't work
$(OUT)/%._ia: %.a66
echo "Test" > $@
- When I use the first target, the file is created in
../Src/Folder1 - When I use the second target, when running make I get :
make: *** No rule to make target '../Src/Folder1/Os_cpu_a._ia', needed by '../Obj/target'. Stop.
What am I doing wrong?
At least you have to modify prerequisites of
all(value of$(OBJ)):Then modify your pattern rule as follows:
Finally, after extracting
../Objand../Srcto variables, you’ll get something like: