aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix58
1 files changed, 58 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix b/infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix
new file mode 100644
index 000000000000..5233e248c074
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/compilers/fasmg/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, fetchzip
+}:
+
+stdenv.mkDerivation rec {
+ pname = "fasmg";
+ version = "j27m";
+
+ src = fetchzip {
+ url = "https://flatassembler.net/fasmg.${version}.zip";
+ sha256 = "0qmklb24n3r0my2risid8r61pi88gqrvm1c0xvyd0bp1ans6d7zd";
+ stripRoot = false;
+ };
+
+ buildPhase = let
+ inherit (stdenv.hostPlatform) system;
+
+ path = {
+ x86_64-linux = {
+ bin = "fasmg.x64";
+ asm = "source/linux/x64/fasmg.asm";
+ };
+ x86_64-darwin = {
+ bin = "source/macos/x64/fasmg";
+ asm = "source/macos/x64/fasmg.asm";
+ };
+ x86-linux = {
+ bin = "fasmg";
+ asm = "source/linux/fasmg.asm";
+ };
+ x86-darwin = {
+ bin = "source/macos/fasmg";
+ asm = "source/macos/fasmg.asm";
+ };
+ }.${system} or (throw "Unsopported system: ${system}");
+
+ in ''
+ chmod +x ${path.bin}
+ ./${path.bin} ${path.asm} fasmg
+ '';
+
+ outputs = [ "out" "doc" ];
+
+ installPhase = ''
+ install -Dm755 fasmg $out/bin/fasmg
+
+ mkdir -p $doc/share/doc/fasmg
+ cp docs/*.txt $doc/share/doc/fasmg
+ '';
+
+ meta = with stdenv.lib; {
+ description = "x86(-64) macro assembler to binary, MZ, PE, COFF, and ELF";
+ homepage = "https://flatassembler.net";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ orivej luc65r ];
+ platforms = with platforms; intersectLists (linux ++ darwin) x86;
+ };
+}