From 5526a0bc77b18d7132756048859ed3a0957ed312 Mon Sep 17 00:00:00 2001 From: CismonX Date: Mon, 25 Dec 2023 17:36:25 +0800 Subject: [PATCH] refactor: cleaner way to hard-code libdir --- include/arif_defs.h | 2 +- src/Makefile.am | 2 +- src/arify.c | 12 +++++------- src/arify_cli.c | 5 ++--- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/include/arif_defs.h b/include/arif_defs.h index 9fe36e1..dcb90ba 100644 --- a/include/arif_defs.h +++ b/include/arif_defs.h @@ -48,5 +48,5 @@ #endif #ifndef ARIF_LIBDIR -# define ARIF_LIBDIR /usr/local/lib +# define ARIF_LIBDIR "/usr/local/lib" #endif diff --git a/src/Makefile.am b/src/Makefile.am index 3ca8de9..bf40173 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,7 +9,7 @@ bin_PROGRAMS = lib_LTLIBRARIES = libarif.la -ARIF_CPPFLAGS_ = -I$(top_srcdir)/include -DARIF_LIBDIR=$(libdir) +ARIF_CPPFLAGS_ = -I$(top_srcdir)/include -DARIF_LIBDIR="\"$(libdir)\"" libarif_la_CPPFLAGS = $(READLINE_CFLAGS) $(ARIF_CPPFLAGS_) libarif_la_LIBADD = $(READLINE_LIBS) diff --git a/src/arify.c b/src/arify.c index fcec586..f393537 100644 --- a/src/arify.c +++ b/src/arify.c @@ -59,10 +59,9 @@ # error "__attribute__((destructor)) not supported" #endif -#define ARIFY_ENGINE_PATH_(libdir, engine) \ - #libdir "/arif/" engine ARIF_SHLIB_SUFFIX -#define ARIFY_ENGINE_PATH(libdir, engine) ARIFY_ENGINE_PATH_(libdir, engine) -#define ARIFY_ENGINE_SYM(engine) "arif_" engine "_engine" +#define ARIFY_ENGINE_LIB(engine) \ + ARIF_LIBDIR "/arif/" engine ARIF_SHLIB_SUFFIX +#define ARIFY_ENGINE_SYM(engine) "arif_" engine "_engine" #ifndef ARIFY_MAX_PAGE_SIZE # define ARIFY_MAX_PAGE_SIZE 99 @@ -313,11 +312,10 @@ load_engine ( char *var_tmp = NULL; if (var_name == NULL) { - size_t lib_name_len - = sizeof ARIFY_ENGINE_PATH(ARIF_LIBDIR, "") + strlen(lib_name); + size_t lib_name_len = sizeof ARIFY_ENGINE_LIB("") + strlen(lib_name); lib_tmp = malloc(sizeof(char) * lib_name_len); assert(lib_tmp != NULL); - sprintf(lib_tmp, ARIFY_ENGINE_PATH(ARIF_LIBDIR, "%s"), lib_name); + sprintf(lib_tmp, ARIFY_ENGINE_LIB("%s"), lib_name); size_t var_name_len = sizeof ARIFY_ENGINE_SYM("") + strlen(lib_name); var_tmp = malloc(sizeof(char) * var_name_len); diff --git a/src/arify_cli.c b/src/arify_cli.c index 2258501..edd95c8 100644 --- a/src/arify_cli.c +++ b/src/arify_cli.c @@ -35,8 +35,7 @@ #include "arif.h" #include "arif_defs.h" -#define ARIFY_PRELOAD_LIB_(libdir) #libdir "/libarify" ARIF_SHLIB_SUFFIX -#define ARIFY_PRELOAD_LIB(libdir) ARIFY_PRELOAD_LIB_(libdir) +#define ARIFY_PRELOAD_LIB ARIF_LIBDIR "/libarify" ARIF_SHLIB_SUFFIX struct options { char *frontend; @@ -172,7 +171,7 @@ main ( assert(program != NULL); struct options opts = { - .preload = ARIFY_PRELOAD_LIB(ARIF_LIBDIR), + .preload = ARIFY_PRELOAD_LIB, }; argv += parse_options(argc, argv, &opts); set_envs(&opts);