Page suivante Page précédente - Table des matières

21. Annexe H Makefile

Vous pouvez récupérer tous les programmes en un seul tar.gz sur Telecharger String . Pour obtenir ce fichier, dans un butineur web, sauvez ce fichier en type 'texte'.


//*****************************************************************
// La licence de distribution est la GNU/GPL et vous devez inclure
// le nom et le mel de l'auteur dans toutes les copies
// Auteur : Al Dev    Mel : alavoor@yahoo.com
//*****************************************************************
.SUFFIXES: .pc .cpp .c .o
CC=gcc
CXX=g++
MAKEMAKE=mm
LIBRARY=libString.a
DEST=/home/myname/lib
# Pour construire la bibliothèque, et le programme de test principal, décommenter la ligne suivante :
#MYCFLAGS=-O -Wall
# Pour tester sans avoir trace de débogage, décommenter la ligne suivante :
#MYCFLAGS=-g3 -Wall
# Pour permettre un 'débogage complet', décommenter la ligne suivante :
MYCFLAGS=-g3 -DDEBUG -Wall
#PURIFY=purify -best-effort
SRCS=my_malloc.cpp String.cpp StringTokenizer.cpp debug.cpp example_String.cpp
HDR=my_malloc.h  String.h StringTokenizer.h debug.h
OBJS=my_malloc.o String.o StringTokenizer.o debug.o example_String.o
EXE=String
# Pour générer les dépendances du Makefile
SHELL=/bin/sh
CPPFLAGS=$(MYCFLAGS) $(OS_DEFINES)
CFLAGS=$(MYCFLAGS) $(OS_DEFINES)
#
# Si libString.a se trouve dans le répertoire
# courant, utilisez -L. (tiret L point)
MYLIBDIR=-L$(MY_DIR)/libmy -L.
ALLLDFLAGS= $(LDFLAGS)  $(MYLIBDIR)
COMMONLIBS=-lstdc++ -lm
MYLIBS=-lString
LIBS=$(COMMONLIBS)  $(MYLIBS)
all: $(LIBRARY) $(EXE)
$(MAKEMAKE):
 @rm -f $(MAKEMAKE)
 $(PURIFY) $(CXX) -M  $(INCLUDE) $(CPPFLAGS) *.cpp> $(MAKEMAKE)
$(EXE): $(OBJS)
 @echo "Creating a executable "
 $(PURIFY) $(CC) -o $(EXE) $(OBJS) $(ALLLDFLAGS) $(LIBS)
$(LIBRARY): $(OBJS)
 @echo "\n***********************************************"
 @echo "   Loading $(LIBRARY) ... to $(DEST)"
 @echo "***********************************************"
 @ar cru $(LIBRARY) $(OBJS)
 @echo "\n "
.cpp.o: $(SRCS) $(HDR)
#       @echo "Creating a object files from " $*.cpp " files "
 $(PURIFY) $(CXX) -c  $(INCLUDE) $(CPPFLAGS) $*.cpp
.c.o: $(SRCS) $(HDR)
#       @echo "Creating a object files from " $*.c " files "
 $(PURIFY) $(CC) -c $(INCLUDE) $(CFLAGS) $*.c
clean:
 rm -f *.o *.log *~ *.log.old *.pid core err a.out lib*.a afiedt.buf
 rm -f $(EXE)
 rm -f $(MAKEMAKE)
#%.d: %.c
#       @echo "Generating the dependency file *.d from *.c"
#       $(SHELL) -ec '$(CC) -M $(CPPFLAGS) $< | sed '\''s/$*.o/& $@/g'\''> $@'
#%.d: %.cpp
#       @echo "Generating the dependency file *.d from *.cpp"
#       $(SHELL) -ec '$(CC) -M $(CPPFLAGS) $< | sed '\''s/$*.o/& $@/g'\''> $@'
# Doit inclure tous les flags C pour l'option -M
#$(MAKEMAKE):
#       @echo "Generating the dependency file *.d from *.cpp"
#       $(CXX) -M  $(INCLUDE) $(CPPFLAGS) *.cpp> $(MAKEMAKE)
include $(MAKEMAKE)
#include $(SRCS:.cpp=.d)
#include $(SRCS:.c=.d)


Page suivante Page précédente - Table des matières