tachyon: Add support for jpeg, png, more platforms

This commit is contained in:
Timo Kaufmann 2018-03-30 14:21:15 +02:00
parent c78c764547
commit c7acd93254
4 changed files with 144 additions and 7 deletions

View File

@ -1,4 +1,17 @@
{stdenv, fetchurl}: { stdenv
, fetchurl
, fetchpatch
, Carbon ? null
, libjpeg ? null
, libpng ? null
, withJpegSupport ? true # support jpeg output
, withPngSupport ? true # support png output
}:
assert withJpegSupport -> libjpeg != null;
assert withPngSupport -> libpng != null;
assert stdenv.isDarwin -> Carbon != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tachyon-${version}"; name = "tachyon-${version}";
version = "0.99b2"; version = "0.99b2";
@ -6,12 +19,39 @@ stdenv.mkDerivation rec {
url = "http://jedi.ks.uiuc.edu/~johns/tachyon/files/${version}/${name}.tar.gz"; url = "http://jedi.ks.uiuc.edu/~johns/tachyon/files/${version}/${name}.tar.gz";
sha256 = "04m0bniszyg7ryknj8laj3rl5sspacw5nr45x59j2swcsxmdvn1v"; sha256 = "04m0bniszyg7ryknj8laj3rl5sspacw5nr45x59j2swcsxmdvn1v";
}; };
buildInputs = []; buildInputs = stdenv.lib.optionals stdenv.isDarwin [
preBuild = "cd unix"; Carbon
arch = if stdenv.system == "x86_64-linux" then "linux-64-thr" else ] ++ stdenv.lib.optionals withJpegSupport [
if stdenv.system == "i686-linux" then "linux-thr" else libjpeg
] ++ stdenv.lib.optionals withPngSupport [
libpng
];
preBuild = ''
cd unix
'' + stdenv.lib.optionalString withJpegSupport ''
export USEJPEG=" -DUSEJPEG"
export JPEGLIB=" -ljpeg"
'' + stdenv.lib.optionalString withPngSupport ''
export USEPNG=" -DUSEPNG"
export PNGLIB=" -lpng -lz"
'';
arch = if stdenv.system == "x86_64-linux" then "linux-64-thr" else
if stdenv.system == "i686-linux" then "linux-thr" else
if stdenv.system == "aarch64-linux" then "linux-arm-thr" else
if stdenv.system == "x86_64-darwin" then "macosx-thr" else
if stdenv.system == "i686-darwin" then "macosx-64-thr" else
if stdenv.system == "i686-cygwin" then "win32" else
if stdenv.system == "x86_64-freebsd" then "bsd" else
if stdenv.system == "x686-freebsd" then "bsd" else
throw "Don't know what arch to select for tachyon build"; throw "Don't know what arch to select for tachyon build";
makeFlags = "${arch}"; makeFlags = "${arch}";
patches = [
# Remove absolute paths in Make-config (and unset variables so they can be set in preBuild)
./no-absolute-paths.patch
# Include new targets (like arm)
./make-archs.patch
];
installPhase = '' installPhase = ''
cd ../compile/${arch} cd ../compile/${arch}
mkdir -p "$out"/{bin,lib,include,share/doc/tachyon,share/tachyon} mkdir -p "$out"/{bin,lib,include,share/doc/tachyon,share/tachyon}
@ -26,7 +66,8 @@ stdenv.mkDerivation rec {
description = ''A Parallel / Multiprocessor Ray Tracing System''; description = ''A Parallel / Multiprocessor Ray Tracing System'';
license = stdenv.lib.licenses.bsd3; license = stdenv.lib.licenses.bsd3;
maintainers = [stdenv.lib.maintainers.raskin]; maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux; # darwin fails due to missing Carbon.h, even though Carbon is a build input
platforms = with stdenv.lib.platforms; linux ++ cygwin;
homepage = http://jedi.ks.uiuc.edu/~johns/tachyon/; homepage = http://jedi.ks.uiuc.edu/~johns/tachyon/;
}; };
} }

View File

@ -0,0 +1,37 @@
diff --git a/unix/Make-arch b/unix/Make-arch
index 08afb85..dbeb691 100644
--- a/unix/Make-arch
+++ b/unix/Make-arch
@@ -920,6 +920,15 @@ macosx:
"RANLIB = ranlib" \
"LIBS = -L. -ltachyon $(MISCLIB)"
+macosx-64:
+ $(MAKE) all \
+ "ARCH = macosx" \
+ "CFLAGS = -Os -m64 -ffast-math -DBsd $(MISCFLAGS)" \
+ "ARFLAGS = r" \
+ "STRIP = strip" \
+ "RANLIB = ranlib" \
+ "LIBS = -L. -ltachyon $(MISCLIB)"
+
macosx-thr:
$(MAKE) all \
"ARCH = macosx-thr" \
@@ -1209,6 +1218,16 @@ linux-thr:
"RANLIB = ranlib" \
"LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
+# Linux Arm using gcc, with threads
+linux-arm-thr:
+ $(MAKE) all \
+ "ARCH = linux-arm-thr" \
+ "CFLAGS = -Wall -O3 -fomit-frame-pointer -ffast-math -DLinux -DTHR -D_REENTRANT $(MISCFLAGS)" \
+ "ARFLAGS = r" \
+ "STRIP = strip" \
+ "RANLIB = ranlib" \
+ "LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
+
# Linux x86 using gcc, threads, and OpenGL
linux-thr-ogl:
$(MAKE) all \

View File

@ -0,0 +1,57 @@
diff --git a/unix/Make-config b/unix/Make-config
index ee4f388..c1d51d4 100644
--- a/unix/Make-config
+++ b/unix/Make-config
@@ -18,7 +18,7 @@
# Bourne Shell Configuration:
# set SHELL=/bin/sh or wherever your bourne shell is
##########################################################################
-SHELL=/bin/sh
+# SHELL=/bin/sh
@@ -30,7 +30,7 @@ SHELL=/bin/sh
# The following line should be set to -Ixxx where xxx is your X11 include path
# Sun puts X11 in /usr/openwin/xxx
-X11INC= -I/usr/openwin/include
+# X11INC= -I/usr/openwin/include
# Others typically use /usr/X11 or /usr/X11R6
#X11INC= -I/usr/X11
@@ -57,7 +57,7 @@ X11LIB= -lX11
##########################################################################
# Standard MPICH installation location
-MPIDIR=/usr/local/mpi
+# MPIDIR=/usr/local/mpi
# UMR CS Dept
#MPIDIR=/software/all/mpi
@@ -108,9 +108,9 @@ MBOX=
# http://www.ijg.org/files/
##########################################################################
# Uncomment the following lines to disable JPEG support
-USEJPEG=
-JPEGINC=
-JPEGLIB=
+# USEJPEG=
+# JPEGINC=
+# JPEGLIB=
# Uncomment the following lines to enable JPEG support
#USEJPEG= -DUSEJPEG
@@ -128,9 +128,9 @@ JPEGLIB=
# http://www.libpng.org/
##########################################################################
# Uncomment the following lines to disable PNG support
-USEPNG=
-PNGINC=
-PNGLIB=
+# USEPNG=
+# PNGINC=
+# PNGLIB=
# Uncomment the following lines to enable PNG support
#USEPNG= -DUSEPNG

View File

@ -11569,7 +11569,9 @@ with pkgs;
t1lib = callPackage ../development/libraries/t1lib { }; t1lib = callPackage ../development/libraries/t1lib { };
tachyon = callPackage ../development/libraries/tachyon {}; tachyon = callPackage ../development/libraries/tachyon {
inherit (darwin.apple_sdk.frameworks) Carbon;
};
taglib = callPackage ../development/libraries/taglib { }; taglib = callPackage ../development/libraries/taglib { };
taglib_1_9 = callPackage ../development/libraries/taglib/1.9.nix { }; taglib_1_9 = callPackage ../development/libraries/taglib/1.9.nix { };