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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace SCons with CMake #74

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tj90241
Copy link
Contributor

@tj90241 tj90241 commented Feb 13, 2022

  • Remove SCons and replace it with a CMake-driven build
    system. The immediate benefit of this is that we no
    longer need to maintain any build scaffolding for qemu,
    as we just use their configure/Makefiles/etc.

  • Purge qemu out of tree, and instead leverage it as a
    submodule. The submodule being used has git history for
    qemu and MARSS-specific changes so that it's easier to
    understand the changes made for MARSS.

This is preliminary work: we'll need to document the (at
least, temporary) requirements such as jq...

When checking out this branch and forever more, one must
run git submodule update --init --recursive to fetch the
qemu submodule.

Builds can be then done in a separate directory:

mkdir -p build && cd build
cmake ..
make -j9

Signed-off-by: Tyler J. Stachecki [email protected]

@tj90241
Copy link
Contributor Author

tj90241 commented Feb 13, 2022

Currently have to copy ROM images into the build dir, still need to fix...

git submodule update --init --recursive
mkdir -p build && cd build
cmake ..
make -j9
cp -R ../qemu/pc-bios/* share/qemu/

I also have to double-check that qemu-system-x86_64 gets relinked when libptlsim.a changes - I don't think that's the case right now.

There's also a variety of new tools and packages that might be needed, includiing jq, libfdt-dev, and others.

  * Remove SCons and replace it with a CMake-driven build
    system. The immediate benefit of this is that we no
    longer need to maintain any build scaffolding for qemu,
    as we just use their configure/Makefiles/etc.

  * Purge qemu out of tree, and instead leverage it as a
    submodule. The submodule being used has git history for
    qemu and MARSS-specific changes so that it's easier to
    understand the changes made for MARSS.

This is preliminary work: we'll need to document the (at
least, temporary) requirements such as jq...

When checking out this branch and forever more, one must
run `git submodule update --init --recursive` to fetch the
`qemu` submodule.

Builds can be then done in a separate directory:
```
mkdir -p build && cd build
cmake ..
make -j9
```

Signed-off-by: Tyler J. Stachecki <[email protected]>
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.

1 participant