From ec296aac58b0c9afd185951427d75da1229b9f19 Mon Sep 17 00:00:00 2001 From: Sebastian Wiedenroth Date: Thu, 29 Sep 2016 01:16:08 +0200 Subject: library: helper functions: implemented compatible library and objects wrappers. + based on work by jperkin (as well as slibtool's default wrapper functions). + generate verbose .la/.lo wrappers that match gnu libtool's output. + dependency_libs string is currently empty, to be added in a separate patch. + ordering of library_names is different, should (probably) not matter. --- src/internal/slibtool_objmeta_impl.c | 40 ++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'src/internal/slibtool_objmeta_impl.c') diff --git a/src/internal/slibtool_objmeta_impl.c b/src/internal/slibtool_objmeta_impl.c index 9e9cc75..65d67ea 100644 --- a/src/internal/slibtool_objmeta_impl.c +++ b/src/internal/slibtool_objmeta_impl.c @@ -50,8 +50,44 @@ static int slbt_create_compatible_object_wrapper( const struct slbt_driver_ctx * dctx, struct slbt_exec_ctx * ectx) { - /* awaiting submission */ - return slbt_create_default_object_wrapper(dctx,ectx); + int ret; + FILE * fout; + const struct slbt_source_version * verinfo; + + if (!(fout = fopen(ectx->ltobjname,"w"))) + return SLBT_SYSTEM_ERROR(dctx); + + verinfo = slbt_source_version(); + + ret = fprintf(fout, + "# %s - a libtool object file\n" + "# Generated by %s (slibtool %d.%d.%d)\n" + "# [commit reference: %s]\n" + "#\n" + "# Please DO NOT delete this file!\n" + "# It is necessary for linking the library.\n\n" + + "# Name of the PIC object.\n" + "pic_object='%s'\n\n" + + "# Name of the non-PIC object\n" + "non_pic_object='%s'\n", + + ectx->ltobjname, + dctx->program, + verinfo->major,verinfo->minor,verinfo->revision, + verinfo->commit, + + (dctx->cctx->drvflags & SLBT_DRIVER_SHARED) + ? ectx->lobjname + : "none", + (dctx->cctx->drvflags & SLBT_DRIVER_STATIC) + ? ectx->aobjname + : "none"); + + return (ret <= 0) || fclose(fout) + ? SLBT_SYSTEM_ERROR(dctx) + : 0; } int slbt_create_object_wrapper( -- cgit v1.2.3