4 ms·
Google please take a few notes here: 1. It’s in its own repo 2. The build instructions are concise and clear. Dependencies are listed. You have to follow a to
by _xzxj 8y ago
Google please take a few notes here:
1. It’s in its own repo
2. The build instructions are concise and clear. Dependencies are listed. You have to follow a total of 0 links.
3. They use a common build system and not an in-house thing.
- itp 8y agoSpeaking as the original author of this monstrosity of a build system, please be careful before offering praise here. To be clear, there is a top-level, non-recursive Makefile that uses the second expansion feature of GNU make, translating Visual Studio project files into generated Makefile inputs that are transformed into targets to power the build. Although it starts by running `make`, it's about as in-house as a thing can be.
- jgh 8y agoFair enough, I stand corrected. Superficially it seems like a more pleasant experience than dealing with gn/ninja as an end user.
- itp 8y agoAs an end user it's absolutely better. I'm just torn between pride and embarrassment thinking about how it was implemented.
- wwilson 8y agoI think my favorite part of the build process was when we frobnicated libstdc++: https://github.com/apple/foundationdb/blob/master/Makefile#L159 https://github.com/apple/foundationdb/blob/master/Makefile#L... And then there were the hijinks we went through to build a cross-compiler with modern gcc and ancient libc (plus the steps to make sure no dependency on later glibc symbols snuck in): https://github.com/apple/foundationdb/blob/master/build/link-validate.sh https://github.com/apple/foundationdb/blob/master/build/link... Ahh... now that was a build system.
- aseipp 8y agoI saw this in the Makefiles, and -- ah, the life of distributing proprietary Linux software. At one point in a prior job, we just replaced our build system with a wrapper Makefile that 'chroot'ed into a filesystem image that was a snapshot of one of our build machines, since it was so difficult to set up. This meant we (developers) had easier system updates, security upgrades, etc. That was just the tip of the iceberg!
- e12e 8y agoNow you can "... be beautiful and terrible as the Morning and the Night! Fair as the Sea and the Sun and the Snow upon the Mountain! Dreadful as the Storm and the Lightning! Stronger than the foundations of the earth. All shall love [you] and despair!" with a build inside docker; the host can run a modern kernel ; your image can run Slackware 0.1 ;-) (with apologies to Tolkien)
- modeless 8y agoI'm curious what you think is wrong with gn/ninja (besides the fact that it's non-standard). My problems building Chromium come mostly from other parts of depot_tools.
- boris 8y agoAh, GNU make second expansion... glad to see someone else appreciates it ;-).
- dboreham 8y agoThis kind of deep-inside-baseball from-the-horses-mouth interaction is what's so awesome about HN!
- asimpletune 8y agoThis whole comments section is one of my all time favorites.
- zbentley 8y ago> deep-inside-baseball from-the-horses-mouth Does the horse choke on the baseball? Is there an equine version of the Heimlich maneuver to be performed on horses suffering from mixed-metaphorical-adage-induced asphyxiation?
- SiempreViernes 8y agoYes, you bite the hand that feeds the horse baseballs.