Afficher un message
Vieux 02/05/2006, 11h01   #1
Zulfukar Arslan
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut dependances mal fichues

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.
  Réponse avec citation
 
Page generated in 0,07338 seconds with 9 queries