have almost ported over linux kernel build system