Commit 47f578e3 authored by Yann E. MORIN's avatar Yann E. MORIN Committed by Peter Korsgaard
Browse files

package/dtc: new package



dtc is the Device Tree Compiler, and manipulates device trees.

Signed-off-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 4ae47d82
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -459,6 +459,7 @@ endmenu

menu "Hardware handling"
source "package/ccid/Config.in"
source "package/dtc/Config.in"
source "package/imx-lib/Config.in"
source "package/lcdapi/Config.in"
source "package/libaio/Config.in"

package/dtc/Config.in

0 → 100644
+9 −0
Original line number Diff line number Diff line
config BR2_PACKAGE_DTC
	bool "dtc"
	help
	  The Device Tree Compiler, dtc, takes as input a device-tree in
	  a given format and outputs a device-tree in another format.

	  Note that only the library is installed for now.

	  http://git.jdl.com/gitweb/?p=dtc.git  (no home page)
+28 −0
Original line number Diff line number Diff line
Makefile: append the CFLAGS to existing ones

Allow the user to pass custom CFLAGS (eg. optimisation flags).

Do not use EXTRA_CFLAGS, append to existing CFLAGS with +=  (Arnout)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>

---
Patch not sent upstream.

Although not specific to buildroot, I am not sure this is the best
way to handle user-supplied CFLAGS.

diff -durN dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile
--- dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef.orig/Makefile	2012-10-22 22:02:47.541240846 +0200
+++ dtc-e4b497f367a3b2ae99cc52089a14a221b13a76ef/Makefile	2012-10-22 22:03:21.151047833 +0200
@@ -18,7 +18,8 @@
 CPPFLAGS = -I libfdt -I .
 WARNINGS = -Werror -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
 	-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls
-CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
+CFLAGS ?= -g -Os
+CFLAGS += -fPIC $(WARNINGS)
 
 BISON = bison
 LEX = flex
+28 −0
Original line number Diff line number Diff line
Makefile: add a rule to only install libfdt

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Patch not sent upstream.

It's really specific to buildroot, and is probably not
good (aka generic) enough to be pushed upstream.

diff --git a/Makefile b/Makefile
index 1169e6c..39e7190 100644
--- a/Makefile
+++ b/Makefile
@@ -160,10 +160,12 @@ endif
 # intermediate target and building them again "for real"
 .SECONDARY: $(DTC_GEN_SRCS) $(CONVERT_GEN_SRCS)
 
-install: all $(SCRIPTS)
+install: all $(SCRIPTS) libfdt_install
 	@$(VECHO) INSTALL
 	$(INSTALL) -d $(DESTDIR)$(BINDIR)
 	$(INSTALL) $(BIN) $(SCRIPTS) $(DESTDIR)$(BINDIR)
+
+libfdt_install: libfdt
 	$(INSTALL) -d $(DESTDIR)$(LIBDIR)
 	$(INSTALL) $(LIBFDT_lib) $(DESTDIR)$(LIBDIR)
 	ln -sf $(notdir $(LIBFDT_lib)) $(DESTDIR)$(LIBDIR)/$(LIBFDT_soname)

package/dtc/dtc.mk

0 → 100644
+33 −0
Original line number Diff line number Diff line
#############################################################
#
# dtc
#
#############################################################

DTC_VERSION         = e4b497f367a3b2ae99cc52089a14a221b13a76ef
DTC_SITE            = git://git.jdl.com/software/dtc.git
DTC_LICENSE         = GPLv2+/BSD-2c
DTC_LICENSE_FILES   = README.license GPL
# Note: the dual-license only applies to the library.
#       The DT compiler (dtc) is GPLv2+, but we do not install it.
DTC_INSTALL_STAGING = YES

define DTC_BUILD_CMDS
	$(TARGET_CONFIGURE_OPTS)    \
	$(MAKE) -C $(@D) PREFIX=/usr libfdt
endef

# libfdt_install is our own install rule added by our patch
define DTC_INSTALL_STAGING_CMDS
	$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) PREFIX=/usr libfdt_install
endef

define DTC_INSTALL_TARGET_CMDS
	$(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) PREFIX=/usr libfdt_install
endef

define DTC_CLEAN_CMDS
	$(MAKE) -C $(@D) libfdt_clean
endef

$(eval $(generic-package))