OVH Cloud OVH Cloud

Makefile, priorité des arguments et variables "externes"

14 réponses
Avatar
Rakotomandimby
Bonjour
Je m'adresse a vous pour avoir quelques precisions sur l'utilisation d'un
Makefile .
Je ne sais pas si sous d'autres plateformes non UNIX on utilise aussi le
"Makefile" , mais sous unix , je sais qu'on en fais une utilisation
intensive , d'ou le fait que je poste ma question ici ...

Le Makefile ( au top level des sources ) en question contient une section
include de ce type , a son tout début :

[...]
include config/Makefile
[...]

Quand je vais voir ce ./config/Makefile , il contient l'essentiel des
variables dont le top level Makefile a besoin et entre autre :

[...]
PREFIX=/usr
[...]

Si je reviens au top level des sources, et que je fais :

[...]
make PREFIX=/tmp/package/usr install

Que se passera-t-il ? Dans quel repertoire va sefaire l'installation ?

J'ai des doutes dans la mesure ou c'est un cas relativement nouveau pour
moi.
Je sais que si le Makefile n'utilise pas de "include" , la valeur de PREFIX
que je donnerai en ligne de commande aura préemption .
Mais dans ce cas particulier comment cela se passe-t-il ?

Le but de tout cela est de faire un package Slackware de OCaml. Je tiens a
en faire un package parceque pour desinstaller ça me facilitera la tache et
en plus le Makefile de cette version de OCaml ne contient pas de cible
"uninstall" ... donc si j'ai besoin de l'enlever , je suis mal ... d'ou
l'utilité du package. De plus , j'ai pas envie de mettre ocaml
dans /usr/local ...

Tel qu'il est actuellement , le Makefile de OCaml 3.0.7 n'est pas disposé
recevoir une telle instruction, mais justement avant de le modifier et de
proposer la modification aux developpeurs de Caml, je dois au moins savoir
ce que je fais et justifier pouvoir mon acte.
Mon but sera de legerement modifier la section "install" du Makefile ( resp
"installopt" ) pour faciliter la creation de packages ( les packagers RPM
et .deb apprecieront tout aussi bien cela , j'en suis sur .. :-) )

Merci d'avance pour vos eclaircissements ...
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

10 réponses

1 2
Avatar
Rakotomandimby
Burelli Olivier wrote:

n'y a t il pas un script configure pour cela ?
./configure --PREFIX=/usr


Ca c'est pour une installation Lamba ...
mon but c'est de faire un package ...
donc la sequence ressemble un peu a ceci

./configure --prefix=/usr
make
make PREFIX=/tmp/package/usr install

il faut en effet preserver les autres variables BINDIR , LIBDIR , *DIR et
juste opérer sur PREFIX pour le repertoire d'installation.
Cela parceque LIBDIR est utilisé pour faire une action dans "ld.conf" et si
j'attaque directement le prefixe trop tot , ça zigouille tout ...

--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

Avatar
Stephane Chazelas
2004-02-29, 13:36(+01), Rakotomandimby:
[...]
J'ai des doutes dans la mesure ou c'est un cas relativement nouveau pour
moi.
Je sais que si le Makefile n'utilise pas de "include" , la valeur de PREFIX
que je donnerai en ligne de commande aura préemption .
Mais dans ce cas particulier comment cela se passe-t-il ?
[...]


Pourquoi ne pas tester ? Ca sera overridé, même si dans le
makefile il y a une règle qui relance make (cd subdir && make
target, par exemple). (avec le GNU make du moins).

info -f make -n Overriding

Le but de tout cela est de faire un package Slackware de OCaml. Je tiens a
en faire un package parceque pour desinstaller ça me facilitera la tache et
en plus le Makefile de cette version de OCaml ne contient pas de cible
"uninstall" ... donc si j'ai besoin de l'enlever , je suis mal ... d'ou
l'utilité du package. De plus , j'ai pas envie de mettre ocaml
dans /usr/local ...


Les Makefiles générés par les autotools ont DESTDIR pour ça.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
Burelli Olivier
Rakotomandimby wrote:
Bonjour
Je m'adresse a vous pour avoir quelques precisions sur l'utilisation d'un
Makefile .
Je ne sais pas si sous d'autres plateformes non UNIX on utilise aussi le
"Makefile" , mais sous unix , je sais qu'on en fais une utilisation
intensive , d'ou le fait que je poste ma question ici ...

Le Makefile ( au top level des sources ) en question contient une section
include de ce type , a son tout début :

[...]
include config/Makefile
[...]

Quand je vais voir ce ./config/Makefile , il contient l'essentiel des
variables dont le top level Makefile a besoin et entre autre :

[...]
PREFIX=/usr
[...]

Si je reviens au top level des sources, et que je fais :

[...]
make PREFIX=/tmp/package/usr install



n'y a t il pas un script configure pour cela ?

./configure --PREFIX=/usr


un ./configure --help donne toutes les infos de configuration

ensuite make && make install


olivier

Avatar
Rakotomandimby
Stephane Chazelas wrote:

Pourquoi ne pas tester ? Ca sera overridé, même si dans le
makefile il y a une règle qui relance make (cd subdir && make
target, par exemple). (avec le GNU make du moins).


Je ne teste pas parcequ'en supposant que ça n'etiait pas le cas, j'aurai
installé dans le repertoire et pour le virer il aurai fallu le faire a la
main ... Soit sûr que j'entreprends un minimum de recherche personnelle
avant de poster et de demander votre aide :-)

info -f make -n Overriding


en fait faudra que je commence par man info ... ou info info ...

Les Makefiles générés par les autotools ont DESTDIR pour ça.


J'ai parcouru les Makefiles de cette distribution d'OCaml , Elle n'est pas
générée par un autotool commun ... C'est d'ailleurs pour ça que j'ai été
destabilisé ...

Merci beaucoup pour ta reponse . Je vais tenter de faire mes moficication si
jene donne pas de nouvelles c'est que ça s'est bien passé .

--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina

Avatar
Thierry Boudet
On 2004-02-29, Rakotomandimby wrote:

en fait faudra que je commence par man info ... ou info info ...

Cherche "pinfo" dans Freshmeat, c'est génial...




--
David Lightman: What is the primary goal?
Joshua: You should know, Professor. You programmed me.
David Lightman: C'mon. What is the primary goal?
Joshua: To win the game.

Avatar
kevin_sejourne
Rakotomandimby wrote in message news:<c1smdi$t02$...
Bonjour
[...skip...]
Le but de tout cela est de faire un package Slackware de OCaml. Je tiens a
Il me semblais que ca existais deja. non ? (alors une raison de plus

de ne pas utilisé slack :-) )
en faire un package parceque pour desinstaller ça me facilitera la tache et
en plus le Makefile de cette version de OCaml ne contient pas de cible
"uninstall" ... donc si j'ai besoin de l'enlever , je suis mal ... d'ou
l'utilité du package. De plus , j'ai pas envie de mettre ocaml
dans /usr/local ...

Tel qu'il est actuellement , le Makefile de OCaml 3.0.7 n'est pas disposé
La version actuelle de Ocaml est 3.07+2


recevoir une telle instruction, mais justement avant de le modifier et de
Je n'est pas essaye depuis longtemps slack mais le Makefile de Ocaml

est très suffisant(j'ai vérifié moi meme) pour Debian.

proposer la modification aux developpeurs de Caml, je dois au moins savoir
ce que je fais et justifier pouvoir mon acte.
Mon but sera de legerement modifier la section "install" du Makefile ( resp
"installopt" ) pour faciliter la creation de packages ( les packagers RPM
et .deb apprecieront tout aussi bien cela , j'en suis sur .. :-) )
Les packets .RPM et .deb existe deja depuis un moment.

pour installer caml il faut faire :
apt-get updates
apt-get install tuareg ocaml ocaml-doc

Merci d'avance pour vos eclaircissements ...
Désolé pour le troll.


Avatar
Rakotomandimby
daneel wrote:

Tel qu'il est actuellement , le Makefile de OCaml 3.0.7 n'est pas disposé
La version actuelle de Ocaml est 3.07+2



Alors c'est ce que veut dire ocaml-3.0.7pl2 ?
Je me demandais bien ce que ça veut dire ... donc c'est une version plus
recenteque la 3.0.7 ... enchanté de le savoir .
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://stko.dyndns.info/site_principal/Members/mihamina


Avatar
Moi
Dans l'article <c1smdi$t02$
écrivait :

Le but de tout cela est de faire un package Slackware de OCaml. Je tiens a
en faire un package parceque pour desinstaller ça me facilitera la tache et
en plus le Makefile de cette version de OCaml ne contient pas de cible
"uninstall" ... donc si j'ai besoin de l'enlever , je suis mal ... d'ou
l'utilité du package. De plus , j'ai pas envie de mettre ocaml
dans /usr/local ...


pourquoi ? c'est crade /usr/local ?

fais comme moi, utilises checkinstall

checkinstall 1.6.0beta2, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran

Je n'ai pas l'URL en tête (asic-linux.com.mx)

Mon but sera de legerement modifier la section "install" du Makefile ( resp
"installopt" ) pour faciliter la creation de packages ( les packagers RPM
et .deb apprecieront tout aussi bien cela , j'en suis sur .. :-) )


autre soluce : allez voir les hackeurs de f.c.o.l.c :))
ils sont excellents avec leur MDK (Merdouillis Developmet Kit)

sinon ar -x fichier.deb

ou rpm2tgz fichier.rpm (rpm2tgz est livré sur les slackware)

Avatar
Moi
Dans l'article
écrivait :

On 2004-02-29, Rakotomandimby wrote:

en fait faudra que je commence par man info ... ou info info ...


Cherche "pinfo" dans Freshmeat, c'est génial...


J'ai ça, c'est Polonais, c'est excellent, par contre le fichier de conf
est imbuvable.

Tu lances un browser, un client mail, une page de man s'il n'y a pas de page
info

Mais ça tu le sais déja ...


Avatar
Moi
Dans l'article
écrivait :

Je n'est pas essaye depuis longtemps slack mais le Makefile de Ocaml
est très suffisant(j'ai vérifié moi meme) pour Debian.


Cela ne veut rien dire "Makefile" suffisant pour Debian.

1 2