2008-02-14 09:45:47 +01:00
# Répertoire d'installation
PREFIX = /usr/local
INSTALL_DIR = $( PREFIX) /sbin
INSTALL_LIB = $( PREFIX) /lib
INSTALL_INC = $( PREFIX) /include
INSTALL_MAN = $( PREFIX) /share/man
# Compilateur
CC = gcc
# Autres outils
AR = ar
RANLIB = ranlib
# Commandes d'installation et de désinstallation
RM = rm -fv
CP = cp -v
# Variables générales
2008-02-22 16:04:49 +01:00
LIB_CIBLE = librtapscanmob
2008-02-14 09:45:47 +01:00
VERSION = 1.0
# Cibles à construire
STATIC = $( LIB_CIBLE) .a
DYNAMIC = $( LIB_CIBLE) .so.$( VERSION)
2008-02-22 16:04:49 +01:00
HEADER = rtapscanmob.h
2008-02-14 09:45:47 +01:00
#HEADERS=
# Composition de la bibliothèque
OBJS = $( LIB_CIBLE) .o
# Flags
CFLAGS = -O2 -W -Wall -Wstrict-prototypes -I.
DEPFLAGS = -MMD
XCFLAGS = $( CFLAGS) $( DEPFLAGS) $( WARN) $( HEADERS)
PICFLAG = -fPIC
2008-02-22 16:12:42 +01:00
LIBS = -lm -lpcap ../../librtaputil/librtaputil.so.1.0
2008-02-14 09:45:47 +01:00
#STRIPFLAGS= -Wl,-s
## Cibles de compilation standard ##
all : dynamic static $( PROGS )
dynamic : $( DYNAMIC )
static : $( STATIC )
% : %.o
$( CC) $( LDFLAGS) $( STRIPFLAGS) $( XCFLAGS) -o $@ $^
%.o : %.c $( HEADER )
$( CC) $( XCFLAGS) -c $<
%.so : %.c $( HEADER )
$( CC) $( XCFLAGS) $( PICFLAG) -c -o $@ $<
# Compilation de la bibliothèque dynamique
$(DYNAMIC) : $( OBJS :.o =.so )
$( CC) -shared -o $@ -Wl,-soname,$@ $( STRIPFLAGS) $( LIBS) -lc $^
# Compilation de la bibliothèque statique
$(STATIC) : $( OBJS :.o =.so )
$( RM) $@
$( AR) cru $@ $^
$( RANLIB) $@
## Installation ##
2008-02-26 13:29:27 +01:00
install : install -static install -dynamic
2008-02-14 09:45:47 +01:00
install-dynamic : install -header $( DYNAMIC )
@$( CP) $( DYNAMIC) $( INSTALL_LIB) && \
chmod 644 $( INSTALL_LIB) /$( DYNAMIC) && \
chown root:root $( INSTALL_LIB) /$( DYNAMIC) && \
echo -e " \n!!! Installation de la bibliothèque dynamique effectuée avec succès.\n!!! Ajoutez une ligne « $( INSTALL_LIB) » dans le fichier /etc/ld.so.conf\n ou dans un nouveau fichier de /etc/ld.so.conf.d/, si ce n'est déjà fait.\n!!! Exécutez ldconfig ensuite.\n "
install-static : install -header $( STATIC )
@$( CP) $( STATIC) $( INSTALL_LIB) && \
chmod 644 $( INSTALL_LIB) /$( STATIC) && \
chown root:root $( INSTALL_LIB) /$( STATIC)
install-header : $( HEADER )
@$( CP) $( HEADER) $( INSTALL_INC) && \
chmod 644 $( INSTALL_INC) /$( HEADER) && \
chown root:root $( INSTALL_INC) /$( HEADER)
## Désinstallation ##
2008-02-26 13:29:27 +01:00
uninstall : uninstall -static uninstall -dynamic
2008-02-14 09:45:47 +01:00
uninstall-dynamic : uninstall -header
@$( RM) $( INSTALL_LIB) /$( DYNAMIC)
ldconfig
uninstall-static : uninstall -header
@$( RM) $( INSTALL_LIB) /$( STATIC)
uninstall-header :
@$( RM) $( INSTALL_INC) /$( HEADER)
## Nettoyage ##
clean :
@$( RM) *~ *.o $( LIB_CIBLE) .so *.d
purge : clean
@$( RM) $( DYNAMIC) $( STATIC) $( PROGS)
## Aide ##
help :
@echo -e " Bibliothèques nécessaires à la compilation :\n\
libpcap0.8-dev\n \
2008-02-26 13:29:27 +01:00
librtaputil1.0 ( fournie) \n \
2008-02-14 09:45:47 +01:00
\n \
Cibles possibles :\n \
2008-02-26 13:29:27 +01:00
all ( cible par défaut) : Compile la bibliothèque partagée et statique.\n \
2008-02-14 09:45:47 +01:00
dynamic : Compile la bibilothèque partagée ( .so) .\n \
static : Compile la bibliothèque statique ( .a) .\n \
\n \
2008-02-26 13:29:27 +01:00
install : Installe la bibliothèque partagée et statique.\n \
2008-02-14 09:45:47 +01:00
install-dynamic : N' installe que la bibliothèque partagée.\n \
install-static : N' installe que la bibliothèque statique.\n \
\n \
uninstall : Désinstalle tout ce qu' il est possible de désinstaller.\n \
uninstall-dynamic : Désinstalle la bibliothèque partagée.\n \
uninstall-static : Désinstalle la bibliothèque statique.\n \
\n \
clean : Supprime les fichiers temporaires.\n \
purge : Supprime le résultat de la compilation.\n \
\n \
Note : l'installation se fait dans l' arborescence $( PREFIX) . Modifiez la variable PREFIX du Makefile pour changer ce comportement."