# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 # $Id: Portfile 135847 2015-05-05 15:06:12Z michaelld@macports.org $ PortSystem 1.0 PortGroup cmake 1.0 PortGroup github 1.0 PortGroup muniversal 1.0 PortGroup compiler_blacklist_versions 1.0 github.setup gnuradio volk 83b0994162f512a40fd34dd435e68837b0e224fa version 20150504 checksums rmd160 be648b9f5f213dc6b4d6d573b9ab429ea1be0a62 \ sha256 476d88d3ef7a8db7686945c118909a9af0056ae323fa01259df4bcbd84f304cb # gnuradio legacy still provides volk conflicts gnuradio-legacy categories science comms maintainers michaelld openmaintainer description Vector-Optimized Library of Kernels long_description ${description} license GPL-3 platforms darwin # override githib PortGroup homepage setting homepage http://libvolk.org/ depends_build-append port:pkgconfig depends_lib-append port:boost # blacklist GCC < 4.3, since it does not provide , which is a # required header when compiling using GCC as of 4c967ef1 (2015-05-04). compiler.blacklist-append {*gcc-3*} {*gcc-4.[0-2]} # do VPATH (out of source tree) build cmake.out_of_source yes # remove top-level library path, such that internal libraries are used # instead of any already-installed ones. configure.ldflags-delete -L${prefix}/lib # specify the Python dependencies; these are checked for at configure, # then used for building, but not at runtime. depends_build-append \ port:python27 \ port:py27-cheetah # override default version string to be MacPorts-specific # git / "devel" only for now set VOLK_VERSION_INFO "git-[string range ${github.version} 0 7](${version})" configure.args-append \ -DVOLK_GIT_COUNT="MacPorts" \ -DVOLK_GIT_HASH="${VOLK_VERSION_INFO}" # install CMake files into this directory configure.args-append \ -DCMAKE_MODULES_DIR=${prefix}/share/cmake # specify the Python version to use configure.args-append \ -DPYTHON_EXECUTABLE=${prefix}/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 \ -DVOLK_PYTHON_DIR=${frameworks_dir}/Python.framework/Versions/2.7/lib/python2.7/site-packages default_variants +docs +orc variant docs description "Install Volk documentation" { depends_build-append \ port:doxygen configure.args-append \ -DDOXYGEN_EXECUTABLE=${prefix}/bin/doxygen } if {![variant_isset docs]} { configure.args-append \ -DDOXYGEN_EXECUTABLE= } variant orc description "Install Volk with support for ORC" { depends_lib-append \ port:orc configure.args-append \ -DORCC_EXECUTABLE=${prefix}/bin/orcc \ -DORC_INCLUDE_DIR=${prefix}/include/orc-0.4 \ -DORC_LIBRARY_DIR=${prefix}/lib } if {![variant_isset orc]} { configure.args-append \ -DORCC_EXECUTABLE= \ -DORC_INCLUDE_DIR= \ -DORC_LIBRARY_DIR= } variant cxx11 description "Compile Volk using C++11 compliance" { # require C++11 configure.cxxflags-append -std=c++11 if {${configure.cxx_stdlib} eq "libstdc++"} { # *clang* when using libstdc++ do not seem to support C++11; # C++11 support seems to need GCC 4.7+ when using libstdc++; # could use C++0x support on GCC4.[56], but just ignore it since # there are newer compilers already in place as defaults. # Blacklist GCC compilers not supporting C++11 and all CLANG. # This is probably not necessary, but it's good practice. # GCC 3* and 4.[0-2] are already blacklisted above. compiler.blacklist-append *clang* {*gcc-4.[3-6]} # and whitelist those we do want to use. wish there were a better way. # these will be used in the order provided. compiler.whitelist macports-gcc-4.9 macports-gcc-4.8 macports-gcc-4.7 } else { # using libc++; # Blacklist Clang not supporting C++11 in some form and all GCC. compiler.blacklist-append *gcc* {clang < 500} } } pre-extract { # tell the user to force deactivate gnuradio-(devel,next) if one # is active and version is before Volk was split off (20150329 for # devel and next). gnuradio 3.7.6.2+ provides this split, too (as # of 2015-04-12). set not_found [catch {set installed [lindex [registry_active gnuradio-devel] 0]}] if {${not_found}} { set not_found [catch {set installed [lindex [registry_active gnuradio-next] 0]}] } if {${not_found}} { set not_found [catch {set installed [lindex [registry_active gnuradio] 0]}] } if (!${not_found}) { set _portname [lindex ${installed} 0] set _version [lindex ${installed} 1] if {${_portname} eq "gnuradio"} { set _vcmp [vercmp ${_version} 3.7.6.2] } else { set _vcmp [vercmp ${_version} 20150329] } if {${_vcmp} < 0} { ui_msg "\nVolk is currently installed by the port '${_portname}'." ui_msg "Use the command" ui_msg " sudo port -f deactivate ${_portname}" ui_msg "to deactivate the port owning volk, then proceed with" ui_msg " sudo port upgrade ${_portname}\n" return -code error "Port Needs Deactivation" } } }