Mbld: Open Questions.
[Thread Prev] | [Thread Next]
- Subject: Mbld: Open Questions.
- From: Ori Bernstein <ori@xxxxxxxxxxxxxx>
- Date: Sat, 13 Dec 2014 21:06:45 -0800
- To: myrddin-dev@xxxxxxxxxxxxxx
And the email I was writing when I opened the old mbld email, and then
fired it off accidentally.
So, I announced mbld a little while ago. In case there are new subscribers,
see below for the announcement.
http://eigenstate.org/archive/myrddin-dev/Sep-2014/0000003.html
So, now that there's a bit of experience using it, there are a few
questions on what features I want going forward, and how to handle
them.
configure scripts
With the 'make' based systems, I would ship with a configure script
that handled things like, eg, figuring out which prefix to install
programs to, which assembler to use, and so on.
With mbld, I currently support command line flags for the prefix
and the destdir, but these are not available to the source code
in any way, and I'm not sure if they should be, or how.
I really want to avoid something like autoconf, and library probing
should be a solvedish issue regardless. Still, I feel like I may end
up running into some issues here if I don't try something.
How do we want to handle this? Should we still be relying on system
probing shell scripts? (ugh)? Is there any better option that we
should be looking at?
Platform specific code.
At the moment, my makefiles have a rule that looks like:
%.myr: %-$PLATFORM.myr
cp $@-$PLATFORM.myr $@.myr
Which allows you to have a platform specific myrddin file, and get
the appropriate one selected. Right now, mbld does a relatively crude
form of this, in that it will recognize .myr files with a +platform.myr,
+platform-arch.myr, or +arch.myr suffix, and compile them. At the moment,
it has no knowledge of specificity, though, so it will get confused if
you have a foo.myr and a foo+linux.myr. Which one will get built is kind
of up in the air at the moment.
How do we want to handle this? Should myrbuild handle this, and know
about platform filtering, or am I barking up the wrong tree? I've seen
someone suggest making the Myrddin toolchain just expand environment
vars in use files, so you would be able to do "use foo$sys.myr" to
include the right file. I like the idea, but it has the disadvantage
of not allowing fallbacks.
Also, how would this work for assembly fast paths? Since the assembler
doesn't produce use files, we need to figure out something for the case
where we have:
foo.myr
foo-x86.s
foo-armv7.s
...
Since if we use 'foo.use', we only get a usefile if we aren't on x86
or arm.
Utility libraries.
Right now, utility libraries aren't supported. I'd like to allow you
to create uninstalled libraries that binaries or other libraries can
depend on within a package. Any thoughts on how this should be
implemented?
Packaging integration.
I want to make it easy to generate distro packages, but clearly
having code for each of the dozens of distros/platforms that I never
touch isn't scalable.
I have no idea what we would want to do for packaging integration.
Bootstrapping.
I have no idea if/how I should be doing the bootstrapping. I'd like
to use this code for building things like libstd, libbio, libregex,
and others. But it's written in myrddin, and they're written in
myrddin. I'm not sure what the best way to fix this is.
--
Ori Bernstein
| Re: Mbld: Open Questions. | Daniel Cegiełka <daniel.cegielka@xxxxxxxxx> |
| Re: Mbld: Open Questions. | Ori Bernstein <ori@xxxxxxxxxxxxxx> |
- Prev by Date: Re: Announcing a new build system for Myrddin code.
- Next by Date: Re: Mbld: Open Questions.
- Previous by thread: Re: Announcing a new build system for Myrddin code.
- Next by thread: Re: Mbld: Open Questions.
- Index(es):