[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

make "feature", source packages



GNU make has a feature that disables command echoing, which
can create confusion. An example (from librl; see bug #1075):
-- make output --
gcc -S -c -O2 -DHAVE_UNISTD_H -DHAVE_VARARGS_H -DHAVE_STRING_H -DHAVE_DIRENT_H -DHAVE_STDLIB_H -DHAVE_ALLOCA_H  -I. -I..  readline.c -o readline.s
make: *** [readline.o] Error 126
--
Without close scrutiny, this looks like a problem with gcc.
This notion is reinforced in this case by rerunning make, which
gives the same output.

The behaviour can be understood from the following lines of the Makefile:
--
.c.o:
	$(CC) -S -c $(CFLAGS) $(LOCAL_DEFINES) $(CPPFLAGS) $*.c -o $*.s
# The DLL object
	@$(JUMP_AS_PATH)as -o $(JUMP_DIR)/$*.o $*.s 2>/dev/null
# The static object
	@$(AS) -o $*.o $*.s
	@$(RM) $*.s
--
The '@' characters inhibit command echoing, as described in the
"Defining canned command sequences" section in the info files for make.

Since this feature can be extremely confusing, both for the user compiling
a package, and for the developer ("script" output doesn't show what
goes wrong), I ask that this feature not be used in Debian packages.

Regards,
Ray
-- 
LEADERSHIP  A form of self-preservation exhibited by people with auto-
destructive imaginations in order to ensure that when it comes to the crunch 
it'll be someone else's bones which go crack and not their own.       
- The Hipcrime Vocab by Chad C. Mulligan    


Reply to: