Portál AbcLinuxu, 10. května 2025 06:48

Dotaz: Makefile - jak "vyrobit" viceradkovy soubor v textu ?

21.12.2008 11:42 vaclavpe | skóre: 4
Makefile - jak "vyrobit" viceradkovy soubor v textu ?
Přečteno: 539×
Odpovědět | Admin

Ahoj, hraju si s SDCC portem pro HC08 a poterbuji udelat novy "LNK" soubor primo z Makefile. Ten soubor ma vypadat jako sada parametru, kazdy na separatnim radku.

Pokud v Makefile pouziju nasledujici target - dostanu chybu:

main.linker: cat << EOF -myuxs

-Y

-b HOME = 0x8000

-b DSEG = 0x0080

-b BSEG = 0x0000

-k d:\v\sw\sdcc\lib\hc08

-k d:\V\sw\sdcc\bin\..\lib\hc08

-l hc08

main.rel

-e EOF > main.linker

 

Pokud na koncich pouziju backslashe, parametry skonci na jednom radku. Ma nekdo napad, jak ten soubor generovat primo z Makefile ?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.12.2008 23:34 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Napr.

main.linker:
	echo -e "-myuxs\n\
	-Y\n\
	-b HOME = 0x8000\n\
	-b DSEG = 0x0080\n\
	-b BSEG = 0x0000\n\
	-k d:\\\\v\sw\sdcc\lib\hc08\n\
	-k d:\V\sw\sdcc\bin\..\lib\hc08\n\
	-l hc08\n\
	main.rel\n\
	-e" > $@
31.12.2008 18:47 vaclavpe | skóre: 4
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?

To mi bohuzel udela jediny radek s "\n" textem:

-e "-myuxs\n-Y\n-b HOME = 0x8000\n-b DSEG = 0x0080\n-b BSEG = 0x0000\n-k d:\\\\v\sw\sdcc\lib\hc08\n-k d:\V\sw\sdcc\bin\..\lib\hc08\n-l hc08\nmain.rel\n-e"

Tedy, pouzivam gmake na Windows, mozna,ze bude problem i tam...

31.12.2008 19:06 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?
To vypadá, že gmake spouští nějaké vestavěné echo a ne to "unixovské". Zkusil bych najít binárku echo a uvést plnou cestu k ní (a ověřit, že podporuje volbu -e).
I am always ready to learn although I do not always like to be taught. (W. Churchill)
1.1.2009 10:19 Sinuhet | skóre: 31
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?

Tak dejte na kazdy radek jedno echo.

main.linker:
	echo '-myuxs' > $@
	echo '-Y' >> $@
	echo '-b HOME = 0x8000' >> $@
	echo '-b DSEG = 0x0080' >> $@
	echo '-b BSEG = 0x0000' >> $@
	...
1.1.2009 13:58 fakenickname | skóre: 42 | blog: fakeblog
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?
navic to tak vypada prehlednejsi.. btw kdyby vadil vypis tech 'echo' do konzole tak se to da potlacit pomoci @
main.linker:
	@echo '-myuxs' > $@
	@echo '-Y' >> $@
	@echo '-b HOME = 0x8000' >> $@
	@echo '-b DSEG = 0x0080' >> $@
	@echo '-b BSEG = 0x0000' >> $@
	...
1.1.2009 22:43 vaclavpe | skóre: 4
Rozbalit Rozbalit vše Re: Makefile - jak "vyrobit" viceradkovy soubor v textu ?

Takze nakonec to ve Windows funguje takto:

main.linker:
    echo -myuxs> $@
    echo -Y>> $@
    echo -b HOME = 0xE000>> $@
    echo -b DSEG = 0x0080>> $@
    echo -b BSEG = 0x0000>> $@
    echo -k d:\v\sw\sdcc\lib\hc08>> $@
 

Pravda, pod Linuxem to nebude zrejme korektni - to windowsi echo proste zopakuje vsechno, co nasleduje - zadna interpretace parametru, nic...

Diky za napady,

V.

 

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.