IMNSHO, this is extremely good advice. For the most part, you shouldn't care too much how the object directory structure looks like, anyway.
Noel
Ken Smith wrote:
On Mon, Aug 23, 2004 at 04:38:52PM +0000, Alexander Farber wrote:
Sorry for my previous chaotic mail. I've constructed a simple test case for my problem and hope that someone will comment:
bolinux72:afarber {555} cat Makefile
OBJDIR = objdir SRCS = a.cpp \ src1/b.cpp OBJS = $(addprefix $(OBJDIR)/, $(notdir $(SRCS:.cpp=.obj)))
Instead of trying to build all the objects into a single directory, could you replicate the directory structure of your sources in your object directory? For example, your object directory could look like this.
objdir/a.obj objdir/src1/b.cpp
You would define OBJS like this.
OBJS = $(addprefix $(OBJDIR)/, $(SRCS:.cpp=.obj))
I assume that the object directory is dynamically created or, at least that you don't have the same directory structure there that you have in your source directory. You can overcome this as follows. The following is a modified version of your test makefile which implements this suggestion.
OBJDIR = objdir OBJSUBDIRS = $(addprefix $(OBJDIR)/,$(dir $(SRCS))) SRCS = a.cpp \ src1/b.cpp OBJS = $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.obj))
all: $(OBJS)
$(OBJDIR) $(OBJSUBDIRS): mkdir -p $(@)
$(OBJDIR)/%.obj: %.cpp | $(OBJDIR) $(OBJSUBDIRS) g++ -o $@ -c $<
_______________________________________________ Help-make mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/help-make
