* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib @ 2007-07-23 7:54 ulf at uclibc.org 2007-07-23 10:33 ` Bernhard Fischer 0 siblings, 1 reply; 9+ messages in thread From: ulf at uclibc.org @ 2007-07-23 7:54 UTC (permalink / raw) To: buildroot Author: ulf Date: 2007-07-23 00:54:13 -0700 (Mon, 23 Jul 2007) New Revision: 19196 Log: Add alsa-lib package Added: trunk/buildroot/package/alsa-lib/ trunk/buildroot/package/alsa-lib/Config.in trunk/buildroot/package/alsa-lib/alsa-lib.mk Modified: trunk/buildroot/package/Config.in Changeset: Modified: trunk/buildroot/package/Config.in =================================================================== --- trunk/buildroot/package/Config.in 2007-07-22 20:09:54 UTC (rev 19195) +++ trunk/buildroot/package/Config.in 2007-07-23 07:54:13 UTC (rev 19196) @@ -246,6 +246,7 @@ Support for audio libraries and applications if BR2_AUDIO_SUPPORT +source "package/alsa-lib/Config.in" source "package/asterisk/Config.in" source "package/aumix/Config.in" source "package/libid3tag/Config.in" Added: trunk/buildroot/package/alsa-lib/Config.in =================================================================== --- trunk/buildroot/package/alsa-lib/Config.in (rev 0) +++ trunk/buildroot/package/alsa-lib/Config.in 2007-07-23 07:54:13 UTC (rev 19196) @@ -0,0 +1,8 @@ +config BR2_PACKAGE_ALSA_LIB + bool "alsa-lib" + default n + help + The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI + functionality to the Linux operating system. + + http://www.alsa-project.org/ Added: trunk/buildroot/package/alsa-lib/alsa-lib.mk =================================================================== --- trunk/buildroot/package/alsa-lib/alsa-lib.mk (rev 0) +++ trunk/buildroot/package/alsa-lib/alsa-lib.mk 2007-07-23 07:54:13 UTC (rev 19196) @@ -0,0 +1,74 @@ +############################################################# +# +# alsa-lib +# +############################################################# +ALSA_LIB_VER:=1.0.14a +ALSA_LIB_SOURCE:=alsa-lib-$(ALSA_LIB_VER).tar.bz2 +ALSA_LIB_SITE:=ftp://ftp.alsa-project.org/pub/lib +ALSA_LIB_DIR:=$(BUILD_DIR)/alsa-lib-$(ALSA_LIB_VER) +ALSA_LIB_CAT:=$(BZCAT) +ALSA_LIB_BINARY:=libasound.so.2.0.0 +ALSA_LIB_TARGET_BINARY:=usr/lib/$(ALSA_LIB_BINARY) + +$(DL_DIR)/$(ALSA_LIB_SOURCE): + $(WGET) -P $(DL_DIR) $(ALSA_LIB_SITE)/$(ALSA_LIB_SOURCE) + +$(ALSA_LIB_DIR)/.unpacked: $(DL_DIR)/$(ALSA_LIB_SOURCE) + $(ALSA_LIB_CAT) $(DL_DIR)/$(ALSA_LIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + toolchain/patch-kernel.sh $(ALSA_LIB_DIR) package/alsa-lib/ alsa-lib-$(ALSA_LIB_VER)\*.patch* + $(CONFIG_UPDATE) $(ALSA_LIB_DIR) + @touch $@ + +$(ALSA_LIB_DIR)/.configured: $(ALSA_LIB_DIR)/.unpacked + (cd $(ALSA_LIB_DIR); rm -rf config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-shared \ + --enable-static \ + --disable-docs \ + $(DISABLE_NLS) \ + ); + @touch $@ + +$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured + $(MAKE) -C $(ALSA_LIB_DIR) + @touch -c $@ + +$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY) + $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install + @touch -c $@ + +$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY) + @mkdir -p $(TARGET_DIR)/usr/share/alsa + @mkdir -p $(TARGET_DIR)/usr/lib/alsa-lib + cp -dpf $(STAGING_DIR)/lib/libasound.so* $(TARGET_DIR)/usr/lib/ + cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/ + cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/ + -$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libasound.so* + -$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/alsa-lib/*.so + @touch -c $@ + +alsa-lib: linux26 uclibc $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY) + +alsa-lib-clean: + rm -f $(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY) + -$(MAKE) -C $(ALSA_LIB_DIR) clean + +alsa-lib-dirclean: + rm -rf $(ALSA_LIB_DIR) +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_PACKAGE_ALSA_LIB)),y) +TARGETS+=alsa-lib +endif ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib 2007-07-23 7:54 [Buildroot] svn commit: trunk/buildroot/package: alsa-lib ulf at uclibc.org @ 2007-07-23 10:33 ` Bernhard Fischer 2007-07-23 13:18 ` Ulf Samuelsson 0 siblings, 1 reply; 9+ messages in thread From: Bernhard Fischer @ 2007-07-23 10:33 UTC (permalink / raw) To: buildroot On Mon, Jul 23, 2007 at 12:54:15AM -0700, ulf at uclibc.org wrote: >Author: ulf >Date: 2007-07-23 00:54:13 -0700 (Mon, 23 Jul 2007) >New Revision: 19196 > >Log: >Add alsa-lib package > >Added: > trunk/buildroot/package/alsa-lib/ > trunk/buildroot/package/alsa-lib/Config.in > trunk/buildroot/package/alsa-lib/alsa-lib.mk > >Modified: > trunk/buildroot/package/Config.in > > >Changeset: >Modified: trunk/buildroot/package/Config.in >=================================================================== >--- trunk/buildroot/package/Config.in 2007-07-22 20:09:54 UTC (rev 19195) >+++ trunk/buildroot/package/Config.in 2007-07-23 07:54:13 UTC (rev 19196) >@@ -246,6 +246,7 @@ > Support for audio libraries and applications > > if BR2_AUDIO_SUPPORT >+source "package/alsa-lib/Config.in" > source "package/asterisk/Config.in" > source "package/aumix/Config.in" > source "package/libid3tag/Config.in" > >Added: trunk/buildroot/package/alsa-lib/Config.in >=================================================================== >--- trunk/buildroot/package/alsa-lib/Config.in (rev 0) >+++ trunk/buildroot/package/alsa-lib/Config.in 2007-07-23 07:54:13 UTC (rev 19196) >@@ -0,0 +1,8 @@ >+config BR2_PACKAGE_ALSA_LIB >+ bool "alsa-lib" >+ default n >+ help >+ The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI >+ functionality to the Linux operating system. >+ >+ http://www.alsa-project.org/ > >Added: trunk/buildroot/package/alsa-lib/alsa-lib.mk >=================================================================== >--- trunk/buildroot/package/alsa-lib/alsa-lib.mk (rev 0) >+++ trunk/buildroot/package/alsa-lib/alsa-lib.mk 2007-07-23 07:54:13 UTC (rev 19196) >@@ -0,0 +1,74 @@ >+############################################################# >+# >+# alsa-lib >+# >+############################################################# >+ALSA_LIB_VER:=1.0.14a >+ALSA_LIB_SOURCE:=alsa-lib-$(ALSA_LIB_VER).tar.bz2 >+ALSA_LIB_SITE:=ftp://ftp.alsa-project.org/pub/lib >+ALSA_LIB_DIR:=$(BUILD_DIR)/alsa-lib-$(ALSA_LIB_VER) >+ALSA_LIB_CAT:=$(BZCAT) >+ALSA_LIB_BINARY:=libasound.so.2.0.0 >+ALSA_LIB_TARGET_BINARY:=usr/lib/$(ALSA_LIB_BINARY) >+ >+$(DL_DIR)/$(ALSA_LIB_SOURCE): >+ $(WGET) -P $(DL_DIR) $(ALSA_LIB_SITE)/$(ALSA_LIB_SOURCE) >+ >+$(ALSA_LIB_DIR)/.unpacked: $(DL_DIR)/$(ALSA_LIB_SOURCE) >+ $(ALSA_LIB_CAT) $(DL_DIR)/$(ALSA_LIB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - >+ toolchain/patch-kernel.sh $(ALSA_LIB_DIR) package/alsa-lib/ alsa-lib-$(ALSA_LIB_VER)\*.patch* >+ $(CONFIG_UPDATE) $(ALSA_LIB_DIR) >+ @touch $@ >+ >+$(ALSA_LIB_DIR)/.configured: $(ALSA_LIB_DIR)/.unpacked >+ (cd $(ALSA_LIB_DIR); rm -rf config.cache; \ >+ $(TARGET_CONFIGURE_OPTS) \ >+ CFLAGS="$(TARGET_CFLAGS)" \ >+ LDFLAGS="$(TARGET_LDFLAGS)" \ NO! You forgot to pass TARGET_CONFIGURE_ARGS >+ ./configure \ >+ --target=$(GNU_TARGET_NAME) \ >+ --host=$(GNU_TARGET_NAME) \ >+ --build=$(GNU_HOST_NAME) \ >+ --prefix=/usr \ >+ --sysconfdir=/etc \ >+ --enable-shared \ >+ --enable-static \ >+ --disable-docs \ >+ $(DISABLE_NLS) \ >+ ); >+ @touch $@ I object to hide such trivia away. >+ >+$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured >+ $(MAKE) -C $(ALSA_LIB_DIR) >+ @touch -c $@ >+ >+$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY) >+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install >+ @touch -c $@ >+ >+$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY) >+ @mkdir -p $(TARGET_DIR)/usr/share/alsa >+ @mkdir -p $(TARGET_DIR)/usr/lib/alsa-lib >+ cp -dpf $(STAGING_DIR)/lib/libasound.so* $(TARGET_DIR)/usr/lib/ >+ cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/ >+ cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/ install(1) would be cleaner, especially if you consider that it's a new package. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib 2007-07-23 10:33 ` Bernhard Fischer @ 2007-07-23 13:18 ` Ulf Samuelsson 2007-07-23 13:34 ` Bernhard Fischer 0 siblings, 1 reply; 9+ messages in thread From: Ulf Samuelsson @ 2007-07-23 13:18 UTC (permalink / raw) To: buildroot >+$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured > >+ $(MAKE) -C $(ALSA_LIB_DIR) > >+ @touch -c $@ > >+ > >+$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY) > >+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install > >+ @touch -c $@ > >+ > >+$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY) > >+ @mkdir -p $(TARGET_DIR)/usr/share/alsa > >+ @mkdir -p $(TARGET_DIR)/usr/lib/alsa-lib > >+ cp -dpf $(STAGING_DIR)/lib/libasound.so* $(TARGET_DIR)/usr/lib/ > >+ cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/ > >+ cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/ > > install(1) would be cleaner, especially if you consider that it's a new > package. make install is done on the staging dir. I think the reason for not doing make install on the target dir is that it will add a lot of other stuff which is not wanted on an embedded system. It is a matter of taste if you "install and remove", or just copy the *needed* stuff. Have to discuss with Someone Else(tm) if you insist. > _______________________________________________ > buildroot mailing list > buildroot at uclibc.org > http://busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib 2007-07-23 13:18 ` Ulf Samuelsson @ 2007-07-23 13:34 ` Bernhard Fischer 2007-07-23 14:42 ` Ulf Samuelsson ` (2 more replies) 0 siblings, 3 replies; 9+ messages in thread From: Bernhard Fischer @ 2007-07-23 13:34 UTC (permalink / raw) To: buildroot On Mon, Jul 23, 2007 at 03:18:05PM +0200, Ulf Samuelsson wrote: > >>+$(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY): $(ALSA_LIB_DIR)/.configured >> >+ $(MAKE) -C $(ALSA_LIB_DIR) >> >+ @touch -c $@ >> >+ >> >+$(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY): $(ALSA_LIB_DIR)/src/.libs/$(ALSA_LIB_BINARY) >> >+ $(MAKE) DESTDIR=$(STAGING_DIR) -C $(ALSA_LIB_DIR) install >> >+ @touch -c $@ >> >+ >> >+$(TARGET_DIR)/$(ALSA_LIB_TARGET_BINARY): $(STAGING_DIR)/$(ALSA_LIB_TARGET_BINARY) >> >+ @mkdir -p $(TARGET_DIR)/usr/share/alsa >> >+ @mkdir -p $(TARGET_DIR)/usr/lib/alsa-lib >> >+ cp -dpf $(STAGING_DIR)/lib/libasound.so* $(TARGET_DIR)/usr/lib/ >> >+ cp -rdpf $(STAGING_DIR)/usr/share/alsa/* $(TARGET_DIR)/usr/share/alsa/ >> >+ cp -rdpf $(STAGING_DIR)/usr/lib/alsa-lib/* $(TARGET_DIR)/usr/lib/alsa-lib/ >> >> install(1) would be cleaner, especially if you consider that it's a new >> package. > >make install is done on the staging dir. make install != install(1) man install $(INSTALL) -D /thisfile /thatfile /there/newdir or something like that. >I think the reason for not doing make install on the target dir is >that it will add a lot of other stuff which is not wanted on an embedded >system. This is unrelated but true, yes :) >It is a matter of taste if you "install and remove", or just copy >the *needed* stuff. I prefer to just copy the needed stuff. >Have to discuss with Someone Else(tm) if you insist. Just using install(1) for new packages -- and eventually gradually fixing old ones -- is sufficient. We can easily either use busybox's install or have our own in buildroot to circumvent eventual buggy incarnations on the host. This would also help the MacOS10 folks, i'd say. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib 2007-07-23 13:34 ` Bernhard Fischer @ 2007-07-23 14:42 ` Ulf Samuelsson 2007-07-26 7:01 ` Hans-Christian Egtvedt [not found] ` <1185429498.31437.11.camel@localhost.localdomain> 2 siblings, 0 replies; 9+ messages in thread From: Ulf Samuelsson @ 2007-07-23 14:42 UTC (permalink / raw) To: buildroot > > > >make install is done on the staging dir. > > make install != install(1) > man install > $(INSTALL) -D /thisfile /thatfile /there/newdir > or something like that. > > >I think the reason for not doing make install on the target dir is > >that it will add a lot of other stuff which is not wanted on an embedded > >system. > > This is unrelated but true, yes :) > > >It is a matter of taste if you "install and remove", or just copy > >the *needed* stuff. > > I prefer to just copy the needed stuff. > > >Have to discuss with Someone Else(tm) if you insist. > > Just using install(1) for new packages -- and eventually gradually > fixing old ones -- is sufficient. We can easily either use busybox's > install or have our own in buildroot to circumvent eventual buggy > incarnations on the host. This would also help the MacOS10 folks, i'd > say. OK, I'll look into it, but I guess the x86 test will take priority for the moment... Best Regards Ulf Samuelsson ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib 2007-07-23 13:34 ` Bernhard Fischer 2007-07-23 14:42 ` Ulf Samuelsson @ 2007-07-26 7:01 ` Hans-Christian Egtvedt [not found] ` <1185429498.31437.11.camel@localhost.localdomain> 2 siblings, 0 replies; 9+ messages in thread From: Hans-Christian Egtvedt @ 2007-07-26 7:01 UTC (permalink / raw) To: buildroot On Mon, 2007-07-23 at 15:34 +0200, Bernhard Fischer wrote: > On Mon, Jul 23, 2007 at 03:18:05PM +0200, Ulf Samuelsson wrote: <cut alsa-lib patch and use of install instead of cp> > Just using install(1) for new packages -- and eventually gradually > fixing old ones -- is sufficient. We can easily either use busybox's > install or have our own in buildroot to circumvent eventual buggy > incarnations on the host. This would also help the MacOS10 folks, i'd > say. FYI IIRC the install shipped with buildroot is buggy (they might have fixed it). It had a bug when it would not unlink the old file before writing the new. Pretty funny trying to upgrade libc then; Busybox would truncate the file to 0 bytes and then try to copy in the new one, never being able to complete that job because of missing libc. -- With kind regards, Hans-Christian Egtvedt, siv.ing. (M.Sc.) Applications Engineer - AVR32 System Solutions - Atmel Norway -- Mvh Hans-Christian Egtvedt ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <1185429498.31437.11.camel@localhost.localdomain>]
* [Buildroot] svn commit: trunk/buildroot/package: alsa-lib [not found] ` <1185429498.31437.11.camel@localhost.localdomain> @ 2007-07-27 15:59 ` Bernhard Fischer 2007-08-20 8:34 ` [Buildroot] [RFC] Building linux kernel in $(PROJECT_BUILD_DIR) Ulf Samuelsson 0 siblings, 1 reply; 9+ messages in thread From: Bernhard Fischer @ 2007-07-27 15:59 UTC (permalink / raw) To: buildroot On Thu, Jul 26, 2007 at 07:58:18AM +0200, Hans-Christian Egtvedt wrote: > >On Mon, 2007-07-23 at 15:34 +0200, Bernhard Fischer wrote: >> On Mon, Jul 23, 2007 at 03:18:05PM +0200, Ulf Samuelsson wrote: > ><cut alsa-lib patch and use of install instead of cp> > >> Just using install(1) for new packages -- and eventually gradually >> fixing old ones -- is sufficient. We can easily either use busybox's >> install or have our own in buildroot to circumvent eventual buggy >> incarnations on the host. This would also help the MacOS10 folks, i'd >> say. > >FYI > >IIRC the install shipped with buildroot is buggy (they might have fixed >it). It had a bug when it would not unlink the old file before writing >the new. $ echo BAR > foo $ echo FOO > new $ ./busybox install new foo [] open("new", O_RDONLY) = 3 open("foo", O_WRONLY|O_CREAT|O_EXCL, 0100644) = -1 EEXIST (File exists) unlink("foo") = 0 open("foo", O_WRONLY|O_CREAT|O_EXCL, 0100644) = 4 read(3, "FOO\n", 8192) = 4 write(4, "FOO\n", 4) = 4 read(3, "", 8192) = 0 close(4) = 0 close(3) = 0 So it looks like "they" fixed it. ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [RFC] Building linux kernel in $(PROJECT_BUILD_DIR) 2007-07-27 15:59 ` Bernhard Fischer @ 2007-08-20 8:34 ` Ulf Samuelsson 2007-08-20 15:56 ` Bernhard Fischer 0 siblings, 1 reply; 9+ messages in thread From: Ulf Samuelsson @ 2007-08-20 8:34 UTC (permalink / raw) To: buildroot Proposed fix to allow each project to build its own linux kernel in $(PROJECT_BUILD_DIR) == project_build_dir/<project> Basic approach is to unpack the linux header source in "$(TOOL_BUILD_DIR)" instead of in "$(BUILD_DIR)" Patches are applied (some depending on BR2_<xxx>) as in current trunk, Each board can add additional patches by defining KERNEL_HEADERS_PATCH_DIR to point at the directory with additional patches (That patch just applied to get rid of AVR32 patches in toolchain/kernel-headers). Headers are still installed in "$(TOOL_BUILD_DIR)/linux" The kernel-headers source tree is unpacked once per toolchain. The target/linux build (modules and kernel) will unpack a second linux source tree in "$(PROJECT_BUILD_DIR)". This source tree is generated once per *project*. Since this is a fresh unpack, the same patches as were applied to the kernel-headers are applied to "$(PROJECT_BUILD_DIR)/linux-*". A common linux source tree for all projects is not possible, since different boards can require different patches to be applied. There is a significant risk that the linux build breaks if patches for one project are applied on top of patches for another project in the same source tree. With a single source, you therefore will have to remove the linux source tree each time you work on a new project. With a separate source, you can move between projects without removing the linux source directory. The patch is also include it as an attachement, due to linewrap. Tested this on x86/Atmel targets. Comments? Index: toolchain/kernel-headers/kernel-headers-new.makefile =================================================================== --- toolchain/kernel-headers/kernel-headers-new.makefile (revision 19588) +++ toolchain/kernel-headers/kernel-headers-new.makefile (arbetskopia) @@ -13,7 +13,7 @@ LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 LINUX_HEADERS_CAT:=$(BZCAT) -LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) +LINUX_HEADERS_UNPACK_DIR:= $(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux LINUX_HEADERS_IS_KERNEL=y endif @@ -28,7 +28,7 @@ LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 LINUX_HEADERS_CAT:=$(BZCAT) -LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) +LINUX_HEADERS_UNPACK_DIR:= $(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux LINUX_HEADERS_IS_KERNEL=y endif @@ -43,7 +43,7 @@ LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 LINUX_HEADERS_CAT:=$(BZCAT) -LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) +LINUX_HEADERS_UNPACK_DIR:= $(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux LINUX_HEADERS_IS_KERNEL=y endif @@ -56,8 +56,8 @@ $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: $(DL_DIR)/$(LINUX_HEADERS_SOURCE) @echo "*** Using kernel-headers generated from kernel source" rm -rf $(LINUX_HEADERS_DIR) - [ -d $(BUILD_DIR) ] || $(INSTALL) -d $(BUILD_DIR) - $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + [ -d $(TOOL_BUILD_DIR) ] || $(INSTALL) -d $(TOOL_BUILD_DIR) + $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) - touch $@ $(LINUX_HEADERS_UNPACK_DIR)/.patched: $(LINUX_HEADERS_UNPACK_DIR)/.unpacked Index: toolchain/kernel-headers/kernel-headers.mk =================================================================== --- toolchain/kernel-headers/kernel-headers.mk (revision 19588) +++ toolchain/kernel-headers/kernel-headers.mk (arbetskopia) @@ -37,5 +37,6 @@ kernel-headers-dirclean: rm -rf $(LINUX_HEADERS_DIR) + rm -rf $(LINUX_HEADERS_UNPACK_DIR) .PHONY: kernel-headers Index: target/linux/Makefile.in =================================================================== --- target/linux/Makefile.in (revision 19588) +++ target/linux/Makefile.in (arbetskopia) @@ -68,7 +68,7 @@ endif # Version of Linux AFTER patches -LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION) +LINUX26_DIR=$(PROJECT_BUILD_DIR)/linux-$(LINUX26_VERSION) # for packages that need it LINUX_VERSION:=$(LINUX_VERSION) @@ -76,7 +76,9 @@ LINUX_KERNEL=$(LINUX26_KERNEL) # kernel patches +ifeq ($(strip $(LINUX26_PATCH_DIR)),) LINUX26_PATCH_DIR=$(BR2_BOARD_PATH)/kernel-patches/ +endif __LINUX26_NO_PIC=-fPIC -fpic -DPIC LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS=$(HOSTCFLAGS) \ ARCH=$(KERNEL_ARCH) \ @@ -96,20 +98,38 @@ ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION))) $(DL_DIR)/$(LINUX26_SOURCE): $(WGET) -P $(DL_DIR) $(LINUX26_SITE)/$(LINUX26_SOURCE) +endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) $(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) rm -rf $(LINUX26_DIR) - $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) # Rename the dir from the downloaded version to the AFTER patch version - mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) + mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) endif touch $@ $(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked - toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \*.patch + toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \ + linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} +ifeq ($(BR2_KERNEL_HEADERS_IPMI),y) + toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/ipmi \ + linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} +endif +ifeq ($(BR2_KERNEL_HEADERS_LZMA),y) + toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/lzma \ + linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} +endif +ifeq ($(BR2_KERNEL_HEADERS_PATCH_DIR),y) + toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \ + linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} +endif +ifeq ($(BR2_PACKAGE_OPENSWAN),y) + toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) package/openswan \ + linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} +endif + toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) linux-$(LINUX26_VERSION)\*.patch touch $@ -endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) $(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG) cp -dpf $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config Best Regards Ulf Samuelsson -------------- next part -------------- A non-text attachment was scrubbed... Name: linux-bsp.patch Type: text/x-patch Size: 5155 bytes Desc: not available Url : http://busybox.net/lists/buildroot/attachments/20070820/f89b5bb9/attachment-0001.bin ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [RFC] Building linux kernel in $(PROJECT_BUILD_DIR) 2007-08-20 8:34 ` [Buildroot] [RFC] Building linux kernel in $(PROJECT_BUILD_DIR) Ulf Samuelsson @ 2007-08-20 15:56 ` Bernhard Fischer 0 siblings, 0 replies; 9+ messages in thread From: Bernhard Fischer @ 2007-08-20 15:56 UTC (permalink / raw) To: buildroot On Mon, Aug 20, 2007 at 10:34:50AM +0200, Ulf Samuelsson wrote: >Proposed fix to allow each project to build its own linux kernel >in $(PROJECT_BUILD_DIR) == project_build_dir/<project> > >Basic approach is to unpack the linux header source in >"$(TOOL_BUILD_DIR)" instead of in "$(BUILD_DIR)" >Patches are applied (some depending on BR2_<xxx>) as in current trunk, > >Each board can add additional patches by defining >KERNEL_HEADERS_PATCH_DIR to point at the directory with additional >patches (That patch just applied to get rid of AVR32 patches in >toolchain/kernel-headers). > >Headers are still installed in "$(TOOL_BUILD_DIR)/linux" >The kernel-headers source tree is unpacked once per toolchain. > >The target/linux build (modules and kernel) will unpack a >second linux source tree in "$(PROJECT_BUILD_DIR)". >This source tree is generated once per *project*. > >Since this is a fresh unpack, the same patches as were applied >to the kernel-headers are applied to "$(PROJECT_BUILD_DIR)/linux-*". > >A common linux source tree for all projects is not possible, since >different boards can require different patches to be applied. >There is a significant risk that the linux build breaks if patches for >one project are applied on top of patches for another project >in the same source tree. > >With a single source, you therefore will have to remove the linux source >tree each time you work on a new project. >With a separate source, you can move between projects without removing >the linux source directory. > > >The patch is also include it as an attachement, due to linewrap. > >Tested this on x86/Atmel targets. > >Comments? > > >Index: toolchain/kernel-headers/kernel-headers-new.makefile >=================================================================== >--- toolchain/kernel-headers/kernel-headers-new.makefile (revision >19588) >+++ toolchain/kernel-headers/kernel-headers-new.makefile (arbetskopia) >@@ -13,7 +13,7 @@ > LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ > LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 > LINUX_HEADERS_CAT:=$(BZCAT) >-LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) >+LINUX_HEADERS_UNPACK_DIR:= >$(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) > LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux > LINUX_HEADERS_IS_KERNEL=y > endif >@@ -28,7 +28,7 @@ > LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ > LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 > LINUX_HEADERS_CAT:=$(BZCAT) >-LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) >+LINUX_HEADERS_UNPACK_DIR:= >$(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) > LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux > LINUX_HEADERS_IS_KERNEL=y > endif >@@ -43,7 +43,7 @@ > LINUX_HEADERS_SITE:=http://www.kernel.org/pub/linux/kernel/v2.6/ > LINUX_HEADERS_SOURCE:=linux-$(LINUX_HEADERS_VERSION).tar.bz2 > LINUX_HEADERS_CAT:=$(BZCAT) >-LINUX_HEADERS_UNPACK_DIR:=$(BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) >+LINUX_HEADERS_UNPACK_DIR:= >$(TOOL_BUILD_DIR)/linux-$(LINUX_HEADERS_VERSION) > LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux > LINUX_HEADERS_IS_KERNEL=y > endif >@@ -56,8 +56,8 @@ > $(LINUX_HEADERS_UNPACK_DIR)/.unpacked: >$(DL_DIR)/$(LINUX_HEADERS_SOURCE) > @echo "*** Using kernel-headers generated from kernel source" > rm -rf $(LINUX_HEADERS_DIR) >- [ -d $(BUILD_DIR) ] || $(INSTALL) -d $(BUILD_DIR) >- $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C >$(BUILD_DIR) $(TAR_OPTIONS) - >+ [ -d $(TOOL_BUILD_DIR) ] || $(INSTALL) -d $(TOOL_BUILD_DIR) I think that the TOOL_BUILD_DIR will already exist now. To verify, set BR2_JLEVEL=1 and execute a toplevel make -j 64 If it is not yet created at this stage, just adding a dependency to that dir should be sufficient (we already have a rule for it, IIRC). >+ $(LINUX_HEADERS_CAT) $(DL_DIR)/$(LINUX_HEADERS_SOURCE) | tar -C >$(TOOL_BUILD_DIR) $(TAR_OPTIONS) - > touch $@ > > $(LINUX_HEADERS_UNPACK_DIR)/.patched: >$(LINUX_HEADERS_UNPACK_DIR)/.unpacked >Index: toolchain/kernel-headers/kernel-headers.mk >=================================================================== >--- toolchain/kernel-headers/kernel-headers.mk (revision 19588) >+++ toolchain/kernel-headers/kernel-headers.mk (arbetskopia) >@@ -37,5 +37,6 @@ > > kernel-headers-dirclean: > rm -rf $(LINUX_HEADERS_DIR) >+ rm -rf $(LINUX_HEADERS_UNPACK_DIR) > > .PHONY: kernel-headers >Index: target/linux/Makefile.in >=================================================================== >--- target/linux/Makefile.in (revision 19588) >+++ target/linux/Makefile.in (arbetskopia) >@@ -68,7 +68,7 @@ > endif > > # Version of Linux AFTER patches >-LINUX26_DIR=$(BUILD_DIR)/linux-$(LINUX26_VERSION) >+LINUX26_DIR=$(PROJECT_BUILD_DIR)/linux-$(LINUX26_VERSION) > > # for packages that need it > LINUX_VERSION:=$(LINUX_VERSION) >@@ -76,7 +76,9 @@ > LINUX_KERNEL=$(LINUX26_KERNEL) > > # kernel patches >+ifeq ($(strip $(LINUX26_PATCH_DIR)),) > LINUX26_PATCH_DIR=$(BR2_BOARD_PATH)/kernel-patches/ >+endif > __LINUX26_NO_PIC=-fPIC -fpic -DPIC > LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS=$(HOSTCFLAGS) \ > ARCH=$(KERNEL_ARCH) \ >@@ -96,20 +98,38 @@ > ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION))) > $(DL_DIR)/$(LINUX26_SOURCE): > $(WGET) -P $(DL_DIR) $(LINUX26_SITE)/$(LINUX26_SOURCE) >+endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) > > $(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE) > rm -rf $(LINUX26_DIR) >- $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) >$(TAR_OPTIONS) - >+ $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C >$(PROJECT_BUILD_DIR) $(TAR_OPTIONS) - > ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION)) > # Rename the dir from the downloaded version to the AFTER patch >version >- mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR) >+ mv -f $(PROJECT_BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) >$(LINUX26_DIR) > endif > touch $@ > > $(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked >- toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \*.patch >+ toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \ >+ linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} >+ifeq ($(BR2_KERNEL_HEADERS_IPMI),y) >+ toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/ipmi >\ >+ linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} >+endif >+ifeq ($(BR2_KERNEL_HEADERS_LZMA),y) >+ toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers/lzma >\ >+ linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} >+endif >+ifeq ($(BR2_KERNEL_HEADERS_PATCH_DIR),y) >+ toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \ >+ linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} >+endif >+ifeq ($(BR2_PACKAGE_OPENSWAN),y) >+ toolchain/patch-kernel.sh $(LINUX_HEADERS_UNPACK_DIR) package/openswan >\ >+ linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2} >+endif >+ toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) Hardcoding these is very, very ugly. >linux-$(LINUX26_VERSION)\*.patch > touch $@ >-endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION)) > > $(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.patched $(LINUX26_KCONFIG) > cp -dpf $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config > Did you test this with the old, deprecated headers, with new headers == src and new-headers != src ? If so, then please apply with abovementioned fix for the mkdir. thanks, ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2007-08-20 15:56 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-23 7:54 [Buildroot] svn commit: trunk/buildroot/package: alsa-lib ulf at uclibc.org
2007-07-23 10:33 ` Bernhard Fischer
2007-07-23 13:18 ` Ulf Samuelsson
2007-07-23 13:34 ` Bernhard Fischer
2007-07-23 14:42 ` Ulf Samuelsson
2007-07-26 7:01 ` Hans-Christian Egtvedt
[not found] ` <1185429498.31437.11.camel@localhost.localdomain>
2007-07-27 15:59 ` Bernhard Fischer
2007-08-20 8:34 ` [Buildroot] [RFC] Building linux kernel in $(PROJECT_BUILD_DIR) Ulf Samuelsson
2007-08-20 15:56 ` Bernhard Fischer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox