-
probleme dans makefile
bonjour à toutes et à tous
je travail actuellement sur un makefile qui m'a été donné (un peu complexe) dont une ligne me pose problème :
" memLib.o: $(LIBS) $(AR) -xf $< $@ $(RM) $@.1 $(MV) $@ $@.1 $(OBJCOPY) -N _malloc -N _free $@.1 $@ $(RM) $@.1 "
donc en fait le problème vient du (AR) qui fait référence à une appli qui s'appelle ararm.exe et je suppose que on y applique un -xf puis une liste de librairies et le nom du fichier de sortie (si j'ai bien compris le "$<" fait référence à "LIBS" et "$@" à "memlib.o")
donc quand j'essaye de lancer mon makefile il me dit qu'il n'a pas de regle pour faire le 'ararm' en question
j'ai peu de connaissance dans ce domaine j'ai tenté d'ajouter le chemin de l'appli dans les variable d'environment mais ça ne fonctionne toujours pas...
quelqu'un a-t-il une idée ou des question
merci
PS : le makefile sert à extraire d'une librairie un .o et de supprimer par la même occasion, les fonction associé au malloc (d'après ce que j'ai pu voir l'extraction est faite par l'appli ararm.exe)
-
Je ne connais pas de ararm...
Normalement AR devrait être l'utilitaire ar (archive) (regarde "man ar")
le flag -x extrait un contenu de cette archive
le flag -f précise le nom du fichier bibliothèque considéré
donc
ar -xf filename toto
extraira du fichier filename (nombibliothèque.a ou .so) la routine ou le module toto.
Comme dans ton cas c'est écrit $(AR) c'est donc que ça représente un symbole qui normalement aurait dû être défini auparavant, soit par une assignation
AR=/usr/bin/ar
soit
il peut provenir d''alias ou d'assignation dans les scripts de démarrages (.bashrc, .cshrc, ..)