owlps/libowlps-resultreader/Makefile

89 lines
1.7 KiB
Makefile

# Compilateur
COLORGCC := $(shell which colorgcc >/dev/null 2>&1 ; echo $$?)
ifeq ($(COLORGCC), 0)
CC = colorgcc
endif
# Autres outils
AR = ar
RANLIB = ranlib
RM = rm -f
# Variables générales
LIB_CIBLE = libowlps-resultreader
VERSION = 1.0
# Cibles à construire
STATIC = $(LIB_CIBLE).a
HEADER = owlps-resultreader.h
EXAMPLE = owlps-resultreader-udp
# Composition de la bibliothèque
OBJS = $(LIB_CIBLE).o
# Flags
LIBOWLPS_DIR = ../libowlps
CFLAGS = -O2 -Wall -Wextra -Wstrict-prototypes -O -I$(LIBOWLPS_DIR)
#CFLAGS += -g -O0
CFLAGS += -D DEBUG
DEPFLAGS = -MMD
XCFLAGS = $(CFLAGS) $(DEPFLAGS) $(WARN) $(HEADERS)
PICFLAG = -fPIC
#STRIPFLAGS = -Wl,-s
#LDFLAGS =
LIBS = -L$(LIBOWLPS_DIR) -lowlps
OS := $(shell uname)
ifeq ("$(OS)", "Linux")
LIBS += -lrt
endif
## Cibles de compilation standard ##
.PHONY : all static clean purge help
all : static example
static : $(STATIC)
example : $(EXAMPLE)
# Cancel implicit make rule
%: %.c
%.o : %.c $(HEADER)
$(CC) $(XCFLAGS) -c $<
% : %.o $(HEADER) $(STATIC)
$(CC) $(STRIPFLAGS) $(XCFLAGS) -o $@ $< \
$(STATIC) $(LIBS)
# Compilation de la bibliothèque statique
$(STATIC) : $(OBJS)
$(RM) $@
$(AR) cru $@ $^
$(RANLIB) $@
## Nettoyage ##
clean :
@$(RM) *~ *.o *.d
purge : clean
@$(RM) $(STATIC) $(EXAMPLE)
## Aide ##
help :
@echo "Bibliothèques nécessaires à la compilation :"
@echo " libowlps-dev"
@echo
@echo "Cibles possibles :"
@echo " static : Compile la bibliothèque statique (.a)."
@echo " example : Compile le programme d'exemple."
@echo " (Cible par défaut : static et example.)"
@echo
@echo " clean : Supprime les fichiers temporaires."
@echo " purge : Supprime le résultat de la compilation."