[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] unknown Make %. behavior
From: |
E. Weddington |
Subject: |
RE: [avr-gcc-list] unknown Make %. behavior |
Date: |
Mon, 13 Jan 2003 10:23:07 -0700 |
Sorry to toppost, but I got in on this late....
That's odd. On my machine the .o files *don't* get removed, even with
a makefile construction like the one below. Now I'm not sure why they
*don't* get removed on my machine.
Thanks for pointing this out. I'll see what I can do to correct this
for the next release. My intent was to *not* delete the object files.
Eric
On 13 Jan 2003 at 1:01, Dean Ferreyra wrote:
> I think this:
>
> $(TARGET).elf: $(OBJ)
> $(COMPILE) $(LDFLAGS) $(OBJ) $(LIBFLAGS) --output $@
>
> is probably the better way to write that particular rule.
>
> As for the deletions, that's how gnu make works. All the rules in
> that makefile are implicit rules, except this line:
>
> all: $(TARGET).elf
>
> When gnu uses chains of implicit rules to generate a file, the files
> created along the way are considered intermediate files and are
> deleted once the final target is created. This part:
>
> %.elf: $(OBJ)
> $(COMPILE) $(LDFLAGS) $(OBJ) $(LIBFLAGS) --output $@
>
> is an implicit pattern rule, too, thanks to the % wildcard. If the .o
> files don't already exist, and they're not mentioned anywhere else in
> a normal rule, then the .o files will be considered intermediate files
> and will be deleted.
>
> On the other hand, this:
>
> $(TARGET).elf: $(OBJ)
> $(COMPILE) $(LDFLAGS) $(OBJ) $(LIBFLAGS) --output $@
>
> is a normal rule so now the .o files are not considered intermediate
> files and will remain.
>
> Dean
>
> -----Original Message-----
> From: address@hidden
> [mailto:address@hidden Behalf Of Sander Pool Sent:
> Sunday, January 12, 2003 8:25 PM To: Avr-Gcc-List Subject:
> [avr-gcc-list] unknown Make %. behavior
>
>
>
> Hi,
>
> it's been quite a few years since I wrote makefiles as part of my job
> and this was on Solaris with Sun make. Far less capable than gmake. So
> I'm a little stumped right now. I use WinAVR on Win2k which comes with
> Gnu-make 3.78.1. The sample makefile that Eric provided with the
> package contains these lines:
>
> .SECONDARY : $(TARGET).elf
> %.elf: $(OBJ)
> $(COMPILE) $(LDFLAGS) $(OBJ) $(LIBFLAGS) --output $@
>
> The OBJ variable contains the .0 files that make up the project. The
> odd thing is that after the compile/link is done the .o's get removed!
> There is no rule in the makefile to do that. If I change the lines
> above to this:
>
> .SECONDARY : $(TARGET).elf
> $(TARGET).elf: $(OBJ)
> $(COMPILE) $(LDFLAGS) $(OBJ) $(LIBFLAGS) --output $@
>
> It leaves the .o files alone, as it should.
>
> Does anyone know what's going on? I have attached the whole Makefile
> in case you want to look at it.
>
> Thanks,
>
> Sander
>
>
> avr-gcc-list at http://avr1.org
avr-gcc-list at http://avr1.org
- [avr-gcc-list] unknown Make %. behavior, Sander Pool, 2003/01/18
- RE: [avr-gcc-list] unknown Make %. behavior, Dean Ferreyra, 2003/01/18
- RE: [avr-gcc-list] unknown Make %. behavior,
E. Weddington <=
- RE: [avr-gcc-list] unknown Make %. behavior, Dean Ferreyra, 2003/01/18
- RE: [avr-gcc-list] unknown Make %. behavior, E. Weddington, 2003/01/18
- Re: [avr-gcc-list] unknown Make %. behavior, Sander Pool, 2003/01/18
- Re: [avr-gcc-list] unknown Make %. behavior, E. Weddington, 2003/01/18
- Re: [avr-gcc-list] unknown Make %. behavior, Sander Pool, 2003/01/18
- Re: [avr-gcc-list] unknown Make %. behavior, E. Weddington, 2003/01/18
- [avr-gcc-list] uisp and new STK500 firmware?, Yann Ramin, 2003/01/18
- Re: [avr-gcc-list] uisp and new STK500 firmware?, Klaus Rudolph, 2003/01/18
- Re: [avr-gcc-list] uisp and new STK500 firmware?, Yann Ramin, 2003/01/18
RE: [avr-gcc-list] unknown Make %. behavior, Artur Lipowski, 2003/01/18