- #
- # 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))
|