From: Greg C. <chi...@co...> - 2006-02-08 16:20:21
|
On 2006-2-8 15:37 UTC, Xavier Marichal wrote: > > [...] I downloaded and installed mingw32-make-3.80.0-2.exe > <http://prdownloads.sf.net/mingw/mingw32-make-3.80.0-2.exe?download>. > I correctly defined $(MAKE) in all my makefiles and launched my make > project with mingw32-make. > > I almost immediately got the following error: > > sed: -e expression #2, char 9: Unknown option to 's' > gnumake[1]: Entering directory `C:/msys/home/marichal/af' > g++.exe: no input files > > The problem clearly comes from a bad interpretation of a sed command, > which in turn makes that the g++ command has not received the > appropriate parameters. > This sed command occurs in one of my rules to automatically generate > dependencies and store in .d files: > > # > # Creating sub-makefile for dependencies from C++ source files > # > $(OBJECT_DIR)%$(DBG_USED_SUFFIX)$(DEP_EXT) : $(FILES_PATH)%$(SRC_EXT) > $(VERBOSE_ECHO) $(SHELL) -ec '$(CXX) -MM $(FINAL_CPPFLAGS) > $(CXXINCLDIRS) $< | sed '\''s/\($*\)\.o[ > :]*/$(OBJECT_DIR_FOR_SED)\1$(DBG_USED_SUFFIX).o $(subst /,\/,$@) : > /g'\'' > $@' > > Yet, this line works perfectly with make 3.79, under both msys and > linux. And with make 3.80 as well under Linux.... Examine the actual 'sed' command that gets executed. Perhaps some portion of it, for instance /$(OBJECT_DIR_FOR_SED) gets expanded by the MSYS shell to something like '/C:\foo\bar'. |