All of lore.kernel.org
 help / color / mirror / Atom feed
* make help ARCH=xx fun
@ 2004-02-21 14:26 James H. Cloos Jr.
  2004-02-22  9:50 ` Sam Ravnborg
  0 siblings, 1 reply; 11+ messages in thread
From: James H. Cloos Jr. @ 2004-02-21 14:26 UTC (permalink / raw)
  To: linux-kernel

I was looking at the arch-specific make options for various archs,
and found this bit of fun:

:; make help ARCH=sh
[elided]
Architecture specific targets (sh):
  zImage                  - Compressed kernel image (arch/sh/boot/zImage)
  SCCS            - Build for arch/sh/configs/SCCS
  defconfig-adx           - Build for adx
  defconfig-cqreek        - Build for cqreek
  defconfig-dreamcast     - Build for dreamcast
  defconfig-hp680         - Build for hp680
  defconfig-se7751        - Build for se7751
  defconfig-snapgear      - Build for snapgear
  defconfig-systemh       - Build for systemh
[elided]

The defconfig options only show up after a bk get in arch/sh/configs/.

There are also several archs that do not have any arch-specific
help.  ppc64 (unlike ppc) is one such example.

-JimC


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-21 14:26 make help ARCH=xx fun James H. Cloos Jr.
@ 2004-02-22  9:50 ` Sam Ravnborg
  2004-02-22 14:28   ` James H. Cloos Jr.
  2004-02-24 21:55   ` Tom Rini
  0 siblings, 2 replies; 11+ messages in thread
From: Sam Ravnborg @ 2004-02-22  9:50 UTC (permalink / raw)
  To: James H. Cloos Jr.; +Cc: linux-kernel

On Sat, Feb 21, 2004 at 09:26:41AM -0500, James H. Cloos Jr. wrote:
> I was looking at the arch-specific make options for various archs,
> and found this bit of fun:
> 
> :; make help ARCH=sh
> [elided]
> Architecture specific targets (sh):
>   zImage                  - Compressed kernel image (arch/sh/boot/zImage)
>   SCCS            - Build for arch/sh/configs/SCCS
>   defconfig-adx           - Build for adx
>   defconfig-cqreek        - Build for cqreek
>   defconfig-dreamcast     - Build for dreamcast
>   defconfig-hp680         - Build for hp680
>   defconfig-se7751        - Build for se7751
>   defconfig-snapgear      - Build for snapgear
>   defconfig-systemh       - Build for systemh
> [elided]
> 
> The defconfig options only show up after a bk get in arch/sh/configs/.
The sh people have decided to create the list based on the content of the directory.
Therefore you see the SCCS entry, and that's why you need to do a 'bk bet'.
In general you cannot expect the konfig and build system to work 100% if there is
random files missing in the tree. Those files bk can checkout automatically is
more by luck - and no effort has been put into making this a trustworthy way
to do it.

I expect sh to change their defconfig system to the same infrastructure as used
by ppc, arm and others.

> There are also several archs that do not have any arch-specific
> help.  ppc64 (unlike ppc) is one such example.
Patches are welcome.

	Sam

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-22  9:50 ` Sam Ravnborg
@ 2004-02-22 14:28   ` James H. Cloos Jr.
  2004-02-24 21:55   ` Tom Rini
  1 sibling, 0 replies; 11+ messages in thread
From: James H. Cloos Jr. @ 2004-02-22 14:28 UTC (permalink / raw)
  To: linux-kernel

>>>>> "Sam" == Sam Ravnborg <sam@ravnborg.org> writes:

Sam> The sh people have decided to create the list based on the
Sam> content of the directory.  Therefore you see the SCCS entry,

I thought that went w/o saying....

The points were that if doing a readdir(3) in the tree for config
files, it would not be a bad idea to ignore directories and that
each arch should have arch-specific make help support (the cited
example was that ppc64 lacked it even though ppc had some).

-JimC


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-22  9:50 ` Sam Ravnborg
  2004-02-22 14:28   ` James H. Cloos Jr.
@ 2004-02-24 21:55   ` Tom Rini
  2004-02-25 19:00     ` Sam Ravnborg
  1 sibling, 1 reply; 11+ messages in thread
From: Tom Rini @ 2004-02-24 21:55 UTC (permalink / raw)
  To: James H. Cloos Jr., linux-kernel

On Sun, Feb 22, 2004 at 10:50:21AM +0100, Sam Ravnborg wrote:

> On Sat, Feb 21, 2004 at 09:26:41AM -0500, James H. Cloos Jr. wrote:
> > I was looking at the arch-specific make options for various archs,
> > and found this bit of fun:
> > 
> > :; make help ARCH=sh
> > [elided]
> > Architecture specific targets (sh):
> >   zImage                  - Compressed kernel image (arch/sh/boot/zImage)
> >   SCCS            - Build for arch/sh/configs/SCCS
> >   defconfig-adx           - Build for adx
> >   defconfig-cqreek        - Build for cqreek
> >   defconfig-dreamcast     - Build for dreamcast
> >   defconfig-hp680         - Build for hp680
> >   defconfig-se7751        - Build for se7751
> >   defconfig-snapgear      - Build for snapgear
> >   defconfig-systemh       - Build for systemh
> > [elided]
> > 
> > The defconfig options only show up after a bk get in arch/sh/configs/.
> The sh people have decided to create the list based on the content of the directory.
> Therefore you see the SCCS entry, and that's why you need to do a 'bk bet'.
> In general you cannot expect the konfig and build system to work 100% if there is
> random files missing in the tree. Those files bk can checkout automatically is
> more by luck - and no effort has been put into making this a trustworthy way
> to do it.

Hmm.  Would something (untested) like the following be horribly
wrong/bad?

define archhelp
        @echo '  zImage           - Compressed kernel image (arch/sh/boot/zImage)'
	@if [ -d arch/$(ARCH)/configs/SCCS ]; then bk get -q arch/$(ARCH)/configs/;fi
# Assume board_defconfig
	for board in arch/$(ARCH)/configs/*defconfig; \
        do \
                 echo -n ' ' $$board | sed -e 's|arch/$(ARCH)/configs/||g' ; \
                 echo -n '        - Build for ' ; \
                 echo -e $$board | sed -e 's|.*_||g'; \
        done
endef

I kinda like the idea of documenting the various defconfig targets, in
make help, so maybe even adding that to the normal help section iff
arch/$(ARCH)/configs exists...  Thoughts?

-- 
Tom Rini
http://gate.crashing.org/~trini/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 19:00     ` Sam Ravnborg
@ 2004-02-25 18:08       ` Tom Rini
  2004-02-25 18:30         ` Paul Mundt
  2004-02-25 20:39         ` Sam Ravnborg
  0 siblings, 2 replies; 11+ messages in thread
From: Tom Rini @ 2004-02-25 18:08 UTC (permalink / raw)
  To: James H. Cloos Jr., linux-kernel

On Wed, Feb 25, 2004 at 08:00:49PM +0100, Sam Ravnborg wrote:
> > 
> > Hmm.  Would something (untested) like the following be horribly
> > wrong/bad?
> > 
> > define archhelp
> >         @echo '  zImage           - Compressed kernel image (arch/sh/boot/zImage)'
> > 	@if [ -d arch/$(ARCH)/configs/SCCS ]; then bk get -q arch/$(ARCH)/configs/;fi
> > # Assume board_defconfig
> > 	for board in arch/$(ARCH)/configs/*defconfig; \
> >         do \
> >                  echo -n ' ' $$board | sed -e 's|arch/$(ARCH)/configs/||g' ; \
> >                  echo -n '        - Build for ' ; \
> >                  echo -e $$board | sed -e 's|.*_||g'; \
> >         done
> > endef
> 
> I do not want kbuild to be cluttered with bk specific stuff.

I can understand that.  How about:
for board in arch/$(ARCH)/configs/*defconfig; \
 do \
   if [ -f $board ]; then
    ...
   fi
 done

> Also the "- Build for xxxxx" is not good enough.

Erm, it's usually something descriptive enough, if one is firmiliar with
the platform / what's intended to build.

> I will try to come up with a patch the uses a file named
> arch/$(ARCH)/configs/index.txt

The 'issue' with configs/index.txt, I'll wager, is that for every new
board, that's one more file to modify (and thus possibly conflict on).

-- 
Tom Rini
http://gate.crashing.org/~trini/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 18:08       ` Tom Rini
@ 2004-02-25 18:30         ` Paul Mundt
  2004-02-25 18:39           ` Tom Rini
  2004-02-25 20:39         ` Sam Ravnborg
  1 sibling, 1 reply; 11+ messages in thread
From: Paul Mundt @ 2004-02-25 18:30 UTC (permalink / raw)
  To: Tom Rini; +Cc: James H. Cloos Jr., linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]

On Wed, Feb 25, 2004 at 11:08:59AM -0700, Tom Rini wrote:
> I can understand that.  How about:
> for board in arch/$(ARCH)/configs/*defconfig; \
>  do \
>    if [ -f $board ]; then
>     ...
>    fi
>  done
> 
Simply just matching on *defconfig should be fine. I already changed this on
matching defconfig-* for sh to get around matching SCCS.

> > Also the "- Build for xxxxx" is not good enough.
> 
> Erm, it's usually something descriptive enough, if one is firmiliar with
> the platform / what's intended to build.
> 
> > I will try to come up with a patch the uses a file named
> > arch/$(ARCH)/configs/index.txt
> 
> The 'issue' with configs/index.txt, I'll wager, is that for every new
> board, that's one more file to modify (and thus possibly conflict on).
> 
Agreed. The whole reason I did the automated "- Build for foo" thing is that
it's completely automated, and people building should already know what their
target is (if not, they can look at arch/$(ARCH)/Kconfig and figure it out).
I suppose it's not particularly descriptive, but it seems more sensible to
have an abbreviated help text then none whatsoever.


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 18:30         ` Paul Mundt
@ 2004-02-25 18:39           ` Tom Rini
  2004-02-25 18:44             ` Paul Mundt
  0 siblings, 1 reply; 11+ messages in thread
From: Tom Rini @ 2004-02-25 18:39 UTC (permalink / raw)
  To: Paul Mundt, James H. Cloos Jr., linux-kernel

On Wed, Feb 25, 2004 at 01:30:38PM -0500, Paul Mundt wrote:
> On Wed, Feb 25, 2004 at 11:08:59AM -0700, Tom Rini wrote:
> > I can understand that.  How about:
> > for board in arch/$(ARCH)/configs/*defconfig; \
> >  do \
> >    if [ -f $board ]; then
> >     ...
> >    fi
> >  done
> > 
> Simply just matching on *defconfig should be fine. I already changed this on
> matching defconfig-* for sh to get around matching SCCS.

Would you mind changing to foo_defconfig from defconfig-foo ?  Then you
get the make foo_defconfig rule for free.

-- 
Tom Rini
http://gate.crashing.org/~trini/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 18:39           ` Tom Rini
@ 2004-02-25 18:44             ` Paul Mundt
  0 siblings, 0 replies; 11+ messages in thread
From: Paul Mundt @ 2004-02-25 18:44 UTC (permalink / raw)
  To: Tom Rini; +Cc: James H. Cloos Jr., linux-kernel

[-- Attachment #1: Type: text/plain, Size: 499 bytes --]

On Wed, Feb 25, 2004 at 11:39:34AM -0700, Tom Rini wrote:
> > Simply just matching on *defconfig should be fine. I already changed this on
> > matching defconfig-* for sh to get around matching SCCS.
> 
> Would you mind changing to foo_defconfig from defconfig-foo ?  Then you
> get the make foo_defconfig rule for free.
> 
Yes, I plan on doing this in the next sh update. I did the defconfig-foo stuff
before foo_defconfig existed, that's the only reason it's different at this
point..


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-24 21:55   ` Tom Rini
@ 2004-02-25 19:00     ` Sam Ravnborg
  2004-02-25 18:08       ` Tom Rini
  0 siblings, 1 reply; 11+ messages in thread
From: Sam Ravnborg @ 2004-02-25 19:00 UTC (permalink / raw)
  To: Tom Rini; +Cc: James H. Cloos Jr., linux-kernel

> 
> Hmm.  Would something (untested) like the following be horribly
> wrong/bad?
> 
> define archhelp
>         @echo '  zImage           - Compressed kernel image (arch/sh/boot/zImage)'
> 	@if [ -d arch/$(ARCH)/configs/SCCS ]; then bk get -q arch/$(ARCH)/configs/;fi
> # Assume board_defconfig
> 	for board in arch/$(ARCH)/configs/*defconfig; \
>         do \
>                  echo -n ' ' $$board | sed -e 's|arch/$(ARCH)/configs/||g' ; \
>                  echo -n '        - Build for ' ; \
>                  echo -e $$board | sed -e 's|.*_||g'; \
>         done
> endef

I do not want kbuild to be cluttered with bk specific stuff.
Also the "- Build for xxxxx" is not good enough.

I will try to come up with a patch the uses a file named
arch/$(ARCH)/configs/index.txt
to actually display the help text. Gim'me a few hours.

	Sam

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 20:39         ` Sam Ravnborg
@ 2004-02-25 19:45           ` Tom Rini
  0 siblings, 0 replies; 11+ messages in thread
From: Tom Rini @ 2004-02-25 19:45 UTC (permalink / raw)
  To: James H. Cloos Jr., linux-kernel

On Wed, Feb 25, 2004 at 09:39:27PM +0100, Sam Ravnborg wrote:

> > 
> > > I will try to come up with a patch the uses a file named
> > > arch/$(ARCH)/configs/index.txt
> > 
> > The 'issue' with configs/index.txt, I'll wager, is that for every new
> > board, that's one more file to modify (and thus possibly conflict on).
> 
> What about the following patch.
> This adds the support to the top-level Makefile, enabling this for all
> _defconfig users.
> I used 'printf' to get proper alignment. Otherwise arm for example
> looked really ugly.

Looks quite good, thanks.

> Is printf generally supported?

It's part of coreutils on debian (and shellutils on others), so I'll
wager a yes.

-- 
Tom Rini
http://gate.crashing.org/~trini/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: make help ARCH=xx fun
  2004-02-25 18:08       ` Tom Rini
  2004-02-25 18:30         ` Paul Mundt
@ 2004-02-25 20:39         ` Sam Ravnborg
  2004-02-25 19:45           ` Tom Rini
  1 sibling, 1 reply; 11+ messages in thread
From: Sam Ravnborg @ 2004-02-25 20:39 UTC (permalink / raw)
  To: Tom Rini; +Cc: James H. Cloos Jr., linux-kernel

> 
> > I will try to come up with a patch the uses a file named
> > arch/$(ARCH)/configs/index.txt
> 
> The 'issue' with configs/index.txt, I'll wager, is that for every new
> board, that's one more file to modify (and thus possibly conflict on).

What about the following patch.
This adds the support to the top-level Makefile, enabling this for all
_defconfig users.
I used 'printf' to get proper alignment. Otherwise arm for example
looked really ugly.
Is printf generally supported?

	Sam



===== Makefile 1.456 vs edited =====
--- 1.456/Makefile	Sun Feb 15 03:42:40 2004
+++ edited/Makefile	Wed Feb 25 21:34:34 2004
@@ -889,6 +889,9 @@
 # Brief documentation of the typical targets used
 # ---------------------------------------------------------------------------
 
+boards := $(wildcard $(srctree)/arch/$(ARCH)/configs/*_defconfig)
+boards := $(notdir $(boards))
+
 help:
 	@echo  'Cleaning targets:'
 	@echo  '  clean		  - remove most generated files but keep the config'
@@ -914,6 +917,11 @@
 	@$(if $(archhelp),$(archhelp),\
 		echo '  No architecture specific help defined for $(ARCH)')
 	@echo  ''
+	@$(if $(boards), \
+		$(foreach b, $(boards), \
+		printf " %24s - Build for %s\\n" $(b) $(b);) \
+		echo '')
+	
 	@echo  '  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build'
 	@echo  '  make O=dir [targets] Locate all output files in "dir", including .config'
 	@echo  '  make C=1   [targets] Check all c source with checker tool'

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2004-02-25 19:45 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-21 14:26 make help ARCH=xx fun James H. Cloos Jr.
2004-02-22  9:50 ` Sam Ravnborg
2004-02-22 14:28   ` James H. Cloos Jr.
2004-02-24 21:55   ` Tom Rini
2004-02-25 19:00     ` Sam Ravnborg
2004-02-25 18:08       ` Tom Rini
2004-02-25 18:30         ` Paul Mundt
2004-02-25 18:39           ` Tom Rini
2004-02-25 18:44             ` Paul Mundt
2004-02-25 20:39         ` Sam Ravnborg
2004-02-25 19:45           ` Tom Rini

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.