-
Notifications
You must be signed in to change notification settings - Fork 211
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
Move makefiles into x86_64 target directory #2604
Move makefiles into x86_64 target directory #2604
Conversation
/intelci: run |
Hi @keeranroth , could you please rebase this branch onto latest master to avoid merging conflicts? |
It would be nice to be able to build oneDAL on different CPU targets. To make it easier to develop build files for different targets, we move the existing build files into dev/make/x86_64. The top level makefile takes a TARGET parameter, which at the moment can only be x86_64, and defaults to this. This means that the build commands do not change with this. Any future changes to the builds need to be done in the dev/make/x86_64 directory.
After the rebase, make sure that the makefile changes from the dev branch are applied to the moved files.
a979d50
to
a93fa91
Compare
Hi @inteldimitrius. I rebased the commit, and added a commit to show that the changes from the development branch have been applied to the moved files |
Cool! Thanks! Let's wait CI checks! |
/intelci: run |
Taking the same copyright text as in the top level makefile, and changing the year to 2023.
/intelci: run |
/intelci: run |
In current form this would assume that there would be ether different implementation of makefiles or there would be lot of code duplication with makes. I guess there is only 20-30% of code considered to be platform specific, so from this perspective there would be better to just separate arch specific parts while keep single core. But the bigger question - do we want this to be make? Like longerterm plan is to migrate from make to bazel and abandon make. I guess there are some pieces missed there but it should be fairly simple to get this enabled there |
Agreed that the current approach can be cleaned up, and ideally we can get something in that is future-proof. To start with I wanted to put the easiest option up so that some discussion can be opened up. The question is then, what the right path forward would be. I see the following options:
So the question is then, how close is the bazel build to being ready, and which one of options 1-3 above would be the best approach? (unless there is a better option 4 😄 ) |
@keeranroth Also there is no working bazel solution on windows yet - but i guess this is not a concern in your case. I would imagine that we would be ready with bazel for linux part in Q1 and Windows closer to the end of the year. But the point is - technically we can split in time build system usage and use make for x86 build now but bazel for new arches. However this would depend on overall work requeued for make file modification - if this is relatively low work - then we can do make changes and do switch to bazel later. Hope this make sense |
@napetrov That does make sense. I have a few changes that could go up without updates to the build system, actually, which are required for building on multiple arches anyway. There are a few places where x86-specifec code paths are called. I'll try putting some of these up first, and when I get to the end of that stack, I'll have a look at how far the bazel build has come, and re-evaluate whether updating the make or going for the bazel makes more sense. I've marked the pull request as draft for now, as it could come in useful again in the future. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please consider just renamin the file
Closing, as this is superseded by #2614 |
It would be nice to be able to build oneDAL on different CPU targets. To make it easier to develop build files for different targets, we move the existing build files into dev/make/x86_64.
The top level makefile takes a TARGET parameter, which at the moment can only be x86_64, and defaults to this. This means that the build commands do not change with this. Any future changes to the builds need to be done in the dev/make/x86_64 directory.
Changes proposed in this pull request: