Nick Bowler [Fri, 25 Mar 2011 14:59:44 +0000 (10:59 -0400)]
engine: Start using GOB2 to generate GObject classes.
GOB2 allows us to eliminate a lot of boilerplate. Unfortunately,
current versions of GOB2 don't directly support dynamic types, so you
will need a patched version of GOB2 as of this writing. For now, just
the Palette class is built using GOB2.
Nick Bowler [Fri, 25 Mar 2011 00:57:22 +0000 (20:57 -0400)]
engine: Include object headers as <engine/xyz.h>.
This will work with VPATH builds even if the .h file is in the build
tree while the .c file is in the source tree, and vice versa. For
non-VPATH builds, there should be no change in behaviour.
Nick Bowler [Thu, 3 Mar 2011 02:46:19 +0000 (21:46 -0500)]
libupkg: Split the upkg_export struct into public/private parts.
This eliminates the need for dedicated functions to extract the name
and flag fields from the export struct. It should now be easy to convey
export information to applications.
Nick Bowler [Wed, 2 Mar 2011 05:31:57 +0000 (00:31 -0500)]
upkg: Add support for controlling which package is acted upon.
Instead of using the last -f option, allow the user to specify one or
more packages explicitly. This will eventually be extended to allow
specifying individual objects.
Nick Bowler [Wed, 7 Jul 2010 00:21:43 +0000 (20:21 -0400)]
engine: Define the exit method.
Apparently, libltdl falls back to looking up the "unadorned" symbol
names if the _LTX_ symbols are not found. This means it finds exit in
the C library instead of returning an error, with obvious consequences.
Nick Bowler [Wed, 3 Feb 2010 19:40:20 +0000 (14:40 -0500)]
build: Abort configure if specified module library is not found.
If the user specifies, say, --with-modlib=modplug, it is not right to
use any other module library. We also avoid checking for unrequested
module libraries.
Nick Bowler [Wed, 3 Feb 2010 02:50:39 +0000 (21:50 -0500)]
upkg: Don't crash if the specified package does not exist.
Currently, g_type_module_use(pkg) will succeed even if the package does
not exist, due to the existence of shared-object-only packages. So the
caller must look inside the UPkg structure to see if anything was
actually opened. In the future, pending tools to create the things,
such packages probably won't exist and this hack can be removed.
Nick Bowler [Thu, 10 Dec 2009 04:34:13 +0000 (23:34 -0500)]
upkg: Specify package files as options.
Now, one must run "upkg -f foo.u" where previously one would run "upkg
foo.u". This new syntax allows multiple packages to be specified on the
command line for purposes of dependency resolution and (soon) extraction
of specific objects.
The package operated upon is the last one specified in this manner.
Nick Bowler [Sun, 31 Jan 2010 21:53:13 +0000 (16:53 -0500)]
libupkg: Add explicit conversions to stdio wrappers.
Some C libraries provide a macro version of feof which does not convert
the provided pointer to FILE * before dereferencing it. Ordinarily,
this conversion would occur automatically since feof's prototype
specifies FILE *, but this is suppressed in the macro case.
It is not clear to me whether this behaviour is consistent with the
requirements of the C standard. However, after encountering at least
two implementations which do this, explicit conversions seem simple
enough.
Nick Bowler [Sun, 31 Jan 2010 21:52:05 +0000 (16:52 -0500)]
build: Don't use a semicolon after sed's 't' command.
Some (namely, FreeBSD's) sed implementations fail when a semicolon is
used after a 't' command. This behaviour appears to be acceptable
according to POSIX, so appease these implementations by passing extra
-e options to sed.
Nick Bowler [Tue, 8 Dec 2009 05:54:58 +0000 (00:54 -0500)]
package: Make the VFS directly open the package file.
This is in preparation for moving the package search mechanism to the
VFS, as it nicely allows us to ensure that candidate packages actually
open successfully.
Nick Bowler [Mon, 7 Dec 2009 08:01:06 +0000 (03:01 -0500)]
package: Get rid of separate mechanisms for opening packages.
Remove u_pkg_new_by_name and u_pkg_new_by_file, replacing them with
one function, u_pkg_open, that takes just a package name. Named files
can now be part of the package search just like any other package. This
should allow cool things like listing dependency packages on the upkg
command line.
Nick Bowler [Fri, 18 Sep 2009 13:46:42 +0000 (09:46 -0400)]
upkg: Update verbosity behaviour for --info.
We now have four levels of verbosity:
0 - Display only header information.
1 - Also display information on individual exports.
2 - Also display expanded flag information.
3 - Also display information on individual names.
Nick Bowler [Mon, 13 Jul 2009 22:32:19 +0000 (18:32 -0400)]
uobject: Implement an interface for loading/unloading.
This allows, for example, an instance of Engine.Music to load its music
data only when required. It may be useful to keep around an instance
without allocating gobs of memory to store data that won't be used.