Need help: How to set .RECIPEPREFIX variable to whitespaces

DG dangets at gmail.com
Wed Jul 13 10:33:33 EDT 2011


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.



More information about the Kernelnewbies mailing list