Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [mfgtools][PATCH] mfgtools: Allow target build
@ 2018-05-04 14:32 Vincent Prince
  2018-05-07 15:27 ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Vincent Prince @ 2018-05-04 14:32 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
---
 package/Config.in                                  |  1 +
 .../mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch  | 58 ++++++++++++++++++++++
 package/mfgtools/Config.in                         | 14 ++++++
 package/mfgtools/mfgtools.mk                       | 17 +++++++
 4 files changed, 90 insertions(+)
 create mode 100644 package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
 create mode 100644 package/mfgtools/Config.in

diff --git a/package/Config.in b/package/Config.in
index 9cd5d9c..04a0f6d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -186,6 +186,7 @@ menu "Filesystem and flash utilities"
 	source "package/genext2fs/Config.in"
 	source "package/genpart/Config.in"
 	source "package/genromfs/Config.in"
+	source "package/mfgtools/Config.in"
 	source "package/mmc-utils/Config.in"
 	source "package/mtd/Config.in"
 	source "package/mtools/Config.in"
diff --git a/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
new file mode 100644
index 0000000..91933df
--- /dev/null
+++ b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
@@ -0,0 +1,58 @@
+--- a/MfgToolLib/CMakeLists.txt
++++ b/MfgToolLib/CMakeLists.txt
+@@ -130,53 +130,8 @@ set(LIBS ${LIBS} ${LIBUSB_1_LIBRARIES})
+ include_directories(BEFORE ${PROJECT_SOURCE_DIR}  )
+ SET( CMAKE_VERBOSE_MAKEFILE on )
+ 
+-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+-
+-  set(CMAKE_CXX_FLAGS "-g")
+-
+-
+-  set(SOURCES ${SOURCES_})
+-
+-
+-
+-  add_library( MfgToolLib ${SOURCES} )
+-
+-
+-
+-endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+-if(TARGET MfgToolLib)
+-
+-  set_property(TARGET MfgToolLib APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG
+-    WIN32
+-    _CRT_SECURE_NO_DEPRECATE
+-    _DEBUG
+-    _USRDLL
+-    _WINDOWS
+-  )
+-endif(TARGET MfgToolLib)
+-
+-if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE STREQUAL "Release")
+-
+-
+-  set(SOURCES  ${SOURCES_})
+-
+-
+-  add_library( MfgToolLib ${SOURCES} )
+-
+-
+-endif(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE STREQUAL "Release")
+-if(TARGET MfgToolLib)
+-
+-  set_property(TARGET MfgToolLib APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE
+-    NDEBUG
+-    WIN32
+-    _CRT_SECURE_NO_DEPRECATE
+-    _USRDLL
+-    _WINDOWS
+-  )
+-endif(TARGET MfgToolLib)
+-set (CMAKE_CXX_FLAGS "-std=c++11 -O0 -fpic -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -fpermissive -g -Wno-write-strings")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fpermissive -g -Wno-write-strings")
+ set(SOURCES ${SOURCES_})
+ 
+-add_library( MfgToolLib SHARED ${SOURCES} )
++add_library( MfgToolLib SHARED ${SOURCES} )
+ target_link_libraries(MfgToolLib ${LIBS})
diff --git a/package/mfgtools/Config.in b/package/mfgtools/Config.in
new file mode 100644
index 0000000..d1fc068
--- /dev/null
+++ b/package/mfgtools/Config.in
@@ -0,0 +1,14 @@
+comment "mfgtools needs gcc >= 4.8"
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_MFGTOOLS
+	bool "mfgtools"
+	depends on BR2_arm
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # needs C++11
+	help
+	  This package contains the Freescale manufacturing tool.
+	  It is designed to program firmware to i.MX boards during
+	  production. The communication is done over USB using the
+	  Freescale UTP protocol.
+
+	  https://github.com/codeauroraforum/mfgtools
diff --git a/package/mfgtools/mfgtools.mk b/package/mfgtools/mfgtools.mk
index e4663a8..24a9d9f 100644
--- a/package/mfgtools/mfgtools.mk
+++ b/package/mfgtools/mfgtools.mk
@@ -11,19 +11,35 @@ MFGTOOLS_LICENSE = BSD-3-Clause or CPOL
 MFGTOOLS_LICENSE_FILES = LICENSE README.txt
 HOST_MFGTOOLS_DEPENDENCIES = host-libusb
 
+MFGTOOLS_CFLAGS = \
+	$(CFLAGS) $(LDFLAGS) -std=c++11 -lpthread \
+	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
+	-lusb-1.0 -I$(TARGET_DIR)/usr/include/libusb-1.0 \
+	-fpermissive -Wno-write-strings
 HOST_MFGTOOLS_CFLAGS = \
 	$(HOST_CFLAGS) $(HOST_LDFLAGS) -std=c++11 -lpthread \
 	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
 	-lusb-1.0 -I$(HOST_DIR)/include/libusb-1.0 \
 	-fpermissive -Wno-write-strings
 
+define MFGTOOLS_CLI_BUILD
+	$(CONFIGURE_OPTS) $(MAKE) CC="$(TARGET_CXX)" \
+		CFLAGS="$(MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm
+endef
 define HOST_MFGTOOLS_CLI_BUILD
 	$(HOST_CONFIGURE_OPTS) $(MAKE) CC="$(HOSTCXX)" \
 		CFLAGS="$(HOST_MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm
 endef
 
+MFGTOOLS_POST_BUILD_HOOKS += MFGTOOLS_CLI_BUILD
 HOST_MFGTOOLS_POST_BUILD_HOOKS += HOST_MFGTOOLS_CLI_BUILD
 
+define MFGTOOLS_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
+		$(TARGET_DIR)/usr/lib/libMfgToolLib.so
+	$(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
+		$(TARGET_DIR)/usr/bin/mfgtoolcli
+endef
 define HOST_MFGTOOLS_INSTALL_CMDS
 	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
 		$(HOST_DIR)/lib/libMfgToolLib.so
@@ -31,4 +47,5 @@ define HOST_MFGTOOLS_INSTALL_CMDS
 		$(HOST_DIR)/bin/mfgtoolcli
 endef
 
+$(eval $(cmake-package))
 $(eval $(host-cmake-package))
-- 
2.7.4

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

* [Buildroot] [mfgtools][PATCH] mfgtools: Allow target build
  2018-05-04 14:32 [Buildroot] [mfgtools][PATCH] mfgtools: Allow target build Vincent Prince
@ 2018-05-07 15:27 ` Thomas Petazzoni
  2018-05-14  9:11   ` [Buildroot] [PATCH v2] package/mfgtools: " Vincent Prince
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2018-05-07 15:27 UTC (permalink / raw)
  To: buildroot

Hello Vincent,

Thanks for this contribution!

On Fri,  4 May 2018 16:32:02 +0200, Vincent Prince wrote:

> diff --git a/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
> new file mode 100644
> index 0000000..91933df
> --- /dev/null
> +++ b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
> @@ -0,0 +1,58 @@
> +--- a/MfgToolLib/CMakeLists.txt
> ++++ b/MfgToolLib/CMakeLists.txt

All patches need a description + Signed-off-by. See
https://buildroot.org/downloads/manual/manual.html#_format_and_licensing_of_the_package_patches.

> diff --git a/package/mfgtools/mfgtools.mk b/package/mfgtools/mfgtools.mk
> index e4663a8..24a9d9f 100644
> --- a/package/mfgtools/mfgtools.mk
> +++ b/package/mfgtools/mfgtools.mk
> @@ -11,19 +11,35 @@ MFGTOOLS_LICENSE = BSD-3-Clause or CPOL
>  MFGTOOLS_LICENSE_FILES = LICENSE README.txt
>  HOST_MFGTOOLS_DEPENDENCIES = host-libusb
>  
> +MFGTOOLS_CFLAGS = \
> +	$(CFLAGS) $(LDFLAGS) -std=c++11 -lpthread \

CFLAGS and LDFLAGS don't have any meaning in Buildroot, you probably
meant TARGET_CFLAGS and TARGET_LDFLAGS.

> +	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
> +	-lusb-1.0 -I$(TARGET_DIR)/usr/include/libusb-1.0 \

You can't use header files from TARGET_DIR, since you have no guarantee
that they are installed here. The headers are in STAGING_DIR instead.

> +define MFGTOOLS_CLI_BUILD
> +	$(CONFIGURE_OPTS) $(MAKE) CC="$(TARGET_CXX)" \

CONFIGURE_OPTS don't exist in Buildroot, it's TARGET_CONFIGURE_OPTS.
THen you don't need to pass CC="$(TARGET_CXX)", because it's part of
TARGET_CONFIGURE_OPTS.

> +define MFGTOOLS_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
> +		$(TARGET_DIR)/usr/lib/libMfgToolLib.so
> +	$(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
> +		$(TARGET_DIR)/usr/bin/mfgtoolcli
> +endef

Add a blank line here.

>  define HOST_MFGTOOLS_INSTALL_CMDS
>  	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
>  		$(HOST_DIR)/lib/libMfgToolLib.so
> @@ -31,4 +47,5 @@ define HOST_MFGTOOLS_INSTALL_CMDS
>  		$(HOST_DIR)/bin/mfgtoolcli
>  endef
>  
> +$(eval $(cmake-package))
>  $(eval $(host-cmake-package))

Could you rework your patch according to those comments, and send an
updated version ?

Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

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

* [Buildroot] [PATCH v2] package/mfgtools: Allow target build
  2018-05-07 15:27 ` Thomas Petazzoni
@ 2018-05-14  9:11   ` Vincent Prince
  2019-04-07 14:01     ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Vincent Prince @ 2018-05-14  9:11 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
---
 package/Config.in                                  |  1 +
 .../mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch  | 62 ++++++++++++++++++++++
 package/mfgtools/Config.in                         | 15 ++++++
 package/mfgtools/mfgtools.mk                       | 20 +++++++
 4 files changed, 98 insertions(+)
 create mode 100644 package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
 create mode 100644 package/mfgtools/Config.in

diff --git a/package/Config.in b/package/Config.in
index 9cd5d9c..04a0f6d 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -186,6 +186,7 @@ menu "Filesystem and flash utilities"
 	source "package/genext2fs/Config.in"
 	source "package/genpart/Config.in"
 	source "package/genromfs/Config.in"
+	source "package/mfgtools/Config.in"
 	source "package/mmc-utils/Config.in"
 	source "package/mtd/Config.in"
 	source "package/mtools/Config.in"
diff --git a/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
new file mode 100644
index 0000000..eee58b8
--- /dev/null
+++ b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
@@ -0,0 +1,62 @@
+CMakeLists.txt: Fix cross-compilation
+
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+
+--- a/MfgToolLib/CMakeLists.txt
++++ b/MfgToolLib/CMakeLists.txt
+@@ -130,53 +130,8 @@ set(LIBS ${LIBS} ${LIBUSB_1_LIBRARIES})
+ include_directories(BEFORE ${PROJECT_SOURCE_DIR}  )
+ SET( CMAKE_VERBOSE_MAKEFILE on )
+ 
+-if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+-
+-  set(CMAKE_CXX_FLAGS "-g")
+-
+-
+-  set(SOURCES ${SOURCES_})
+-
+-
+-
+-  add_library( MfgToolLib ${SOURCES} )
+-
+-
+-
+-endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
+-if(TARGET MfgToolLib)
+-
+-  set_property(TARGET MfgToolLib APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG
+-    WIN32
+-    _CRT_SECURE_NO_DEPRECATE
+-    _DEBUG
+-    _USRDLL
+-    _WINDOWS
+-  )
+-endif(TARGET MfgToolLib)
+-
+-if(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE STREQUAL "Release")
+-
+-
+-  set(SOURCES  ${SOURCES_})
+-
+-
+-  add_library( MfgToolLib ${SOURCES} )
+-
+-
+-endif(CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE STREQUAL "Release")
+-if(TARGET MfgToolLib)
+-
+-  set_property(TARGET MfgToolLib APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE
+-    NDEBUG
+-    WIN32
+-    _CRT_SECURE_NO_DEPRECATE
+-    _USRDLL
+-    _WINDOWS
+-  )
+-endif(TARGET MfgToolLib)
+-set (CMAKE_CXX_FLAGS "-std=c++11 -O0 -fpic -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -fpermissive -g -Wno-write-strings")
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fpermissive -g -Wno-write-strings")
+ set(SOURCES ${SOURCES_})
+ 
+-add_library( MfgToolLib SHARED ${SOURCES} )
++add_library( MfgToolLib SHARED ${SOURCES} )
+ target_link_libraries(MfgToolLib ${LIBS})
diff --git a/package/mfgtools/Config.in b/package/mfgtools/Config.in
new file mode 100644
index 0000000..0ab51a8
--- /dev/null
+++ b/package/mfgtools/Config.in
@@ -0,0 +1,15 @@
+comment "mfgtools needs gcc >= 4.8"
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+
+config BR2_PACKAGE_MFGTOOLS
+	bool "mfgtools"
+	depends on BR2_arm
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # needs C++11
+	select BR2_PACKAGE_LIBUSB
+	help
+	  This package contains the Freescale manufacturing tool.
+	  It is designed to program firmware to i.MX boards during
+	  production. The communication is done over USB using the
+	  Freescale UTP protocol.
+
+	  https://github.com/codeauroraforum/mfgtools
diff --git a/package/mfgtools/mfgtools.mk b/package/mfgtools/mfgtools.mk
index e4663a8..9867785 100644
--- a/package/mfgtools/mfgtools.mk
+++ b/package/mfgtools/mfgtools.mk
@@ -9,21 +9,40 @@ MFGTOOLS_SITE = $(call github,codeauroraforum,mfgtools,$(MFGTOOLS_VERSION))
 MFGTOOLS_SUBDIR = MfgToolLib
 MFGTOOLS_LICENSE = BSD-3-Clause or CPOL
 MFGTOOLS_LICENSE_FILES = LICENSE README.txt
+
+MFGTOOLS_DEPENDENCIES = libusb
 HOST_MFGTOOLS_DEPENDENCIES = host-libusb
 
+MFGTOOLS_CFLAGS = \
+	$(TARGET_CFLAGS) $(TARGET_LDFLAGS) -std=c++11 -lpthread \
+	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
+	-lusb-1.0 -I$(STAGING_DIR)/usr/include/libusb-1.0 \
+	-fpermissive -Wno-write-strings
 HOST_MFGTOOLS_CFLAGS = \
 	$(HOST_CFLAGS) $(HOST_LDFLAGS) -std=c++11 -lpthread \
 	-L$(@D)/MfgToolLib -lMfgToolLib -I$(@D)/MfgToolLib \
 	-lusb-1.0 -I$(HOST_DIR)/include/libusb-1.0 \
 	-fpermissive -Wno-write-strings
 
+define MFGTOOLS_CLI_BUILD
+	$(TARGET_CONFIGURE_OPTS) $(MAKE) CC="$(TARGET_CXX)" \
+		CFLAGS="$(MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm
+endef
 define HOST_MFGTOOLS_CLI_BUILD
 	$(HOST_CONFIGURE_OPTS) $(MAKE) CC="$(HOSTCXX)" \
 		CFLAGS="$(HOST_MFGTOOLS_CFLAGS)" -C $(@D)/TestPrgm
 endef
 
+MFGTOOLS_POST_BUILD_HOOKS += MFGTOOLS_CLI_BUILD
 HOST_MFGTOOLS_POST_BUILD_HOOKS += HOST_MFGTOOLS_CLI_BUILD
 
+define MFGTOOLS_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
+		$(TARGET_DIR)/usr/lib/libMfgToolLib.so
+	$(INSTALL) -D -m 755 $(@D)/TestPrgm/mfgtoolcli \
+		$(TARGET_DIR)/usr/bin/mfgtoolcli
+endef
+
 define HOST_MFGTOOLS_INSTALL_CMDS
 	$(INSTALL) -D -m 755 $(@D)/MfgToolLib/libMfgToolLib.so \
 		$(HOST_DIR)/lib/libMfgToolLib.so
@@ -31,4 +50,5 @@ define HOST_MFGTOOLS_INSTALL_CMDS
 		$(HOST_DIR)/bin/mfgtoolcli
 endef
 
+$(eval $(cmake-package))
 $(eval $(host-cmake-package))
-- 
2.7.4

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

* [Buildroot] [PATCH v2] package/mfgtools: Allow target build
  2018-05-14  9:11   ` [Buildroot] [PATCH v2] package/mfgtools: " Vincent Prince
@ 2019-04-07 14:01     ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2019-04-07 14:01 UTC (permalink / raw)
  To: buildroot

Hello Vincent,

On Mon, 14 May 2018 11:11:14 +0200
Vincent Prince <vincent.prince.fr@gmail.com> wrote:

> Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>

Sorry for the very long delay in answering. First of all, the 0.02
version of mfgtools we're using is very, very old. Upstream has much
more recent version, which hopefully cross-compile better. It would
probably be beneficial to start by updating to a more recent version.

> diff --git a/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
> new file mode 100644
> index 0000000..eee58b8
> --- /dev/null
> +++ b/package/mfgtools/0001-Fix-CXXFLAGS-in-CMakeList.patch
> @@ -0,0 +1,62 @@
> +CMakeLists.txt: Fix cross-compilation

This is way too short. What gets fixed already ? The patch file name
mentions just fixing CXXFLAGS, but the patch does much more.

Also, since upstream uses Git, we want a patch generated by "git
format-patch". But as said above, perhaps updating to a newer upstream
release will help avoid these cross-compilation issues.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

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

end of thread, other threads:[~2019-04-07 14:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-04 14:32 [Buildroot] [mfgtools][PATCH] mfgtools: Allow target build Vincent Prince
2018-05-07 15:27 ` Thomas Petazzoni
2018-05-14  9:11   ` [Buildroot] [PATCH v2] package/mfgtools: " Vincent Prince
2019-04-07 14:01     ` Thomas Petazzoni

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