I'm attaching a patch to libexif in CVS that does the following:
- moves the AM_PO_SUBDIRS macro before AM_GNU_GETTEXT, since the original
configuration gave errors when running autoreconf on gettext 0.16.1 and
- fixes a couple of typos in message text
- adds const to several structures and a few function prototypes to
reduce RAM usage
Plus one more thing: adds some #ifndef NO_VERBOSE_TAG_STRINGS around
some of the large tags structure blocks, and the exif_log() function to
selectively compile them away. If the user sets -DNO_VERBOSE_TAG_STRINGS,
a simple application statically linked to libexif sees a 36% reduction
in size. I'm using libexif in an embedded app where this kind of size
savings is meaningful. The app is only extracting thumbnails and it's not
displaying the tag contents at all, so those giant tables aren't needed
(so it seems to me). It looks to me like the library will still be
completely usable with that stuff gone, even if EXIF tags are needed,
as long as the app is responsible for knowing which tags it wants and
displaying their names itself.
I could add a --disable-verbose-tags option to configure to set
NO_VERBOSE_TAG_STRINGS easier, but it's probably going to be a feature
needed by only a few and not worth the bother. The exif_log compile
away code could be slightly improved to better support gcc (it needs
-std=gnu99 to compile without warnings now) but it's relatively clean now.
One more thing: configure.ac says about library versioning "CURRENT
(Major): Increment if the interface has changes." This isn't what the
referenced web site says, and it does cause some inconvenience to users
when APIs are added but the remainder of the library stays backwards
compatible. The web site says (and I agree) that such changes that
maintain backward compatibility don't need to bump the major number.
Get latest updates about Open Source Projects, Conferences and News.