All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Kondratiev <vladimir.kondratiev@linux.intel.com>
To: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Michal Marek <michal.lkml@markovi.net>,
	Linux Kbuild mailing list <linux-kbuild@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] kbuild: gitignore output directory
Date: Sun, 3 Feb 2019 10:50:58 +0200	[thread overview]
Message-ID: <10f0f786-6d91-7eba-c057-96c6c00544e8@linux.intel.com> (raw)
In-Reply-To: <CAK7LNAS8g3g3OTtqTN8begMxzbSS82Wn0CqY8u6vuELEZaLo3g@mail.gmail.com>

Agree; sending v2

On 2/1/19 6:18 AM, Masahiro Yamada wrote:
> On Wed, Jan 30, 2019 at 8:15 PM Vladimir Kondratiev
> <vladimir.kondratiev@linux.intel.com> wrote:
>>
>> When compiling into output directory using O=, many files
>> created under KBUILD_OUTPUT that git considers
>> as new ones; git clients, ex. "git gui" lists it, and it clutters
>> file list making it difficult to see what was really changed
>>
>> Generate .gitignore in output directory that ignores all
>> its content
>>
>> Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@linux.intel.com>
>> ---
>>   Makefile | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/Makefile b/Makefile
>> index 141653226f3c..ee66ea28869b 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -483,10 +483,13 @@ PHONY += outputmakefile
>>   # outputmakefile generates a Makefile in the output directory, if using a
>>   # separate output directory. This allows convenient use of make in the
>>   # output directory.
>> +# At the same time when output Makefile generated, generate .gitignore to
>> +# ignore whole output directory
>>   outputmakefile:
>>   ifneq ($(KBUILD_SRC),)
>>          $(Q)ln -fsn $(srctree) source
>>          $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree)
>> +       echo "# this is build directory, ignore it\n*" > .gitignore
>>   endif
>>
>>   ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
>> --
>> 2.19.1
>>
> 
> 
> The idea looks OK to me.
> The implementation must be improved.
> 
> 
> You need to add $(Q) to suppress the annoying command echo.
> 
> Also, this patch does not work for all distributions because
> echo "\n"
> is not portable.
> 
> 
> 
> GNU Make runs recipes in /bin/sh (unless SHELL variable is changed),
> but the implementation of /bin/sh depends on distributions.
> 
> 
> This patch works on Ubuntu etc.
> because /bin/sh is a symbolic link to dash.
> 
> 
> But, in some distributions,
> /bin/sh is a symbolic link to bash.
> 
> 
> 
> Docker is useful for quick tests of
> various distributions. :)
> 
> See the result of  echo "hello\nworld"
> 
> 
> [Ubuntu]
> 
> foo@8ad1275125c5:~$ cat /etc/lsb-release
> DISTRIB_ID=Ubuntu
> DISTRIB_RELEASE=18.10
> DISTRIB_CODENAME=cosmic
> DISTRIB_DESCRIPTION="Ubuntu 18.10"
> foo@8ad1275125c5:~$ ls -l /bin/sh
> lrwxrwxrwx 1 root root 4 Nov 14 23:00 /bin/sh -> dash
> foo@8ad1275125c5:~$ /bin/sh
> $ type echo
> echo is a shell builtin
> $ echo "hello\nworld"
> hello
> world
> 
> 
> 
> 
> [CentOS]
> 
> 
> [foo@c3fbaa4b6f72 ~]$ cat /etc/redhat-release
> CentOS Linux release 7.6.1810 (Core)
> [foo@c3fbaa4b6f72 ~]$ ls -l /bin/sh
> lrwxrwxrwx 1 root root 4 Dec  5 01:36 /bin/sh -> bash
> [foo@c3fbaa4b6f72 ~]$ /bin/sh
> sh-4.2$ type echo
> echo is a shell builtin
> sh-4.2$ echo "hello\nworld"
> hello\nworld
> 
> 
> 
> 
> 
> On example for workaround might be:
> 
> diff --git a/Makefile b/Makefile
> index ee66ea2..010c1c6 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -489,7 +489,7 @@ outputmakefile:
>   ifneq ($(KBUILD_SRC),)
>          $(Q)ln -fsn $(srctree) source
>          $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree)
> -       echo "# this is build directory, ignore it\n*" > .gitignore
> +       $(Q){ echo "# this is build directory, ignore it"; echo "*"; }
>> .gitignore
>   endif
> 
>   ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
> 
> 
> 
> 
> 
> 

      parent reply	other threads:[~2019-02-03  8:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30 11:14 [PATCH] kbuild: gitignore output directory Vladimir Kondratiev
2019-02-01  4:18 ` Masahiro Yamada
2019-02-03  8:48   ` [PATCH v2] " Vladimir Kondratiev
2019-02-05  8:15     ` Masahiro Yamada
2019-03-22 15:52     ` Andre Przywara
2019-03-24  2:22       ` Masahiro Yamada
2019-03-25 10:47         ` Andre Przywara
2019-02-03  8:50   ` Vladimir Kondratiev [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10f0f786-6d91-7eba-c057-96c6c00544e8@linux.intel.com \
    --to=vladimir.kondratiev@linux.intel.com \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.