From af48d3eca38ff4116eea71b805311ce9ed4cf0ad Mon Sep 17 00:00:00 2001 From: midipix Date: Sat, 23 Mar 2024 16:46:24 +0000 Subject: slibtoolize: driver: added support for --copy, --force, and --install. --- src/driver/slbt_driver_ctx.c | 10 ++++++++-- src/internal/slibtool_driver_impl.h | 3 +++ src/logic/slbt_exec_stoolie.c | 12 ++++++++++++ src/skin/slbt_skin_stoolie.c | 12 ++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/driver/slbt_driver_ctx.c b/src/driver/slbt_driver_ctx.c index 956c435..85c75d2 100644 --- a/src/driver/slbt_driver_ctx.c +++ b/src/driver/slbt_driver_ctx.c @@ -23,6 +23,7 @@ #include "slibtool_errinfo_impl.h" #include "slibtool_lconf_impl.h" #include "slibtool_txtline_impl.h" +#include "slibtool_stoolie_impl.h" #include "slibtool_ar_impl.h" #include "argv/argv.h" @@ -416,10 +417,15 @@ int slbt_lib_get_driver_ctx( const char * cfgmeta_ranlib; const char * cfgmeta_dlltool; - if (flags & SLBT_DRIVER_MODE_AR) + if (flags & SLBT_DRIVER_MODE_AR) { argv_optv_init(slbt_ar_options,optv); - else + + } else if (flags & SLBT_DRIVER_MODE_STOOLIE) { + argv_optv_init(slbt_stoolie_options,optv); + + } else { argv_optv_init(slbt_default_options,optv); + } if (!fdctx) fdctx = &slbt_default_fdctx; diff --git a/src/internal/slibtool_driver_impl.h b/src/internal/slibtool_driver_impl.h index 458f74f..b726f32 100644 --- a/src/internal/slibtool_driver_impl.h +++ b/src/internal/slibtool_driver_impl.h @@ -105,6 +105,9 @@ enum app_tags { /* slibtoolize (stoolie) mode */ TAG_STLE_VERSION, TAG_STLE_HELP, + TAG_STLE_COPY, + TAG_STLE_FORCE, + TAG_STLE_INSTALL, }; struct slbt_split_vector { diff --git a/src/logic/slbt_exec_stoolie.c b/src/logic/slbt_exec_stoolie.c index 6b2f883..99b1ca1 100644 --- a/src/logic/slbt_exec_stoolie.c +++ b/src/logic/slbt_exec_stoolie.c @@ -145,6 +145,18 @@ int slbt_exec_stoolie(const struct slbt_driver_ctx * dctx) case TAG_STLE_VERSION: ictx->cctx.drvflags |= SLBT_DRIVER_VERSION; break; + + case TAG_STLE_COPY: + ictx->cctx.drvflags |= SLBT_DRIVER_STOOLIE_COPY; + break; + + case TAG_STLE_FORCE: + ictx->cctx.drvflags |= SLBT_DRIVER_STOOLIE_FORCE; + break; + + case TAG_STLE_INSTALL: + ictx->cctx.drvflags |= SLBT_DRIVER_STOOLIE_INSTALL; + break; } if (entry->fval) { diff --git a/src/skin/slbt_skin_stoolie.c b/src/skin/slbt_skin_stoolie.c index c4a10b8..be417e5 100644 --- a/src/skin/slbt_skin_stoolie.c +++ b/src/skin/slbt_skin_stoolie.c @@ -9,5 +9,17 @@ const slbt_hidden struct argv_option slbt_stoolie_options[] = { {"help", 'h',TAG_STLE_HELP,ARGV_OPTARG_NONE,0,0,0, "display slibtoolize (stoolie) mode help"}, + {"copy", 'c',TAG_STLE_COPY,ARGV_OPTARG_NONE,0,0,0, + "copy build-auxiliary m4 files " + "(create symbolic links otherwise."}, + + {"force", 'f',TAG_STLE_FORCE,ARGV_OPTARG_NONE,0,0,0, + "replace existing build-auxiliary and m4 " + "files and/or symbolic links."}, + + {"install", 'i',TAG_STLE_INSTALL,ARGV_OPTARG_NONE,0,0,0, + "create symbolic links to, or otherwise copy " + "missing build-auxiliary and m4 files."}, + {0,0,0,0,0,0,0,0} }; -- cgit v1.2.3