nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchurl,
5 SDL,
6 curl,
7 openssl,
8}:
9
10stdenv.mkDerivation (finalAttrs: {
11 pname = "tinyemu";
12 version = "2019-12-21";
13
14 src = fetchurl {
15 url = "https://bellard.org/tinyemu/tinyemu-${finalAttrs.version}.tar.gz";
16 hash = "sha256-voNR8hIYGbMXL87c5csYJvoSyH2ht+2Y8mnT6AKgVVU=";
17 };
18
19 postPatch = ''
20 substituteInPlace fs_wget.c \
21 --replace-fail '#include <curl/multi.h>' '#include <curl/curl.h>'
22 '';
23
24 nativeBuildInputs = [ SDL ];
25
26 buildInputs = [
27 SDL
28 curl
29 openssl
30 ];
31
32 strictDeps = true;
33
34 makeFlags = [
35 "CC:=$(CC)"
36 "STRIP:=$(STRIP)"
37 "bindir=$(out)/bin"
38 ];
39
40 preInstall = ''
41 mkdir -p "$out/bin"
42 '';
43
44 meta = {
45 homepage = "https://bellard.org/tinyemu/";
46 description = "System emulator for the RISC-V and x86 architectures";
47 longDescription = ''
48 TinyEMU is a system emulator for the RISC-V and x86 architectures. Its
49 purpose is to be small and simple while being complete.
50
51 Main features:
52
53 - RISC-V system emulator supporting the RV128IMAFDQC base ISA (user level
54 ISA version 2.2, priviledged architecture version 1.10) including:
55 - 32/64/128 bit integer registers
56 - 32/64/128 bit floating point instructions (using the SoftFP Library)
57 - Compressed instructions
58 - Dynamic XLEN change
59 - x86 system emulator based on KVM
60 - VirtIO console, network, block device, input and 9P filesystem
61 - Graphical display with SDL
62 - JSON configuration file
63 - Remote HTTP block device and filesystem
64 - Small code, easy to modify, few external dependancies
65 - Javascript version running Linux and Windows 2000.
66 '';
67 license = with lib.licenses; [
68 mit
69 bsd2
70 ];
71 maintainers = [ ];
72 platforms = lib.platforms.unix;
73 broken = stdenv.hostPlatform.isDarwin;
74 };
75})