help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: help with makefile command line


From: Richard G Riley
Subject: Re: help with makefile command line
Date: Sat, 29 Mar 2008 14:18:33 +0100
User-agent: Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (gnu/linux)

stan <smoore@exis.net> writes:

> Richard G Riley wrote:
>> stan <smoore@exis.net> writes:
>>
>>> Richard G Riley wrote:
>>>> stan <smoore@exis.net> writes:
>>>>
>>>>> Richard G Riley wrote:
>>>>>> "Balaji V. Iyer" <bviyer@ncsu.edu> 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 <c_source_file>"
>>>>>>>  
>>>>>>> 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))))))
>>>>> <snip>
>>>>>
>>>>> 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

Nothing is hard coded that can not be undone at compile time. You can
choose not to use mycompile ...

> 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

As most makefiles do - but thats a straw man since you can as easily use
system variables in them. As I do.

> 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

What generated makefile? It doesn't generate any makefiles.

> 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.

No it doesn't.

> 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.

I'm not sure I follow you with this hard coded stuff. Its a baseline. All
functions and utilities are "hard coded" - in this case using a  makefile
on a C project if it exists is hardly hard coding anything. Makefiles
are an integral part of C development.

>
> 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

Again. it doesn't generate any makefile.

> 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.

I hardly ever modify a base makefile. I use a template, add the target
and source files and bang - its there for pretty much ever.

>
> 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.

Yes. I agree.

>
> 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)

No. I gave a solution that works with or without a makefile. Most
"custom" things in emacs require a modification of a utility el or the
.emacs. I'm somewhat confused as to your understanding of the
function/example I provided.

Anyway, I guess we've done this to death.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]