Paul D. Smith wrote: > I should point out that the version of GNU make that comes with the > Cygwin toolkit has been modified by the Cygwin folks: it's not the same > as the version that comes from the FSF.
That is interesting because in Cygwin it shows that GNU Make is copyrighted to FSF. > artun> The makefile that I am using for this is: > > artun> %.obj : %.cpp > artun> @$(CC) $(CFLAGS) $< > > The above pattern is not correct for what you want to do. If you're > trying to compile $(OBJ_DIR)/foo.obj from $(SRC_DIR)/foo.cpp, your > target pattern needs to be: > > $(OBJ_DIR)/%.obj : $(SRC_DIR)/%.cpp > > You will probably find the doc on "How Not to use VPATH" on my web site > (in my sig) interesting reading. I've read that doc and learned not to use VPATH for the output. But I changed the erroneous pattern rule to be: $(OBJ_DIR)/%.obj : %.cpp @$(CC) $(CFLAGS) $< giving vpath right after directory definitions as: vpath %.cpp $(SRC_DIR) As I pasted here I preferred "vpath directive" instead of "VPATH variable". The reason was that I wanted Make to grab only cpp files. It was as written in the O'reilly book named GNU Make. I thought it is true since it compiled with no error. I mentioned it to discuss the difference. > artun> $(OUTFILE) : $(OBJ_DIR)$(OBJECTS) > > That won't work; if OBJECTS contains more than one value OBJ_DIR will > apply only to the first one. You mean something like: > > $(OUTFILE) : $(addprefix $(OBJ_DIR)/,$(OBJECTS)) > > artun> But this time I got an error from GNU make that "No rule to > artun> make target firstfile.obj". Your offer worked exactly with no error expect a problem. Let me first paste my modification: $(OUTFILE) : $(addprefix $(OBJ_DIR)/,$(OBJECTS)) @$(LD) $(LFLAGS) $^ I needed to change $< to $^, to let Make to link all the object files, because when I wrote $< only the first obj file was linked although there came no error. I guess of course only the first obj file is linked, because the output file was exactly 2KB although it should have been hundreds of KBs. Thanks in helpful advices... _______________________________________________ help-gnu-utils mailing list help-gnu-utils@gnu.org http://lists.gnu.org/mailman/listinfo/help-gnu-utils