Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build: clean up build system, use shared Makefiles #889

Merged
merged 1 commit into from Dec 20, 2019

Conversation

jcs
Copy link
Member

@jcs jcs commented Dec 20, 2019

This unifies all of the Makefiles and install scripts so everything depends on the root-level Makefile.common for setting GCC defines and options, and everything is built with -Werror now. This introduces a failure due to #888 and the ones I mentioned on IRC.

This makes it possible to build everything with just make from the top-level directory, and make install to install things to Base/, though it still needs Kernel/build-root-filesystem.sh to copy other things into it. It should handle dependencies properly so touching one header will properly rebuild just what is needed with another top-level make. The tests being done in AK/Tests can be triggered with make test and everything can be cleaned with make clean.

I think Kernel/makeall.sh can be removed after this and probably an update of ReadMe.md is needed to reflect new build instructions.

馃巺

Allow everything to be built from the top level directory with just
'make', cleaned with 'make clean', and installed with 'make
install'.  Also support these in any particular subdirectory.

Specifying 'make VERBOSE=1' will print each ld/g++/etc. command as
it runs.

Kernel and early host tools (IPCCompiler, etc.) are built as
object.host.o so that they don't conflict with other things built
with the cross-compiler.
@awesomekling
Copy link
Member

Cross-directory dependency tracking works!?
I can just edit a random header file somewhere and make in the root builds all the relevant stuff!!??
Holy moly this is so neat :)

@awesomekling awesomekling merged commit ac25438 into SerenityOS:master Dec 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants