svn commit: r231905 - in stable/9: share/mk sys/conf sys/modules sys/modules/drm sys/modules/sound/driver sys/modules/usb tools/build/options

Bruce Evans brde at optusnet.com.au
Sun Feb 19 12:54:50 UTC 2012


On Sun, 19 Feb 2012, Robert Millan wrote:

> Log:
>  MFC r230972,r230980,r231559,r231565: Add MK_SOURCELESS build option, and
>  associated fixes.
>
>  Approved by:	kib (mentor)

Do the file names have to be as ugly as the macros?  scottl liked moving
them to the MI conf directory, but the make a bigger mess there since
there are more files there.  For ls -C in -current now:

WITH_LOUD_VERBOSE_NAMES:
% CVS/				kmod.mk
% Makefile.amd64			kmod_syms.awk
% Makefile.arm			ldscript.amd64
% Makefile.i386			ldscript.arm
% Makefile.ia64			ldscript.i386
% Makefile.mips			ldscript.ia64
% Makefile.pc98			ldscript.mips
% Makefile.powerpc		ldscript.mips.cfe
% Makefile.sparc64		ldscript.mips.mips64
% NOTES				ldscript.mips.octeon1
% WITHOUT_SOURCELESS		ldscript.powerpc
% WITHOUT_SOURCELESS_HOST		ldscript.powerpc64
% WITHOUT_SOURCELESS_UCODE	ldscript.sparc64
% defines				makeLINT.mk
% files				makeLINT.sed
% files.amd64			newvers.sh
% files.arm			options
% files.i386			options.amd64
% files.ia64			options.arm
% files.mips			options.i386
% files.pc98			options.ia64
% files.powerpc			options.mips
% files.sparc64			options.pc98
% kern.mk				options.powerpc
% kern.post.mk			options.sparc64
% kern.pre.mk			systags.sh

Spot the unix-style names among these.

without_so_much_loudness_or_verboseness:
% CVS/			files.pc98		ldscript.powerpc64
% Makefile.amd64		files.powerpc		ldscript.sparc64
% Makefile.arm		files.sparc64		makeLINT.mk
% Makefile.i386		kern.mk			makeLINT.sed
% Makefile.ia64		kern.post.mk		newvers.sh
% Makefile.mips		kern.pre.mk		options
% Makefile.pc98		kmod.mk			options.amd64
% Makefile.powerpc	kmod_syms.awk		options.arm
% Makefile.sparc64	ldscript.amd64		options.i386
% NOTES			ldscript.arm		options.ia64
% defines			ldscript.i386		options.mips
% files			ldscript.ia64		options.pc98
% files.amd64		ldscript.mips		options.powerpc
% files.arm		ldscript.mips.cfe	options.sparc64
% files.i386		ldscript.mips.mips64	systags.sh
% files.ia64		ldscript.mips.octeon1
% files.mips		ldscript.powerpc

Some names are already too long, but most didn't shout.

FreeBSD ls is relatively stupid about tabular formatting.  It produces
fixed-width columns aligned to tab boundaries.  Thus a single name of
length 16 or more reduces to 3 columns of names in 80 columns of
characters (3 * 24 < 80 < 4 * 24), and a single name of length 24 or
more reduces to 2 columns of names in 80 columns of characters
(2 * 32 < 80 < 3 * 32).  I couldn't find any option to control this.

gnu ls is smarter and produces 4 columns in both cases:

WITH:
% CVS/			  defines	 kmod.mk		makeLINT.mk
% Makefile.amd64		  files		 kmod_syms.awk		makeLINT.sed
% Makefile.arm		  files.amd64	 ldscript.amd64		newvers.sh
% Makefile.i386		  files.arm	 ldscript.arm		options
% Makefile.ia64		  files.i386	 ldscript.i386		options.amd64
% Makefile.mips		  files.ia64	 ldscript.ia64		options.arm
% Makefile.pc98		  files.mips	 ldscript.mips		options.i386
% Makefile.powerpc	  files.pc98	 ldscript.mips.cfe	options.ia64
% Makefile.sparc64	  files.powerpc  ldscript.mips.mips64	options.mips
% NOTES			  files.sparc64  ldscript.mips.octeon1	options.pc98
% WITHOUT_SOURCELESS	  kern.mk	 ldscript.powerpc	options.powerpc
% WITHOUT_SOURCELESS_HOST   kern.post.mk	 ldscript.powerpc64	options.sparc64
% WITHOUT_SOURCELESS_UCODE  kern.pre.mk	 ldscript.sparc64	systags.sh

without:
% CVS/		  files.arm	  ldscript.arm		 options
% Makefile.amd64	  files.i386	  ldscript.i386		 options.amd64
% Makefile.arm	  files.ia64	  ldscript.ia64		 options.arm
% Makefile.i386	  files.mips	  ldscript.mips		 options.i386
% Makefile.ia64	  files.pc98	  ldscript.mips.cfe	 options.ia64
% Makefile.mips	  files.powerpc   ldscript.mips.mips64	 options.mips
% Makefile.pc98	  files.sparc64   ldscript.mips.octeon1  options.pc98
% Makefile.powerpc  kern.mk	  ldscript.powerpc	 options.powerpc
% Makefile.sparc64  kern.post.mk	  ldscript.powerpc64	 options.sparc64
% NOTES		  kern.pre.mk	  ldscript.sparc64	 systags.sh
% defines		  kmod.mk	  makeLINT.mk
% files		  kmod_syms.awk   makeLINT.sed
% files.amd64	  ldscript.amd64  newvers.sh

It apparently uses non-fixed-width columns with a minimum width of 2 between
columns (this is 1 more than aligning to tab boundaries is sure to give).
Both formats use rather too hard tabs, which make a mess when quoted
and don't even save much space when combined with spaces.

Quite often, a prefix collects all names with similar verboseness together
when they are sorted, so ls could be even smarter and try to keep verbose
names in wide columns, and start new columns as necessary for this, giving
ragged column depths.  Next, it could sort all the verbose names into a
verbose column, or better yet, filter them out :-).

Bruce


More information about the svn-src-stable-9 mailing list