From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: stan Newsgroups: gmane.emacs.help Subject: Re: help with makefile command line Date: Fri, 28 Mar 2008 15:33:25 -0500 Organization: home Message-ID: References: NNTP-Posting-Host: lo.gmane.org X-Trace: ger.gmane.org 1206736857 23085 80.91.229.12 (28 Mar 2008 20:40:57 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 28 Mar 2008 20:40:57 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Mar 28 21:41:27 2008 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JfLO0-0004Y9-5N for geh-help-gnu-emacs@m.gmane.org; Fri, 28 Mar 2008 21:41:16 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JfLNN-00006U-DR for geh-help-gnu-emacs@m.gmane.org; Fri, 28 Mar 2008 16:40:37 -0400 Original-Path: shelby.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!nntpserver.com!zeus.nntpserver.com!10.1.1.41.MISMATCH!pfilter-v0.1!not-for-mail Original-Newsgroups: gnu.emacs.help User-Agent: slrn/0.9.8.0 (Linux) Original-Lines: 111 Original-NNTP-Posting-Date: 28 Mar 2008 20:10:43 GMT Original-X-Complaints-To: abuse@teranews.com Original-Xref: shelby.stanford.edu gnu.emacs.help:157411 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:52781 Archived-At: Richard G Riley wrote: > stan writes: > >> Richard G Riley wrote: >>> stan writes: >>> >>>> Richard G Riley wrote: >>>>> "Balaji V. Iyer" writes: >>>>> >>>>>> Hello Everyone, >>>>>> I use the compile option extenstively in emacs. When I type "M-x >>>>>> compile" the default line is "make -k" Many times I do not have a make >>>>>> file thus I would lke the default line to be >>>>>> >>>>>> "gcc -ansi -O4 -Wall " >>>>>> >>>>>> How do I do this? >>>>>> >>>>>> I tried the following command but it doesn't seem to work (If anyone >>>>>> have a better idea please let me know). >>>>>> >>>>>> (function >>>>>> (lambda () >>>>>> (unless (or (file-exists-p "makefile") >>>>>> (file-exists-p "Makefile")) >>>>>> (setq compile-command >>>>>> (concat "gcc -Wall -O3 -o" >>>>>> (file-name-sans-extension (file-name-nondirectory >>>>>> buffer-file -name)) >>>>>> " " >>>>>> (file-name-nondirectory buffer-file-name)))))) >>>> >>>> >>>> Seems like it might be easier to write a makefile :) >>> >>> Sorry. I'm not sure I understand. You snipped all my code. Did it not >>> work for you? I use it on a daily basis. >> >> Sorry I confused with my snip. I'm not the op. I have my setup working >> pretty much the way I want ( is anyone ever really satisfied?) > > But what has your setup and they way you want it got to do with the OP > wanting auto selection between Makefile and the gcc direct approach? The op originally asked how to replace make -k with gcc -ansi -O4 -Wall file because he didn't have a makefile. He asked for ideas. >>> >>> Yes, I do know that. But why would I do that when I can automate it as >>> above depending on whether there is a Makefile or not? >> >> Again, our streams got crossed at my snip. Both of our comments should >> have been directed to the OP and not each other. > > My comments were directed at you. It was your post I replied to > above. You replied to me. I replied to you. I wasn't replying to you, as I said the streams got crossed. You might note the snip started with your reply and left the op attempted solution. > > I am still not sure what points you were trying to make though. Did you > understand the OPs want better now? I understood from the beginning. Several options were offered by others that didn't involve hard coding a choosable make or gcc command. Hard coding the compiler as the op attempted to do seems to me to have the disadvantage of hard coding the compiler options also. In a case where you dont want the hard coded it seems reasonable to change them on a session basis, or try some other option. Your code also requires changeing the code to get a different set of options in the generated makefile. Personally I prefer the insert a template approach because I prefer simply editing the template when I update the baseline. I realize that your code generates a baseline Makfle that can be modified, I'm refering to changes in the baseline. For example I jump between cygwin and linux with diferent baseline makefiles and with your method I would add to the headache of maintaining a .emacs for both systems. Hard coding either a gcc command or a baseline makefile seems to lose flexibility to me. For me at least your way seems to involve some extra steps when I update my standard Makefile. I.e. generate the makefile, run to test. locate problem, modify code, generate makefile, ... With the insert template method I simply modify Makefile, run to test, locate problem, modify Makefile. When satisfied, replace template Makefile. Seems like less steps and cleaner to me. What works for me might not be best for others though so I'm a firm believer in options. The more the merrier most of the time. I saw the op's issue as how to solve compile without a makefile and you aparrently see the issue as how to modify .emacs. Different perspectives, different solution options. That's a good thing.(tm) > >>> >>>> >>>> Another idea, if you don't like what Eli suggested earlier is to come up >>>> with a makefile template and use auto insert. I have a template that I >>>> only need to basically change the list of files in and it save a lot of >>>> time during the compile, run. scream. debug, edit cycle. >>>> >>>> Finally, you can edit the compile command for all time but it seems like >>>> a bad idea. >>> >>> I'm not sure I understand. I have makefiles for most of my projects. If >>> I don't have one it builds a compile and link command based on the c >>> file name which is what you requested. >>> >>> Sorry I can't be more help. Did you try my code? >> >> See above. I didn't snip this time for fear of losing you again :)