-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Rewrote the build system. Faster, build/assets/
, etc.
#1920
Conversation
I will let more technical/savvy people judge the quality of the changes but I think we should consider current projects when making big PRs like this. This will be conflict hell, specially for newer users. |
I like the idea of being able to Since it seems that assets are only ever built in
Haha, yeah, on my list of things to try is implementing a #if SOME_CONDITION
const u8 gFoo = INCBIN_U8("foo");
#else
const u8 gFoo = INCBIN_U8("bar");
#endif
|
All the uncompressed |
The build fails on GitHub. It looks like you're still not generating It fails for me locally as well, because you've bumped the version requirements by using |
Curious. This is to do with Ubuntu bundling an old version of make. Hoping I've fixed it now.
Really? |
I wonder about |
Yeah, for macOS the standard library features have lagged behind the language. I assume A few extra mkdir calls is ok, I'd rather that than lose support for some older compilers. |
I didn't realise this would close itself. |
This rewrites most of the build system. Yep.
NOTE: I renamed the branch on my system and the PR self-destructed. See here: https://github.com/Icedude907/pokeemerald/tree/build_old
Description
Main changes:
Rewrote, renamed, and partially documented most makefiles. Numerous internal changes - the main rules remain the same.
Improved buildspeed (by making changes to
scaninc
)Moved all generated assets into a
build/assets
folder. Includes:.gbapal
.1bpp
.4bpp
.8bpp
.lz
.rl
.s
(midi).bin
(audio)Moved all generated
.inc
and.h
files intobuild/assets/data
andbuild/assets/include/generated
respectively.This required changes to
mapjson
to support setting output directories.All midi files now have an associated
.cfg
file containing themid2agb
options they use.It might be worth condensing all these separate files into one, but I'm not sure.
Removed all non-tool
.gitignore
files except the root one (and tidied it up a bit)Removed deprecated
build_tools.sh
Removed an accidentally committed
redyellowgreen_frame.bin
Renamed
japanese_frlg_male_font.png
tojapanese_frlg_male.png
and same for female.Moved
spinda_spots
inside the Pokemon's folderRenamed the
ld_*.txt
files told_*.ld
Future changes I'd like to see
mkdir
sspritesheet_rules.mk
&graphics_rules.mk
preproc
doesn't expand macros insideINCBIN
)ETC
make clean
no longer removes tools (usemake clean-all
orclean-tools
)make clean
before opening this branch.(If you don't you can use
make clean-assets-old
to remove the majority of the old files)Questions (assistance please)
Discord contact info
Idk why you need this... 'icedude907'
Addenda
It seems that certain portions of this PR could break a lot of downstream tools. I'm willing to subdivide it, but for now I'd appreciate general feedback.
The rationale for the
.cfg
change is that new users (like me) adding additional songs may comprehend the process quicker than digging through the build system for a rule - admittedly, a guide would serve much the same purpose.