[eside-ghost] Problemas para hacer un makefile ligeramente complejo
Asier González
3asgonza en rigel.deusto.es
Vie Nov 20 21:42:54 CET 2009
Veréis es que tengo un problema a la hora de generar un Makefile de unos
fuentes en C++. Si fuera en la misma carpeta no habría problema porque
si tuviera esta estructura:
/home/user/proyecto/
/main.cpp
/cabecera1.h
/cabecera2.h
/fuente1.cpp
/fuente2.cpp
Makefile:
-- INICIO --
CC=g++
DFLAGS=-c -ggdb -Wall
CFLAGS=-c -O3 -Wall
FLAGS=DFLAGS
OBJ=main.o fuente1.o fuente2.o
proyecto: $(OBJ)
$(CC) $(OBJ) -o proyecto
main.o: main.c cabecera1.h
$(CC) $(FLAGS) main.cpp cabecera1.h
fuente1.o: fuente1.c cabecera1.h cabecera2.h
$(CC) $(FLAGS) fuente1.c cabecera1.h cabecera2.h
fuente2.o: fuente2.c cabecera2.h
$(CC) $(FLAGS) fuente2.c cabecera2.h
clean:
rm -f -r *~
rm -f -r *.o
clean_all:
rm -f -r *~
rm -f -r *.o
rm -f -r *~.c
rm -f -r *~.h
rm -f -r proyecto
-- FIN --
Aparentemente así salvo error, me funcionaria bien, si estuviera todo en
un directorio.
Pero quiero estructurarlo de la siguiente forma:
/home/user/proyecto/
/bin/
/proyecto
/obj/
/main.o
/fuente1.o
/fuente2.o
/src/
/main.cpp
/carpeta1/
/cabecera1.h
/fuente1.cpp
/carpeta2/
/cabecera2.h
/fuente2.cpp
Tendría que hacer un makefile bastante más complejo, este estaría
situado en /home/user/proyecto/ , pero el problema es que no se ni por
donde empezar, he estado mirando tutorial sobre make, pero solo lo hacen
para un solo directorio, o son excesivamente complejos.
Haber si me podríais echar una manita, gracias.
Un Saludo.
PD: Espero que se vea bien como he estructurado los directorios.
Más información sobre la lista de distribución eside-ghost