Conversation

Replying to
and like it doesn't do that because it runs on a jvm or something. it's a nice and efficient build runner ... that happens to run a build where the text file with the build is 1.4 GB in size
1
2
Replying to
honestly it's not unreasonable to have it all in one file. it's like "recursive make considered harmful" but for an entire os. it's just... big note: this doesn't include chromium. chromium alone is larger and builds for longer than the entire goddamn os
2
2
Replying to and
It's the backend ninja-based build system output. The frontend build systems produce it. It happens that way because the entire OS is built together with very few components being built separately. Linux kernel and Chromium are built separately with AOSP itself.
1
Forks like LineageOS tend to build the kernel with a nested build system inside the main one instead of using a prebuilt. If they actually integrated it into the normal build system instead of using a nested one, it'd end up increasing the size of the ninja input substantially.
1
Also, not everything is migrated to the declarative build system yet. Still quite a bit of pseudo-declarative Makefiles that are designed to be treated as a single massive Makefile and get translated to ninja by kati. It's a lot more efficient with most of that replaced in R.
1
2
You can actually use github.com/google/kati for other things. I've heard it doesn't work for the Linux kernel but that's not surprising. They only implemented as much of GNU make as they had to for Android and they could cheat by removing horrifying things from the Makefiles.
1
2
Show replies