Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!auspex!guy From: guy@auspex.auspex.com (Guy Harris) Newsgroups: comp.unix.questions Subject: Re: make removed my source file Message-ID: <2955@auspex.auspex.com> Date: 18 Feb 90 22:05:03 GMT References: <1025@wubios.wustl.edu> Organization: Auspex Systems, Santa Clara Lines: 35 >I was lucky that I had recently backed up my files, so not many changes >were lost. I do not understand why these commands were executed instead >of the ones I specified in my Makefile. "make" has a big list of built-in rules (or, in the case of the SunPro "make", which is the default "make" in SunOS 4.x, rules in "/usr/include/make/default.mk"). "make" does not, unless you give it the "-r" flag, confine itself to the rules you explicitly specify in your Makefile. Since Time Immemorial, the default rules have included rules for "lex". Since Time Immemorial, the suffix for "lex" files has been ".l". If your ".l" file is really a "lex" file, you should either rename "xxencode.l" to something else ending with a ".l" or rename "xxencode.c" to something else ending with a ".c". If the ".l" file is something else, choose another suffix. I suspect that "xxencode.l" is supposed to be the manual page for "xxencode" and "xxdecode". You made the mistake of thinking that the convention that manual pages for "local" things should end with ".l" actually had merit. It has none whatsoever: 1) local software comes in the form of commands, library routines, device drivers, etc. just like "standard" software, and as such its manual pages should be broken up into different categories just like system manual pages; 2) ".l", as a suffix, is already spoken for - it means "lex file" (I'm willing to be slightly merciful to the inventor of the ".l" convention if they'd done so before "lex" was available in UNIX). If the ".l" file is supposed to be a local manual page, don't follow the stupid ".l" convention for local manual pages - call it ".1", instead, since it appears to be a command.