Article View: es.comp.os.linux.programacion
Article #978Re: Makefile me usa CC ¿por defecto?
From: heltena
Date: Tue, 18 Jul 2006 15:06
Date: Tue, 18 Jul 2006 15:06
89 lines
3710 bytes
3710 bytes
heltena ha escrito:
> Hola grupo,
>
> Tengo los siguientes tipos de ficheros en el proyecto:
> *asm.asm -> ficheros en ensamblador (para PIC16f876)
> *.inc -> includes de ensamblador
> *.h -> versión C de los includes
> *.c -> codigo C que se debe compilar para PIC (usando SDCC)
>
> Y tengo el siguiente Makefile:
> <<BEGIN>>
> OBJS=spi.o spiasm.o pral.o global.o globalasm.o fat32.o fat32asm.o
> usart.o usartasm.o
> PRJ=enric3
>
> $(PRJ).hex: $(OBJS)
> gplink -o $(PRJ) $(OBJS)
>
> %.asm: %.c
> sdcc -S -V -mpic14 -p16f877 -c $<
>
> %.o: %.asm *.inc
> gpasm -p 16f876 -c $< -D$<
> <<END>>
>
> Bien, los pasos deberían ser:
> los fichero spi.o, pral.o, global.o fat32.o y usart.o están en C, así
> que:
> sdcc -mpic14 -p16f877 -c spi.c
> ...
> y me deben generar los ficheros: spi.asm pral.asm ...
>
> Después se ensamblan:
> gpasm -p 16f876 -c spi.asm -Dspi.asm
> (el -D es un define)
>
> Y después, lo enlazo todo:
> gplink -o enric3.hex spi.o spiasm.o ...
>
> Lo que pasa es que, en vez de usar el sdcc que tengo en la regla al
> compilar los ficheros C, me ejecuta el cc. Sacado de la shell:
>
> heltena@integer:~/src/pic/enric3$ make
> cc -c -o pral.o pral.c
> In file included from pral.c:1:
> p16f876.h:198: error: syntax error before 'at'
> pral.c:3: error: syntax error before numeric constant
> pral.c: In function 'main':
> pral.c:17: warning: return type of 'main' is not 'int'
> make: *** [pral.o] Error 1
>
> Y no solo eso, sino que me pone un "-o pral.o" que no debería ser
> así.
>
> Mi prueba ha sido: "bueno, si quieres usar cc, usarás cc" y he puesto
> encima del Makefile:
> CC=sdcc -S -V -mpic14 -p16f877 -c
>
> Y claro, me lo compila usando el sdcc, pero me lo guarda en, por
> ejemplo, "spi.o" y debería ser "spi.asm".
>
>
> ¿qué hago mal en el Makefile?
He conseguido compilar con el siguiente Makefile:
<<BEGIN>>
OBJS=spi.o spiasm.o pral.o global.o globalasm.o fat32.o fat32asm.o
usart.o usartasm.o
PRJ=enric3
.SUFFIXES: .c .asm .o
$(PRJ).hex: $(OBJS)
gplink -o $(PRJ) $(OBJS)
.c.o:
sdcc -S -mpic14 -p16f877 -c $<
gpasm -p 16f876 -c $*.asm -D$*.asm
.asm.o:
gpasm -p 16f876 -c $< -D$<
.PHONY: program clean
program: $(PRJ).hex
picp /dev/ttyS0 16f876 -wp $(PRJ).hex
<<END>>
Technical Details
Message-ID:
<1153235205.019854.277340@h48g2000cwc.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!h48g2000cwc.googlegroups.com!not-for-mailReferences:
<1153231264.317433.191740@75g2000cwc.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,c9be63ee285d36f1 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!h48g2000cwc.googlegroups.com!not-for-mail From: "heltena" <heltena@gmail.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: Makefile me usa CC ¿por defecto? Date: 18 Jul 2006 08:06:45 -0700 Organization: http://groups.google.com Lines: 90 Message-ID: <1153235205.019854.277340@h48g2000cwc.googlegroups.com> References: <1153231264.317433.191740@75g2000cwc.googlegroups.com> NNTP-Posting-Host: 193.147.222.244 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1153235210 2529 127.0.0.1 (18 Jul 2006 15:06:50 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 18 Jul 2006 15:06:50 +0000 (UTC) In-Reply-To: <1153231264.317433.191740@75g2000cwc.googlegroups.com> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1),gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: h48g2000cwc.googlegroups.com; posting-host=193.147.222.244; posting-account=ljKoDA0AAABEvzHlRrQ7YAIM9PPVxdEL