Jak dodać plik motor.c do Makefile w WINAVR dla AT90S2313?
Makefile w WINAVR
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
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)
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.
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.
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
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.