Add config and plugin directory options to configure

Added --with-configdir and --with-plugindir options to configure
which specify the directories for config files and plugin objects
respectively.  The default paths when these options are not
specified are unchanged.
This commit is contained in:
Takashi Iwai 2007-05-03 20:55:54 +02:00
parent 4c9e869ea3
commit 21888c5f50
14 changed files with 51 additions and 31 deletions

View file

@ -61,21 +61,41 @@ AC_SUBST(LIBTOOL_VERSION_INFO)
test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$prefix" = xNONE && prefix=$ac_default_prefix
eval dir="$datadir" dnl ALSA configuration directory
case "$dir" in AC_ARG_WITH(configdir,
/*) ;; AS_HELP_STRING([--with-configdir=dir],
*) dir="$prefix/share" [path where ALSA config files are stored]),
esac confdir="$withval", confdir="")
AC_DEFINE_UNQUOTED(DATADIR, "$dir", [directory containing ALSA configuration database]) if test -z "$confdir"; then
eval dir="$datadir"
case "$dir" in
/*) ;;
*) dir="$prefix/share"
esac
confdir="$dir/alsa"
fi
ALSA_CONFIG_DIR="$confdir"
AC_DEFINE_UNQUOTED(ALSA_CONFIG_DIR, "$confdir", [directory containing ALSA configuration database])
AC_SUBST(ALSA_CONFIG_DIR)
dnl ALSA plugin directory
test "x$exec_prefix" = xNONE && exec_prefix=$prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix
eval dir="$libdir" AC_ARG_WITH(plugindir,
case "$dir" in AS_HELP_STRING([--with-plugindir=dir],
/*) ;; [path where ALSA plugin files are stored]),
*) dir="$dir" plugindir="$withval", plugindir="")
esac if test -z "$plugindir"; then
AC_DEFINE_UNQUOTED(PKGLIBDIR, "$dir/$PACKAGE", [directory containing ALSA add-on modules]) eval dir="$libdir"
case "$dir" in
/*) ;;
*) dir="$dir"
esac
plugindir="$dir/$PACKAGE"
fi
AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "plugindir", [directory containing ALSA add-on modules])
ALSA_PLUGIN_DIR="$plugindir"
AC_SUBST(ALSA_PLUGIN_DIR)
dnl Check for versioned symbols dnl Check for versioned symbols
AC_MSG_CHECKING(for versioned symbols) AC_MSG_CHECKING(for versioned symbols)

View file

@ -1,4 +1,4 @@
pkglibdir = $(libdir)/@PACKAGE@/smixer pkglibdir = @ALSA_PLUGIN_DIR@/smixer
AM_CFLAGS = -g -O2 -W -Wall AM_CFLAGS = -g -O2 -W -Wall

View file

@ -33,7 +33,7 @@
#include "mixer_abst.h" #include "mixer_abst.h"
#include "sbase.h" #include "sbase.h"
#define SO_PATH PKGLIBDIR "/smixer" #define SO_PATH ALSA_PLUGIN_DIR "/smixer"
int mixer_simple_basic_dlopen(snd_mixer_class_t *class, int mixer_simple_basic_dlopen(snd_mixer_class_t *class,
bclass_base_ops_t **ops) bclass_base_ops_t **ops)

View file

@ -2395,7 +2395,7 @@ struct alisp_object * F_path(struct alisp_instance *instance, struct alisp_objec
} }
if (!strcmp(p1->value.s, "data")) { if (!strcmp(p1->value.s, "data")) {
delete_tree(instance, p1); delete_tree(instance, p1);
return new_string(instance, DATADIR); return new_string(instance, ALSA_CONFIG_DIR);
} }
delete_tree(instance, p1); delete_tree(instance, p1);
return &alsa_lisp_nil; return &alsa_lisp_nil;

View file

@ -580,12 +580,12 @@ static int get_char_skip_comments(input_t *input)
if (err < 0) if (err < 0)
return err; return err;
if (!strncmp(str, "confdir:", 8)) { if (!strncmp(str, "confdir:", 8)) {
char *tmp = malloc(strlen(DATADIR "/alsa") + 1 + strlen(str + 8) + 1); char *tmp = malloc(strlen(ALSA_CONFIG_DIR) + 1 + strlen(str + 8) + 1);
if (tmp == NULL) { if (tmp == NULL) {
free(str); free(str);
return -ENOMEM; return -ENOMEM;
} }
sprintf(tmp, DATADIR "/alsa/%s", str + 8); sprintf(tmp, ALSA_CONFIG_DIR "/%s", str + 8);
free(str); free(str);
str = tmp; str = tmp;
} }
@ -2606,7 +2606,7 @@ int snd_config_search_alias_hooks(snd_config_t *config,
#define ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH" #define ALSA_CONFIG_PATH_VAR "ALSA_CONFIG_PATH"
/** The name of the default files used by #snd_config_update. */ /** The name of the default files used by #snd_config_update. */
#define ALSA_CONFIG_PATH_DEFAULT DATADIR "/alsa/alsa.conf" #define ALSA_CONFIG_PATH_DEFAULT ALSA_CONFIG_DIR "/alsa.conf"
/** /**
* \ingroup Config * \ingroup Config

View file

@ -10,5 +10,5 @@ endif
EXTRA_DIST = $(cfg_files) EXTRA_DIST = $(cfg_files)
alsadir = $(datadir)/alsa alsadir = @ALSA_CONFIG_DIR@
alsa_DATA = $(cfg_files) alsa_DATA = $(cfg_files)

View file

@ -1,4 +1,4 @@
alsadir = $(datadir)/alsa/cards alsadir = @ALSA_CONFIG_DIR@/cards
cfg_files = aliases.conf \ cfg_files = aliases.conf \
AACI.conf \ AACI.conf \
ATIIXP.conf \ ATIIXP.conf \
@ -56,7 +56,7 @@ endif
alsa_DATA = $(cfg_files) alsa_DATA = $(cfg_files)
if BUILD_ALISP if BUILD_ALISP
SI7018dir = $(datadir)/alsa/cards/SI7018 SI7018dir = @ALSA_CONFIG_DIR@/cards/SI7018
SI7018_files = \ SI7018_files = \
SI7018/sndoc-mixer.alisp \ SI7018/sndoc-mixer.alisp \
SI7018/sndop-mixer.alisp SI7018/sndop-mixer.alisp

View file

@ -7,5 +7,5 @@ cfg_files = default.conf front.conf rear.conf center_lfe.conf side.conf\
EXTRA_DIST = $(cfg_files) EXTRA_DIST = $(cfg_files)
alsadir = $(datadir)/alsa/pcm alsadir = @ALSA_CONFIG_DIR@/pcm
alsa_DATA = $(cfg_files) alsa_DATA = $(cfg_files)

View file

@ -588,7 +588,7 @@ int snd_func_datadir(snd_config_t **dst, snd_config_t *root ATTRIBUTE_UNUSED,
err = snd_config_get_id(src, &id); err = snd_config_get_id(src, &id);
if (err < 0) if (err < 0)
return err; return err;
return snd_config_imake_string(dst, id, DATADIR "/alsa"); return snd_config_imake_string(dst, id, ALSA_CONFIG_DIR);
} }
#ifndef DOC_HIDDEN #ifndef DOC_HIDDEN
SND_DLSYM_BUILD_VERSION(snd_func_datadir, SND_CONFIG_DLSYM_VERSION_EVALUATE); SND_DLSYM_BUILD_VERSION(snd_func_datadir, SND_CONFIG_DLSYM_VERSION_EVALUATE);

View file

@ -849,13 +849,13 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
build_in++; build_in++;
} }
if (*build_in == NULL) { if (*build_in == NULL) {
buf1 = malloc(strlen(str) + sizeof(PKGLIBDIR) + 32); buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
if (buf1 == NULL) { if (buf1 == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto _err; goto _err;
} }
lib = buf1; lib = buf1;
sprintf(buf1, "%s/libasound_module_ctl_%s.so", PKGLIBDIR, str); sprintf(buf1, "%s/libasound_module_ctl_%s.so", ALSA_PLUGIN_DIR, str);
} }
} }
#ifndef PIC #ifndef PIC

View file

@ -41,7 +41,7 @@
#ifndef DOC_HIDDEN #ifndef DOC_HIDDEN
#define SO_PATH PKGLIBDIR "/smixer" #define SO_PATH ALSA_PLUGIN_DIR "/smixer"
typedef struct _class_priv { typedef struct _class_priv {
char *device; char *device;
@ -239,7 +239,7 @@ int snd_mixer_simple_basic_register(snd_mixer_t *mixer,
goto __error; goto __error;
file = getenv("ALSA_MIXER_SIMPLE"); file = getenv("ALSA_MIXER_SIMPLE");
if (!file) if (!file)
file = DATADIR "/alsa/smixer.conf"; file = ALSA_CONFIG_DIR "/smixer.conf";
err = snd_config_top(&top); err = snd_config_top(&top);
if (err >= 0) { if (err >= 0) {
err = snd_input_stdio_open(&input, file, "r"); err = snd_input_stdio_open(&input, file, "r");

View file

@ -11,7 +11,7 @@ if BUILD_PCM_PLUGIN
libpcm_la_SOURCES += pcm_generic.c pcm_plugin.c libpcm_la_SOURCES += pcm_generic.c pcm_plugin.c
endif endif
if BUILD_PCM_PLUGIN_COPY if BUILD_PCM_PLUGIN_COPY
libpcm_la_SOURCES += pcm_copy.c libpcm_la_SOURCES += pcm_copy.c pcm_demux.c
endif endif
if BUILD_PCM_PLUGIN_LINEAR if BUILD_PCM_PLUGIN_LINEAR
libpcm_la_SOURCES += pcm_linear.c libpcm_la_SOURCES += pcm_linear.c

View file

@ -2080,13 +2080,13 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
build_in++; build_in++;
} }
if (*build_in == NULL) { if (*build_in == NULL) {
buf1 = malloc(strlen(str) + sizeof(PKGLIBDIR) + 32); buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
if (buf1 == NULL) { if (buf1 == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto _err; goto _err;
} }
lib = buf1; lib = buf1;
sprintf(buf1, "%s/libasound_module_pcm_%s.so", PKGLIBDIR, str); sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str);
} }
} }
#ifndef PIC #ifndef PIC

View file

@ -1284,7 +1284,7 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type)
char lib_name[128], *lib = NULL; char lib_name[128], *lib = NULL;
if (!is_builtin_plugin(type)) { if (!is_builtin_plugin(type)) {
snprintf(lib_name, sizeof(lib_name), snprintf(lib_name, sizeof(lib_name),
"%s/libasound_module_rate_%s.so", PKGLIBDIR, type); "%s/libasound_module_rate_%s.so", ALSA_PLUGIN_DIR, type);
lib = lib_name; lib = lib_name;
} }
h = snd_dlopen(lib, RTLD_NOW); h = snd_dlopen(lib, RTLD_NOW);