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-c++" = import ./gcc-c++.nix args;
|
"gcc-c++" = import ./gcc-c++.nix args;
|
||||||
"gcc-d" = import ./gcc-d.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