{ stdenv , openwrt , dtc , kernel }: { dts }:let includes = [ "${openwrt}/target/linux/ath79/dts" "${kernel}/include" ]; cppDtSearchFlags = builtins.concatStringsSep " " (map (f: "-I${f}") includes); dtcSearchFlags = builtins.concatStringsSep " " (map (f: "-i${f}") includes); in stdenv.mkDerivation { name = "dtb"; phases = [ "buildPhase" ]; nativeBuildInputs = [ dtc ]; buildPhase = '' ${stdenv.cc.targetPrefix}cpp -nostdinc -x assembler-with-cpp ${cppDtSearchFlags} -undef -D__DTS__ -o dtb.tmp ${openwrt}/target/linux/ath79/dts/${dts} dtc ${dtcSearchFlags} -I dts -O dtb -o $out dtb.tmp test -e $out ''; }