Re: besoin d'aide pour makefile

Page principale

Répondre à ce message
Auteur: anne aublanc
Date:  
À: guilde
Sujet: Re: besoin d'aide pour makefile

----- 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