[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] Makefile problem and solution
From: |
Schwichtenberg, Knut |
Subject: |
[avr-gcc-list] Makefile problem and solution |
Date: |
Tue, 26 Sep 2006 08:30:08 +0200 |
Hi,
in the middle of a running project I received from make the "very
expressive" error message:
.dep/blcd.o.d:1: *** multiple target patterns. Stop.
I'm using WinAVR + Cygwin together. My "Unix tools" are from Cygwin
while the avr-gcc comes from WinAVR. That works fine except for avr-gdb
which I'm not using. I did some updates Path, Cygwin,... so I could not
say why a formerly running makefile did run any longer.
I found a newly make extension called remake. remake is a make +
debugging interface. Very usefull but it did not help. With gdb and the
make sources I found out that the under cygwin generated dependency file
contain colons that are confusing the makefile parser!
Exapmle from blcd.o.d:
blcd.o: blcd.c C:/WinAVR_20060421/avr/include/stdint.h \
C:/WinAVR_20060421/avr/include/string.h \
c:\WinAVR\bin\../lib/gcc/avr/3.4.6/include/stddef.h studio/global.h \
studio/defines.h studio/types.h studio/blcd.h studio/lcd.h
studio/lcd.h ....
The Solution is simple:
There is a define "HAS_DOS_PATHS" that need to be set. With this define
set the parser is running properly.
It seem to be a wrong compiling for the current Make.exe (version 3.81-1
as defined by Cygwin Setup).
But additionally all projects that are moved from Cygwin to Unix will
show the same message. For these project the dependency directory need
to be removed manually while the next rebuild solves the problem.
HTH
Knut
- [avr-gcc-list] Makefile problem and solution,
Schwichtenberg, Knut <=