uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
110
pkgs/development/beam-modules/build-erlang-mk.nix
Normal file
110
pkgs/development/beam-modules/build-erlang-mk.nix
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
{ stdenv, writeText, erlang, perl, which, gitMinimal, wget, lib }:
|
||||
|
||||
{ name
|
||||
, version
|
||||
, src
|
||||
, setupHook ? null
|
||||
, buildInputs ? [ ]
|
||||
, beamDeps ? [ ]
|
||||
, postPatch ? ""
|
||||
, compilePorts ? false
|
||||
, installPhase ? null
|
||||
, buildPhase ? null
|
||||
, configurePhase ? null
|
||||
, meta ? { }
|
||||
, enableDebugInfo ? false
|
||||
, buildFlags ? [ ]
|
||||
, ...
|
||||
}@attrs:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
debugInfoFlag = lib.optionalString (enableDebugInfo || erlang.debugInfo) "+debug_info";
|
||||
|
||||
shell = drv: stdenv.mkDerivation {
|
||||
name = "interactive-shell-${drv.name}";
|
||||
buildInputs = [ drv ];
|
||||
};
|
||||
|
||||
pkg = self: stdenv.mkDerivation (attrs // {
|
||||
app_name = name;
|
||||
name = "${name}-${version}";
|
||||
inherit version;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
inherit src;
|
||||
|
||||
setupHook =
|
||||
if setupHook == null
|
||||
then
|
||||
writeText "setupHook.sh" ''
|
||||
addToSearchPath ERL_LIBS "$1/lib/erlang/lib"
|
||||
''
|
||||
else setupHook;
|
||||
|
||||
buildInputs = buildInputs ++ [ erlang perl which gitMinimal wget ];
|
||||
propagatedBuildInputs = beamDeps;
|
||||
|
||||
buildFlags = [ "SKIP_DEPS=1" ]
|
||||
++ lib.optional (enableDebugInfo || erlang.debugInfo) ''ERL_OPTS="$ERL_OPTS +debug_info"''
|
||||
++ buildFlags;
|
||||
|
||||
configurePhase =
|
||||
if configurePhase == null
|
||||
then ''
|
||||
runHook preConfigure
|
||||
|
||||
# We shouldnt need to do this, but it seems at times there is a *.app in
|
||||
# the repo/package. This ensures we start from a clean slate
|
||||
make SKIP_DEPS=1 clean
|
||||
|
||||
runHook postConfigure
|
||||
''
|
||||
else configurePhase;
|
||||
|
||||
buildPhase =
|
||||
if buildPhase == null
|
||||
then ''
|
||||
runHook preBuild
|
||||
|
||||
make $buildFlags "''${buildFlagsArray[@]}"
|
||||
|
||||
runHook postBuild
|
||||
''
|
||||
else buildPhase;
|
||||
|
||||
installPhase =
|
||||
if installPhase == null
|
||||
then ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/lib/erlang/lib/${name}
|
||||
cp -r ebin $out/lib/erlang/lib/${name}/
|
||||
cp -r src $out/lib/erlang/lib/${name}/
|
||||
|
||||
if [ -d include ]; then
|
||||
cp -r include $out/lib/erlang/lib/${name}/
|
||||
fi
|
||||
|
||||
if [ -d priv ]; then
|
||||
cp -r priv $out/lib/erlang/lib/${name}/
|
||||
fi
|
||||
|
||||
if [ -d doc ]; then
|
||||
cp -r doc $out/lib/erlang/lib/${name}/
|
||||
fi
|
||||
|
||||
runHook postInstall
|
||||
''
|
||||
else installPhase;
|
||||
|
||||
passthru = {
|
||||
packageName = name;
|
||||
env = shell self;
|
||||
inherit beamDeps;
|
||||
};
|
||||
});
|
||||
in
|
||||
fix pkg
|
||||
Loading…
Add table
Add a link
Reference in a new issue