Bug 3115 - How about board specific makefiles?
Summary: How about board specific makefiles?
Status: RESOLVED WONTFIX
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: 2010.11
Hardware: All Linux
: P5 trivial
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-19 06:21 UTC by Kim Jae-hui
Modified: 2011-02-02 19:58 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kim Jae-hui 2011-01-19 06:21:14 UTC
I want to rename my kernel image from `bzImage` to anything else.
But it is so tiresome to do that every time I do `make`.
I think it is possible if `post-world-hook` or `post-all-hook` is provided by board specific makefiles.

My suggestion is like below:
- In this case, I use `board/sample/linux-2.6.37.config` as kernel config.
  (BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE=board/sample/linux-2.6.37.config)

diff --git a/Makefile b/Makefile
index cf2a7dc..e409ca3 100644
--- a/Makefile
+++ b/Makefile
@@ -307,6 +307,9 @@ include package/Makefile.in
 
 all: world
 
+# board specific makefiles
+include board/*/*.mk
+
 # We also need the various per-package makefiles, which also add
 # each selected package to TARGETS if that package was selected
 # in the .config file.

diff --git a/board/sample/sample.mk b/board/sample/sample.mk
new file mode 100644
index 0000000..be1a9a1
--- /dev/null
+++ b/board/sample/sample.mk
@@ -0,0 +1,17 @@
+ifneq ($(findstring sample,$(BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE)),)
+
+SAMPLE_OS_VERSION:=1.0
+SAMPLE_OS_NAME:=sample-os-$(SAMPLE_OS_VERSION).bin
+SAMPLE_OS_PATH:="$(BINARIES_DIR)/$(SAMPLE_OS_NAME)"
+
+all: sample-post-all-hook
+
+sample-post-all-hook:
+       @cp $(BINARIES_DIR)/$(LINUX26_IMAGE_NAME) $(SAMPLE_OS_PATH)
+       @$(call MESSAGE,"Finished to build OS image")
+       @echo "Original Image | $(BINARIES_DIR)/$(LINUX26_IMAGE_NAME)"
+       @echo "Renamed Image  | $(SAMPLE_OS_PATH)"
+       @echo -n "Image size     | "
+       @echo -n `ls -l $(SAMPLE_OS_PATH) | awk '{print $$5}'`
+       @echo " (`ls -lh $(SAMPLE_OS_PATH) | awk '{print $$5}'`)"
+endif
Comment 1 Peter Korsgaard 2011-01-19 10:39:09 UTC
You can do that kind of stuff with the POST_BUILD_SCRIPT option today. E.G. add a script in your board/<board>/ directory to do the copy, and adjust your defconfig to use it. The script get called with TARGET_DIR as argument, so you could get from there to the images directory.

Notice that this script is run before the filesystems are created, so this doesn't work to rename filesystem images.
Comment 2 Thomas Petazzoni 2011-02-02 19:58:51 UTC
Or you can also do :

$ cd buildroot/
$ make && mv output/images/bzImage output/images/mykernelname