-
Notifications
You must be signed in to change notification settings - Fork 290
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
Consistency for repo names and makefile locations. #244
Comments
Some findings so far:
Personal opinion:
|
We don't really "own" all the repos, so it's not entirely possible. ./libretro-super nestopia should build nestopia for instance |
The approach is not tenable for anything large scale or remotely automatic A consistent scheme would expose a much nicer "API" to consumers of the |
It's easier to keep in-line one script than 30 or so repositories |
But it's not simpler and will make life harder for others for almost no benefit. I really don't understand your point here. Yes, doing nothing now will be As to your point about ownership; that's fine. Inconsistency like that can be |
Doing nothing? have you seen the commit log? |
So you don't see that having to special case every single repository instead of I don't really know what to say to that, other than yes, let's see what others |
The whole idea is that cores are independent from RA and from the libretro organization. Example mgba. He doesn't even use a static makefile, and we can't force him of course. Anyway I see your point, but if that structural change happened I would have to update 30, or 60 or so recipes to make sure everything was working again. I'm against this unless someone wants to make sure the buildbot can still build everything on the 7 platforms it's doing now. |
It would be nice if at least libretro required some kind of consistency when it Without rules about these things developers could do whatever they wanted I don't want to follow the route Window's took and attempt to special case So far most repositories tend to use either If we can get a nice consistent location for these things then the build systems A more extreme solution would be to provide some kind of API but I think that's Edit: I think your comment about having to fix upwards of 60 recipes should be # Seriously?
if [[ -e Makefile.libretro ]]; then
make -f Makefile.libretro
elif [[ -e makefile.libretro ]]; then
make -f makefile.libretro
elif [[ -d libretro ]]; then
make -C libretro
core="libretro/$core"
fi
if [[ -e "$core" ]]; then
mv -f -- "$core" "$core_directory"
fi |
So we should tell endrift, hey you should use a static Makefile if you want to make a libretro port? That won't work, and that's why Twinaphex forked it and added a static Makefile that needs to be updated whenever upstream changes happen. I still do my personal builds with cmake, since that "just works" Same thing with PPSSPP, forcing those changes will achieve nothing for some platforms. We'll still have to use MSVC for windows for instance. And who knows for iOS. As I said, I'm against this, not because of laziness, because I'd rather spend my time doing something else like I've been doing this week, so yeah changes that affect how builds are done even if it's for the greater good should imply a commitment of the person who does such changes to make sure that the systems that use the current build systems still work after that. |
And yet ppsspp is fine with I don't understand what you're saying. What would be so terrible if both used Do we really need to even differentiate between |
ppsspp is fine for linux with libretro/Makefile It's not terrible, but as I said, changing all the repos to be like that would be a huge task to undertake, and if it was gonna happen then again I'd expect commitment from the people who make such changes to keep the current systems working. |
BTW, I don't mean to be rude, again it's just my opinion. We've had these before, people come propose changes, and then leave at the middle of the implementation, and then someone has to take over and make stuff work. |
Eugh. This issue is then far too late. Nevermind. |
We'll look at this after 1.1 is out. If that isn't fast enough, then I'd really appreciate if somebody other than me puts the work in when it comes to these consistency changes. I can't be expected to do it all. |
Some of these problems will be obsolete with the new libretro-super.sh (from scratch) which would be uploaded by now if not for getting called away for a family emergency. It wasn't hard to do since I'd already basically rewritten it from scratch in the past two months anyway, but it's cleaner now. In the day or so I had to work on it, it already does by default:
It can also zip cores (--package) for upload to the buildbot server, but as yet lacks an upload facility rule. It does know which cores to build on which systems (although I'm not sure cap32 is supposed to build on a Mac, it doesn't…) It's got a multi-target make for bsneses and mame, mame works with it, and the only cores it can't handle are the fba subcores for consoles which are easily added at this point. I'll need a few hours with it before it's ready for pushing Wednesday because it needs to stop using libretro-config.sh because the end result will be able to build cores for more than one arch/platform, if you have the ability to do that (32/64 bit on Windows or Mac, iOS, etc.) Did I mention that the code is actually simpler, easy to follow, commented, and the main script is under 700 lines when I last looked at it? :) |
I'd probably stick with a simpler personal solution (being personal means I can I'm sure the new script will be super handy for many people, but I mainly asked Ultimately the repos aren't too bad, there are a few standards which make Edit: Not spectacular, but my simple script is here |
Edit: I'm not sure where this should be posted but as this repo could benefit
from these changes, it seemed the most appropriate.
In order to make build systems and management more straight forward I would
like to depend on the internal consistency of repo names and makefiles.
For example, each repo could be named after the object it builds without the
_libretro.{so,dll}
prefix.This allows us to assume what what the core's name will be based purely on the
repo name itself.
Another change would be to make the builds consistent. For example it would be
nice if we could assume that
make -f Makefile.libretro
would always workregardless.
Some repos seem to contain libretro specific builds in the
libretro/
directory. This is also fine, but it would be nicer if this was consistent across
all of them.
Overall these two properties would allow for a nice way to manage cores without
needing to maintain whitelists or blacklists.
Here's a simple usecase as a result of these changes:
The text was updated successfully, but these errors were encountered: