openwrt-packages/libs/fftw3/Makefile

121 lines
2.9 KiB
Makefile

#
# Copyright (C) 2007-2018 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=fftw3
PKG_VERSION:=3.3.8
PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0-or-later
PKG_SOURCE:=fftw-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.fftw.org
PKG_HASH:=6113262f6e92c5bd474f2875fa1b01054c4ad5040f6b0da7c03c98821d9ae303
PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/fftw-$(PKG_VERSION)
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
define Package/fftw3
SECTION:=libs
CATEGORY:=Libraries
DEPENDS:=+libpthread
VARIANT:=double
TITLE:=Fast Fourier transform library
URL:=http://www.fftw.org/
MAINTAINER:=Vladimir Ulrich <admin@evl.su>
endef
define Package/fftw3f
$(call Package/fftw3)
VARIANT:=single
TITLE+= (single precision)
endef
define Package/fftw3l
$(call Package/fftw3)
VARIANT:=long-double
TITLE+= (long-double precision)
endef
define Package/fftw3/description
FFTW is a collection of fast C routines for computing the
Discrete Fourier Transform in one or more dimensions. It
includes complex, real, and parallel transforms, and can
handle arbitrary array sizes efficiently.
endef
define Package/fftw3f/description
$(call Package/fftw3/description)
This package contains the single precision library.
endef
define Package/fftw3l/description
$(call Package/fftw3/description)
This package contains the long-double precision library.
endef
TARGET_CFLAGS += $(FPIC)
CONFIGURE_ARGS += \
--prefix=/usr \
--without-libiconv-prefix \
--without-libintl-prefix \
--enable-shared \
--enable-threads \
--enable-type-prefix \
--disable-debug \
--disable-fortran \
--disable-doc
ifeq ($(BUILD_VARIANT), single)
CONFIGURE_ARGS += \
$(if $(findstring neon,$(CONFIG_TARGET_OPTIMIZATION)),--enable-neon) \
--enable-single
endif
ifeq ($(BUILD_VARIANT), long-double)
CONFIGURE_ARGS += \
--enable-long-double
endif
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/fftw3.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.{a,la} $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.so* $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
endef
define Package/fftw3/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3.so* $(1)/usr/lib/
endef
define Package/fftw3f/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3f.so* $(1)/usr/lib/
endef
define Package/fftw3l/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3l.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,fftw3))
$(eval $(call BuildPackage,fftw3f))
$(eval $(call BuildPackage,fftw3l))