On 9/20/07, Leonardo Mosquera <[EMAIL PROTECTED]> wrote:
> On 9/20/07, personaje <[EMAIL PROTECTED]> wrote:
>
> > debug: OUTDIR = Debug/
> > debug: $(OUTDIR)$(TARGET)
> >
> > parece que cuando calcula las dependencias de las reglas implícitas
> > (que no las tengo implícitas) OUTDIR todavía no está definida...
> > alguna idea?
> >
>
> No necesitas asignar variables en producciones; si pones asignaciones
> afuera, actuan como variables globales a todas las producciones, y ya estan
> definidas para cuando se corren los comandos.

si, pero qué puedo hacer si quiero que OUTDIR cambie según el target
que llamo desde línea de comandos?

ejemplo

--------------------8<--------------------8<--------------------8<--------------------8<--------------------

debug: OUTDIR = Debug/
debug: CXXFLAGS = -g
debug: main
# ... bla bla


release: OUTDIR = Release/
release: CXXFLAGS = -O2
debug: main
# ... bla bla

main: $(OBJS)
    $(CXX) -o $(OUTDIR)main $(OBJS)

%.o : %.cpp
    $(CXX) $(CXXFLAGS) -c -o $(OUTDIR)/$@ $<

# y para complicarlo
-include $(OUTDIR)/dependencias

--------------------8<--------------------8<--------------------8<--------------------8<--------------------

entonces, si hago:

make debug (compila con info de debug y salida en Debug/)

make release (compila optimizando y salida en Release/)

eso es lo que busco...

Saludos

_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a