[package] libs: add packages for fftw3f and fftw3l
[packages.git] / libs / fftw3 / Makefile
1 #
2 # Copyright (C) 2007-2010 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=fftw3
11 PKG_VERSION:=3.2.2
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=fftw-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://www.fftw.org
16 PKG_MD5SUM:=b616e5c91218cc778b5aa735fefb61ae
17
18 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/fftw-$(PKG_VERSION)
19 PKG_FIXUP:=libtool
20
21 include $(INCLUDE_DIR)/package.mk
22
23 define Package/fftw3
24   SECTION:=libs
25   CATEGORY:=Libraries
26   DEPENDS:=@!avr32
27   VARIANT:=double
28   TITLE:=Fast Fourier transform library
29   URL:=http://www.fftw.org/
30 endef
31
32 define Package/fftw3f
33   $(call Package/fftw3)
34   VARIANT:=single
35   TITLE+= (single precision)
36 endef
37
38 define Package/fftw3l
39   $(call Package/fftw3)
40   VARIANT:=long-double
41   TITLE+= (long-double precision)
42 endef
43
44 define Package/fftw3/description
45         FFTW is a collection of fast C routines for computing the
46         Discrete Fourier Transform in one or more dimensions. It
47         includes complex, real, and parallel transforms, and can
48         handle arbitrary array sizes efficiently.
49 endef
50
51 define Package/fftw3f/description
52   $(call Package/fftw3/description)
53
54   This package contains the single precision library.
55 endef
56
57 define Package/fftw3l/description
58   $(call Package/fftw3/description)
59
60   This package contains the long-double precision library.
61 endef
62
63 TARGET_CFLAGS += $(FPIC)
64
65 CONFIGURE_ARGS += \
66         --prefix=/usr \
67         --without-libiconv-prefix \
68         --without-libintl-prefix \
69         --disable-nls \
70         --enable-shared \
71         --enable-threads \
72         --enable-type-prefix \
73         --disable-debug \
74         --disable-fortran
75
76 ifeq ($(BUILD_VARIANT), single)
77 CONFIGURE_ARGS += \
78         --enable-single
79 endif
80
81 ifeq ($(BUILD_VARIANT), long-double)
82 CONFIGURE_ARGS += \
83         --enable-long-double
84 endif
85
86 define Build/Compile
87         $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
88 endef
89
90 define Build/InstallDev
91         $(INSTALL_DIR) $(1)/usr/include
92         $(CP) $(PKG_INSTALL_DIR)/usr/include/fftw3.h $(1)/usr/include
93         $(INSTALL_DIR) $(1)/usr/lib
94         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.{a,la} $(1)/usr/lib
95         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3*.so* $(1)/usr/lib
96         $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
97         $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* $(1)/usr/lib/pkgconfig/
98 endef
99
100 define Package/fftw3/install
101         $(INSTALL_DIR) $(1)/usr/lib
102         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3.so* $(1)/usr/lib/
103 endef
104
105 define Package/fftw3f/install
106         $(INSTALL_DIR) $(1)/usr/lib
107         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3f.so* $(1)/usr/lib/
108 endef
109
110 define Package/fftw3l/install
111         $(INSTALL_DIR) $(1)/usr/lib
112         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libfftw3l.so* $(1)/usr/lib/
113 endef
114
115 $(eval $(call BuildPackage,fftw3))
116 $(eval $(call BuildPackage,fftw3f))
117 $(eval $(call BuildPackage,fftw3l))