Hola amigos,
Estoy con un problemilla en un makefile. compilo a un directorio
distinto de ./ es decir, los .o y el ejecutable quedan en un
directorio, digamos, salida/. No tengo problemas con la compilación,
el problema es en el make, que no detecta que las dependencias están
satisfechas (que existen los .o) porque están en otro directorio...
les dejo el makefile a ver si me pueden orientar (o decir que no se puede) :
------------8<------------8<------------8<------------8<------------8<------------8<------------
# Directorio de salida
OUTDIR=
# Archivos
SRCSCPP = $(shell ls *.cpp 2>/dev/null)
SRCSC = $(shell ls *.c 2>/dev/null)
# Objetos
OBJECTS = $(SRCSCPP:.cpp=.o) $(SRCSC:.c=.o)
OBJS = $(addprefix $(OUTDIR),$(OBJECTS) )
# Ejecutable
TARGET = $(OUTDIR)wxSkeleton
# Target default DEBUG
all: debug
# Target Debug
debug: OUTDIR = debug/
debug: $(TARGET)
$(HIDE)echo DONE
# Target Release
release: OUTDIR = release/
release: strip
$(HIDE)echo DONE
# Target del ejecutable
$(TARGET): $(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)
# Target strip
strip: $(TARGET)
echo STRIPPING[$(MODE)-$(TARGET)]
strip -sgSx $(TARGET)
# Target de limpieza
clean:
rm -fR debug/ release/
# Reglas para generar los objetos
%.o : %.cpp
$(HIDE)echo COMPILING[$(MODE)-wx$(WXVERSION)] $<
$(HIDE)if [ ! -d $(OUTDIR) ] ; then mkdir $(OUTDIR) ; fi
$(HIDE)$(CXX) $(CXXFLAGS) -c -o $(OUTDIR)$@ $<
------------8<------------8<------------8<------------8<------------8<------------8<------------
o sea, hago make, compila todo bien, los .o y el ejecutable debug
salen en el directorio debug/, si vuelvo a hacer make no debería hacer
nada nuevo, pero vuelve a compilar todo como con el proyecto limpio...
alguna sujerencia?
Saludos
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion