nixpkgs/pkgs/development/interpreters/racket/default.nix

98 lines
2.6 KiB
Nix
Raw Normal View History

2015-01-24 16:02:23 +00:00
{ stdenv, fetchurl, makeFontsConf, makeWrapper
, cairo, coreutils, fontconfig, freefont_ttf
2017-03-07 20:08:02 +00:00
, glib, gmp, gtk2, libedit, libffi, libjpeg
, libpng, libtool, mpfr, openssl, pango, poppler
2015-01-24 16:02:23 +00:00
, readline, sqlite
2017-11-12 09:12:29 +00:00
, disableDocs ? false
, CoreFoundation
2015-01-24 16:02:23 +00:00
}:
let
fontsConf = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
libPath = stdenv.lib.makeLibraryPath [
cairo
fontconfig
glib
gmp
gtk2
2017-03-07 20:08:02 +00:00
libedit
2015-01-24 16:02:23 +00:00
libjpeg
libpng
mpfr
openssl
pango
poppler
readline
sqlite
];
in
stdenv.mkDerivation rec {
2015-01-24 16:02:23 +00:00
name = "racket-${version}";
2018-01-28 20:32:24 +00:00
version = "6.12";
src = (stdenv.lib.makeOverridable ({ name, sha256 }:
fetchurl rec {
url = "https://mirror.racket-lang.org/installers/${version}/${name}-src.tgz";
inherit sha256;
}
)) {
inherit name;
2018-01-28 20:32:24 +00:00
sha256 = "0cwcypzjfl9py1s695mhqkiapff7c1w29llsmdj7qgn58wl0apk5";
};
2015-01-24 16:02:23 +00:00
FONTCONFIG_FILE = fontsConf;
LD_LIBRARY_PATH = libPath;
NIX_LDFLAGS = stdenv.lib.concatStringsSep " " [
(stdenv.lib.optionalString (stdenv.cc.isGNU && ! stdenv.isDarwin) "-lgcc_s")
(stdenv.lib.optionalString stdenv.isDarwin "-framework CoreFoundation")
];
buildInputs = [ fontconfig libffi libtool makeWrapper sqlite ]
++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation ];
preConfigure = ''
2017-08-26 20:12:07 +01:00
unset AR
2015-01-24 16:02:23 +00:00
substituteInPlace src/configure --replace /usr/bin/uname ${coreutils}/bin/uname
mkdir src/build
cd src/build
'';
2017-08-26 20:12:07 +01:00
shared = if stdenv.isDarwin then "dylib" else "shared";
configureFlags = [ "--enable-${shared}" "--enable-lt=${libtool}/bin/libtool" ]
2016-01-22 22:08:30 +00:00
++ stdenv.lib.optional disableDocs [ "--disable-docs" ]
++ stdenv.lib.optional stdenv.isDarwin [ "--enable-xonx" ];
2015-01-24 16:02:23 +00:00
configureScript = "../configure";
enableParallelBuilding = false;
2013-12-10 21:37:35 +00:00
postInstall = ''
for p in $(ls $out/bin/) ; do
2015-01-24 16:02:23 +00:00
wrapProgram $out/bin/$p --set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}";
done
'';
2015-01-24 16:02:23 +00:00
meta = with stdenv.lib; {
2014-11-13 19:29:44 +00:00
description = "A programmable programming language";
longDescription = ''
2014-11-13 19:29:44 +00:00
Racket is a full-spectrum programming language. It goes beyond
Lisp and Scheme with dialects that support objects, types,
laziness, and more. Racket enables programmers to link
components written in different dialects, and it empowers
programmers to create new, project-specific dialects. Racket's
libraries support applications from web servers and databases to
GUIs and charts.
'';
homepage = http://racket-lang.org/;
2015-01-24 16:02:23 +00:00
license = licenses.lgpl3;
2016-07-25 05:03:35 +01:00
maintainers = with maintainers; [ kkallio henrytill vrthra ];
platforms = [ "x86_64-linux" ];
};
}