lock: 1.3.0 -> 1.3.4 (#364295)
[NixPkgs.git] / pkgs / by-name / as / asl / package.nix
blob2c545e04fdd99457f6cd2cf2ca3a161b1e2422cb
2   lib,
3   stdenv,
4   fetchzip,
5   texliveMedium,
6   buildDocs ? false,
7 }:
9 stdenv.mkDerivation (finalAttrs: {
10   pname = "asl";
11   version = "142-bld232";
13   src =
14     let
15       inherit (finalAttrs) pname version;
16     in
17     fetchzip {
18       name = "${pname}-${version}";
19       url = "http://john.ccac.rwth-aachen.de:8000/ftp/as/source/c_version/asl-current-${version}.tar.bz2";
20       hash = "sha256-Q50GzXBxFMhbt5s9OgHPNH4bdqz2hhEmTnMmKowVn2E=";
21     };
23   outputs = [
24     "out"
25     "doc"
26     "man"
27   ];
29   nativeBuildInputs = lib.optionals buildDocs [ texliveMedium ];
31   postPatch =
32     lib.optionalString (!buildDocs) ''
33       substituteInPlace Makefile --replace "all: binaries docs" "all: binaries"
34     ''
35     + lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
36       substituteInPlace sysdefs.h --replace "x86_64" "aarch64"
37     '';
39   dontConfigure = true;
41   preBuild = ''
42     bindir="${placeholder "out"}/bin" \
43     docdir="${placeholder "doc"}/share/doc/asl" \
44     incdir="${placeholder "out"}/include/asl" \
45     libdir="${placeholder "out"}/lib/asl" \
46     mandir="${placeholder "man"}/share/man" \
47     substituteAll ${./Makefile-nixos.def} Makefile.def
48     mkdir -p .objdir
49   '';
51   meta = with lib; {
52     homepage = "http://john.ccac.rwth-aachen.de:8000/as/index.html";
53     description = "Portable macro cross assembler";
54     longDescription = ''
55       AS is a portable macro cross assembler for a variety of microprocessors
56       and -controllers. Though it is mainly targeted at embedded processors and
57       single-board computers, you also find CPU families in the target list that
58       are used in workstations and PCs.
59     '';
60     license = licenses.gpl2Plus;
61     maintainers = with maintainers; [ AndersonTorres ];
62     platforms = platforms.unix;
63   };
65 # TODO: cross-compilation support
66 # TODO: customize TeX input
67 # TODO: report upstream about `mkdir -p .objdir/`
68 # TODO: suggest upstream about building docs as an option