#1 Le 21/04/2007, à 17:30
- hunterkiller
[non resolu]dependance foireuse avec make
salut a tous
ca fait plus de trois heures que je n'arrive pas a gerer les dependance des .h dans mon makefile et lors de ma compile avec make
j'ai un configure ou il y a marque
#! /bin/sh
case `uname -s` in
"Linux")
echo "CC=/usr/bin/gcc" > Makefile.rules
echo "CFLAGS=-Wall -W -g -pedantic `pkg-config --cflags gtk+-2.0` " >> Makefile.rules
echo "LDFLAGS=`pkg-config --libs gtk+-2.0 `" >> Makefile.rules
;;
"NetBSD")
echo "CC=/usr/bin/gcc" > Makefile.rules
echo "CFLAGS=-Wall -W -g -pedantic `pkg-config --cflags gtk+-2.0` " >> Makefile.rules
echo "LDFLAGS=`pkg-config --libs gtk+-2.0`" >> Makefile.rules
;;
esac
gcc -MM *.c >> Makefile.dep
et dans mon makefile:
##
## Makefile for OCR in /home/hunterkiller/chris/projet/OCR/src/programme
##
## Made by hunterkiller
## Login <hunterkiller@epita.fr>
##
## Started on Sat Apr 21 14:44:10 2007 hunterkiller
## Last update Sat Apr 21 18:14:23 2007 hunterkiller
##
-include Makefile.rules
-include Makefile.dep
SRCS=copy_bmp.c main.c read_file.c show_data.c detect_rot.c rot_im.c
PROJECT=ocr
OBJS=$(SRCS:.c=.o)
all: $(PROJECT)
$(PROJECT): $(OBJS)
$(CC) -o $@ -lm $(CFLAGS) $(OBJS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
depend:
gcc -MM *.c > Makefile.dep
Dernière modification par hunterkiller (Le 21/04/2007, à 18:04)
--
hunterkiller EPITA's student
HP:300GO atlon64live x2 NVDIA512 =>beryl a fond
ubuntu 7.10,*bsd ->user
Hors ligne
#2 Le 21/04/2007, à 17:43
- Athropos
Re : [non resolu]dependance foireuse avec make
As-tu déjà jeté un œuil à scons ? C'est un équivalent moderne à make. Avec scons, ton Makefile devient un fichier sconstruct qui se limiterait à ça :
env = Environment()
sources = ['copy_bmp.c', 'main.c', 'read_file.c', 'show_data.c', 'detect_rot.c', 'rot_im.c']
env.ParseConfig( 'pkg-config --cflags --libs gtk+-2.0' )
env.Append( CFLAGS='-Wall -W -g -pedantic' )
env.Program('ocr', sources)
Tu tapes 'scons' et ça compile en générant automatiquement les dépendances. Tu tapes 'scons -c' et ça nettoie tout ce qu'il faut.
A barcode never lies
Hors ligne
#3 Le 21/04/2007, à 17:47
- hunterkiller
Re : [non resolu]dependance foireuse avec make
je te remercie d'ailleurs je l'utiserai mais disons que je ne peux pas parce que je n'ai pas le droit (projet d'ecole oblige) a tu une autre solution a proposer
--
hunterkiller EPITA's student
HP:300GO atlon64live x2 NVDIA512 =>beryl a fond
ubuntu 7.10,*bsd ->user
Hors ligne
#4 Le 21/04/2007, à 17:50
- Athropos
Re : [non resolu]dependance foireuse avec make
Umm non, car depuis que j'ai découvert scons il y a quelques années je n'ai plus écrit un seul Makefile. Désolé :-)
A barcode never lies
Hors ligne
#5 Le 21/04/2007, à 20:02
- hunterkiller
Re : [non resolu]dependance foireuse avec make
up
--
hunterkiller EPITA's student
HP:300GO atlon64live x2 NVDIA512 =>beryl a fond
ubuntu 7.10,*bsd ->user
Hors ligne
#6 Le 21/04/2007, à 20:23
- hunterkiller
Re : [non resolu]dependance foireuse avec make
j'ai trouve et je poste ma reponse ici mon probleme etait de gerer les dependence qiu ne marcher pas car les point o etait cree avant
##
## Makefile for OCR in /home/hunterkiller/chris/projet/OCR/src/programme
##
## Made by hunterkiller
## Login <saez_c@epita.fr>
##
## Started on Sat Apr 21 14:44:10 2007 hunterkiller
## Last update Sat Apr 21 19:27:30 2007 hunterkiller
##
-include Makefile.rules
SRCS=copy_bmp.c main.c read_file.c show_data.c detect_rot.c rot_im.c
PROJECT=ocr
OBJS=$(SRCS:.c=.o)
all: $(PROJECT)
$(PROJECT): $(OBJS)
$(CC) -o $@ -lm $(CFLAGS) $(OBJS)
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *~
rm -f \#*\#
rm -f *.core
rm -f *.so *.a *.o
rm -f a.out
rm -f *.core *.Dstore *.log
distclean: clean
rm -f $(PROJECT)
rm -f *.dep
rm -f *.rules
depend:
gcc -MM *.c > Makefile.dep
-include Makefile.dep
--
hunterkiller EPITA's student
HP:300GO atlon64live x2 NVDIA512 =>beryl a fond
ubuntu 7.10,*bsd ->user
Hors ligne