alphagoogle.rtf
Conversation
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
even if it is a whole ass modern os i personally see having a build file that huge as an utter failure on multiple levels.
3
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
> 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.
It would built a lot faster though, particularly for incremental builds. GNU make is a horrible GNU make implementation.
1
1
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
i thankfully bit the bullet and learned enough cmake to be dangerous this year and none of my projects are OS-size but that is a pretty neat project and a neat read
1
1
The new build system is source.android.com/setup/build and I really wish I could use it outside of AOSP. I'd like it for native code but especially for Android apps and other Java / Kotlin projects instead of gradle. Gradle is... perplexing. I don't understand why it became a big thing.
Avoid ever having to do anything non-trivial with Gradle...
phauer.com/2018/moving-ba
Gradle is the opposite of a declarative build system and it's written in a confusing DSL based on a quirky dynamically typed scripting language variant of Java. Fun stuff.
1
2


