add piston nix pkg for gcc-fortran
This commit is contained in:
parent
11882b2085
commit
3fac94b683
|
@ -1,26 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Put instructions to build your package in here
|
||||
[[ -d "bin" ]] && exit 0
|
||||
PREFIX=$(realpath $(dirname $0))
|
||||
|
||||
mkdir -p build obj
|
||||
|
||||
cd build
|
||||
|
||||
curl "https://ftp.gnu.org/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz" -o gcc.tar.gz
|
||||
|
||||
tar xzf gcc.tar.gz --strip-components=1
|
||||
|
||||
./contrib/download_prerequisites
|
||||
|
||||
cd ../obj
|
||||
|
||||
# === autoconf based ===
|
||||
../build/configure --prefix "$PREFIX" --enable-languages=c,c++,d,fortran --disable-multilib --disable-bootstrap
|
||||
|
||||
make -j$(nproc)
|
||||
make install -j$(nproc)
|
||||
cd ../
|
||||
rm -rf build obj
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Put instructions to compile source code, remove this file if the language does not require this stage
|
||||
|
||||
|
||||
case "${PISTON_LANGUAGE}" in
|
||||
c)
|
||||
rename 's/$/\.c/' "$@" # Add .c extension
|
||||
gcc -std=c11 *.c -lm
|
||||
;;
|
||||
c++)
|
||||
rename 's/$/\.cpp/' "$@" # Add .cpp extension
|
||||
g++ -std=c++17 *.cpp
|
||||
;;
|
||||
d)
|
||||
rename 's/.code$/\.d/' "$@" # Add .d extension
|
||||
gdc *.d
|
||||
;;
|
||||
fortran)
|
||||
rename 's/.code$/\.f90/' "$@" # Add .f90 extension
|
||||
gfortran *.f90
|
||||
;;
|
||||
*)
|
||||
echo "How did you get here? (${PISTON_LANGUAGE})"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
chmod +x a.out
|
|
@ -1,5 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Put 'export' statements here for environment variables
|
||||
export PATH=$PWD/bin:$PATH
|
||||
export LD_LIBRARY_PATH="$PWD/lib:$PWD/lib64" # Need this to properly link Fortran
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"language": "gcc",
|
||||
"version": "10.2.0",
|
||||
"provides": [
|
||||
{
|
||||
"language": "c",
|
||||
"aliases": ["gcc"]
|
||||
},
|
||||
{
|
||||
"language": "c++",
|
||||
"aliases": ["cpp", "g++"]
|
||||
},
|
||||
{
|
||||
"language": "d",
|
||||
"aliases": ["gdc"]
|
||||
},
|
||||
{
|
||||
"language": "fortran",
|
||||
"aliases": ["fortran", "f90"]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Put instructions to run the runtime
|
||||
|
||||
shift # Discard main filename
|
||||
./a.out "$@"
|
|
@ -1,6 +0,0 @@
|
|||
#include <stdio.h>
|
||||
|
||||
int main(void) {
|
||||
printf("OK");
|
||||
return 0;
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
#include <iostream>
|
||||
|
||||
int main(void) {
|
||||
printf("OK");
|
||||
return 0;
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
import std.stdio;
|
||||
|
||||
void main() {
|
||||
writeln("OK");
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
program test
|
||||
print "(a)", 'OK'
|
||||
end program test
|
|
@ -48,4 +48,5 @@ args: {
|
|||
"gcc-c" = import ./gcc-c.nix args;
|
||||
"gcc-c++" = import ./gcc-c++.nix args;
|
||||
"gcc-d" = import ./gcc-d.nix args;
|
||||
"gcc-fortran" = import ./gcc-fortran.nix args;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
{pkgs, piston, ...}:
|
||||
let
|
||||
pkg = pkgs.gfortran;
|
||||
in piston.mkRuntime {
|
||||
language = "fortran";
|
||||
version = pkg.version;
|
||||
runtime = "gcc";
|
||||
|
||||
aliases = [
|
||||
"gfortran"
|
||||
"f90"
|
||||
];
|
||||
|
||||
compile = ''
|
||||
rename 's/.code$/\.f90/' "$@" # Add .f90 extension
|
||||
${pkg}/bin/gfortran *.f90
|
||||
'';
|
||||
|
||||
run = ''
|
||||
shift
|
||||
./a.out "$@"
|
||||
'';
|
||||
|
||||
tests = [
|
||||
(piston.mkTest {
|
||||
files = {
|
||||
"test.f90" = ''
|
||||
program test
|
||||
print "(a)", 'OK'
|
||||
end program test
|
||||
'';
|
||||
};
|
||||
args = [];
|
||||
stdin = "";
|
||||
packages = [];
|
||||
main = "test.f90";
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue