From: Greg C. <chi...@mi...> - 2003-06-09 03:16:38
|
Parinya Thipchart wrote: > > > > I have a problem with lastest version of make. > > > > > > My makefile can build with make 3.79.1 with no errors > > > but when I use make 3.80.0 (The lastest one from MinGW). > > > I get a message: > > > > > > makefile:92: *** multiple target patterns. Stop. > > > > Try running it with make's '-d' flag, which should > > give more information about the problem and might > > enable you to post a simpler test case. > > Thanks very much to reply my message. > And this is the output after I added "-d" > > ------------->8----------------------- > GNU Make 3.80 > Copyright (C) 2002 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. > There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A > PARTICULAR PURPOSE. > Reading makefiles... > makefile:92: *** multiple target patterns. Stop. > Reading makefile `makefile'... > ------------>8------------------------ > > :( Oh. Well, I'm still using only 3.79.1; but anyway, the make-3.80 manual says that message indicates a malformed static pattern rule with "multiple patterns in the target section". And it says the syntax of a static pattern rule is targets ...: target-pattern: dep-patterns ... commands ... So I grep for ':.*:' and find only variable assignments like LIB_DIRS = -L"C:\wxWindows_2.4.0\contrib\lib" -L"C:\wxWindows_2.4.0\lib" Maybe that's confusing make? > > > makefile:92: *** multiple target patterns. Stop. Now, line 92 is this rule: print_header: @echo ----------Configuration: minimal - $(CFG)---------- and elsewhere you have $(TARGET): print_header $(RSRC_OBJS) $(SRC_OBJS) but I don't see how any of those three variables can expand to anything with a colon in it. If you reduce this to a really minimal test case, that increases the likelihood someone else will help you better. |