SDCC version 4.1.0
Running sdcc with -MD flag and setting a folder as output:
sdcc -ooutput/ -IC:\test\ -MD -c ./main/main.c
Will result in a dependency file (output\main.d) having a backslash in the target name, making it unusable with make:
output\main.rel: main/main.c C:/test/main/main.h
Meanwhile running sdcc with output being a file:
sdcc -ooutput/main.rel -IC:\test\ -MD -c ./main/main.c
Produces a correct target name with a forward slash:
output/main.rel: main/main.c C:/test/main/main.h
Directory tree:
C:\TEST
├───main
│ main.c
│ main.h
│
└───output
main.asm
main.d
main.lst
main.rel
main.sym
main.c
#include "main/main.h"
int main()
{
return 0;
}
main.h
// Empty
Forgot to clarify: This happens only on Windows.