Portál AbcLinuxu, 15. května 2025 21:43
PRG = NXTsw
FW = 105
# Override is only needed by avr-lib build system.
all:
nbc -v=$(FW) $(PRG).nxc -O=$(PRG).rxe
mv $(PRG).rxe `echo -n ${PWD##*/}|tr " " "-" && echo ".rxe"`
clean:
rm -rf $(PRG).rxe
install: load
load:
nbc -d -b $(OUT).rxe
po zkompilování nxc souboru pomocí nbc kompilátoru se snažím přejmenovat výstupní rxe soubor do podoby kdy by se jeho jméno skládalo z názvu složky kde je umístěn (makefile nxc i rxe soubor v jedné složce) a všechny mezery v názvu by byly nahrazeny pomlčkou. Avšak se tak neděje, výstup kompilátoru ohledně tohoto řádku je
#mv NXTsw.rxe `echo -n |tr " " "-" && echo ".rxe"`
ve složce se nachází stále ten původní, nepřejmenovaný soubor.
Pokud ovšem příkaz pro přejmenování v makefile zakomentuji a zadám normálně do shellu, vše proběběhne vpořádku, soubor se přejmenuje jak má a nenastávají žádné komplikace. Chci se zeptat jaký je rozdíl ve vykonáváním příkazů při kompilaci a když je zadám sám do shellu, popř. jaké je řešení, či lepší formulace jména cíleného souboru
Díky
Řešení dotazu:
$PWD
je promenna shellu, takze dolar musite vyeskejpovat, jinak vam ji schramstne make a do shellu se vubec nedostane. Spravne: mv $(PRG).rxe `echo -n $${PWD##*/}|tr " " "-" && echo ".rxe"`
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.