1{
2 lib,
3 stdenv,
4 fetchurl,
5 unzip,
6}:
7
8stdenv.mkDerivation rec {
9 pname = "objconv";
10 version = "2.54.1";
11
12 src = fetchurl {
13 # Versioned archive of objconv sources maintained by orivej.
14 url = "https://archive.org/download/objconv/${pname}-${version}.zip";
15 sha256 = "sha256-DFyo+8fvHEr+PMfMkBhxGliFr6y+i868SAKNHskMzHw=";
16 };
17
18 nativeBuildInputs = [ unzip ];
19
20 outputs = [
21 "out"
22 "doc"
23 ];
24
25 unpackPhase = ''
26 mkdir -p "$name"
27 cd "$name"
28 unpackFile "$src"
29 unpackFile source.zip
30 '';
31
32 buildPhase = "c++ -o objconv -O2 *.cpp";
33
34 installPhase = ''
35 mkdir -p $out/bin $out/doc/objconv
36 mv objconv $out/bin
37 mv objconv-instructions.pdf $out/doc/objconv
38 '';
39
40 meta = with lib; {
41 description = "Object and executable file converter, modifier and disassembler";
42 mainProgram = "objconv";
43 homepage = "https://www.agner.org/optimize/";
44 license = licenses.gpl2;
45 maintainers = with maintainers; [ orivej ];
46 platforms = platforms.unix;
47 };
48}