En effet, plutôt clean comme indicatio, j’arrive à la bonne valuer de variable ou commande.
Ma variable Project est sensée être initializé avec le basename de mon nom de projet.
Si je peux… Me permettre, à présent j’ai un problème avec « ln »
Je transmet l’entête de mon Makefile pour exprimer le « pourquoi » si ce n’est ma méconnaissance de make.
Project_Name=./bin/head 1 Project.lst
Sub_Projects_Names=./bin/tail 2 Project.lst
libs=for j in \
./bin/tail 2 Project.lst`; do echo -aI`./bin/head 1 Project.lst`/$$j/src/lib; done`
allsources=for k in \
./bin/tail 2 Project.lst`; do find `./bin/head 1 Project.lst`/$$k/src/lib -name « *.ad? »; done`
old_version=./bin/tail -1 Versions.lst
#Project=basename -s -${old_version} $(ls ${HOME}
| head -1
)
Name=ls $(HOME) | tail -1
Project=basename -s -${old_version} $(Name)
Le message d’erreur est le suivant :
manuel@eureka:~$ make -C protovision-1.6.1r/ link
make: Entering directory ‹ /home/manuel/protovision-1.6.1r ›
rm -f ~/.bin/./bin/head 1 Project.lst
cd ~/.bin
Cretating link named joshua to /home/manuel//joshua/bin/joshua
Name is protovision-1.6.1r
Project is basename -s -1.6.1r protovision-1.6.1r
ln -s /home/manuel/basename -s -./bin/tail -1 Versions.lst
ls /home/manuel | tail -1
« -./bin/tail -1 Versions.lst
»/./bin/head 1 Project.lst
/bin/./bin/head 1 Project.lst
/home/manuel/.bin/./bin/head 1 Project.lst
ln: invalid option – ‹ 1 ›
Try ‹ ln --help › for more information.
make: *** [Makefile:266: link] Error 1
make: Leaving directory ‹ /home/manuel/protovision-1.6.1r ›
Alors que ma cible link est sensée être la suivante :
link :
rm -f ~/.bin/$(Project_Name)
cd ~/.bin
@echo « Cretating link named $(Project_Name) to $(HOME)/$(project)/$(Project_Name)/bin/$(Project_Name) »
@echo Name is $(Name)
@echo Project is ${Project}
ln -s $(HOME)/$(Project)"-$(old_version)"/${Project_Name}/bin/$(Project_Name)$(HOME)/.bin/$(Project_Name)
Cretating link named joshua to /home/manuel//joshua/bin/joshua
Name is protovision-1.6.1r
Project is basename -s -1.6.1r protovision-1.6.1r
ln -s /home/manuel/basename -s -./bin/tail -1 Versions.lst
ls /home/manuel | tail -1
« -./bin/tail -1 Versions.lst
»/./bin/head 1 Project.lst
/bin/./bin/head 1 Project.lst
/home/manuel/.bin/./bin/head 1 Project.lst
ln: invalid option – ‹ 1 ›
Try ‹ ln --help › for more information.
make: *** [Makefile:266: link] Error 1
make: Leaving directory ‹ /home/manuel/protovision-1.6.1r ›
J’ai changé de stratégie pour le moment j’utilise tail pour obtenir plutôt la dernière occurance de « ls $(HOME) »
Et head et tail de ./bin son des head et tail perso. Faut pas les confondre.
Et faire attention parce qu’ici je ne parviens pas à afficher correctement les commande de substitution, il manque les quote de délimitation de substiution injustement.
Désolé pour la nieme edition j’avais mal copié/collé le message d’erreur relatif à l’appele de make pour la cible link.
Mon fichier Projet.lst contient à peu près ceci :
joshua
joshua
pro
pro-algo
pro-algo-solver
pro-algo-search
Alors que le fichier Versions.lst contient uniquement les versions dans une colonne.
Les deux ficher cités sont avec le makefile dans chaque répertoire du projet de chaque version.
Je cherche un moyen de renouveller le lien dans mon répertoire « .bin » situé dans mon répertoire de travail selon le besoin.