Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
786 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Makefile et sous dossiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Makefile et sous dossiers

n°1951864
malka1986
Posté le 20-12-2009 à 18:10:25  profilanswer
 

Bonsoir.
 
Voila dans le soucis d'avoir du travail propre, je souhaiterais obtenir une arboresecences de dossier qui ressemble a celle-ci :
 
./
|_Makefile
|_executable
|__src/
|   |__fichiers sources
|_obj/
|   |_fichiers objets
|_inc/
|   |_fichiers include
|_ lib/
     |_fichiers libraries
 
mes fichiers de libraries et d'include sont bien dans un sous dossier, mais je n'arrive pas a creer de makefile convenable pour gerer la presence de sous dossiers contenant les fichiers .c
J ai cree un dossier obj/ Make y met effectivement mes fichiers .o issus de la compil. Probleme : il y met egalement l'executable. et une commande mv dans le makefile ne donne pas de resultat.
 
Voici mon makefile actuel :  
 

Citation :


##
## makefile for my_ls in /home/login/rendubis/c/my_ls
##  
## Made by ****
## Login   ****
##  
## Started on  Fri Dec  4 12:59:21 2009 ****
## Last update Sun Dec 20 17:57:26 2009 ****
##
 
NAME = my_ls
 
SRC = main.c my_ls.c display.c files.c sort.c list.c
OBJ = $(SRC:.c=.o)
CC = cc
CFLAGS = -I inc -W -Wall -ansi -pedantic
RM = rm -f
LIB = -L lib -lpf -lmy
 
all : $(NAME)
 
$(NAME) : $(OBJ)
 $(CC) $(CFLAGS) $(INC) -o $(NAME) $(OBJ) $(LIB)
 
clean :
 $(RM) $(OBJ)
 
fclean : clean
 $(RM) $(NAME)
 
re : fclean all


 
En vous remerciant d'avance de votre aide  :jap:

mood
Publicité
Posté le 20-12-2009 à 18:10:25  profilanswer
 

n°1951872
Joel F
Real men use unique_ptr
Posté le 20-12-2009 à 18:36:01  profilanswer
 

Dans le temps je faisais :

 


#-----Macros---------------------------------
CXX = gcc
CXXFLAGS = -O3

 

#-----Final product----------------------
PRODUCT = foobar

 

#-----File Location----------------------

 

SRCDST = src
OBJDST = obj
EXEDST = exe

 

#-----File List----------------------
SRC = $(foreach dir,$(SRCDST),$(wildcard $(dir)/*.c))
OBJ = $(addsuffix .o, $(basename $(subst ${SRCDST},${OBJDST},${SRC})))

 

#-----Base rules---------------------------------
obj/%.o : src/%.c
 $(CXX) $(CXXFLAGS) -c $< -o $@

 

#-----Main rule---------------------------------
all: $(OBJ)
 $(CXX) $(CXXFLAGS) -o ${EXEDST}/${PRODUCT} $(OBJ)

 

#-----Other stuff----------------------------
depend:
 makedepend $(CXXFLAGS) -Y $(SRC)

 

clean:
 rm -f $(OBJ)
 rm -f ${EXEDST}/${PRODUCT}

 

Mais c'est à revoir je pense, je sais pas si foreach_dir n'est une GNU extension de Make


Message édité par Joel F le 20-12-2009 à 18:37:07
n°1951876
malka1986
Posté le 20-12-2009 à 18:59:10  profilanswer
 

il me sort un "Error expending embedded variable'

n°1951877
Joel F
Real men use unique_ptr
Posté le 20-12-2009 à 19:02:29  profilanswer
 

quel ligne ?
et quelle versionde make  ?


Message édité par Joel F le 20-12-2009 à 19:02:41
n°1951878
malka1986
Posté le 20-12-2009 à 19:15:12  profilanswer
 

Il ne precise pas la ligne. le message d'erreur est le seul output.
 
Pour la version, un echo de $(MAKE_VERSION) me renvoie la valeur 5200408120.
C'est sur du FreeBSD 5.5 et j'ai pas les acces root.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Makefile et sous dossiers

 

Sujets relatifs
[autotools] Makefile.am et recursivite[C++/Makefile] Compilation sous windows
Cacher dossiers/fichiers[C++] Probleme de Makefile/linkage
VB Script pour compter le nbr de fichier des dossiers ET sous dossiersCopie de dossiers
Renommer des fichiers divers dans dossiers ET sous-dossiersCopier le contenu d'un dossier avec les sous-dossiers
[solved]Linux Ssh FTP > Transférer des dossiers entiers[AJAX PHP]Rediriger dossiers d'un domaine vers la page d'accueil
Plus de sujets relatifs à : Makefile et sous dossiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR