[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [obsdfr-misc] Ecrire un makefile pour OpenBSD
On 10/17/07, Olivier Regnier <oregnier AT oregnier POINT net> wrote:
> Pierre Riteau a écrit :
> > On 10/16/07, Olivier Regnier <oregnier AT oregnier POINT net> wrote:
> >
> >> Bonjour,
> >>
> >> Pour les besoins d'un article, j'ai écrit un Makefile tout simple afin
> >> que mon programme puisse fonctionner sous OpenBSD.
> >>
> >> Voici le Makefile en question:
> >>
> >> # $OpenBSD: Makefile,v 1.0 2007/11/16 21:44 olivier Exp $
> >>
> >> PROG= hello # Program
> >> MAN= hello.1 # Manual page
> >> SRCS= main.c hello.c hello.h # Sources
> >>
> >> .include <bsd.prog.mk>
> >>
> >> Le résultat de la commande make
> >> # make
> >> cc -02 -pipe -c main.c
> >> cc -02 -pipe -c hello.c
> >> cc -o hello main.o hello.o
> >> nroff -Tascii -mandoc hello.1 > hello.cat1
> >>
> >> Le résultat de la commande make install
> >> # make install
> >> install -c -s -o root -g bin -m 555 hello /hello
> >> install -c -o root -g bin -m 444 hello.cat1 /usr/share/man/cat1/hello.0
> >>
> >> Le résultat de la commande make clean
> >> # make clean
> >> rm -f a.out [Ee]rrs mklog core *.core y.tab.h hello main.o hello.o
> >> main.ln hello.ln
> >>
> >> Le fichier exécutable 'hello' est bien généré et il fonctionne avec la
> >> commande:
> >> # /hello
> >>
> >> Pourquoi n'est-il pas installé par exemple dans /usr/bin ? Afin de
> >> pouvoir l'exécuter tout simplement avec la commande:
> >> # hello
> >>
> >>
> >
> > BINDIR=/usr/bin
> >
> >
> >> J'ai remarqué également que nroff crée un fichier appelé hello.cat1 mais
> >> avec un make clean, celui-ci n'est pas supprimé à moins d'ajouter
> >> dans le makefile la ligne suivante:
> >> CLEANFILES= hello.cat1
> >>
> >>
> >
> > Ou faire un make cleandir
> >
> >
> >> Or si on consulte OpenBSD cvsweb, aucun makefile ne comporte la ligne
> >> CLEANFILES tous les programmes sont correctements installés, mais
> >> comment font-ils ?
> >>
> >>
> >
> > make cleandir ;)
> >
> >
> >> Un petit coup de main s'il vous plaît ?
> >>
> >> Merci
> >>
> >> Cordialement,
> >> Olivier Regnier
> >>
> >> ________________________________
> >> French OpenBSD mailing list
> >> misc AT openbsd-france POINT org
> >> http://www.openbsd-france.org/ml
> >>
> >>
> >>
> > C'est tout de même étrange de devoir rajouté BINDIR dans le Makefile. J'ai testé et effectivement, cela fonctionne. Mais si on regarde de nouveau sur OpenBSD cvsweb, je n'ai pas vu une seule fois cette déclaration.
Parce que tu as mal cherché ;)
Regarde les Makefile.inc dans les dossiers /{usr/,}{s,}bin
> >
> > J'ai aussi testé la commande make cleandir et cela fonctionne.
> >
> > Une autre question me vient à l'esprit, est-il possible de désinstaller l'application en question ? A part supprimer manuellement le(s) fichier(s) installé(s).
Je ne crois pas qu'il existe de solution à ça puisque le base system
n'est pas fait pour être installé.
Tu peux toujours faire un autre Makefile qui utilise bsd.port.mk pour
créer un package pour ton programme.
> >
> > Merci.
> >
> > ________________________________
> > French OpenBSD mailing list
> > misc AT openbsd-france POINT org
> > http://www.openbsd-france.org/ml
> >
> >
>
>
> ________________________________
> French OpenBSD mailing list
> misc AT openbsd-france POINT org
> http://www.openbsd-france.org/ml
>
>