summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJaka Hudoklin <jakahudoklin@gmail.com>2014-04-01 01:37:10 +0200
committerJaka Hudoklin <jakahudoklin@gmail.com>2014-04-01 01:43:56 +0200
commitc3524a8dd6cb3cc03a65a486290b29f97ba469d0 (patch)
tree14930eeb14de1a5e2845de09d237911ea66a46d1 /pkgs
parent4eefc983a2d4e2d7ac2bbe7cf8bc393fa8da3aaa (diff)
downloadnixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar.gz
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar.bz2
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar.lz
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar.xz
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.tar.zst
nixpkgs-c3524a8dd6cb3cc03a65a486290b29f97ba469d0.zip
optipng: use system libpng & zlib, fix cross builds and add support for static builds
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/libraries/libpng/12.nix2
-rw-r--r--pkgs/tools/graphics/optipng/default.nix22
-rw-r--r--pkgs/top-level/all-packages.nix4
3 files changed, 26 insertions, 2 deletions
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index b7fad76acaa..7c9ef3d20b1 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
     passthru = {};
   };
 
+  configureFlags = "--enable-static";
+
   meta = {
     description = "The official reference implementation for the PNG file format";
     homepage = http://www.libpng.org/pub/png/libpng.html;
diff --git a/pkgs/tools/graphics/optipng/default.nix b/pkgs/tools/graphics/optipng/default.nix
index 1b2fc6dbb90..1984ab7b1de 100644
--- a/pkgs/tools/graphics/optipng/default.nix
+++ b/pkgs/tools/graphics/optipng/default.nix
@@ -1,7 +1,9 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, libpng, static ? false }:
 
 # This package comes with its own copy of zlib, libpng and pngxtern
 
+with stdenv.lib;
+
 stdenv.mkDerivation rec {
   name = "optipng-0.7.4";
 
@@ -10,6 +12,24 @@ stdenv.mkDerivation rec {
     sha256 = "1zrphbz17rhhfl1l95q5s979rrhifbwczl2xj1fdrnq5jid5s2sj";
   };
 
+  buildInputs = [ libpng ];
+
+  LDFLAGS = optional static "-static";
+  configureFlags = "--with-system-zlib --with-system-libpng";
+
+  crossAttrs = {
+    CC="${stdenv.cross.config}-gcc";
+    LD="${stdenv.cross.config}-gcc";
+    AR="${stdenv.cross.config}-ar";
+    RANLIB="${stdenv.cross.config}-ranlib";
+    configurePhase = ''
+      ./configure -prefix="$out" --with-system-zlib --with-system-libpng
+    '';
+    postInstall = optional (stdenv.cross.libc == "msvcrt") ''
+      mv "$out"/bin/optipng "$out"/bin/optipng.exe
+    '';
+  };
+
   meta = {
     homepage = http://optipng.sourceforge.net/;
     description = "A PNG optimizer";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c959f2c6b65..3dad42210bd 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1596,7 +1596,9 @@ let
 
   openvpn = callPackage ../tools/networking/openvpn { };
 
-  optipng = callPackage ../tools/graphics/optipng { };
+  optipng = callPackage ../tools/graphics/optipng {
+    libpng = libpng12;
+  };
 
   oslrd = callPackage ../tools/networking/oslrd { };