The alias pkgconfig has been removed. Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es>
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ stdenv, lib, fetchurl, pkg-config, expat, ncurses
 | 
						|
, pciutils, numactl }:
 | 
						|
 | 
						|
with lib;
 | 
						|
 | 
						|
stdenv.mkDerivation rec {
 | 
						|
  name = "hwloc-1.11.6";
 | 
						|
 | 
						|
  src = fetchurl {
 | 
						|
    url = "http://www.open-mpi.org/software/hwloc/v1.11/downloads/${name}.tar.bz2";
 | 
						|
    sha256 = "1yl7dm2qplwmnidd712zy12qfvxk28k8ccs694n42ybwdjwzg1bn";
 | 
						|
  };
 | 
						|
 | 
						|
  nativeBuildInputs = [ pkg-config ];
 | 
						|
 | 
						|
  # Filter out `null' inputs.  This allows users to `.override' the
 | 
						|
  # derivation and set optional dependencies to `null'.
 | 
						|
  buildInputs = filter (x: x != null)
 | 
						|
   ([ expat ncurses ]
 | 
						|
     ++  (optionals stdenv.isLinux [ numactl ]));
 | 
						|
 | 
						|
  propagatedBuildInputs =
 | 
						|
    # Since `libpci' appears in `hwloc.pc', it must be propagated.
 | 
						|
    optional stdenv.isLinux pciutils;
 | 
						|
 | 
						|
  enableParallelBuilding = true;
 | 
						|
 | 
						|
  postInstall =
 | 
						|
    optionalString (stdenv.isLinux && numactl != null)
 | 
						|
      '' if [ -d "${numactl}/lib64" ]
 | 
						|
         then
 | 
						|
             numalibdir="${numactl}/lib64"
 | 
						|
         else
 | 
						|
             numalibdir="${numactl}/lib"
 | 
						|
             test -d "$numalibdir"
 | 
						|
         fi
 | 
						|
 | 
						|
         sed -i "$out/lib/libhwloc.la" \
 | 
						|
             -e "s|-lnuma|-L$numalibdir -lnuma|g"
 | 
						|
      '';
 | 
						|
 | 
						|
  # Checks disabled because they're impure (hardware dependent) and
 | 
						|
  # fail on some build machines.
 | 
						|
  doCheck = false;
 | 
						|
 | 
						|
  meta = {
 | 
						|
    description = "Portable abstraction of hierarchical architectures for high-performance computing";
 | 
						|
    longDescription = ''
 | 
						|
       hwloc provides a portable abstraction (across OS,
 | 
						|
       versions, architectures, ...) of the hierarchical topology of
 | 
						|
       modern architectures, including NUMA memory nodes, sockets,
 | 
						|
       shared caches, cores and simultaneous multithreading.  It also
 | 
						|
       gathers various attributes such as cache and memory
 | 
						|
       information.  It primarily aims at helping high-performance
 | 
						|
       computing applications with gathering information about the
 | 
						|
       hardware so as to exploit it accordingly and efficiently.
 | 
						|
 | 
						|
       hwloc may display the topology in multiple convenient
 | 
						|
       formats.  It also offers a powerful programming interface to
 | 
						|
       gather information about the hardware, bind processes, and much
 | 
						|
       more.
 | 
						|
    '';
 | 
						|
 | 
						|
    # http://www.open-mpi.org/projects/hwloc/license.php
 | 
						|
    license = licenses.bsd3;
 | 
						|
    homepage = http://www.open-mpi.org/projects/hwloc/;
 | 
						|
    maintainers = [ ];
 | 
						|
    platforms = platforms.all;
 | 
						|
  };
 | 
						|
}
 |