I finally got some time to work on this and found a complication - load-source-op logically depends on generated .so files. Currently process-op produces .so files and load-source-op depends on it. If I move .c to .so compilation from process-op to compile-op, load-source-op will have to depend on compile-op somehow, which is obviously wrong.