www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

makefile in shell eno z drugim

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
71GA
Član
Član



Pridružen-a: Tor 16 Jun 2009 18:53
Prispevkov: 391
Aktiv.: 2.00
Kraj: Ljubljana

PrispevekObjavljeno: Sre Apr 06, 2011 3:27 pm    Naslov sporočila:  makefile in shell eno z drugim Odgovori s citatom

Ž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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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