summary refs log blame commit diff
path: root/pkgs/misc/jackaudio/default.nix
blob: 5a302adc60d5ec16c13f6d882d10af57d7930a94 (plain) (tree)
1
2
3
4
                                                                             

                                        
                                                                    













                                                                                                           
 

                                                                                                                                    
 


                                                                                                                                                                         
 























                                                                                                                          





                                                               
 
# Perhaps we can get some ideas from here ? http://gentoo-wiki.com/HOWTO_Jack
# still much to test but it compiles now
args:
let inherit (args.composableDerivation) composableDerivation edf; in
composableDerivation {} {
  buildInputs = [ args.pkgconfig ];
  flags =
      # FIXME: tidy up
       edf { name = "posix-shm"; } #use POSIX shm API
    // edf { name = "timestamps"; }                      # allow clients to use the JACK timestamp API
    // edf { name = "capabilities"; }                   #use libcap to gain realtime scheduling priviledges
    // edf { name = "oldtrans"; }                      #remove old transport interfaces
    // edf { name = "stripped-jackd"; }                 #strip jack before computing its md5 sum
    // edf { name = "portaudio"; }                     #ignore PortAudio driver
    // edf { name = "coreaudio"; }                     #ignore CoreAudio driver
    // edf { name = "oss"; }                           #ignore OSS driver
    // edf { name = "freebob"; }                       #ignore FreeBob driver
    // edf { name = "alsa"; enable = { buildInputs=[args.alsaLib]; }; };

    # altivec seems to be for mac only ?
    #  altivec =           { configureFlags = ["--enable-altivec"]; };                        #enable Altivec support (default=auto)

    # keeping default values by now:
    # optimization_by_compiler = { configureFlags = ["--enable-optimization-by-compiler"]; }; [>use compiler (NOT processor) capabilities to determine optimization flags
    # optimization_by_cpu = { configureFlags = ["--enable-optimization-by-cpu"]; };          [>use processor capabilities to determine optimization flags

    # I think the default is ok
    # mmx =              edf { name = "mmx"; };                           #enable MMX support (default=auto)
    #sse =               edf { name = "sse"; };                            #enable SSE support (default=auto)
    #dynsimd =           edf { name = "dynsimd"; };                        #enable dynamic SIMD selection (default=no)
    #optimize =          edf { name = "optimize"; };                       #ask the compiler for its best optimizations
    #resize =            edf { name = "resize"; };                         #enable buffer resizing feature
    #ensure_mlock =      edf { name = "ensure-mlock"; };                   #fail if unable to lock memory
    #debug =             edf { name = "debug"; };                          #enable debugging messages in jackd and libjack
    #preemption_check =  edf { name = "preemption-check"; };               #
  cfg = {
    posix_shmSupport = true;
    timestampsSupport = true;
    alsaSupport = true;
  };
  name = "jack-0.103.0";
  src = args.fetchurl {
    url = "mirror://sourceforge/jackit/jack-audio-connection-kit-0.109.2.tar.gz";
    sha256 = "1m5z8dzalqspsa63pkcgyns0cvh0kqwhb9g1ivcwvnz0bc7ag9r7";
  };
  meta = {
    description = "jack audio connection kit";
    homepage = "http://jackaudio.org";
    license = "GPL";
  };

  # make sure the jackaudio is found by symlinking lib64 to lib
  postInstall = ''
    ensureDir $out/lib
    ln -s $out/lib{64,}/pkgconfig
  '';
}