Skip to content
This repository has been archived by the owner on Sep 21, 2021. It is now read-only.

Build system is bad #86

Open
misson20000 opened this issue Jan 19, 2018 · 4 comments
Open

Build system is bad #86

misson20000 opened this issue Jan 19, 2018 · 4 comments

Comments

@misson20000
Copy link
Member

The current Makefile solution really isn't doing it. It's hard to read, hard to maintain, hard to read build output for, and doesn't even handle dependencies properly.

@misson20000
Copy link
Member Author

TODO tomorrow:
Write up a high-level outline of everything the build system needs to do. This will help us make more informed design decisions and hopefully keep the implementation more organized.

@misson20000
Copy link
Member Author

Things to Build:

  • build newlib
    • this needs to interface with newlib's autoconf system
  • build compiler-rt
    • originally, we were using cmake so that we wouldn't have to modify anything which would make it easier to pull upstream changes
    • since depending on cmake has been proven to suck, we should just replace this with a makefile
  • build pthread
  • build sdl2
  • build libtransistor archives
    • one for NRO
    • one for NSO
  • build and link libtransistor tests
    • generate both NRO and NSO
    • for fs branch, this also means building SquashFS trees

Things to Do:

  • run libtransistor tests
    • should we use Yuzu now?
    • some tests need sockets enabled or need to be run with special scripts

@misson20000
Copy link
Member Author

I think that each of the bullet points I listed above should go into a separate .mk file, and we can have one master Makefile that includes all of them. This will make for a clean separation of each concern. Each dependency can then be built with most warnings off, and then we can turn on our strict warnings for libtransistor and its tests.

Things to Not Do:

  • use full paths everywhere
    • not really sure how to get away with this; we do it so that libtransistor.mk can be included from an application's Makefile anywhere to set it up for being built with libtransistor, and relative paths won't do because some people use make recursively
  • use cmake

@roblabla
Copy link
Member

In "things to build", SDL2 should really be split in its own repo.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants