-
Notifications
You must be signed in to change notification settings - Fork 21
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
Rework Build System #7
Open
Forty-Bot
wants to merge
34
commits into
nesl:master
Choose a base branch
from
Forty-Bot:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Most of the changes are documented in the makefile itself. top.v was renamed so we could use a pattern rule for it. This is further documented in the makefile.
This allows us to use the correct port file via an implicit rule. They both need to be named using the same prefix as the .bin file. There doesn't seem to be a way around this.
Most of the functionality in each project is the same. We can get away with some pattern rules and modifying a few variables in each subproject.
Most of the other projects have only 8k pinmaps
Previously you could only build from the base directory. Now we just run make on the top-level makefile if a sub-makefile gets used directly.
yosys and arachne-pnr are SUPER verbose by default. This should help keep terminal spam to a minimum.
Unfortunately, there is no easy way to reference this, so we're stuck with an ugly include line in every makefile...
Forgot to do this before pushing (whoops)
A few of these projects have been removed for being hard to port (depending on a specific piece of hardware). The fms one has been removed for being not very useful.
The old system only worked for a few boards, using package as a proxy Now we can add support for many more boards just by writing up some pcfs
This allows us to save config options like the BOARD used
Easy to create a script to do any custom flash job
This is roughly from http://zipcpu.com/tutorial/lsn-01-wires.pdf Very useful for testing
If we do `BUTS :=` that means there are *no* buttons. You can test for this with ifdef in your verilog
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This patchset completely reworks the build system to be more idiomatic, and to reduce redundancy. Major changes include:
I have tried to document the top-level makefile fairly heavily, but I've left the sub-makefiles mostly undocumented, due to their duplication. Please let me know if there's anything I can explain, or any changes you would like to know more about.