Jak dodać plik motor.c do Makefile w WINAVR dla AT90S2313?

Makefile w WINAVR





Poprzedni Następny
Wiadomość
Spis treści
From: "Kurciok" <kurciok_at_nospam_poczta.BEZSPAMUonet.pl>
Subject: Makefile w WINAVR
Date: Fri, 10 Mar 2006 19:56:45 +0100


Nie zabardzo jarze składnie plików makefile. Może mi ktoś pomoże? Zrobiłem
sobie makefila (korzystając już z gotowych). Dzięki któremu kompiluje mi się
program i mam też możliwość jego zaprogramowania przez ponyproga. Wszystko
działa dobrze.

Tylko że teraz chce oprócz pliku main.c dodać do wynikowego bin'a pilk
motor.c i nie wiem jak to zrobić:(stworzyłem już zmienną SRC w której chce
sobie trzymać pliki, które mają się skompilować no ale nie wiem w którym
miejscu mam tą zmienną wsadzić, tak aby to zadziałało tak jak należy.


#
# $Id: Makefile,v 1.1 2002/12/18 22:35:38 joerg_wunsch Exp $
#
CSTANDARD = -std=gnu99
CC= avr-gcc
MCU=AT90S2313
ISPEXE = c:/program files/ponyprog2000/ponyprog2000.exe

SRC = main.c motor.c

CFLAGS = -g
CFLAGS += $(CDEFS) $(CINCS)
CFLAGS += -O$(OPT)
CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -Wall -Wstrict-prototypes
CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
CFLAGS += $(CSTANDARD)


.SUFFIXES: .s .bin .out .hex .srec

.c.s:
$(CC) $(CFLAGS) -S $<

.S.o:
$(CC) $(ASFLAGS) -c $<

.o.out:
$(CC) $(CFLAGS) -o $_at_nospam_ $<

.out.bin:
avr-objcopy -O binary $< $_at_nospam_

.out.hex:
avr-objcopy -O ihex $< $_at_nospam_

.out.srec:
avr-objcopy -O srec $< $_at_nospam_

all: main.bin

OBJS=main.o
main.out: $(OBJS)
$(CC) -o main.out $(CFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS) -lm

clean:
rm -f *~ *.out *.bin *.hex *.srec *.s *.o *.pdf *core

program:
$(ISPEXE) isp.e2s



Poprzedni Następny
Wiadomość
Spis treści
From: "Artur M. Piwko" <pipene-news_at_nospam_pu.kielce.pl>
Subject: Re: Makefile w WINAVR
Date: Sat, 11 Mar 2006 03:47:25 +0000 (UTC)


In the darkest hour on Fri, 10 Mar 2006 19:56:45 +0100,
Kurciok <kurciok_at_nospam_poczta.BEZSPAMUonet.pl> screamed:
Nie zabardzo jarze składnie plików makefile. Może mi ktoś pomoże? Zrobiłem
sobie makefila (korzystając już z gotowych). Dzięki któremu kompiluje mi się
program i mam też możliwość jego zaprogramowania przez ponyproga. Wszystko
działa dobrze.

Tylko że teraz chce oprócz pliku main.c dodać do wynikowego bin'a pilk
motor.c i nie wiem jak to zrobić:(stworzyłem już zmienną SRC w której chce
sobie trzymać pliki, które mają się skompilować no ale nie wiem w którym
miejscu mam tą zmienną wsadzić, tak aby to zadziałało tak jak należy.

#
# $Id: Makefile,v 1.1 2002/12/18 22:35:38 joerg_wunsch Exp $
#
CSTANDARD = -std=gnu99
CC= avr-gcc
MCU=AT90S2313
ISPEXE = c:/program files/ponyprog2000/ponyprog2000.exe

SRC = main.c motor.c

OBJS = $(SRC:.c=.obj)


CFLAGS = -g
CFLAGS += $(CDEFS) $(CINCS)
CFLAGS += -O$(OPT)
CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -Wall -Wstrict-prototypes
CFLAGS += -Wa,-adhlns=$(<:.c=.lst)
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
CFLAGS += $(CSTANDARD)


.SUFFIXES: .s .bin .out .hex .srec

.c.s:
$(CC) $(CFLAGS) -S $<

.S.o:
$(CC) $(ASFLAGS) -c $<

.o.out:
$(CC) $(CFLAGS) -o $_at_nospam_ $<

.out.bin:
avr-objcopy -O binary $< $_at_nospam_

.out.hex:
avr-objcopy -O ihex $< $_at_nospam_

.out.srec:
avr-objcopy -O srec $< $_at_nospam_

all: main.bin

OBJS=main.o

Zkasuj powyższą.

main.out: $(OBJS)
$(CC) -o main.out $(CFLAGS) $(LDFLAGS) $(OBJS) $(LDLIBS) -lm

clean:
rm -f *~ *.out *.bin *.hex *.srec *.s *.o *.pdf *core

program:
$(ISPEXE) isp.e2s






--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:231B ]
[ 04:44:51 user up 10912 days, 16:39, 1 user, load average: 0.06, 0.06, 0.06 ]

grep... grep... grep... (Frog with UNIX stuck in its' throat)

Poprzedni Następny
Wiadomość
Spis treści
From: "Kurciok" <kurciok_at_nospam_poczta.BEZSPAMUonet.pl>
Subject: Re: Makefile w WINAVR
Date: Sat, 11 Mar 2006 11:05:24 +0100



SRC = main.c motor.c

OBJS = $(SRC:.c=.obj)


OBJS=main.o

Zkasuj powyższą.

Coś nie działa teraz za każdym razem dostaje komunikat "make.exe: * No
rule to make target `main.obj', needed by `main.out'. Stop." nawet jak
zrobię clean przed kompilowaniem.



Poprzedni Następny
Wiadomość
Spis treści
From: "Artur M. Piwko" <pipene-news_at_nospam_pu.kielce.pl>
Subject: Re: Makefile w WINAVR
Date: Sat, 11 Mar 2006 12:12:19 +0000 (UTC)


In the darkest hour on Sat, 11 Mar 2006 11:05:24 +0100,
Kurciok <kurciok_at_nospam_poczta.BEZSPAMUonet.pl> screamed:
SRC = main.c motor.c

OBJS = $(SRC:.c=.obj)
OBJS=main.o

Zkasuj powyższą.

Coś nie działa teraz za każdym razem dostaje komunikat "make.exe: * No
rule to make target `main.obj', needed by `main.out'. Stop." nawet jak
zrobię clean przed kompilowaniem.


Uhm. Mój błąd. Ma być: OBJS = $(SRC:.c=.o)

--
[ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:225B ]
[ 13:11:44 user up 10912 days, 1:06, 1 user, load average: 0.06, 0.06, 0.06 ]

God is REAL, unless explicitly declared INTEGER.

Poprzedni Następny
Wiadomość
Spis treści
From: =?ISO-8859-2?Q?Krzysztof_Szmur=B3o?= <ks123_at_nospam_tlen.do.wyciecia.pl>
Subject: Re: Makefile w WINAVR
Date: Sat, 11 Mar 2006 10:01:19 +0100


Kurciok napisał(a):
Nie zabardzo jarze składnie plików makefile. Może mi ktoś pomoże? Zrobiłem
sobie makefila (korzystając już z gotowych). Dzięki któremu kompiluje mi się
program i mam też możliwość jego zaprogramowania przez ponyproga. Wszystko
działa dobrze.

Tylko że teraz chce oprócz pliku main.c dodać do wynikowego bin'a pilk
motor.c i nie wiem jak to zrobić:(stworzyłem już zmienną SRC w której chce
sobie trzymać pliki, które mają się skompilować no ale nie wiem w którym
miejscu mam tą zmienną wsadzić, tak aby to zadziałało tak jak należy.

A nie możesz wygenerować makefile za pomocą mfile (dostępny razem winavr) ?

Pozdrawiam
Krzysztof Szmurło

Poprzedni Następny
Wiadomość
Spis treści
From: "Kurciok" <kurciok_at_nospam_poczta.BEZSPAMUonet.pl>
Subject: Re: Makefile w WINAVR
Date: Sat, 11 Mar 2006 11:16:46 +0100



A nie możesz wygenerować makefile za pomocą mfile (dostępny razem winavr)
?

) nie wiedziałem o tym programie. Dzięki już sobie wygenerowałem i wszystko
działa.