[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Ecrire un makefile pour OpenBSD



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

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

Or si on consulte OpenBSD cvsweb, aucun makefile ne comporte la ligne CLEANFILES tous les programmes sont correctements installés, mais comment font-ils ?

Un petit coup de main s'il vous plaît ?

Merci

Cordialement,
Olivier Regnier