add support for setting the CFLAGS for voicemail storage options in menuselect

Thanks to kpfleming for the Makefile magic :)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@34492 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Russell Bryant 19 years ago
parent 65c5d5882c
commit 287fce05d0

@ -15,17 +15,10 @@ include ../menuselect.makeopts
SELECTED_MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.c,%,$(wildcard app_*.c))) SELECTED_MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.c,%,$(wildcard app_*.c)))
# If you have UnixODBC you can use ODBC voicemail
# storage
#
# Uncomment to use ODBC storage
#CFLAGS+=-DUSE_ODBC_STORAGE
# Uncomment for extended ODBC voicemail storage
#CFLAGS+=-DEXTENDED_ODBC_STORAGE
# See doc/README.odbcstorage for more information
MODS:=$(patsubst %,%.so,$(SELECTED_MODS)) MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
app_voicemail.o: CFLAGS+=$(patsubst %,-D%,$(MENUSELECT_app_voicemail))
all: $(MODS) all: $(MODS)
clean-depend: clean-depend:

@ -41,6 +41,23 @@
* Bartosz Supczinski <Bartosz.Supczinski@dir.pl> * Bartosz Supczinski <Bartosz.Supczinski@dir.pl>
*/ */
/*** MAKEOPTS
<category name="MENUSELECT_app_voicemail" displayname="Voicemail Build Options" positive_output="yes" force_clean_on_change="yes">
<member name="IMAP_STORAGE" displayname="Storage of Voicemail using IMAP">
<depend>cc-client</depend>
<defaultenabled>no</defaultenabled>
</member>
<member name="ODBC_STORAGE" displayname="Storage of Voicemail using ODBC">
<depend>unixodbc</depend>
<defaultenabled>no</defaultenabled>
</member>
<member name="EXTENDED_ODBC_STORAGE" displayname="Storage of Voicemail using ODBC (extended)">
<depend>unixodbc</depend>
<defaultenabled>no</defaultenabled>
</member>
</category>
***/
#include "asterisk.h" #include "asterisk.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$") ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
@ -77,7 +94,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/stringfields.h" #include "asterisk/stringfields.h"
#include "asterisk/smdi.h" #include "asterisk/smdi.h"
#define SMDI_MWI_WAIT_TIMEOUT 1000 /* 1 second */ #define SMDI_MWI_WAIT_TIMEOUT 1000 /* 1 second */
#ifdef USE_ODBC_STORAGE #ifdef ODBC_STORAGE
#include "asterisk/res_odbc.h" #include "asterisk/res_odbc.h"
#endif #endif
@ -289,7 +306,7 @@ static int vm_play_folder_name(struct ast_channel *chan, char *mbox);
static void apply_options(struct ast_vm_user *vmu, const char *options); static void apply_options(struct ast_vm_user *vmu, const char *options);
#ifdef USE_ODBC_STORAGE #ifdef ODBC_STORAGE
static char odbc_database[80]; static char odbc_database[80];
static char odbc_table[80]; static char odbc_table[80];
#define RETRIEVE(a,b) retrieve_file(a,b) #define RETRIEVE(a,b) retrieve_file(a,b)
@ -838,7 +855,7 @@ static int vm_lock_path(const char *path)
} }
#ifdef USE_ODBC_STORAGE #ifdef ODBC_STORAGE
static int retrieve_file(char *dir, int msgnum) static int retrieve_file(char *dir, int msgnum)
{ {
int x = 0; int x = 0;
@ -1290,7 +1307,7 @@ static int store_file(char *dir, char *mailboxuser, char *mailboxcontext, int ms
} }
fdlen = lseek(fd, 0, SEEK_END); fdlen = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET); lseek(fd, 0, SEEK_SET);
printf("Length is %d\n", fdlen); printf("Length is %zd\n", fdlen);
fdm = mmap(NULL, fdlen, PROT_READ | PROT_WRITE, MAP_SHARED,fd, 0); fdm = mmap(NULL, fdlen, PROT_READ | PROT_WRITE, MAP_SHARED,fd, 0);
if (!fdm) { if (!fdm) {
ast_log(LOG_WARNING, "Memory map failed!\n"); ast_log(LOG_WARNING, "Memory map failed!\n");
@ -2015,7 +2032,7 @@ static const char *mbox(int id)
return (id >= 0 && id < (sizeof(msgs)/sizeof(msgs[0]))) ? msgs[id] : "Unknown"; return (id >= 0 && id < (sizeof(msgs)/sizeof(msgs[0]))) ? msgs[id] : "Unknown";
} }
#ifdef USE_ODBC_STORAGE #ifdef ODBC_STORAGE
static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs) static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
{ {
int x = -1; int x = -1;
@ -6183,7 +6200,7 @@ static int load_config(void)
astsearch = "no"; astsearch = "no";
ast_set2_flag((&globalflags), ast_true(astsearch), VM_SEARCH); ast_set2_flag((&globalflags), ast_true(astsearch), VM_SEARCH);
#ifdef USE_ODBC_STORAGE #ifdef ODBC_STORAGE
strcpy(odbc_database, "asterisk"); strcpy(odbc_database, "asterisk");
if ((thresholdstr = ast_variable_retrieve(cfg, "general", "odbcstorage"))) { if ((thresholdstr = ast_variable_retrieve(cfg, "general", "odbcstorage"))) {
ast_copy_string(odbc_database, thresholdstr, sizeof(odbc_database)); ast_copy_string(odbc_database, thresholdstr, sizeof(odbc_database));
@ -6614,7 +6631,7 @@ static int load_module(void *mod)
ast_install_vm_functions(has_voicemail, inboxcount, messagecount); ast_install_vm_functions(has_voicemail, inboxcount, messagecount);
#if defined(USE_ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE) #if defined(ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE)
ast_log(LOG_WARNING, "The current ODBC storage table format will be changed soon." ast_log(LOG_WARNING, "The current ODBC storage table format will be changed soon."
"Please update your tables as per the README and edit the apps/Makefile " "Please update your tables as per the README and edit the apps/Makefile "
"and uncomment the line containing EXTENDED_ODBC_STORAGE to enable the " "and uncomment the line containing EXTENDED_ODBC_STORAGE to enable the "

@ -0,0 +1,3 @@
/\/\*\*\* MAKEOPTS/ {printit=1; next}
/\*\*\*\// {exit}
// {if (printit) print}

@ -39,15 +39,21 @@ process_dir() {
get_description ${file} get_description ${file}
desc=${TDESC} desc=${TDESC}
echo -e "\t\t<member name=\"${fname%%.c}\" displayname=\"${desc}\">" echo -e "\t\t<member name=\"${fname%%.c}\" displayname=\"${desc}\">"
awk -f build_tools/get_moduledeps ${file} awk -f build_tools/get_moduleinfo ${file}
echo -e "\t\t</member>" echo -e "\t\t</member>"
done done
echo -e "\t</category>" echo -e "\t</category>"
for file in ${dir}/${prefix}*.c
do
awk -f build_tools/get_makeopts ${file} >> .makeoptstmp
done
} }
echo "<?xml version="1.0"?>" echo "<?xml version="1.0"?>"
echo echo
echo "<menu>" echo "<menu>"
rm -f .makeoptstmp
process_dir apps app APPS Applications process_dir apps app APPS Applications
process_dir cdr cdr CDR "Call Detail Recording" process_dir cdr cdr CDR "Call Detail Recording"
process_dir channels chan CHANNELS "Channel Drivers" process_dir channels chan CHANNELS "Channel Drivers"
@ -58,4 +64,6 @@ process_dir pbx pbx PBX "PBX Modules"
process_dir res res RES "Resource Modules" process_dir res res RES "Resource Modules"
cat build_tools/cflags.xml cat build_tools/cflags.xml
cat sounds/sounds.xml cat sounds/sounds.xml
cat .makeoptstmp
rm -f .makeoptstmp
echo "</menu>" echo "</menu>"

Loading…
Cancel
Save