aboutsummaryrefslogtreecommitdiffstats
path: root/build_tools
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools')
-rwxr-xr-xbuild_tools/.cvsignore1
-rwxr-xr-xbuild_tools/make_build_h20
-rwxr-xr-xbuild_tools/make_defaults_h25
-rwxr-xr-xbuild_tools/make_version_h10
-rwxr-xr-xbuild_tools/mkdep123
-rwxr-xr-xbuild_tools/vercomp.c349
6 files changed, 528 insertions, 0 deletions
diff --git a/build_tools/.cvsignore b/build_tools/.cvsignore
new file mode 100755
index 000000000..1f389ab1d
--- /dev/null
+++ b/build_tools/.cvsignore
@@ -0,0 +1 @@
+vercomp
diff --git a/build_tools/make_build_h b/build_tools/make_build_h
new file mode 100755
index 000000000..fda1cea38
--- /dev/null
+++ b/build_tools/make_build_h
@@ -0,0 +1,20 @@
+#!/bin/sh
+HOSTNAME=`uname -n`
+KERNEL=`uname -r`
+MACHINE=`uname -m`
+OS=`uname -s`
+USER=`whoami`
+DATE=`date --utc "+%Y-%m-%d %H:%M:%S"`
+cat << END
+/*
+ * build.h
+ * Automatically generated
+ */
+#define BUILD_HOSTNAME "${HOSTNAME}"
+#define BUILD_KERNEL "${KERNEL}"
+#define BUILD_MACHINE "${MACHINE}"
+#define BUILD_OS "${OS}"
+#define BUILD_DATE "${DATE}"
+#define BUILD_USER "${USER}"
+
+END
diff --git a/build_tools/make_defaults_h b/build_tools/make_defaults_h
new file mode 100755
index 000000000..7b9411111
--- /dev/null
+++ b/build_tools/make_defaults_h
@@ -0,0 +1,25 @@
+#!/bin/sh
+cat << END
+/*
+ * defaults.h
+ * Automatically generated
+ */
+#define AST_CONFIG_DIR "${INSTALL_PATH}${ASTETCDIR}"
+#define AST_RUN_DIR "${INSTALL_PATH}${ASTVARRUNDIR}"
+#define AST_SOCKET "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.ctl"
+#define AST_PID "${INSTALL_PATH}${ASTVARRUNDIR}/asterisk.pid"
+#define AST_MODULE_DIR "${INSTALL_PATH}${MODULES_DIR}"
+#define AST_SPOOL_DIR "${INSTALL_PATH}${ASTSPOOLDIR}"
+#define AST_VAR_DIR "${INSTALL_PATH}${ASTVARLIBDIR}"
+#define AST_LOG_DIR "${INSTALL_PATH}${ASTLOGDIR}"
+#define AST_AGI_DIR "${INSTALL_PATH}${AGI_DIR}"
+#define AST_KEY_DIR "${INSTALL_PATH}${ASTVARLIBDIR}/keys"
+#define AST_DB "${INSTALL_PATH}${ASTVARLIBDIR}/astdb"
+#define AST_TMP_DIR "${INSTALL_PATH}${ASTSPOOLDIR}/tmp"
+
+#define AST_CONFIG_FILE "${INSTALL_PATH}${ASTCONFPATH}"
+
+#define AST_SOUNDS "${INSTALL_PATH}${ASTVARLIBDIR}/sounds"
+#define AST_IMAGES "${INSTALL_PATH}${ASTVARLIBDIR}/images"
+
+END
diff --git a/build_tools/make_version_h b/build_tools/make_version_h
new file mode 100755
index 000000000..f0e81f70a
--- /dev/null
+++ b/build_tools/make_version_h
@@ -0,0 +1,10 @@
+#!/bin/sh
+cat << END
+/*
+ * version.h
+ * Automatically generated
+ */
+#define ASTERISK_VERSION "${ASTERISKVERSION}"
+#define ASTERISK_VERSION_NUM ${ASTERISKVERSIONNUM}
+
+END
diff --git a/build_tools/mkdep b/build_tools/mkdep
new file mode 100755
index 000000000..84f969b1d
--- /dev/null
+++ b/build_tools/mkdep
@@ -0,0 +1,123 @@
+#!/bin/sh -
+#
+# $OpenBSD: mkdep.gcc.sh,v 1.8 1998/09/02 06:40:07 deraadt Exp $
+# $NetBSD: mkdep.gcc.sh,v 1.9 1994/12/23 07:34:59 jtc Exp $
+#
+# Copyright (c) 1991, 1993
+# The Regents of the University of California. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the University of
+# California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# @(#)mkdep.gcc.sh 8.1 (Berkeley) 6/6/93
+#
+
+D=.depend # default dependency file is .depend
+append=0
+pflag=
+dflag=
+
+while :
+ do case "$1" in
+ # -a appends to the depend file
+ -a)
+ append=1
+ shift ;;
+
+ # -f allows you to select a makefile name
+ -f)
+ D=$2
+ shift; shift ;;
+
+ # the -p flag produces "program: program.c" style dependencies
+ # so .o's don't get produced
+ -p)
+ pflag=p
+ shift ;;
+
+ # the -d flag produces double-colon rules instead of single-colon rules
+ -d)
+ dflag=d
+ shift ;;
+
+ *)
+ break ;;
+ esac
+done
+
+if [ $# = 0 ] ; then
+ echo 'usage: mkdep [-p] [-d] [-f depend_file] [cc_flags] file ...'
+ exit 1
+fi
+
+DTMP=/tmp/mkdep$$
+TMP=$DTMP/mkdep
+
+um=`umask`
+umask 022
+mkdir $DTMP
+if [ $? != 0 ] ; then
+ echo failed to create tmp dir $DTMP
+ exit 1
+fi
+
+umask $um
+trap 'rm -rf $DTMP ; trap 2 ; kill -2 $$' 1 2 3 13 15
+
+if [ x$pflag = xp ]; then
+ ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o :; :;' -e 's; \./; ;g' > $TMP
+elif [ x$dflag = xd ]; then
+ ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's;\.o:;\.o::;' -e 's; \./; ;g' > $TMP
+else
+ ${CC:-cc} -M "$@" 2>/dev/null | sed -e 's; \./; ;g' > $TMP
+fi
+
+if [ $? != 0 ]; then
+ echo 'mkdep: compile failed.'
+ rm -rf $DTMP
+ exit 1
+fi
+
+if [ $append = 1 ]; then
+ cat $TMP >> $D
+ if [ $? != 0 ]; then
+ echo 'mkdep: append failed.'
+ rm -rf $DTMP
+ exit 1
+ fi
+else
+ mv $TMP $D
+ if [ $? != 0 ]; then
+ echo 'mkdep: rename failed.'
+ rm -rf $DTMP
+ exit 1
+ fi
+fi
+
+rm -rf $DTMP
+exit 0
diff --git a/build_tools/vercomp.c b/build_tools/vercomp.c
new file mode 100755
index 000000000..acc32f181
--- /dev/null
+++ b/build_tools/vercomp.c
@@ -0,0 +1,349 @@
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
+ * A simple program version comparison tool.
+ *
+ * Copyright (C) 2005, Steven Michael Murphy (murf at e-tools dot com).
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License
+ */
+
+/* vercomp.c
+ args: <program> <comparison> <version>
+
+ where:
+
+ program = path to program (bison or flex)
+ comparison = ">", "<", "<=", ">=", "=" -- depending on shell, you may have to use backslash escapes
+ version = a version compare against, say 1.875, or 2.5.4, or whatever.
+
+*/
+
+#include <stdio.h>
+#include <string.h>
+
+char *program_version[5];
+char *arg_version[5];
+
+void get_program_version_string(char *command, char *output)
+{
+ char cbuf[8000];
+ char pbuf[8000];
+ char zbuf[8000];
+ char *res;
+ FILE *p1;
+
+ zbuf[0] = 0;
+
+ sprintf( cbuf, "%s --version", command );
+ p1 = popen(cbuf, "r");
+ if( !p1 )
+ {
+ fprintf(stderr,"vercomp: Could not execute the command: %s\n", command);
+ exit(125);
+ }
+ /* the first line is the magic one */
+ res = fgets(zbuf, 8000, p1);
+ /* clear the trailing blank */
+ if( zbuf[strlen(zbuf)-1] == '\n' )
+ zbuf[strlen(zbuf)-1] = 0;
+ /* the rest is cruft, just empty the input stream */
+ while( res )
+ {
+ res = fgets(pbuf, 8000, p1);
+ }
+ /* close the stream. Hopefully, we have what we need */
+ pclose(p1);
+ /* all we want is the last "word"-- so find the last blank, and grab everything after that */
+
+ res = strrchr(zbuf,' ');
+ if( !res )
+ {
+ fprintf(stderr,"Something is wrong with the version string: %s\n", zbuf);
+ exit(124);
+ }
+ strcpy(output,res+1);
+}
+
+
+void extract_version(char *ver_string, char **where)
+{
+ int i=0;
+ char *p=ver_string;
+
+ while( p && *p )
+ {
+ where[i++] = p;
+ p = strchr(p,'.');
+ if( p )
+ {
+ *p= 0;
+ p++;
+ }
+ }
+}
+
+void compare_versions(char *compare_func)
+{
+ int i;
+
+ for(i=0;i<5;i++)
+ {
+ /* start out at the beginning, then go to the end */
+ if( program_version[i] && arg_version[i] && *program_version[i] && *arg_version[i] )
+ {
+
+ if( strlen(program_version[i]) == strspn(program_version[i],"0123456789")
+ && strlen(arg_version[i]) == strspn(arg_version[i],"0123456789") )
+ {
+ /* just pure numbers -- do a numeric compare */
+ int pv = atoi(program_version[i]);
+ int av = atoi(arg_version[i]);
+
+ if( pv < av )
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ }
+ else if( pv > av )
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ }
+ }
+ else
+ {
+ /* other junk thrown in -- do string compare */
+ int res = strcmp(program_version[i], arg_version[i]);
+ if( res < 0 ) /* prog is less than arg */
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ }
+ else if( res > 0 ) /* prog is greater than arg */
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ }
+ }
+ }
+ else if( program_version[i] && *program_version[i] )
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+
+ }
+ else if( arg_version[i] && *arg_version[i] )
+ {
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ }
+ else
+ break;
+ }
+ if( !strcmp(compare_func,"=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<") )
+ {
+ printf("false\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, ">=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+ else if( !strcmp(compare_func, "<=") )
+ {
+ printf("true\n");
+ exit(0);
+ }
+}
+
+void usage(void)
+{
+ printf("Usage: <program-path> <comparison> <version>\n\
+\n\
+ where:\n\
+\n\
+ program-path = path to program (bison or flex)\n\
+ comparison = '>', '<', '<=', '>=', '=' -- depending on shell, you may have to use backslash escapes\n\
+ version = a version compare against, say 1.875, or 2.5.4, or whatever.\n\n");
+}
+
+
+int main(int argc, char **argv)
+{
+ char program_version_string[8000];
+
+ /* before starting, check args and make sure all is OK */
+ if( argc < 4 || argc > 4 )
+ {
+ usage();
+ exit(-256);
+ }
+ if ( strcmp(argv[2],"=") && strcmp(argv[2],">") && strcmp(argv[2],"<") && strcmp(argv[2],">=") && strcmp(argv[2],"<=") )
+ {
+ fprintf(stderr,"vercomp: ILLEGAL input Comparison value: %s\n\n", argv[2]);
+ usage();
+ exit(-256);
+ }
+
+ /* first, extract a version from the command line arg */
+ extract_version(argv[3], arg_version);
+
+ /* next, extract a version from the command line */
+ get_program_version_string(argv[1], program_version_string);
+ extract_version(program_version_string, program_version);
+
+ /* next compare and return result */
+ compare_versions(argv[2]);
+ /* the above func shouldn't return */
+}