2
votes

My makefile execution fails each time due to a dependency. I don't want to overshare so I will try to only share the necessary info. I am using GNUWin32 make so that my windows box can execute it (a constraint I have to deal with) and I am able to compile/make a decent number of files in the src\\Framework\...\\%.o realm from ..\\src\\Framework\...\\%.c.

It seems that as long as it is at least 2 folders deep, the Makefile works. Ex: src\\test.o doesn't compile but src\\tester\\test.o will compile.

My error is as follows:

make: *** No rule to make target 'src\\control.o', needed by 'proj.elf'. Stop.

but I also have the following rule which is executed from a dependency of target all:

src\\%.o: ..\\src\\%.c

which should make src\\control.o as long as ..\\src\\%.c exists.


When I use make -d all I notice that it ends with

No implicit rule found for 'src\\control.o'.

Finished prerequisites of target file 'src\\control.o'.

Must remake target 'src\\control.o'

If anyone has a solution to make this work I would be glad to hear it!

1

1 Answers

0
votes

I found the problem. Apparently, even GNUWin32 make uses Unix style filenames for the targets and dependencies but in order to use the mkdir command, you must use Windows style filenames.

test/windows/%.o: ../test/windows/%.c

mkdir test\windows\make_this_dir\

I hope this helps anyone with a similar issue.