⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s_vxworks

📁 这是国外的resip协议栈
💻
字号:
#!/bin/sh -#	$Id: s_vxworks,v 1.52 2004/10/15 18:28:21 bostic Exp $## Build the VxWorks files.msgc="/* DO NOT EDIT: automatically built by dist/s_vxworks. */". RELEASEs=/tmp/__db_at=/tmp/__db_bu=/tmp/__db_cvxfilelist=/tmp/__db_dvxsmallfiles=/tmp/__db_etrap 'rm -f $s $t $u $vxfilelist $vxsmallfiles ; exit 0' 0trap 'rm -f $s $t $u $vxfilelist $vxsmallfiles ; exit 1' 1 2 3 13 15# Build the VxWorks automatically generated files.cat <<ENDOFSEDTEXT > $s/extern "C" {/{nni\\\\/* Tornado 2 does not provide a standard C pre-processor #define. */\\#ifndef __vxworks\\#define	__vxworks\\#endif}/@inttypes_h_decl@/d/@stdint_h_decl@/d/@stddef_h_decl@/ds/@u_int8_decl@/typedef unsigned char u_int8_t;//@int16_decl@/ds/@u_int16_decl@/typedef unsigned short u_int16_t;//@int32_decl@/ds/@u_int32_decl@/typedef unsigned int u_int32_t;/s/@int64_decl@//s/@u_int64_decl@///@u_char_decl@/d/@u_short_decl@/d/@u_int_decl@/d/@u_long_decl@/d/@ssize_t_decl@/ds/@uintmax_t_decl@/typedef unsigned long uintmax_t;/s/@uintptr_t_decl@/typedef unsigned long uintptr_t;/s/@db_seq_decl@/typedef int db_seq_t;/s/@DB_VERSION_MAJOR@/$DB_VERSION_MAJOR/s/@DB_VERSION_MINOR@/$DB_VERSION_MINOR/s/@DB_VERSION_PATCH@/$DB_VERSION_PATCH/s/@DB_VERSION_STRING@/"$DB_VERSION_STRING"/s/@DB_VERSION_UNIQUE_NAME@//s/@DB_CONST@//s/@DB_PROTO1@/#undef __P/s/@DB_PROTO2@/#define	__P(protos)	protos/ENDOFSEDTEXT(echo "$msgc" &&    sed -f $s ../dbinc/db.in &&    cat ../dbinc_auto/ext_prot.in) > $t`egrep '@.*@' $t` && {	echo 'Unexpanded autoconf variables found in VxWorks db.h.'	exit 1}f=../build_vxworks/db.hcmp $t $f > /dev/null 2>&1 ||    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)cat <<ENDOFSEDTEXT > $ss/@PATH_SEPARATOR@/\/\\\\\\\\/s/@db_int_def@//ENDOFSEDTEXT(echo "$msgc" && sed -f $s ../dbinc/db_int.in) > $t`egrep '@.*@' $t` && {	echo 'Unexpanded autoconf variables found in VxWorks db_int.h.'	exit 1}f=../build_vxworks/db_int.hcmp $t $f > /dev/null 2>&1 ||    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)f=../build_vxworks/db_config.h(echo "$msgc" && sed "s/__EDIT_DB_VERSION__/$DB_VERSION/" vx_config.in) > $tcmp $t $f > /dev/null 2>&1 ||    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)f=../build_vxworks/db_config_small.h(echo "$msgc" &&    sed -e "s/__EDIT_DB_VERSION__/$DB_VERSION/" \	-e "s;^#define.*HAVE_CRYPTO.*1;/* #undef HAVE_CRYPTO */;" \	-e "s;^#define.*HAVE_HASH.*1;/* #undef HAVE_HASH */;" \	-e "s;^#define.*HAVE_QUEUE.*1;/* #undef HAVE_QUEUE */;" \	-e "s;^#define.*HAVE_REPLICATION.*1;/* #undef HAVE_REPLICATION */;" \	-e "s;^#define.*HAVE_STATISTICS.*1;/* #undef HAVE_STATISTICS */;" \	-e "s;^#define.*HAVE_VERIFY.*1;/* #undef HAVE_VERIFY */;" \    vx_config.in) > $tcmp $t $f > /dev/null 2>&1 ||    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)# Build a sed script that will change a "standard" DB utility into# VxWorks-compatible code.transform(){	# Build a sed script that will add argument parsing support and	# rename all of the functions to be private to this file.cat <<ENDOFSEDTEXT/^main(argc, argv)$/{i\\$1(args)\\\\	char *args;\\{\\\\	int argc;\\\\	char **argv;\\\\\\	__db_util_arg("$1", args, &argc, &argv);\\\\	return ($1_main(argc, argv) ? EXIT_FAILURE : EXIT_SUCCESS);\\}\\\\#include <stdio.h>\\#define	ERROR_RETURN	ERROR\\\\int\\$1_main(argc, argv)d}/^	while ((ch = getopt/i\\\\	__db_getopt_reset = 1;/^[	]*extern int optind;/s/;/, __db_getopt_reset;/ENDOFSEDTEXT	# Replace all function names with VxWorks safe names.	# Function names are:	#	Tokens starting at the beginning of the line, immediately	#	followed by an opening parenthesis.	# Replace:	#	Matches preceded by a non-C-token character and immediately	#	followed by an opening parenthesis.	#	Matches preceded by a non-C-token character and immediately	#	followed by " __P".	#	Matches starting at the beginning of the line, immediately	#	followed by an opening parenthesis.	for k in `sed -e 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)(.*$/\1/p' -e d $2`; do		echo "s/\([^a-zA-Z0-9_]\)\($k(\)/\1$1_\2/g"		echo "s/\([^a-zA-Z0-9_]\)\($k[	 ]__P\)/\1$1_\2/g"		echo "s/^\($k(\)/$1_\1/g"	done	# There is a special case the rules above don't catch:	#	a txn_compare function used as an argument to qsort(3).	#	a print_app_record function used as argument to	#	    dbenv->set_app_dispatch).	echo "s/, txn_compare);/, db_stat_txn_compare);/"	echo "s/, print_app_record)) /, db_printlog_print_app_record)) /"	# We convert the ex_access sample into dbdemo for VxWorks.	echo 's/progname = "ex_access";/progname = "dbdemo";/'	# The example programs have to load db_int.h, not db.h -- else	# they won't have the right Berkeley DB prototypes for getopt	# and friends.	echo '/#include.*db.h/c\'	echo '#include <db_config.h>\'	echo '#include <db_int.h>'}PROGRAM_LIST="db_archive db_checkpoint db_deadlock db_dump db_load \    db_printlog db_recover db_stat db_upgrade db_verify ex_access"# Build VxWorks versions of the utilities.for i in $PROGRAM_LIST; do	if [ $i = "ex_access" ]; then		target=dbdemo		dir=../examples_c	else		target=$i		dir=../$i	fi	transform $target $dir/$i.c > $s	sed -f $s < $dir/$i.c > $t	f=../build_vxworks/$target/$target.c	cmp $t $f > /dev/null 2>&1 ||	    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)done# Build VxWorks Tornado 2.0 project files for the utilities.for i in $PROGRAM_LIST; do	if [ $i = "ex_access" ]; then		target=dbdemo		dir=../examples_c	else		target=$i		dir=../$i	fi	sed "s/__DB_APPLICATION_NAME__/$target/g" < vx_2.0/wpj.in > $t	f=../build_vxworks/$target/${target}20.wpj	cmp $t $f > /dev/null 2>&1 ||	    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)	sed "s/__DB_APPLICATION_NAME__/$target/g" < vx_2.2/wpj.in > $t	f=../build_vxworks/$target/${target}22.wpj	cmp $t $f > /dev/null 2>&1 ||	    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)done# Build the list of files VxWorks knows about.sed -e '/^$/d' -e '/^[	 #]/d' srcfiles.in |    egrep -w vx |    sed 's/[	 ].*//' > $vxfilelist# Build the list of files VxWorks knows about.sed -e '/^$/d' -e '/^[	 #]/d' srcfiles.in |    egrep -w vxsmall |    sed 's/[	 ].*//' > $vxsmallfiles# Build VxWorks Tornado 2.0 project files for the library itself.for v in 0 2 ; do	#	# Build regular project files	#	(cat vx_2.${v}/BerkeleyDB.wpj	for i in `cat $vxfilelist`; do		o="<BEGIN> FILE_\$(PRJ_DIR)/../$i"		echo "${o}_dependDone"		echo "TRUE"		echo "<END>"		echo		echo "${o}_dependencies"		echo "\$(PRJ_DIR)/db_config.h \\"		echo "	\$(PRJ_DIR)/db_int.h \\"		echo "	\$(PRJ_DIR)/db.h"		echo "<END>"		echo		echo "${o}_objects"		echo "`basename $i .c`.o"		echo "<END>"		echo		echo "${o}_tool"		echo "C/C++ compiler"		echo "<END>"		echo	done	echo "<BEGIN> PROJECT_FILES"	sed -e '$!s/$/ \\/' \	    -e 's/^/$(PRJ_DIR)\/..\//' \	    -e '1!s/^/	/' < $vxfilelist	echo "<END>"	echo	echo "<BEGIN> userComments"	echo "BerkeleyDB"	echo "<END>") > $t	#	# Build small lib project files	#	(cat vx_2.${v}/BerkeleyDBsmall.wpj	for i in `cat $vxsmallfiles`; do		o="<BEGIN> FILE_\$(PRJ_DIR)/../$i"		echo "${o}_dependDone"		echo "TRUE"		echo "<END>"		echo		echo "${o}_dependencies"		echo "\$(PRJ_DIR)/db_config.h \\"		echo "	\$(PRJ_DIR)/db_int.h \\"		echo "	\$(PRJ_DIR)/db.h"		echo "<END>"		echo		echo "${o}_objects"		echo "`basename $i .c`.o"		echo "<END>"		echo		echo "${o}_tool"		echo "C/C++ compiler"		echo "<END>"		echo	done	echo "<BEGIN> PROJECT_FILES"	sed -e '$!s/$/ \\/' \	    -e 's/^/$(PRJ_DIR)\/..\//' \	    -e '1!s/^/	/' < $vxsmallfiles	echo "<END>"	echo	echo "<BEGIN> userComments"	echo "BerkeleyDB"	echo "<END>") > $u	f=../build_vxworks/BerkeleyDB2${v}.wpj	cmp $t $f > /dev/null 2>&1 ||	    (echo "Building $f" && rm -f $f && cp $t $f && chmod 444 $f)	f=../build_vxworks/BerkeleyDB2${v}small.wpj	cmp $u $f > /dev/null 2>&1 ||	    (echo "Building $f" && rm -f $f && cp $u $f && chmod 444 $f)done

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -