Rename Makefile.cmake.in to pkg-cmaketargets.mk
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 17 Apr 2012 14:45:18 +0000 (16:45 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Thu, 19 Apr 2012 14:06:38 +0000 (16:06 +0200)
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/Makefile.cmake.in [deleted file]
package/Makefile.in
package/pkg-cmaketargets.mk [new file with mode: 0644]

diff --git a/package/Makefile.cmake.in b/package/Makefile.cmake.in
deleted file mode 100644 (file)
index 1cd65e4..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-################################################################################
-# CMake package infrastructure
-#
-# This file implements an infrastructure that eases development of
-# package .mk files for CMake packages. It should be used for all
-# packages that use CMake as their build system.
-#
-# See the Buildroot documentation for details on the usage of this
-# infrastructure
-#
-# In terms of implementation, this CMake infrastructure requires
-# the .mk file to only specify metadata informations about the
-# package: name, version, download URL, etc.
-#
-# We still allow the package .mk file to override what the different
-# steps are doing, if needed. For example, if <PKG>_BUILD_CMDS is
-# already defined, it is used as the list of commands to perform to
-# build the package, instead of the default CMake behaviour. The
-# package can also define some post operation hooks.
-#
-################################################################################
-
-################################################################################
-# CMAKETARGETS_INNER -- defines how the configuration, compilation and
-# installation of a CMake package should be done, implements a few hooks to
-# tune the build process and calls the generic package infrastructure to
-# generate the necessary make targets
-#
-#  argument 1 is the lowercase package name
-#  argument 2 is the uppercase package name, including an HOST_ prefix
-#             for host packages
-#  argument 3 is the uppercase package name, without the HOST_ prefix
-#             for host packages
-#  argument 4 is the package directory prefix
-#  argument 5 is the type (target or host)
-################################################################################
-
-define CMAKETARGETS_INNER
-
-# define package-specific variables to default values
-ifndef $(2)_SUBDIR
- ifdef $(3)_SUBDIR
-  $(2)_SUBDIR = $($(3)_SUBDIR)
- else
-  $(2)_SUBDIR ?=
- endif
-endif
-
-$(2)_CONF_ENV                  ?=
-$(2)_CONF_OPT                  ?=
-$(2)_MAKE                      ?= $(MAKE)
-$(2)_MAKE_ENV                  ?=
-$(2)_MAKE_OPT                  ?=
-$(2)_INSTALL_HOST_OPT          ?= install
-$(2)_INSTALL_STAGING_OPT       ?= DESTDIR=$$(STAGING_DIR) install
-$(2)_INSTALL_TARGET_OPT                ?= DESTDIR=$$(TARGET_DIR) install
-$(2)_CLEAN_OPT                 ?= clean
-
-$(2)_SRCDIR                    = $$($(2)_DIR)/$($(2)_SUBDIR)
-$(2)_BUILDDIR                  = $$($(2)_SRCDIR)
-
-#
-# Configure step. Only define it if not already defined by the package
-# .mk file. And take care of the differences between host and target
-# packages.
-#
-ifndef $(2)_CONFIGURE_CMDS
-ifeq ($(5),target)
-
-# Configure package for target
-define $(2)_CONFIGURE_CMDS
-       (cd $$($$(PKG)_BUILDDIR) && \
-       rm -f CMakeCache.txt && \
-       $$($$(PKG)_CONF_ENV) $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
-               -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" \
-               -DCMAKE_INSTALL_PREFIX="/usr" \
-               $$($$(PKG)_CONF_OPT) \
-       )
-endef
-else
-
-# Configure package for host
-define $(2)_CONFIGURE_CMDS
-       (cd $$($$(PKG)_BUILDDIR) && \
-       rm -f CMakeCache.txt && \
-       $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
-               -DCMAKE_INSTALL_SO_NO_EXE=0 \
-               -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
-               -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
-               -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY="BOTH" \
-               -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE="BOTH" \
-               -DCMAKE_INSTALL_PREFIX="$$(HOST_DIR)/usr" \
-               $$($$(PKG)_CONF_OPT) \
-       )
-endef
-endif
-endif
-
-# This must be repeated from GENTARGETS_INNER, otherwise we only get
-# host-cmake in _DEPENDENCIES because of the following line
-$(2)_DEPENDENCIES ?= $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))
-
-$(2)_DEPENDENCIES += host-cmake
-
-#
-# Build step. Only define it if not already defined by the package .mk
-# file.
-#
-ifndef $(2)_BUILD_CMDS
-ifeq ($(5),target)
-define $(2)_BUILD_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-else
-define $(2)_BUILD_CMDS
-       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-endif
-endif
-
-#
-# Host installation step. Only define it if not already defined by the
-# package .mk file.
-#
-ifndef $(2)_INSTALL_CMDS
-define $(2)_INSTALL_CMDS
-       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_HOST_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-endif
-
-#
-# Staging installation step. Only define it if not already defined by
-# the package .mk file.
-#
-ifndef $(2)_INSTALL_STAGING_CMDS
-define $(2)_INSTALL_STAGING_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-endif
-
-#
-# Target installation step. Only define it if not already defined by
-# the package .mk file.
-#
-ifndef $(2)_INSTALL_TARGET_CMDS
-define $(2)_INSTALL_TARGET_CMDS
-       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_TARGET_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-endif
-
-#
-# Clean step. Only define it if not already defined by
-# the package .mk file.
-#
-ifndef $(2)_CLEAN_CMDS
-define $(2)_CLEAN_CMDS
-       -$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_CLEAN_OPT) -C $$($$(PKG)_BUILDDIR)
-endef
-endif
-
-#
-# Uninstall from staging step. Only define it if not already defined by
-# the package .mk file.
-#
-ifndef $(2)_UNINSTALL_STAGING_CMDS
-define $(2)_UNINSTALL_STAGING_CMDS
-       (cd $$($$(PKG)_BUILDDIR) && sed "s:\(.*\):$$(STAGING_DIR)\1:" install_manifest.txt | xargs rm -f)
-endef
-endif
-
-#
-# Uninstall from target step. Only define it if not already defined
-# by the package .mk file.
-#
-ifndef $(2)_UNINSTALL_TARGET_CMDS
-define $(2)_UNINSTALL_TARGET_CMDS
-       (cd $$($$(PKG)_BUILDDIR) && sed "s:\(.*\):$$(TARGET_DIR)\1:" install_manifest.txt | xargs rm -f)
-endef
-endif
-
-# Call the generic package infrastructure to generate the necessary
-# make targets
-$(call GENTARGETS_INNER,$(1),$(2),$(3),$(4),$(5))
-
-endef
-
-################################################################################
-# CMAKETARGETS -- the target generator macro for CMake packages
-#
-# Argument 1 is "target" or "host"           [optional, default: "target"]
-################################################################################
-
-define CMAKETARGETS
-ifeq ($(1),host)
-$(call CMAKETARGETS_INNER,$(1)-$(call pkgname),$(call UPPERCASE,$(1)-$(call pkgname)),$(call UPPERCASE,$(call pkgname)),$(call pkgparentdir),host)
-else
-$(call CMAKETARGETS_INNER,$(call pkgname),$(call UPPERCASE,$(call pkgname)),$(call UPPERCASE,$(call pkgname)),$(call pkgparentdir),target)
-endif
-endef
index 20fac9af7008c0cdece46b567cd24f884c6392e5..ab5ea48422cebe2ed3d28fe8f7912c5d401043ef 100644 (file)
@@ -300,5 +300,5 @@ SHARED_STATIC_LIBS_OPTS=--enable-static --enable-shared
 endif
 
 include package/pkg-autotargets.mk
-include package/Makefile.cmake.in
+include package/pkg-cmaketargets.mk
 include package/Makefile.package.in
diff --git a/package/pkg-cmaketargets.mk b/package/pkg-cmaketargets.mk
new file mode 100644 (file)
index 0000000..1cd65e4
--- /dev/null
@@ -0,0 +1,199 @@
+################################################################################
+# CMake package infrastructure
+#
+# This file implements an infrastructure that eases development of
+# package .mk files for CMake packages. It should be used for all
+# packages that use CMake as their build system.
+#
+# See the Buildroot documentation for details on the usage of this
+# infrastructure
+#
+# In terms of implementation, this CMake infrastructure requires
+# the .mk file to only specify metadata informations about the
+# package: name, version, download URL, etc.
+#
+# We still allow the package .mk file to override what the different
+# steps are doing, if needed. For example, if <PKG>_BUILD_CMDS is
+# already defined, it is used as the list of commands to perform to
+# build the package, instead of the default CMake behaviour. The
+# package can also define some post operation hooks.
+#
+################################################################################
+
+################################################################################
+# CMAKETARGETS_INNER -- defines how the configuration, compilation and
+# installation of a CMake package should be done, implements a few hooks to
+# tune the build process and calls the generic package infrastructure to
+# generate the necessary make targets
+#
+#  argument 1 is the lowercase package name
+#  argument 2 is the uppercase package name, including an HOST_ prefix
+#             for host packages
+#  argument 3 is the uppercase package name, without the HOST_ prefix
+#             for host packages
+#  argument 4 is the package directory prefix
+#  argument 5 is the type (target or host)
+################################################################################
+
+define CMAKETARGETS_INNER
+
+# define package-specific variables to default values
+ifndef $(2)_SUBDIR
+ ifdef $(3)_SUBDIR
+  $(2)_SUBDIR = $($(3)_SUBDIR)
+ else
+  $(2)_SUBDIR ?=
+ endif
+endif
+
+$(2)_CONF_ENV                  ?=
+$(2)_CONF_OPT                  ?=
+$(2)_MAKE                      ?= $(MAKE)
+$(2)_MAKE_ENV                  ?=
+$(2)_MAKE_OPT                  ?=
+$(2)_INSTALL_HOST_OPT          ?= install
+$(2)_INSTALL_STAGING_OPT       ?= DESTDIR=$$(STAGING_DIR) install
+$(2)_INSTALL_TARGET_OPT                ?= DESTDIR=$$(TARGET_DIR) install
+$(2)_CLEAN_OPT                 ?= clean
+
+$(2)_SRCDIR                    = $$($(2)_DIR)/$($(2)_SUBDIR)
+$(2)_BUILDDIR                  = $$($(2)_SRCDIR)
+
+#
+# Configure step. Only define it if not already defined by the package
+# .mk file. And take care of the differences between host and target
+# packages.
+#
+ifndef $(2)_CONFIGURE_CMDS
+ifeq ($(5),target)
+
+# Configure package for target
+define $(2)_CONFIGURE_CMDS
+       (cd $$($$(PKG)_BUILDDIR) && \
+       rm -f CMakeCache.txt && \
+       $$($$(PKG)_CONF_ENV) $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
+               -DCMAKE_TOOLCHAIN_FILE="$$(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake" \
+               -DCMAKE_INSTALL_PREFIX="/usr" \
+               $$($$(PKG)_CONF_OPT) \
+       )
+endef
+else
+
+# Configure package for host
+define $(2)_CONFIGURE_CMDS
+       (cd $$($$(PKG)_BUILDDIR) && \
+       rm -f CMakeCache.txt && \
+       $(HOST_DIR)/usr/bin/cmake $$($$(PKG)_SRCDIR) \
+               -DCMAKE_INSTALL_SO_NO_EXE=0 \
+               -DCMAKE_FIND_ROOT_PATH="$$(HOST_DIR)" \
+               -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM="BOTH" \
+               -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY="BOTH" \
+               -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE="BOTH" \
+               -DCMAKE_INSTALL_PREFIX="$$(HOST_DIR)/usr" \
+               $$($$(PKG)_CONF_OPT) \
+       )
+endef
+endif
+endif
+
+# This must be repeated from GENTARGETS_INNER, otherwise we only get
+# host-cmake in _DEPENDENCIES because of the following line
+$(2)_DEPENDENCIES ?= $(patsubst host-host-%,host-%,$(addprefix host-,$($(3)_DEPENDENCIES)))
+
+$(2)_DEPENDENCIES += host-cmake
+
+#
+# Build step. Only define it if not already defined by the package .mk
+# file.
+#
+ifndef $(2)_BUILD_CMDS
+ifeq ($(5),target)
+define $(2)_BUILD_CMDS
+       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+else
+define $(2)_BUILD_CMDS
+       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+endif
+endif
+
+#
+# Host installation step. Only define it if not already defined by the
+# package .mk file.
+#
+ifndef $(2)_INSTALL_CMDS
+define $(2)_INSTALL_CMDS
+       $(HOST_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_HOST_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+endif
+
+#
+# Staging installation step. Only define it if not already defined by
+# the package .mk file.
+#
+ifndef $(2)_INSTALL_STAGING_CMDS
+define $(2)_INSTALL_STAGING_CMDS
+       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+endif
+
+#
+# Target installation step. Only define it if not already defined by
+# the package .mk file.
+#
+ifndef $(2)_INSTALL_TARGET_CMDS
+define $(2)_INSTALL_TARGET_CMDS
+       $(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_INSTALL_TARGET_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+endif
+
+#
+# Clean step. Only define it if not already defined by
+# the package .mk file.
+#
+ifndef $(2)_CLEAN_CMDS
+define $(2)_CLEAN_CMDS
+       -$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_MAKE_OPT) $$($$(PKG)_CLEAN_OPT) -C $$($$(PKG)_BUILDDIR)
+endef
+endif
+
+#
+# Uninstall from staging step. Only define it if not already defined by
+# the package .mk file.
+#
+ifndef $(2)_UNINSTALL_STAGING_CMDS
+define $(2)_UNINSTALL_STAGING_CMDS
+       (cd $$($$(PKG)_BUILDDIR) && sed "s:\(.*\):$$(STAGING_DIR)\1:" install_manifest.txt | xargs rm -f)
+endef
+endif
+
+#
+# Uninstall from target step. Only define it if not already defined
+# by the package .mk file.
+#
+ifndef $(2)_UNINSTALL_TARGET_CMDS
+define $(2)_UNINSTALL_TARGET_CMDS
+       (cd $$($$(PKG)_BUILDDIR) && sed "s:\(.*\):$$(TARGET_DIR)\1:" install_manifest.txt | xargs rm -f)
+endef
+endif
+
+# Call the generic package infrastructure to generate the necessary
+# make targets
+$(call GENTARGETS_INNER,$(1),$(2),$(3),$(4),$(5))
+
+endef
+
+################################################################################
+# CMAKETARGETS -- the target generator macro for CMake packages
+#
+# Argument 1 is "target" or "host"           [optional, default: "target"]
+################################################################################
+
+define CMAKETARGETS
+ifeq ($(1),host)
+$(call CMAKETARGETS_INNER,$(1)-$(call pkgname),$(call UPPERCASE,$(1)-$(call pkgname)),$(call UPPERCASE,$(call pkgname)),$(call pkgparentdir),host)
+else
+$(call CMAKETARGETS_INNER,$(call pkgname),$(call UPPERCASE,$(call pkgname)),$(call UPPERCASE,$(call pkgname)),$(call pkgparentdir),target)
+endif
+endef