mirror of
git://projects.qi-hardware.com/openwrt-packages.git
synced 2024-11-25 09:41:54 +02:00
401 lines
12 KiB
Makefile
401 lines
12 KiB
Makefile
#
|
|
# Copyright (C) 2011 David Kuehling <dvdkhlng TA gmx TOD de>
|
|
#
|
|
# License GPLv2 or later. NO WARRANTY.
|
|
#
|
|
# OpenWRT package for the Plplot
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=plplot
|
|
PKG_VERSION:=5.9.7
|
|
PKG_RELEASE:=4
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=@SF/$(PKG_NAME)/$(PKG_VERSION)%20Source
|
|
PKG_MD5SUM:=c53c484ed93ce8446513c31707551b5b
|
|
PKG_INSTALL:=1
|
|
PKG_FIXUP:=libtool
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
PKG_BUILD_DEPENDS:= plplot/host libtool/host libltdl/host swig/host
|
|
#@INSTALL_GFORTRAN
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
CMAKE_HOST_FLAGS=-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DDEFAULT_NO_DEVICES=ON \
|
|
-DPKG_CONFIG_EXECUTABLE=Not-Found -DDEFAULT_NO_BINDINGS=ON
|
|
|
|
## Need host-compiled plplot build dir for cmake to work for the target
|
|
define Host/Configure
|
|
mkdir -p $(HOST_BUILD_DIR)/build_dir
|
|
cd $(HOST_BUILD_DIR)/build_dir && \
|
|
cmake $(CMAKE_HOST_FLAGS) \
|
|
$(HOST_BUILD_DIR)
|
|
endef
|
|
|
|
define Host/Compile/Octave
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/bindings/octave massage
|
|
endef
|
|
|
|
define Host/Compile
|
|
$(if $(CONFIG_PACKAGE_plplot-octave),$(Host/Compile/Octave),)
|
|
$(MAKE) -C $(HOST_BUILD_DIR)/build_dir VERBOSE=1 -j4
|
|
endef
|
|
|
|
define Host/Install/Octave
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOST)/bin
|
|
$(CP) $(HOST_BUILD_DIR)/bindings/octave/massage \
|
|
$(STAGING_DIR_HOST)/bin/plplot-massage
|
|
endef
|
|
|
|
define Host/Install
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOST)/lib/$(PKG_NAME)-$(PKG_VERSION)
|
|
$(CP) $(HOST_BUILD_DIR)/build_dir \
|
|
$(STAGING_DIR_HOST)/lib/$(PKG_NAME)-$(PKG_VERSION)
|
|
$(if $(CONFIG_PACKAGE_plplot-octave),$(Host/Install/Octave),)
|
|
endef
|
|
|
|
define Package/plplot/Default
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
|
|
TITLE:=PLplot plotting library
|
|
URL:=http://plplot.sourceforge.net/
|
|
SUBMENU:=PLplot
|
|
endef
|
|
|
|
define Package/plplot/Default/description
|
|
PLplot is a cross-platform software package for creating scientific plots. It
|
|
comes with language bindings for many interpreter languages like Lua, Tcl,
|
|
Python. Also it can be used as plooting backend for GNU Octave.
|
|
endef
|
|
|
|
define Package/plplot
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:=+libltdl +zlib +libfreetype
|
|
TITLE+=
|
|
endef
|
|
|
|
define Package/plplot/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot library with a few file output devices.
|
|
endef
|
|
|
|
define Package/plplot-demo
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot
|
|
TITLE+= (Example Programs)
|
|
endef
|
|
|
|
define Package/plplot-demo/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot example programs.
|
|
endef
|
|
|
|
define Package/plplot-cxx
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +libstdcpp
|
|
TITLE+= (C++ bindings)
|
|
endef
|
|
|
|
define Package/plplot-cxx/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot C++ bindings.
|
|
endef
|
|
|
|
define Package/plplot-qt
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +qt4 +qt4-gui
|
|
TITLE+= (Qt bindings&device)
|
|
endef
|
|
|
|
define Package/plplot-qt/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot Qt visualization driver and Qt bindings.
|
|
endef
|
|
|
|
define Package/plplot-linuxvga
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +svgalib
|
|
TITLE+= (svgalib driver)
|
|
endef
|
|
|
|
define Package/plplot-linuxvga/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the SVGAlib based visualization driver for PLplot.
|
|
endef
|
|
|
|
define Package/plplot-tcl
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +tcl
|
|
TITLE+= (Tcl bindings)
|
|
endef
|
|
|
|
define Package/plplot-tcl/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot bindings for Tcl
|
|
endef
|
|
|
|
define Package/plplot-lua
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +liblua
|
|
TITLE+= (Lua bindings)
|
|
endef
|
|
|
|
define Package/plplot-lua/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot bindings for Lua
|
|
endef
|
|
|
|
define Package/plplot-python
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +python
|
|
TITLE+= (!BROKEN! Python bindings)
|
|
endef
|
|
|
|
define Package/plplot-python/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot bindings for Python.
|
|
Note that this needs either the Pythnon-Numpy or Python-Numeric library
|
|
to work. Both haven\'t been ported yet, so plplot-python is
|
|
disfunctional!
|
|
endef
|
|
|
|
define Package/plplot-octave
|
|
$(call Package/plplot/Default)
|
|
DEPENDS:= +plplot +octave
|
|
TITLE+= (Octave bindings)
|
|
endef
|
|
|
|
define Package/plplot-octave/description
|
|
$(call Package/plplot/Default/description)
|
|
This package contains the Plplot bindings for GNU Octave
|
|
endef
|
|
|
|
TARGET_CFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
|
|
|
|
CMAKE_FLAGS := \
|
|
-Wdev \
|
|
-DCMAKE_INSTALL_PREFIX=/usr \
|
|
-DCMAKE_TOOLCHAIN_FILE=$(PKG_BUILD_DIR)/toolchain.cmake \
|
|
-DPKG_CONFIG_EXECUTABLE=$(STAGING_DIR_HOST)/bin/pkg-config \
|
|
-DSWIG_EXECUTABLE=$(STAGING_DIR_HOST)/bin/swig \
|
|
-DDEFAULT_NO_DEVICES=ON \
|
|
-DUSE_RPATH=OFF \
|
|
-DPLD_ps=ON \
|
|
-DPLD_svg=ON \
|
|
-DPLD_mem=ON \
|
|
-DPLD_null=ON \
|
|
-DDEFAULT_NO_BINDINGS=ON \
|
|
-DNaNAwareCCompiler=ON \
|
|
-DCMAKE_USE_NAMESPACE=ON \
|
|
-DCMAKE_NATIVE_BINARY_DIR=$(STAGING_DIR_HOST)/lib/$(PKG_NAME)-$(PKG_VERSION)/build_dir
|
|
|
|
# everything done under unstall target!
|
|
ifdef CONFIG_PACKAGE_plplot-demo
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-cxx
|
|
CMAKE_FLAGS += -DENABLE_cxx=ON
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-qt
|
|
CMAKE_FLAGS += \
|
|
-DPLD_qtwidget=ON \
|
|
-DPLD_extqt=ON \
|
|
-DENABLE_qt=ON \
|
|
-DQT_QMAKE_EXECUTABLE=$(STAGING_DIR_HOST)/bin/qmake \
|
|
-DQT_MOC_EXECUTABLE=$(STAGING_DIR_HOST)/bin/moc \
|
|
-DQT_UIC_EXECUTABLE=$(STAGING_DIR_HOST)/bin/uic \
|
|
-DQT_RCC_EXECUTABLE=$(STAGING_DIR_HOST)/bin/rcc
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-linuxvga
|
|
CMAKE_FLAGS += \
|
|
-DPLD_linuxvga=ON
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-lua
|
|
CMAKE_FLAGS += -DENABLE_lua=ON
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-python
|
|
CMAKE_FLAGS += -DENABLE_python=ON
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-tcl
|
|
CMAKE_FLAGS += -DENABLE_tcl=ON
|
|
endif
|
|
|
|
ifdef CONFIG_PACKAGE_plplot-octave
|
|
CMAKE_FLAGS += \
|
|
-DENABLE_octave=ON \
|
|
-DMKOCTFILE=$(STAGING_DIR)/usr/bin/mkoctfile \
|
|
-DOCTAVE_OCT_DIR=/usr/lib/octave/site/oct/$(OPTIMIZE_FOR_CPU)-openwrt-linux-gnu \
|
|
-Dmassage_LOCATION=$(STAGING_DIR_HOST)/lib/$(PKG_NAME)-$(PKG_VERSION)/build_dir/bindings/octave/massage
|
|
endif
|
|
|
|
# $(if $(CONFIG_PACKAGE_libX11),FEATURE_XLOCK=y,FEATURE_XLOCK=n) \
|
|
|
|
define Build/Configure
|
|
echo "SET(CMAKE_SYSTEM_NAME Linux)" > $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_SYSTEM_VERSION 1)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_BUILD_TYPE None)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_C_COMPILER $(TARGET_CC:ccache=))" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_CXX_COMPILER $(TARGET_CC:ccache=))" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_C_FLAGS \"$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) $(TARGET_CFLAGS) $(EXTRA_CFLAGS)\" CACHE STRING \"\" FORCE)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_CXX_FLAGS \"$(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) $(TARGET_CFLAGS) $(EXTRA_CFLAGS)\" CACHE STRING \"\" FORCE)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_VERBOSE_MAKEFILE ON)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
|
|
# where is the target environment
|
|
echo "SET(CMAKE_FIND_ROOT_PATH $(STAGING_DIR))" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
# echo "SET(CMAKE_PREFIX_PATH /usr)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_LIBRARY_PATH $(STAGING_DIR)/usr/lib $(STAGING_DIR)/lib $(STAGING_DIR_ROOT)/lib)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_SKIP_BUILD_RPATH ON)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
# echo "SET(CMAKE_INSTALL_RPATH /usr/lib;/lib)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
|
|
echo "SET(CMAKE_INCLUDE_PATH /usr/include)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_SYSTEM_INCLUDE_PATH /include)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
# search for programs in the build host directories
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_PROGRAM_PATH $(STAGING_DIR_HOST)/bin $(STAGING_DIR)/usr/bin)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
|
|
# for libraries and headers in the target directories
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
echo "SET(PL_USE_NAMESPACE 1)" >> $(PKG_BUILD_DIR)/toolchain.cmake
|
|
|
|
cd $(PKG_BUILD_DIR) && cmake $(CMAKE_FLAGS)
|
|
endef
|
|
|
|
define Build/Compile
|
|
$(call Build/Compile/Default, VERBOSE=1 -j4)
|
|
endef
|
|
|
|
|
|
define Build/Install
|
|
$(call Build/Install/Default)
|
|
# $(INSTALL_DATA) ./files/... $(PKG_INSTALL_DIR)/usr/share/plplot/
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include/plplot
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/plplot/*.h \
|
|
$(1)/usr/include/plplot/
|
|
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* \
|
|
$(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \
|
|
$(1)/usr/lib/pkgconfig/
|
|
# $(SED) 's,-I$$$${includedir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc
|
|
# $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/plplotd.pc
|
|
endef
|
|
|
|
define Package/plplot/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{plplotd,csirocsa,qsastime}.so* \
|
|
$(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/plplot$(PKG_VERSION)/driversd
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/plplot$(PKG_VERSION)/driversd/{mem,null,ps,svg}.{so,rc} \
|
|
$(1)/usr/lib/plplot$(PKG_VERSION)/driversd/
|
|
$(INSTALL_DIR) $(1)/usr/share/plplot$(PKG_VERSION)
|
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/*.{map,pal,fnt} \
|
|
$(1)/usr/share/plplot$(PKG_VERSION)/
|
|
endef
|
|
|
|
# ugly, but necessary: compiling demo-programs on install, using the just
|
|
# installed libs.
|
|
define Package/plplot-demo/install
|
|
$(SED) 's;/usr/lib/pkgconfig;$(STAGING_DIR)/usr/lib/pkgconfig;g' \
|
|
$(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/examples/c/Makefile
|
|
$(MAKE) -C $(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/examples/c/ \
|
|
C_INCLUDE_PATH=$(STAGING_DIR)/usr/include/plplot \
|
|
CC="$(TARGET_CC) $(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CFLAGS) $(TARGET_LDFLAGS)"\
|
|
RPATHCMD=
|
|
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/examples/c/x??c \
|
|
$(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/plplot-cxx/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libplplotcxxd.so* \
|
|
$(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/plplot-qt/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libplplotqtd.so* \
|
|
$(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/plplot$(PKG_VERSION)/driversd
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/plplot$(PKG_VERSION)/driversd/qt.{so,rc} \
|
|
$(1)/usr/lib/plplot$(PKG_VERSION)/driversd/
|
|
endef
|
|
|
|
define Package/plplot-linuxvga/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_DIR) $(1)/usr/lib/plplot$(PKG_VERSION)/driversd
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/plplot$(PKG_VERSION)/driversd/linuxvga.{so,rc} \
|
|
$(1)/usr/lib/plplot$(PKG_VERSION)/driversd/
|
|
endef
|
|
|
|
define Package/plplot-tcl/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libplplottcltkd.so* \
|
|
$(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libtclmatrixd.so* \
|
|
$(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/share/plplot$(PKG_VERSION)/tcl
|
|
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/pkgIndex.tcl \
|
|
$(1)/usr/share/plplot$(PKG_VERSION)/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/plplot$(PKG_VERSION)/tcl/*\
|
|
$(1)/usr/share/plplot$(PKG_VERSION)/tcl/
|
|
endef
|
|
|
|
define Package/plplot-lua/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/lua
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/lua/*/plplot/plplotluac.so $(1)/usr/lib/lua/
|
|
endef
|
|
|
|
define Package/plplot-python/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/python
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/python/*/plplot/*.so* $(1)/usr/lib/python/
|
|
endef
|
|
|
|
define Package/plplot-octave/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/octave \
|
|
$(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/share
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/share/{octave,plplot_octave} \
|
|
$(1)/usr/share/
|
|
endef
|
|
|
|
# define Package/plplot-data/install
|
|
# $(INSTALL_DIR) $(1)/
|
|
# (cd $(PKG_INSTALL_DIR)/ && tar -cf - usr/share) \
|
|
# | (cd $(1)/ && tar -xvf -)
|
|
# endef
|
|
|
|
$(eval $(call HostBuild))
|
|
$(eval $(call BuildPackage,plplot))
|
|
$(eval $(call BuildPackage,plplot-demo))
|
|
$(eval $(call BuildPackage,plplot-cxx))
|
|
$(eval $(call BuildPackage,plplot-qt))
|
|
$(eval $(call BuildPackage,plplot-linuxvga))
|
|
$(eval $(call BuildPackage,plplot-tcl))
|
|
$(eval $(call BuildPackage,plplot-lua))
|
|
$(eval $(call BuildPackage,plplot-python))
|
|
$(eval $(call BuildPackage,plplot-octave))
|
|
|
|
|
|
# The following comments configure the Emacs editor. Just ignore them.
|
|
# Local Variables:
|
|
# compile-command: "make -C ~/h/src/qi/openwrt-xburst package/plplot/compile -j2 V=99"
|
|
# End:
|