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

πŸ”₯ ⚠ Shuffle Makefiles #87

Merged
merged 5 commits into from
Jan 31, 2019
Merged

Conversation

edjubuh
Copy link
Member

@edjubuh edjubuh commented Jan 30, 2019

Summary:

  • Move most targets and variables into common.mk. The only thing that remains in Makefile and template-Makefile are "parameters" to common.mk
  • Projects that are libraries (setups like PROS kernel and okapilib) will compile the library and link a final uploadable product against that. Rather than linking directly against all the .o files that the library archives, we link against libpros.a and any files not included in libpros.a inside src/

Motivation:

Files in projects marked as "user files" by the template are never modified - when upgrading a project, only "system files" are allowed to be modified. We'd like to be able to modify how PROS projects compile from version to version. Currently, a lot of the logic for compiling projects lives in Makefile. This PR moves as much logic as possible into the system file common.mk.

I'm particularly motivated to get this done so that we can make modifications for hot-cold linking.

Impact:

User projects must manually update their Makefile to remove everything we're removing in this PR.

References (optional):

Supporting T741

Test Plan:

  • Compile kernel as a complete program
    • Upload default program and runs correctly (sufficient to test libv5rts, kernel, and libc link correctly)
  • Compile libpros.a
  • Compile template
  • Compile user program
    • Upload default program and runs correctly (sufficient to test libv5rts, kernel, and libc link correctly)

@edjubuh edjubuh self-assigned this Jan 30, 2019
@edjubuh edjubuh changed the base branch from master to develop January 30, 2019 23:06
Copy link
Contributor

@HotelCalifornia HotelCalifornia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good pending that last test

@edjubuh edjubuh changed the title Shuffle Makefiles πŸ”₯ ⚠ Shuffle Makefiles Jan 31, 2019
Copy link
Contributor

@HotelCalifornia HotelCalifornia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ship it

@edjubuh edjubuh merged commit bc0fa3e into develop Jan 31, 2019
@HotelCalifornia HotelCalifornia deleted the feature/shuffle-makefile branch January 31, 2019 03:25
@edjubuh edjubuh added this to the 3.1.6 milestone Feb 7, 2019
@edjubuh edjubuh mentioned this pull request Feb 10, 2019
28 tasks
@edjubuh edjubuh mentioned this pull request Feb 18, 2019
3 tasks
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.

2 participants