]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7507: Add global vars fonts_dir, images_dir, data_dir, localstate_dir
authorMichael Jerris <mike@jerris.com>
Thu, 16 Apr 2015 14:37:27 +0000 (10:37 -0400)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:21 +0000 (12:47 -0500)
change configure detection to do FHS layout if you specify a prefix, unless --disable-fhs is passed to configure
moved includes to be under /usr/include/freeswitch dir in fhs layout
install font files into fonts_dir

Makefile.am
configure.ac
src/include/switch_types.h
src/switch_core.c

index ec4074f0e969579ece740868c5c82b0a874b6c45..63394fc74a847a136ecdc5b5aafdc4bdbdcd67d5 100644 (file)
@@ -552,6 +552,8 @@ samples-htdocs:
        done
 
 
+fonts_DATA = fonts/FreeMono.ttf fonts/FreeMonoOblique.ttf fonts/FreeSansBoldOblique.ttf fonts/FreeSerifBold.ttf fonts/OFL.txt fonts/FreeMonoBold.ttf fonts/FreeSans.ttf fonts/FreeSansOblique.ttf fonts/FreeSerifBoldItalic.ttf fonts/README.fonts fonts/FreeMonoBoldOblique.ttf fonts/FreeSansBold.ttf fonts/FreeSerif.ttf fonts/FreeSerifItalic.ttf
+
 samples: samples-conf samples-htdocs
 
 install-exec-local:
@@ -559,7 +561,7 @@ install-exec-local:
 
 install-data-local:
        @echo Installing $(NAME)
-       @for x in $(modulesdir) $(runtimedir) $(dbdir) $(logfiledir) $(logfiledir)/xml_cdr $(bindir) $(scriptdir) $(recordingsdir) $(grammardir); do \
+       @for x in $(modulesdir) $(runtimedir) $(dbdir) $(logfiledir) $(logfiledir)/xml_cdr $(bindir) $(scriptdir) $(recordingsdir) $(grammardir) $(imagesdir) $(fontsdir); do \
                $(mkinstalldirs) $(DESTDIR)$$x ; \
         done
        test -d $(DESTDIR)$(sysconfdir) || $(MAKE) samples-conf
index 7444794941035603dd4c0f817de1efc0e11bc2a9..cff3033649d421429ada26dd3d0743022460c970 100644 (file)
@@ -20,12 +20,6 @@ AC_CONFIG_HEADER([src/include/switch_private.h])
 AC_CONFIG_HEADER([libs/esl/src/include/esl_config_auto.h])
 AC_CONFIG_HEADER([libs/xmlrpc-c/xmlrpc_amconfig.h])
 
-AC_PREFIX_DEFAULT(/usr/local/freeswitch)
-# AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script
-if test "x$prefix" = "xNONE" ; then
-    prefix='/usr/local/freeswitch'
-fi
-
 AC_CANONICAL_HOST
 
 # Absolute source/build directory
@@ -58,54 +52,69 @@ if test "${enable_64}" = "yes"; then
 fi
 
 # Whether to follow FHS
-AC_ARG_ENABLE([fhs],
-  [AS_HELP_STRING([--enable-fhs],
-    [Follow the FHS when placing files and directories])],,
-  [enable_fhs="no"])
-AM_CONDITIONAL([ENABLE_FHS],[test "${enable_fhs}" = "yes"])
-
-if test "$localstatedir" = "\${prefix}/var" ; then
-    rundir="$prefix/run"
-    logdir="${prefix}/log"
-else
-    rundir="$localstatedir/run/freeswitch"
-    logdir="$localstatedir/log/freeswitch"
+AC_ARG_ENABLE([fhs],[AS_HELP_STRING([--disable-fhs],
+       [Do Not follow the FHS when placing files and directories (default only when not specifying prefix])],[enable_fhs="$enableval"],[enable_fhs="yes"])
+
+AC_PREFIX_DEFAULT(/usr/local/freeswitch)
+# AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script
+
+if test "x$prefix" = "xNONE" ; then
+    enable_fhs=no
+    prefix='/usr/local/freeswitch'
 fi
 
-default_certsdir="$prefix/certs"
-default_dbdir="$prefix/db"
+default_scriptdir="$prefix/scripts"
 default_grammardir="$prefix/grammar"
+default_soundsdir="$prefix/sounds"
 default_htdocsdir="$prefix/htdocs"
-default_logfiledir="$logdir"
 default_modulesdir="$prefix/mod"
-default_pkgconfigdir="$libdir/pkgconfig"
-default_recordingsdir="$prefix/recordings"
-default_runtimedir="$rundir"
-default_scriptdir="$prefix/scripts"
-default_soundsdir="$prefix/sounds"
+default_dbdir="$prefix/db"
 default_storagedir="$prefix/storage"
 default_cachedir="$prefix/cache"
+default_recordingsdir="$prefix/recordings"
+rundir="$prefix/run"
+logdir="${prefix}/log"
+confdir="$prefix/conf"
+default_certsdir="$prefix/certs"
+default_fontsdir="$prefix/fonts"
+default_imagesdir="$prefix/images"
+
+if test "${enable_fhs}" = "yes"; then
+    eval full_datadir="${datadir}/freeswitch"
+    eval datadir=$full_datadir
+    default_cachedir="$localstatedir/cache/freeswitch"
+    localstatedir="${localstatedir}/lib/freeswitch"
+    default_scriptdir="${datadir}/scripts"
+    default_grammardir="${datadir}/grammar"
+    default_soundsdir="${datadir}/sounds"
+    default_htdocsdir="${datadir}/htdocs"
+    default_fontsdir="${datadir}/fonts"
+    default_modulesdir="$libdir/freeswitch/mod"
+    default_dbdir="$localstatedir/db"
+    default_storagedir="$localstatedir/storage"
+    default_recordingsdir="$localstatedir/recordings"
+    default_imagesdir="$localstatedir/images"
+    rundir="$localstatedir/run/freeswitch"
+    logdir="$localstatedir/log/freeswitch"
+    confdir="$sysconfdir/freeswitch"
+    default_certsdir="$confdir/tls"
+else
+    if test "$datadir" = "\${datarootdir}" ; then
+        datadir="${prefix}"
+    fi
+    if test "$localstatedir" = "\${prefix}/var" ; then
+        localstatedir="${prefix}"
+    fi
+fi
 
-if test "$enable_fhs" = yes; then
-  prefix="/usr" exec_prefix="$prefix"
-  libdir="$(eval echo "$libdir")"
-  sysconfdir="/etc/freeswitch"
-  localstatedir="/var"
-  default_certsdir="/etc/freeswitch/tls"
-  default_dbdir="/var/lib/freeswitch/db"
-  default_grammardir="/usr/share/freeswitch/grammar"
-  default_htdocsdir="/usr/share/freeswitch/htdocs"
-  default_logfiledir="/var/log/freeswitch"
-  default_modulesdir="$libdir/freeswitch/mod"
-  default_pkgconfigdir="$libdir/pkgconfig"
-  default_recordingsdir="/var/lib/freeswitch/recordings"
-  default_runtimedir="/var/run/freeswitch"
-  default_scriptdir="/usr/share/freeswitch/scripts"
-  default_soundsdir="/usr/share/freeswitch/sounds"
-  default_storagedir="/var/lib/freeswitch/storage"
-  default_cachedir="/var/cache/freeswitch"
+if test "$includedir" = "\${prefix}/include" ; then
+   includedir="${prefix}/include/freeswitch"
 fi
 
+default_pkgconfigdir="$libdir/pkgconfig"
+default_runtimedir="$rundir"
+default_logfiledir="$logdir"
+
 # Where to install the modules
 AC_ARG_WITH([modinstdir],
        [AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: $prefix/mod)])], [modulesdir="$withval"], [modulesdir="${default_modulesdir}"])
@@ -133,6 +142,11 @@ AC_ARG_WITH([htdocsdir],
 AC_SUBST(htdocsdir)
 AC_DEFINE_UNQUOTED([SWITCH_HTDOCS_DIR],"${htdocsdir}",[where to put htdocs files])
 
+AC_ARG_WITH([fontsdir],
+       [AS_HELP_STRING([--with-fontsdir=DIR], [Put font files into this location (default: $prefix/fonts)])], [fontsdir="$withval"], [fontsdir="${default_fontsdir}"])
+AC_SUBST(fontsdir)
+AC_DEFINE_UNQUOTED([SWITCH_FONTS_DIR],"${fontsdir}",[where to put font files])
+
 AC_ARG_WITH([soundsdir],
        [AS_HELP_STRING([--with-soundsdir=DIR], [Put sound files into this location (default: $prefix/sounds)])], [soundsdir="$withval"], [soundsdir="${default_soundsdir}"])
 AC_SUBST(soundsdir)
@@ -158,6 +172,11 @@ AC_ARG_WITH([recordingsdir],
 AC_SUBST(recordingsdir)
 AC_DEFINE_UNQUOTED([SWITCH_RECORDINGS_DIR],"${recordingsdir}",[where to put recording files])
 
+AC_ARG_WITH([imagesdir],
+       [AS_HELP_STRING([--with-imagesdir=DIR], [Put images files into this location (default: $prefix/images)])], [imagesdir="$withval"], [imagesdir="${default_imagesdir}"])
+AC_SUBST(imagesdir)
+AC_DEFINE_UNQUOTED([SWITCH_IMAGES_DIR],"${imagesdir}",[where to put image files])
+
 AC_ARG_WITH([storagedir],
        [AS_HELP_STRING([--with-storagedir=DIR], [Put storage files into this location (default: $prefix/storage)])], [storagedir="$withval"], [storagedir="${default_storagedir}"])
 AC_SUBST(storagedir)
@@ -168,17 +187,15 @@ AC_ARG_WITH([cachedir],
 AC_SUBST(cachedir)
 AC_DEFINE_UNQUOTED([SWITCH_CACHE_DIR],"${cachedir}",[where to put cache files])
 
-if test "$sysconfdir" = "\${prefix}/etc" ; then
-    confdir="$prefix/conf"
-else
-    confdir="$sysconfdir"
-fi
-
-sysconfdir="$confdir"
-
 AC_SUBST(confdir)
 AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files])
 
+AC_SUBST(datadir)
+AC_DEFINE_UNQUOTED([SWITCH_DATA_DIR],"${datadir}",[directory for data files])
+
+AC_SUBST(localstatedir)
+AC_DEFINE_UNQUOTED([SWITCH_LOCALSTATE_DIR],"${localstatedir}",[directory for local state files])
+
 AC_SUBST(libdir)
 AC_SUBST(bindir)
 AC_SUBST(includedir)
@@ -1800,7 +1817,7 @@ AC_OUTPUT
 ##
 ## Registering for ClueCon
 ##
-if ! test -f noreg ; then
+if ! test -f noreg -o -f /noreg; then
 echo ""
 echo ""
 echo $ECHO_N "Registering you for ClueCon http://www.cluecon.com $ECHO_C" 1>&6
@@ -1821,22 +1838,26 @@ echo
 echo "-------------------------- FreeSWITCH configuration --------------------------"
 echo ""
 echo "  Locations:"
-echo "      FHS enabled:     ${enable_fhs}"
 echo ""
 echo "      prefix:          ${prefix}"
 echo "      exec_prefix:     ${exec_prefix}"
 echo "      bindir:          ${bindir}"
-echo "      sysconfdir:      ${sysconfdir}"
+echo "      confdir:         ${confdir}"
 echo "      libdir:          ${libdir}"
+echo "      datadir:         ${datadir}"
+echo "      localstatedir:   ${localstatedir}"
+echo "      includedir:      ${includedir}"
 echo ""
 echo "      certsdir:        ${certsdir}"
 echo "      dbdir:           ${dbdir}"
 echo "      grammardir:      ${grammardir}"
 echo "      htdocsdir:       ${htdocsdir}"
+echo "      fontsdir:        ${fontsdir}"
 echo "      logfiledir:      ${logfiledir}"
 echo "      modulesdir:      ${modulesdir}"
 echo "      pkgconfigdir:    ${pkgconfigdir}"
 echo "      recordingsdir:   ${recordingsdir}"
+echo "      imagesdir:       ${imagesdir}"
 echo "      runtimedir:      ${runtimedir}"
 echo "      scriptdir:       ${scriptdir}"
 echo "      soundsdir:       ${soundsdir}"
index fa3d3de6344b16b517599ab57f60fa8a62421464..000611bea48725603fe194287c43ea4d2dcbf2c4 100644 (file)
@@ -526,6 +526,10 @@ struct switch_directories {
        char *sounds_dir;
        char *lib_dir;
        char *certs_dir;
+       char *fonts_dir;
+       char *images_dir;
+       char *data_dir;
+       char *localstate_dir;
 };
 
 typedef struct switch_directories switch_directories;
index b7aaf6078b3f551385be573f5383b94a047f7884..5bc6ff6dab0fe5376eb334b572978348ac4660a5 100644 (file)
@@ -785,6 +785,50 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
 #endif
        }
 
+       if (!SWITCH_GLOBAL_dirs.fonts_dir && (SWITCH_GLOBAL_dirs.fonts_dir = (char *) malloc(BUFSIZE))) {
+               if (SWITCH_GLOBAL_dirs.base_dir)
+                       switch_snprintf(SWITCH_GLOBAL_dirs.fonts_dir, BUFSIZE, "%s%sfonts", SWITCH_GLOBAL_dirs.base_dir, SWITCH_PATH_SEPARATOR);
+               else
+#ifdef SWITCH_FONT_DIR
+                       switch_snprintf(SWITCH_GLOBAL_dirs.fonts_dir, BUFSIZE, "%s", SWITCH_FONT_DIR);
+#else
+                       switch_snprintf(SWITCH_GLOBAL_dirs.fonts_dir, BUFSIZE, "%s%sfonts", base_dir, SWITCH_PATH_SEPARATOR);
+#endif
+       }
+
+       if (!SWITCH_GLOBAL_dirs.images_dir && (SWITCH_GLOBAL_dirs.images_dir = (char *) malloc(BUFSIZE))) {
+               if (SWITCH_GLOBAL_dirs.base_dir)
+                       switch_snprintf(SWITCH_GLOBAL_dirs.images_dir, BUFSIZE, "%s%simages", SWITCH_GLOBAL_dirs.base_dir, SWITCH_PATH_SEPARATOR);
+               else
+#ifdef SWITCH_IMAGE_DIR
+                       switch_snprintf(SWITCH_GLOBAL_dirs.images_dir, BUFSIZE, "%s", SWITCH_IMAGE_DIR);
+#else
+                       switch_snprintf(SWITCH_GLOBAL_dirs.images_dir, BUFSIZE, "%s%simages", base_dir, SWITCH_PATH_SEPARATOR);
+#endif
+       }
+
+       if (!SWITCH_GLOBAL_dirs.data_dir && (SWITCH_GLOBAL_dirs.data_dir = (char *) malloc(BUFSIZE))) {
+               if (SWITCH_GLOBAL_dirs.base_dir)
+                       switch_snprintf(SWITCH_GLOBAL_dirs.data_dir, BUFSIZE, "%s", SWITCH_GLOBAL_dirs.base_dir);
+               else
+#ifdef SWITCH_DATA_DIR
+                       switch_snprintf(SWITCH_GLOBAL_dirs.data_dir, BUFSIZE, "%s", SWITCH_DATA_DIR);
+#else
+                       switch_snprintf(SWITCH_GLOBAL_dirs.data_dir, BUFSIZE, "%s", base_dir);
+#endif
+       }
+
+       if (!SWITCH_GLOBAL_dirs.localstate_dir && (SWITCH_GLOBAL_dirs.localstate_dir = (char *) malloc(BUFSIZE))) {
+               if (SWITCH_GLOBAL_dirs.base_dir)
+                       switch_snprintf(SWITCH_GLOBAL_dirs.localstate_dir, BUFSIZE, "%s", SWITCH_GLOBAL_dirs.base_dir);
+               else
+#ifdef SWITCH_LOCALSTATE_DIR
+                       switch_snprintf(SWITCH_GLOBAL_dirs.localstate_dir, BUFSIZE, "%s", SWITCH_LOCALSTATE_DIR);
+#else
+                       switch_snprintf(SWITCH_GLOBAL_dirs.localstate_dir, BUFSIZE, "%s", base_dir);
+#endif
+       }
+
        if (!SWITCH_GLOBAL_dirs.certs_dir && (SWITCH_GLOBAL_dirs.certs_dir = (char *) malloc(BUFSIZE))) {
                if (SWITCH_GLOBAL_dirs.base_dir)
                        switch_snprintf(SWITCH_GLOBAL_dirs.certs_dir, BUFSIZE, "%s%scert", SWITCH_GLOBAL_dirs.base_dir, SWITCH_PATH_SEPARATOR);
@@ -832,10 +876,14 @@ SWITCH_DECLARE(void) switch_core_set_globals(void)
        switch_assert(SWITCH_GLOBAL_dirs.script_dir);
        switch_assert(SWITCH_GLOBAL_dirs.htdocs_dir);
        switch_assert(SWITCH_GLOBAL_dirs.grammar_dir);
+       switch_assert(SWITCH_GLOBAL_dirs.fonts_dir);
+       switch_assert(SWITCH_GLOBAL_dirs.images_dir);
        switch_assert(SWITCH_GLOBAL_dirs.recordings_dir);
        switch_assert(SWITCH_GLOBAL_dirs.sounds_dir);
        switch_assert(SWITCH_GLOBAL_dirs.certs_dir);
        switch_assert(SWITCH_GLOBAL_dirs.temp_dir);
+       switch_assert(SWITCH_GLOBAL_dirs.data_dir);
+       switch_assert(SWITCH_GLOBAL_dirs.localstate_dir);
 
        switch_assert(SWITCH_GLOBAL_filenames.conf_name);
 }
@@ -1714,6 +1762,8 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.script_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.htdocs_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.grammar_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
+       switch_dir_make_recursive(SWITCH_GLOBAL_dirs.fonts_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
+       switch_dir_make_recursive(SWITCH_GLOBAL_dirs.images_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.recordings_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.sounds_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
        switch_dir_make_recursive(SWITCH_GLOBAL_dirs.temp_dir, SWITCH_DEFAULT_DIR_PERMS, runtime.memory_pool);
@@ -1769,9 +1819,13 @@ SWITCH_DECLARE(switch_status_t) switch_core_init(switch_core_flag_t flags, switc
        switch_core_set_variable("script_dir", SWITCH_GLOBAL_dirs.script_dir);
        switch_core_set_variable("temp_dir", SWITCH_GLOBAL_dirs.temp_dir);
        switch_core_set_variable("grammar_dir", SWITCH_GLOBAL_dirs.grammar_dir);
+       switch_core_set_variable("fonts_dir", SWITCH_GLOBAL_dirs.fonts_dir);
+       switch_core_set_variable("images_dir", SWITCH_GLOBAL_dirs.images_dir);
        switch_core_set_variable("certs_dir", SWITCH_GLOBAL_dirs.certs_dir);
        switch_core_set_variable("storage_dir", SWITCH_GLOBAL_dirs.storage_dir);
        switch_core_set_variable("cache_dir", SWITCH_GLOBAL_dirs.cache_dir);
+       switch_core_set_variable("data_dir", SWITCH_GLOBAL_dirs.data_dir);
+       switch_core_set_variable("localstate_dir", SWITCH_GLOBAL_dirs.localstate_dir);
 #ifdef ENABLE_ZRTP
        switch_core_set_serial();
 #endif
@@ -2751,12 +2805,16 @@ SWITCH_DECLARE(switch_status_t) switch_core_destroy(void)
        switch_safe_free(SWITCH_GLOBAL_dirs.script_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.htdocs_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.grammar_dir);
+       switch_safe_free(SWITCH_GLOBAL_dirs.fonts_dir);
+       switch_safe_free(SWITCH_GLOBAL_dirs.images_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.storage_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.cache_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.recordings_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.sounds_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.run_dir);
        switch_safe_free(SWITCH_GLOBAL_dirs.temp_dir);
+       switch_safe_free(SWITCH_GLOBAL_dirs.data_dir);
+       switch_safe_free(SWITCH_GLOBAL_dirs.localstate_dir);
 
        switch_event_destroy(&runtime.global_vars);
        switch_core_hash_destroy(&runtime.ptimes);