dependances mal fichues

dependances mal fichues - Divers - Programmation

Marsh Posté le 28-04-2006 à 12:38:18    

Bonjour a tous,
 
J'ai un repertoire d'executables ainsi qu'un repertoire contenant les sources d'une librairie "maison".
Chacun de ces repertoires est doté d'un makefile.
Lorsque je modifie les sources de la librairie, il me faut a la fois tout recompiler la librairie mais également tous les executables.
Ya certainement  un probleme de dependance mais je n'ai pas trouvé ou la modifier.
Voici les deux makefile pour les intéressés:
 
1. Pour les executables:
 
#######################################
BIN = /nfs/data2/arslan/demo_cesbio/bin/
 
LIB_PERSO = -L/adresselib
INC_PERSO = -I$(HOME)/common/include/greg  -I../libstats -I../btoolbox -I$(HOME)/common/include
 
LIB_INRIMAGE =  -L/usr/local/inrimage/lib  
FLAG_INR = -linrimage -lm
FLAG_GREG = -lgreg
FLAG_BTOOLBOX = -lbToolBox
FLAG_LIBSTATS = -lstats -lrf
 
 
CFILES = prog1.c \
prog2.c \
....
 
EOBJS = prog1.o \
prog2.o \
....
 
 
PROGS = prog1 \
prog2 \
...
 
 
INC = -I/usr/local/inrimage/include $(INC_PERSO) -I.  
 
LIB = $(LIB_PERSO) $(LIB_INRIMAGE) $(FLAG_LIBSTATS) $(FLAG_BTOOLBOX) $(FLAG_INR) $(FLAG_GREG)
 
CFLAGS = -Wall -O2 -g $(INC)
LIBS = $(LIB)
CC = gcc
 
all : $(PROGS)
 
prog1 : prog1.o
 $(CC) $< -o $@ $(LIB)
prog2 : prog2.o
 $(CC) $< -o $@ $(LIB)
 
etc...
 
install: $(PROGS)
 cp $(PROGS) $(BIN)
 
clean :
 rm -f $(COBJS) $(EOBJS) *~
##################################"
 
2. Pour la librairie:
 
################################
DEST = adresse de destination de la librairie libstats
LIB_INRIMAGE =  -L/usr/local/inrimage/lib  
 
FLAG_INR = -linrimage -lm -lrf
FLAG_GREG = -lgreg
FLAG_BTOOLBOX = -lbToolBox
FLAG_LIBSTATS = -lstats
 
LIB_PERSO = -L$(DEST)/lib -L$(HOME)/common/lib
INC_PERSO = -I$(HOME)/common/include/greg  -I. -I../btoolbox -I$(HOME)/common/include
 
CFILES = prog3.c \
prog4.c \
....
 
 
COBJS = prog3.o \
prog4.o \
....
 
INC = -I/usr/local/inrimage/include $(INC_PERSO) -I.  
 
LIB = $(LIB_PERSO)  $(LIB_INRIMAGE) $(FLAG_LIBSTATS) $(FLAG_BTOOLBOX) $(FLAG_INR) $(FLAG_GREG)
 
.c.o:; gcc -Wall -O2 -g $(INC) -c $*.c ;
 
all : libstats.a  
 
libstats.a: $(COBJS)
 rm -f libstats.a
 ar r libstats.a $(COBJS)
 ranlib libstats.a
 cp libstats.a $(DEST)/lib/libstats.a
 
clean :
 rm -f $(COBJS) $(EOBJS)  *~
 
################################
 
Merci du coup de main.

Reply

Marsh Posté le 28-04-2006 à 12:38:18   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed