----- Original Message -----
From: "anne aublanc" <anne.aublanc@???>
To: <guilde@???>
Sent: Friday, August 05, 2005 6:30 AM
Subject: Re: besoin d'aide pour makefile
|
| ----- Original Message -----
| From: "anne aublanc" <anne.aublanc@???>
| To: <guilde@???>
| Sent: Friday, August 05, 2005 3:11 AM
| Subject: besoin d'aide pour makefile
|
|
|| bonjour,
||
|| J'ai fait un makefile...
|| tout fonctionnait bien
||
|| j'avais une variable en "dur"
|| VOICE_LOG=/var/log/vgetty.ttyS0
|| dans # explicit dependencies
|| caller_id: caller_id.in
|| sed -e "s!@VOICE_LOG@!$(VOICE_LOG)!g" -e "s!@LOG_PATH@!$(LOG_PATH)!g" <
|| caller_id.in > caller_id
|| cela remplace les variables @VOICE_LOG@ et @LOG_PATH@ du pgm par ce
qu'il
|| faut...
||
|| Selon le système linux, cela peut-être /var/log/vgetty.ttyS0 ou
|| /var/log/vgetty.log.ttyS0...
|| J'ai trouvé un fichier où aller chercher cette variable en faisant
| quelques
|| bidouilles!
||
|| au lieu de mettre "VOICE_LOG=/var/log/vgetty.ttyS0", j'aimerai aller la
|| chercher :
|| vgettyfull=`grep 'VGETTY_LOG_PATH' ../../voice/include/paths.h `
|| vgetty=`echo $vgettyfull | cut -d"\"" -f2 `
|| VOICE_LOG=${vgetty%.*}
||
|| J'ai fait un petit bash pour tester, cela fonctionne très bien
||
|| Mais pas dans le Makefile, je n'arrive pas à intégrer ces lignes pour que
|| les variables VOICE_LOG et LOG_PATH soient correctes!
|| Si vous pouviez me donner des conseils... j'en suis à plusieurs heures de
|| recherche et d'essais!
||
| J'ai progressé mais c'est loin d'être au point!
|
|
| 1) vgettyfull=$(shell grep 'VGETTY_LOG_PATH' ../../voice/include/paths.h)
| => #define VGETTY_LOG_PATH /var/log/vgetty.log.%s
| 2) VOICE_LOG=$(shell grep 'VGETTY_LOG_PATH' ../../voice/include/paths.h |
| cut -d" " -f3 ) => /var/log/vgetty.log.%s
| 3) vgetty=$(shell grep 'VGETTY_LOG_PATH' ../../voice/include/paths.h |
| cut -d" " -f3 )
| VOICE_LOG=$(shell ${vgetty%.*} ) => marche pas
|
| 4) mgettyfull=$(shell grep 'LOG_PATH' ../../sedscript) => marche pas mais
| devrait donner : -e 's;@LOG_PATH@;/var/log/mgetty.log.ttyxx;g'\
| 5) mgetty=$(shell echo $(mgettyfull) | cut -d";" -f3) =>
| /var/log/mgetty.log.ttyxx
| 6) LOG_PATH=$(shell grep 'LOG_PATH' ../../sedscript | cut -d";" -f3 ) =>
| /var/log/mgetty.log.ttyxx
| 7) LOG_PATH=$(shell echo ${mgetty%.*} ) => marche plus
|
| Je n'arrive pas à enlever le dernier .xxx
| /var/log/vgetty.log.%s => /var/log/vgetty.log
| /var/log/mgetty.log.ttyxx => /var/log/mgetty.log
|
J'ai trouvé une solution :
vgetty=$(shell grep 'VGETTY_LOG_PATH' ../../voice/include/paths.h | cut -d"
" -f3 )
VOICE_LOG=$(subst .%s,,${vgetty})
J'ai ce que je veux, mais j'aurais aimé trouver la solution pour enlever
dans le nom le dernier .* sans mettre en dur '.%s'
anne