Bash: éxec de cmd, paramètres non passés
Résolu
kanar
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
kanar Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
kanar Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai trouvé déjà beaucoup de réponses en parcourant vos forum, et cette fois-ci je fait appel à la communauté.
Un de mes scripts télécharge, décompresse, configure, et compile une librairie (cURL).
Le petit soucis est que les paramètres passés à configure ne sont pas pris en compte.
code :
`wget -c ${sitecurl}${gzcurl}.tar.gz`
tar -xzvf ${gzcurl}.tar.gz
cd ${gzcurl}/
./configure --disable-debug --enable-ipv6 CFLAGS="-Os"
make
pour la ligne configure j'ai essayé :
`./configure --disable-debug --enable-ipv6 CFLAGS="-Os"`
./configure' --disable-debug --enable-ipv6 CFLAGS="-Os"'
./configure" --disable-debug --enable-ipv6 CFLAGS='-Os'"
sh ./configure" --disable-debug --enable-ipv6 CFLAGS='-Os'"
A l'exécution la sortie est toujours un truc du genre :
./configure --disable-debug --enable-ipv6 CFLAGS='-Os': ./configure --disable-debug --enable-ipv6 CFLAGS='-Os': No such file or directory
./configure #ici se lance le configure normal sans la prise en charge des paramètres passés
Je suis sous Windows avec MinGW32 et MSYS (shell UNIX sous Windows)
Les commandes ont été testées dans la console avec succès.
J'ai trouvé déjà beaucoup de réponses en parcourant vos forum, et cette fois-ci je fait appel à la communauté.
Un de mes scripts télécharge, décompresse, configure, et compile une librairie (cURL).
Le petit soucis est que les paramètres passés à configure ne sont pas pris en compte.
code :
`wget -c ${sitecurl}${gzcurl}.tar.gz`
tar -xzvf ${gzcurl}.tar.gz
cd ${gzcurl}/
./configure --disable-debug --enable-ipv6 CFLAGS="-Os"
make
pour la ligne configure j'ai essayé :
`./configure --disable-debug --enable-ipv6 CFLAGS="-Os"`
./configure' --disable-debug --enable-ipv6 CFLAGS="-Os"'
./configure" --disable-debug --enable-ipv6 CFLAGS='-Os'"
sh ./configure" --disable-debug --enable-ipv6 CFLAGS='-Os'"
A l'exécution la sortie est toujours un truc du genre :
./configure --disable-debug --enable-ipv6 CFLAGS='-Os': ./configure --disable-debug --enable-ipv6 CFLAGS='-Os': No such file or directory
./configure #ici se lance le configure normal sans la prise en charge des paramètres passés
Je suis sous Windows avec MinGW32 et MSYS (shell UNIX sous Windows)
Les commandes ont été testées dans la console avec succès.
A voir également:
- Bash: éxec de cmd, paramètres non passés
- Bingo bash free - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash addition - Forum Programmation
3 réponses
vire la variable CFLAGS
ou utilise là correctement :)
native fonctionne avec GCC4.2 ou supérieur
ou utilise là correctement :)
CFLAGS="-march=native -Os -pipe" CXXFLAGS="${CFLAGS}" ./configure --optiondelamort
native fonctionne avec GCC4.2 ou supérieur
Pour gcc c la 3.4.2 :(
cURL livre un super script (1,2Mo quand même), qui configure pour une bonne variété de plate-formes.
Dans le makefile résultant, CFLAGS ne prenanait que deux options "-g -O2", l'option --disable-debug ne virait pas le -g. Les autres flag de compile sont gérés dans d'autres variables puis ajoutés à la exécution de la commande dans le MacFly.
Est-ce que tu définit CFLAGS et CXXFLAGS juste avant la commande ?
./configure peut récupérer ces variables ?
cURL livre un super script (1,2Mo quand même), qui configure pour une bonne variété de plate-formes.
Dans le makefile résultant, CFLAGS ne prenanait que deux options "-g -O2", l'option --disable-debug ne virait pas le -g. Les autres flag de compile sont gérés dans d'autres variables puis ajoutés à la exécution de la commande dans le MacFly.
Est-ce que tu définit CFLAGS et CXXFLAGS juste avant la commande ?
./configure peut récupérer ces variables ?
Après quelques tests le résultat c'est :
1- si dans mon script je met
CFLAGS="-O2 -march=..."
./configure --options-deLaMort
CFLAGS n'est pas pris en compte mais les options oui :
configure: Configured to build curl/libcurl:
curl version: 7.18.2
Host setup: i686-pc-mingw32
Install prefix: /usr/local
Compiler: gcc
SSL support: enabled (OpenSSL)
SSH support: no (--with-libssh2)
zlib support: enabled
krb4 support: no (--with-krb4*)
GSSAPI support: no (--with-gssapi)
SPNEGO support: no (--with-spnego)
c-ares support: no (--enable-ares)
ipv6 support: enabled
IDN support: no (--with-libidn)
Build libcurl: Shared=yes, Static=yes
Built-in manual: no (--enable-manual)
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: no
ca cert path: no
LDAP support: enabled (winldap)
LDAPS support: no (--enable-ldaps)
2- Si dans mon script je met
cflags="CFLAGS=\"-O2\""
./configure --disable-debug --enable-ipv6 ${cflags}
Aucun paramètre n'est pris.
J'ai vérifié, et le mode -686 (sous la forme : host = i686-pc-mingw32; host_cpu = i686; host_os = mingw32) est bien pris en compte dans le makefile, donc je n'est pas besoins de le mentionner dans le CFLAGS.
Je me tâte à faire un :
cat makefile | awk '{ sub("CFLAGS = -g -O2","CFLAGS = -O2");print}' > ./makefile
Je suis pas sûr que ce soit le plus propre mais bon...
1- si dans mon script je met
CFLAGS="-O2 -march=..."
./configure --options-deLaMort
CFLAGS n'est pas pris en compte mais les options oui :
configure: Configured to build curl/libcurl:
curl version: 7.18.2
Host setup: i686-pc-mingw32
Install prefix: /usr/local
Compiler: gcc
SSL support: enabled (OpenSSL)
SSH support: no (--with-libssh2)
zlib support: enabled
krb4 support: no (--with-krb4*)
GSSAPI support: no (--with-gssapi)
SPNEGO support: no (--with-spnego)
c-ares support: no (--enable-ares)
ipv6 support: enabled
IDN support: no (--with-libidn)
Build libcurl: Shared=yes, Static=yes
Built-in manual: no (--enable-manual)
Verbose errors: enabled (--disable-verbose)
SSPI support: no (--enable-sspi)
ca cert bundle: no
ca cert path: no
LDAP support: enabled (winldap)
LDAPS support: no (--enable-ldaps)
2- Si dans mon script je met
cflags="CFLAGS=\"-O2\""
./configure --disable-debug --enable-ipv6 ${cflags}
Aucun paramètre n'est pris.
J'ai vérifié, et le mode -686 (sous la forme : host = i686-pc-mingw32; host_cpu = i686; host_os = mingw32) est bien pris en compte dans le makefile, donc je n'est pas besoins de le mentionner dans le CFLAGS.
Je me tâte à faire un :
cat makefile | awk '{ sub("CFLAGS = -g -O2","CFLAGS = -O2");print}' > ./makefile
Je suis pas sûr que ce soit le plus propre mais bon...
Ben le pb c'est que l'option -g du makefile reste même avec --disable-debug. Et du coup je me retrouve avec une compil debug de 15Mo.
Je me sert de la librairie statique pour intégrer cURL à une bibliothèque dynamique cette fois. Et je veut pas me retrouver avec une .dll ou .so de 50Mo en debug, alors que le release devrait atteindre 2Mo. C un peut gros pour être installé chez le client ^^, et c pas très propre.
Je me sert de la librairie statique pour intégrer cURL à une bibliothèque dynamique cette fois. Et je veut pas me retrouver avec une .dll ou .so de 50Mo en debug, alors que le release devrait atteindre 2Mo. C un peut gros pour être installé chez le client ^^, et c pas très propre.
De ce que je connais de curl, personne ne précise le mode debug, car il doit être désactivé par défaut.
Pour info, je te met deux méthodes de script, un pour ArchLinux :
et un pour Slackware :
Les deux fonctionnent parfaitement dans un script :)
Pour info, je te met deux méthodes de script, un pour ArchLinux :
./configure --prefix=/usr --without-libidn --disable-ldap \ --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt || return 1 make || return 1 make DESTDIR=${startdir}/pkg install || return 1
et un pour Slackware :
CFLAGS="-O2 -march=i486 -mtune=i686" \ ./configure \ --prefix=/usr \ --mandir=/usr/man \ make -j4 || exit 1 make install DESTDIR=$PKG || exit 1
Les deux fonctionnent parfaitement dans un script :)
$ ls curl-7.18.2
CHANGES aclocal.m4 configure install-sh mkinstalldirs
COPYING buildconf configure.ac lib packages
Makefile buildconf.bat curl-config libcurl.pc reconf
Makefile.am compile curl-config.in libcurl.pc.in sample.emacs
Makefile.in config.guess curl-style.el libtool src
README config.log depcomp ltmain.sh tests
RELEASE-NOTES config.status docs maketgz
acinclude.m4 config.sub include missing