Welcome to the Builder Academy

Question Deprecation warning in gmake 4.3

More
02 Feb 2020 15:58 #8532 by krell
GNU make 4.3 is coming to my system. What do I have to know in order to build my copy of the mud? Is this related to the changes in the Makefile recently regarding the *BSDs?

* NOTE: Deprecated behavior.
Contrary to the documentation, suffix rules with prerequisites are being
treated BOTH as simple targets AND as pattern rules. Further, the
prerequisites are ignored by the pattern rules. POSIX specifies that in
order to be a suffix rule there can be no prerequisites defined. In this
release if POSIX mode is enabled then rules with prerequisites cannot be
suffix rules. If POSIX mode is not enabled then the previous behavior is
preserved (a pattern rule with no extra prerequisites is created) AND a
warning about this behavior is generated:
warning: ignoring prerequisites on suffix rule definition
The POSIX behavior will be adopted as the only behavior in a future release
of GNU make so please resolve any warnings.

Please Log in or Create an account to join the conversation.

More
03 Feb 2020 22:27 #8533 by thomas
It might be. I just tested GNU make 4.3 on my (linux) system, and there were no problems at all. Can you upload your makefile?

Please Log in or Create an account to join the conversation.

More
04 Feb 2020 02:35 - 04 Feb 2020 02:37 #8534 by krell
Current Makefile
Code:
# Generated automatically from Makefile.in by configure. # tbaMUD Makefile.in - Makefile template used by 'configure' # Clean-up provided by seqwith. # C compiler to use CC = gcc # Any special flags you want to pass to the compiler MYFLAGS = -Wall #MYFLAGS = -Wall -DMEMORY_DEBUG #flags for profiling (see hacker.doc for more information) PROFILE = ############################################################################## # Do Not Modify Anything Below This Line (unless you know what you're doing) # ############################################################################## BINDIR = ../bin CFLAGS = -g -O2 $(MYFLAGS) $(PROFILE) LIBS = SRCFILES := $(wildcard *.c) OBJFILES := $(patsubst %.c,%.o,$(SRCFILES)) default: all all: .accepted $(MAKE) $(BINDIR)/circle $(MAKE) utils .accepted: @./licheck less utils: .accepted (cd util; $(MAKE) all) circle: $(MAKE) $(BINDIR)/circle $(BINDIR)/circle : $(OBJFILES) $(CC) -o $(BINDIR)/circle $(PROFILE) $(OBJFILES) $(LIBS) $%.o: %.c $(CC) $< $(CFLAGS) -c -o $@ clean: rm -f *.o depend # Dependencies for the object files (automagically generated with # gcc -MM) depend: $(CC) -MM *.c > depend -include depend

Attachment Makefile.txt not found

Last edit: 04 Feb 2020 02:37 by krell.

Please Log in or Create an account to join the conversation.

More
04 Feb 2020 20:35 #8535 by thomas
Hmm. The wildcard and patsubst commands must be BSD only. In github.com/tbamud/tbamud/blob/master/src/Makefile.in the .c and .o files are listed explicitly. That may be the issue.

If you want to try it out, move your Makefile to Makefile.current and run ./config.status to generate a new one based on the Makefile.in from standard tbamud. See if that makes a difference. Note: you'll have to add any files you've added to get them to compile :)

Please Log in or Create an account to join the conversation.

More
05 Feb 2020 13:40 #8536 by krell
Okay, thanks. I'll try the existing Makefile first when I see 4.3 has been installed. If I have any issues I'll try the new Makefile.

Please Log in or Create an account to join the conversation.

More
05 Feb 2020 14:06 #8537 by krell

thomas wrote: Hmm. The wildcard and patsubst commands must be BSD only.


I don't know. They seem to be, or have been, features of gnu make. But I can't recall if I put them in my Makefile or if configure did so automagically. It's been a long time since I've modified my Makefile and everything seemed to "just work," so I'm assuming that configure must have done the deed?

Please Log in or Create an account to join the conversation.

Time to create page: 0.215 seconds