-
-
Notifications
You must be signed in to change notification settings - Fork 43
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
Build system improvements #12
Conversation
- Make "friendly" targets .PHONY, let them depend on the generated files - Use separate targets for generating launcher binaries, with actual dependencies on corresponding source files - Use Make variables for prerequisites, targets - Eliminate unneeded "cd .." since command lines are executed using individual sub-shells - Add windows-amd64 target - Add a default ("all") target that depends on binaries for the host OS
If anything is unclear, feel free to ask. :-) |
My apologies for ghosting this. With holidays and all, I haven't yet had the time to look at this. I promise I will do so soon. |
I might be missing something, but are |
No, you can still run It would make sense to split the compiler target into two steps, though:
I'm going to do another PR. |
Thanks! I guess the main thing to account for is to allow to re-compile if the source code hasn't changed but the Yara rules we want to compile with did. The rules are then build in a go-bindata "rules" file which Other than that, I'm currently having some issues with building the various targets, I suppose because of statically linking. For example, for
For
I should probably try to build on a clean system. |
I ran into the I can't say anything useful about the MacOSX problem since I don't have a MacOSX system myself. |
The go-sqlite-related errors can likely be avoided by passing the |
So, here's the follow-up to my promise from #3.
I have make some changes to the Makefile that make the build a bit more robust, add a 64bit Windows target, and add cross-building YARA for Windows. This is still a lot simpler than the
3rdparty.mk
from Spyre but I have changed quite a lot, so I feel that a high-level explanation might be useful:windows-386
depends onkraken.exe
andkraken-launcher.exe
in thebuild/windows-386
subdirectory. Once these two files exist and there haven't been edits to the source files since, thewindows-386
target is considered as built and re-runningmake windows-386
causes a message "Nothing to be done for 'windows-386'".It would probably make sense to also do private builds of the static YARA library for non-Windows architectures.