[Buildroot] [PATCH] ficl: new package
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Thu Apr 28 12:04:35 UTC 2016
Hello,
On Mon, 25 Apr 2016 10:09:18 +0200, Francois Perrad wrote:
> Signed-off-by: Francois Perrad <francois.perrad at gadz.org>
I'm curious: are you really using this stuff? The last release dates
back from 2010, there has been no commits in the CVS (irk!) repository
for the last 5 years. And the previous release was made in 2004, i.e 12
years ago. I really would like to understand if this is really used by
you on embedded systems before accepting in Buildroot a package for
which we know nothing will ever move upstream.
> diff --git a/package/ficl/0001-fix-Makefile.patch b/package/ficl/0001-fix-Makefile.patch
> new file mode 100644
> index 0000000..94cda8a
> --- /dev/null
> +++ b/package/ficl/0001-fix-Makefile.patch
> @@ -0,0 +1,45 @@
> +fix Makefile
Please write a better description. "fix Makefile" is clearly not
enough. Explain *what* you are fixing.
> diff --git a/package/ficl/ficl.mk b/package/ficl/ficl.mk
> new file mode 100644
> index 0000000..142b083
> --- /dev/null
> +++ b/package/ficl/ficl.mk
> @@ -0,0 +1,49 @@
> +################################################################################
> +#
> +# ficl
> +#
> +################################################################################
> +
> +FICL_VERSION = 4.1.0
> +FICL_SITE = http://downloads.sourceforge.net/project/ficl/ficl-all/ficl4.1
Please do something like:
FICL_VERSION_MAJOR = 4.1
FICL_VERSION = $(FICL_VERSION_MAJOR).0
FICL_SITE = http://downloads.sourceforge.net/project/ficl/ficl-all/ficl$(FICL_VERSION_MAJOR)
> +FICL_LICENSE = BSD-2c
> +FICL_LICENSE_FILES = ReadMe.txt
> +FICL_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_STATIC_LIBS),y)
> +FICL_EXE = ficl
> +define FICL_INSTALL_LIB_STAGING
> + $(INSTALL) -D -m 0644 $(@D)/libficl.a $(STAGING_DIR)/usr/lib/libficl.a
> +endef
> +else
> +FICL_EXE = main
> +define FICL_INSTALL_LIB_STAGING
> + $(INSTALL) -D -m 0755 $(@D)/libficl.so.$(FICL_VERSION) $(STAGING_DIR)/usr/lib/libficl.so.$(FICL_VERSION)
> + ln -sf libficl.so.$(FICL_VERSION) $(STAGING_DIR)/usr/lib/libficl.so.4
> + ln -sf libficl.so.$(FICL_VERSION) $(STAGING_DIR)/usr/lib/libficl.so
> +endef
> +define FICL_INSTALL_LIB_TARGET
> + $(INSTALL) -D -m 0755 $(@D)/libficl.so.$(FICL_VERSION) $(TARGET_DIR)/usr/lib/libficl.so.$(FICL_VERSION)
> + ln -sf libficl.so.$(FICL_VERSION) $(TARGET_DIR)/usr/lib/libficl.so.4
> + ln -sf libficl.so.$(FICL_VERSION) $(TARGET_DIR)/usr/lib/libficl.so
> +endef
> +endif
This doesn't really take into account the BR2_SHARED_STATIC_LIBS=y
case. What about instead something like this:
ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
define FICL_INSTALL_STATIC_LIB
$(INSTALL) -D -m 0644 $(@D)/libficl.a $(STAGING_DIR)/usr/lib/libficl.a
endef
endif
ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
define FICL_INSTALL_SHARED_LIB
$(INSTALL) -D -m 0755 $(@D)/libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.$(FICL_VERSION)
ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so.4
ln -sf libficl.so.$(FICL_VERSION) $(1)/usr/lib/libficl.so
endef
endif
and then:
define FICL_INSTALL_STAGING_CMDS
$(FICL_INSTALL_STATIC_LIB,$(STAGING_DIR))
$(FICL_INSTALL_SHARED_LIB,$(STAGING_DIR))
... install headers ...
endef
define FICL_INSTALL_TARGET_CMDS
$(FICL_INSTALL_STATIC_LIB,$(TARGET_DIR))
$(FICL_INSTALL_SHARED_LIB,$(TARGET_DIR))
... install programs ...
endef
> +define FICL_BUILD_CMDS
> + $(MAKE) -C $(@D) -f Makefile.linux $(TARGET_CONFIGURE_OPTS) \
> + CPPFLAGS="$(TARGET_CPPFLAGS) -I. -Dlinux" $(FICL_EXE)
This last line should be indented with one more tab.
Also, it's not clear to me why the ficl executable to build is
different between the static case and the shared case. Can you
elaborate on that?
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list