 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
71GA Član


Pridružen-a: Tor 16 Jun 2009 18:53 Prispevkov: 391 Aktiv.: 2.00 Kraj: Ljubljana
|
Objavljeno: Sre Apr 06, 2011 3:27 pm Naslov sporočila: makefile in shell eno z drugim |
|
|
Živijo. Sem napisal makefile, ki naj bi sestavil program z imenom "executable" iz objektov, katere najde v podrejenih mapah (sources, startup in objects) delovne mape. Makefile mi meče napako:
Koda: |
arm-none-eabi-gcc -M
arm-none-eabi-gcc: no input files
make: *** [executable] Error 1 |
No v glavnem makefile sem nalepil spodaj. Očitno mora biti nekaj narobe z mojo uporabo shell ukazov, katere sem uporabljal v skladu z tole literaturo (glej str 92 in 46).
Koda: |
SHELL := /bin/bash
# najprej nastavimo shell, ki je v nasem primeru bash in z operatorjem := expandamo spremenljivke
# nastavitev asemblerja, compilerja in linkerja
AS = arm-none-eabi-as
GCC = arm-none-eabi-gcc
LD = arm-none-eabi-ld
GCCMAKEDEP = arm-none-eabi-gcc -M
# nastavitev nastavitev za asembler, compiler in linker
ASOPT = -mcpu=arm926ej-s -c -Wall
GCCOPT = -mcpu=arm926ej-s -c -Wall
LDOPT = -Tldscript_iram_gnu.ld
# nastavitev direktorij v katerih se nahajajo kljucne datoteke za sestavo programa. Operator := expanda vrednost.
ROOTDIR := $(shell pwd)
ASDIR := $(ROOTDIR)/startup
GCCDIR := $(ROOTDIR)/source
LDDIR := $(ROOTDIR)/objects
INCDIR := $(ROOTDIR)/include
all: executable
# potrebno je locirati vse startup, source in objektne datoteke in jih nanizati v textovne datoteke, kjer z ukazom sed pobrišemo pot do datoteke in nato zamenjamo končnice.
ls $(ASDIR)/*.s > startup_list
sed -i 's|..*/||g' startup_list
ASFILE := $(shell cat startup_list)
ls $(GCCDIR)/*.c > sources_list
sed -i 's|..*/||g' sources_list
GCCFILE := $(shell cat sources_list)
cat startup_list sources_list > objects_list
sed -e 's/\.c/\.o/g' objects_list > objects_list_tmp
sed -e 's/\.s/\.o/g' objects_list_tmp > objects_list
LDFILE := $(shell cat objects_list)
executable: $(LDFILE)
$(GCCMAKEDEP) $(GCCFILE)
clean:
rm startup_list sources_list objects_list objects_list_tmp
echo Pocistili ste vse datoteke.
|
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 6 dni
Powered by phpBB © 2001, 2005 phpBB Group
|