Need help: How to set .RECIPEPREFIX variable to whitespaces

amit mehta gmate.amit at gmail.com
Mon Jul 25 08:29:52 EDT 2011


Asked 'Make' gurus today about this and here's what Paul D. Smith confirmed:

"RECIPEPREFIX must be set to exactly one unique character.  There's no
way to set it to be "four spaces".

Also note that this feature is only available in the latest version of
GNU make and many systems do not include that version yet, so if you use
this feature your makefiles will not be portable to older systems (you
might not care about that). "

- Amit

On Mon, Jul 18, 2011 at 10:40 AM, amit mehta <gmate.amit at gmail.com> wrote:
> Thank you. With your work around I do not need to edit my vimrc file
> everytime i need to write a Makefile.
>
> -Amit
>
> On Wed, Jul 13, 2011 at 8:03 PM, DG <dangets at gmail.com> wrote:
>> On Wed, Jul 13, 2011 at 1:52 AM, amit mehta <gmate.amit at gmail.com> wrote:
>>> Hi,
>>>
>>> How to set .RECIPEPREFIX variable to whitespace(say 4 whitespces) , so that
>>> make uses this particular set of characters to identify the recipe for
>>> a particular target.
>>> In my $HOME/.vimrc file, for code indentation purpose, I've put the
>>> following entries
>>> to replace tabs with 4 whitespaces:
>>>
>>> <<<snip from my $HOME/.vimrc file>>>
>>> "replace tabs with spaces
>>> set expandtab
>>> set shiftwidth=4
>>> set tabstop=4
>>> <<<snip from my $HOME/.vimrc file>>>
>>>
>>>
>>> but the above will cause problem in case you write your own makefile
>>> for a kernel module,
>>> because now the tab stroke will be replaced by 4 whitespaces which
>>> 'make' will not understand.
>>> Quoting from 'make' manual,
>>> "Please note: you need to put a tab character at the beginning of
>>> every recipe line!"
>>>
>>> Seems .RECIPEPREFIX will come for resuce, but as of now I don't know
>>> how to use it
>>> to fix my problem.
>>>
>>> Regards,
>>> Amit
>>>
>>> --
>>> Life is elsewhere. Cross Frontiers. Fly away.
>>>
>>> - Salman Rushdie
>>>
>>> _______________________________________________
>>> Kernelnewbies mailing list
>>> Kernelnewbies at kernelnewbies.org
>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>>
>>
>> I have my vimrc file setup to use different tabs/spacing depending on
>> the filetype.  8-width tab in C, 4-space indent in Python, etc...
>>
>> Here's a snippet from my vimrc:
>>
>> "-------- C -------------------------
>> function! LANG_C()
>>    setlocal noexpandtab
>>    setlocal shiftwidth=8
>>    setlocal tabstop=8
>>    setlocal softtabstop=8
>>    setlocal formatoptions=tcroq
>> endfunction
>> autocmd FileType c call LANG_C()
>>
>> "------- Python ----------------
>> function! LANG_PYTHON()
>>    setlocal shiftwidth=4
>>    setlocal tabstop=4
>>    setlocal softtabstop=4
>>    setlocal expandtab
>>    "--- python indent keywords --------
>>    setlocal cinwords=if,elif,else,for,while,try,except,finally,def,class,with
>> endfunction
>> autocmd FileType python call LANG_PYTHON()
>>
>> "------- Makefile --------------
>> function! LANG_MAKEFILE()
>>    setlocal noexpandtab     " makefiles only work with tab-indents
>>    setlocal shiftwidth=8
>>    setlocal tabstop=8
>>    setlocal softtabstop=8
>> endfunction
>> autocmd FileType make call LANG_MAKEFILE()
>>
>>
>> There may be other/better ways to do this, but it works well for me.
>>
>
>
>
> --
> Life is elsewhere. Cross Frontiers. Fly away.
>
> - Salman Rushdie
>



-- 
Life is elsewhere. Cross Frontiers. Fly away.

- Salman Rushdie



More information about the Kernelnewbies mailing list