Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] PATCH [1/2] make Makefile.autotools.in not to use hardcoded x11r7 name when patching
  2007-09-28 21:23 [Buildroot] PATCH [1/2] make Makefile.autotools.in not to use hardcoded x11r7 name when patching Ivan Kuten
@ 2007-09-28 20:36 ` Bernhard Fischer
  2007-09-28 23:25   ` [Buildroot] PATCH [1/2] try2: " Ivan Kuten
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Fischer @ 2007-09-28 20:36 UTC (permalink / raw)
  To: buildroot

On Sat, Sep 29, 2007 at 12:23:56AM +0300, Ivan Kuten wrote:
>
>Hello,
>
>Here are two patches addressing hardcoded x11r7 in Makefile.autotools.in:
>The first patch removes "if test -d package/x11r7/$($(PKG)_NAME)/$(NAMEVER)" and
>adds optional additional parameter ($(PKG)_NAME_PREFIX) when calling AUTOTARGETS

What about renaming them to DIR_OFFSET or DIR_PREFIX instead of
NAME_PREFIX to make it more obvious that those are ment to be dirs.

>for example:
>$(eval $(call AUTOTARGETS,xutil_util-macros,x11r7))

That sounds very good, yes. See below
>
>---------
>
>Index: package/Makefile.autotools.in
>===================================================================
>--- package/Makefile.autotools.in	(revision 20086)
>+++ package/Makefile.autotools.in	(working copy)
>@@ -58,6 +58,9 @@
> # FOO_SUBDIR [default empty]
> #	relative path in the package source from which to run configure and
> #	make
>+# FOO_NAME_PREFIX [default empty]
>+#	relative path from packages directory to package *.mk file and
>+#	corresponding patches
> #
> ## The following variables contain hook target names
> ## by default they do nothing, they can be overriden in package makefiles
>@@ -151,25 +154,15 @@
> 	$(call MESSAGE,"Patching")
> 	$(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
> 	$(Q)(\
>-	if test -d package/$($(PKG)_NAME) ; then \
>-	  if test "$(wildcard package/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
>-	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
>+	if test -d package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME) ; then \
>+	  if test "$(wildcard package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
>+	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \

This may be obvious from the context, but is @D guaranteed to exist?

cheers,

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

* [Buildroot] PATCH [1/2] make Makefile.autotools.in not to use hardcoded x11r7 name when patching
@ 2007-09-28 21:23 Ivan Kuten
  2007-09-28 20:36 ` Bernhard Fischer
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Kuten @ 2007-09-28 21:23 UTC (permalink / raw)
  To: buildroot


Hello,

Here are two patches addressing hardcoded x11r7 in Makefile.autotools.in:
The first patch removes "if test -d package/x11r7/$($(PKG)_NAME)/$(NAMEVER)" and
adds optional additional parameter ($(PKG)_NAME_PREFIX) when calling AUTOTARGETS
for example:
$(eval $(call AUTOTARGETS,xutil_util-macros,x11r7))

---------

Index: package/Makefile.autotools.in
===================================================================
--- package/Makefile.autotools.in	(revision 20086)
+++ package/Makefile.autotools.in	(working copy)
@@ -58,6 +58,9 @@
 # FOO_SUBDIR [default empty]
 #	relative path in the package source from which to run configure and
 #	make
+# FOO_NAME_PREFIX [default empty]
+#	relative path from packages directory to package *.mk file and
+#	corresponding patches
 #
 ## The following variables contain hook target names
 ## by default they do nothing, they can be overriden in package makefiles
@@ -151,25 +154,15 @@
 	$(call MESSAGE,"Patching")
 	$(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
 	$(Q)(\
-	if test -d package/$($(PKG)_NAME) ; then \
-	  if test "$(wildcard package/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
-	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
+	if test -d package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME) ; then \
+	  if test "$(wildcard package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
+	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
 	  else \
-	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
-	    if test -d package/$($(PKG)_NAME)/$(NAMEVER) ; then \
-	      toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
+	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
+	    if test -d package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) ; then \
+	      toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
 	    fi; \
 	  fi; \
-	else \
-	  echo "This must be wrong. Why do you need to special-case _any_ package here? Skipping until this is resolved properly."; \
-	  if false && test "$(wildcard package/x11r7/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
-	    toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
-	  else \
-	    toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
-	    if test -d package/x11r7/$($(PKG)_NAME)/$(NAMEVER) ; then \
-	      toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
-	    fi; \
-	  fi; \
 	fi; \
 	)
 ifeq ($(strip $(BR2_UPDATE_CONFIG)),y)
@@ -259,10 +252,11 @@
 # AUTOTARGETS -- the target generator macro; define a set of human-readable
 # make targets, stamps, and default per-package variables.
 # Argument 1 is the (lowercase) package name.
+# Argument 2 is the optional package prefix name.
 ################################################################################

 define AUTOTARGETS
-$(call AUTOTARGETS_INNER,$(1),$(call UPPERCASE,$(1)))
+$(call AUTOTARGETS_INNER,$(1),$(call UPPERCASE,$(1)),$(2))
 endef

 # AUTOTARGETS_INNER -- does the job for AUTOTARGETS; argument 1 is the
@@ -290,6 +284,7 @@
 $(2)_UNINSTALL_STAGING_OPT	?= DESTDIR=$$(STAGING_DIR) uninstall
 $(2)_UNINSTALL_TARGET_OPT	?= DESTDIR=$$(TARGET_DIR)  uninstall
 $(2)_SUBDIR			?=
+$(2)_NAME_PREFIX		=$(3)


 # define sub-target stamps

---------------------

Best regards,
Ivan

--------------------------------
Embedded Linux engineer,
Promwad Company: http://www.promwad.com/
Homepage : http://www.ivankuten.com/
--------------------------------

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

* [Buildroot] PATCH [1/2] try2: make Makefile.autotools.in not to use hardcoded x11r7 name when patching
  2007-09-28 23:25   ` [Buildroot] PATCH [1/2] try2: " Ivan Kuten
@ 2007-09-28 22:40     ` Bernhard Fischer
  2007-09-28 23:51       ` Ivan Kuten
  0 siblings, 1 reply; 5+ messages in thread
From: Bernhard Fischer @ 2007-09-28 22:40 UTC (permalink / raw)
  To: buildroot

On Sat, Sep 29, 2007 at 02:25:30AM +0300, Ivan Kuten wrote:
>> This may be obvious from the context, but is @D guaranteed to exist?
>
>Not sure - need take a look.
>
>2nd try, introducing DIR_PREFIX:

Excellent, thanks!

I come to think that a _DIR_SUFFIX for the patch-dir may
be needed also (if we have an occurrance in the tree already, that is.
No need to introduce this prematurely). I'm currently not aware of such
packages, though.

One nice example that, if it is handled properly by the autotools.in is
package/gmp or mpfr for that matter.

This package shows nicely what the autotools.in should provide in the
long run:
- downloading a PATCH_FILE to the dl/
- patching package/$name/$name$version
  or 
  patching package/$name/$version
  or 
  patching package/$name/$($(name)_patch_regex)
  or the like
- in configure, honor PREFERRED_LIB_FLAGS et al
- $(STRIP) the target, perhaps. Distinguish between binaries and libs
- optionally install headers if BR2_HAVE_HEADERS
- package-specific additional {C,LD,CPP,...}FLAGS
- package-specific additional configure-opts
- knowledge if both staging and target or only one of these should be
  populated with libs/binaries

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

* [Buildroot] PATCH [1/2] try2: make Makefile.autotools.in not to use hardcoded x11r7 name when patching
  2007-09-28 20:36 ` Bernhard Fischer
@ 2007-09-28 23:25   ` Ivan Kuten
  2007-09-28 22:40     ` Bernhard Fischer
  0 siblings, 1 reply; 5+ messages in thread
From: Ivan Kuten @ 2007-09-28 23:25 UTC (permalink / raw)
  To: buildroot

> 
> What about renaming them to DIR_OFFSET or DIR_PREFIX instead of
> NAME_PREFIX to make it more obvious that those are ment to be dirs.
> 

See below.

> 
> This may be obvious from the context, but is @D guaranteed to exist?
> 

Not sure - need take a look.

2nd try, introducing DIR_PREFIX:

Index: package/Makefile.autotools.in
===================================================================
--- package/Makefile.autotools.in	(revision 20098)
+++ package/Makefile.autotools.in	(working copy)
@@ -58,6 +58,8 @@
 # FOO_SUBDIR [default empty]
 #	relative path in the package source from which to run configure and
 #	make
+# FOO_DIR_PREFIX [default empty]
+#	relative path to package *.mk file and corresponding patches
 #
 ## The following variables contain hook target names
 ## by default they do nothing, they can be overriden in package makefiles
@@ -151,25 +153,15 @@
 	$(call MESSAGE,"Patching")
 	$(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
 	$(Q)(\
-	if test -d package/$($(PKG)_NAME) ; then \
-	  if test "$(wildcard package/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
-	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
+	if test -d $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) ; then \
+	  if test "$(wildcard $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
+	    toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
 	  else \
-	    toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
-	    if test -d package/$($(PKG)_NAME)/$(NAMEVER) ; then \
-	      toolchain/patch-kernel.sh $(@D) package/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
+	    toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
+	    if test -d package/$($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) ; then \
+	      toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
 	    fi; \
 	  fi; \
-	else \
-	  echo "This must be wrong. Why do you need to special-case _any_ package here? Skipping until this is resolved properly."; \
-	  if false && test "$(wildcard package/x11r7/$($(PKG)_NAME)/$(NAMEVER)*.patch)" ; then \
-	    toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $(NAMEVER)\*.patch || exit 1 ; \
-	  else \
-	    toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME) $($(PKG)_NAME)\*.patch || exit 1 ; \
-	    if test -d package/x11r7/$($(PKG)_NAME)/$(NAMEVER) ; then \
-	      toolchain/patch-kernel.sh $(@D) package/x11r7/$($(PKG)_NAME)/$(NAMEVER) \*.patch || exit 1 ; \
-	    fi; \
-	  fi; \
 	fi; \
 	)
 ifeq ($(strip $(BR2_UPDATE_CONFIG)),y)
@@ -258,15 +250,17 @@
 ################################################################################
 # AUTOTARGETS -- the target generator macro; define a set of human-readable
 # make targets, stamps, and default per-package variables.
-# Argument 1 is the (lowercase) package name.
+# Argument 1 is the package dir prefix.
+# Argument 2 is the (lowercase) package name.
 ################################################################################

 define AUTOTARGETS
-$(call AUTOTARGETS_INNER,$(1),$(call UPPERCASE,$(1)))
+$(call AUTOTARGETS_INNER,$(2),$(call UPPERCASE,$(2)),$(1))
 endef

 # AUTOTARGETS_INNER -- does the job for AUTOTARGETS; argument 1 is the
-# lowercase package name, argument 2 the uppercase package name
+# lowercase package name, argument 2 the uppercase package name,
+# argument 3 the package dir prefix
 define AUTOTARGETS_INNER

 # define package-specific variables to default values
@@ -290,6 +284,7 @@
 $(2)_UNINSTALL_STAGING_OPT	?= DESTDIR=$$(STAGING_DIR) uninstall
 $(2)_UNINSTALL_TARGET_OPT	?= DESTDIR=$$(TARGET_DIR)  uninstall
 $(2)_SUBDIR			?=
+$(2)_DIR_PREFIX			=$(3)


 # define sub-target stamps


--
Best regards,
Ivan
--------------------------------
Embedded Linux engineer,
Promwad Company: http://www.promwad.com/
Homepage : http://www.ivankuten.com/
--------------------------------

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

* [Buildroot] PATCH [1/2] try2: make Makefile.autotools.in not to use hardcoded x11r7 name when patching
  2007-09-28 22:40     ` Bernhard Fischer
@ 2007-09-28 23:51       ` Ivan Kuten
  0 siblings, 0 replies; 5+ messages in thread
From: Ivan Kuten @ 2007-09-28 23:51 UTC (permalink / raw)
  To: buildroot

Bernhard Fischer ?????:
> 
> One nice example that, if it is handled properly by the autotools.in is
> package/gmp or mpfr for that matter.
> 
> This package shows nicely what the autotools.in should provide in the
> long run:
> - downloading a PATCH_FILE to the dl/
> - patching package/$name/$name$version
>   or 
>   patching package/$name/$version
>   or 
>   patching package/$name/$($(name)_patch_regex)
>   or the like
> - in configure, honor PREFERRED_LIB_FLAGS et al
> - $(STRIP) the target, perhaps. Distinguish between binaries and libs
> - optionally install headers if BR2_HAVE_HEADERS
> - package-specific additional {C,LD,CPP,...}FLAGS
> - package-specific additional configure-opts
> - knowledge if both staging and target or only one of these should be
>   populated with libs/binaries
> 

I'll try to follow this but a bit later, now my priority is  directfb/x11r7/gtk+ running on ARM.
I'll post a bunch of patches related to selecting gtk+ depends on directfb or on x11r7.

Best regards,
Ivan
--------------------------------
Embedded Linux engineer,
Promwad Company: http://www.promwad.com/
Homepage : http://www.ivankuten.com/
--------------------------------

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

end of thread, other threads:[~2007-09-28 23:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-28 21:23 [Buildroot] PATCH [1/2] make Makefile.autotools.in not to use hardcoded x11r7 name when patching Ivan Kuten
2007-09-28 20:36 ` Bernhard Fischer
2007-09-28 23:25   ` [Buildroot] PATCH [1/2] try2: " Ivan Kuten
2007-09-28 22:40     ` Bernhard Fischer
2007-09-28 23:51       ` Ivan Kuten

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox