#! /bin/sh # # mksyms.sh # # Extract symbols to export from C-header files. # output in version-script format for linking shared libraries. # # This is the shell wrapper for the mksyms.awk core script. # # Copyright (C) 2008 Michael Adam # LANG=C export LANG LC_ALL=C export LC_ALL LC_COLLATE=C export LC_COLLATE if [ $# -lt 2 ]; then echo "Usage: $0 awk output_file header_files" exit 1 fi awk="$1" shift symsfile="$1" shift symsfile_tmp="$symsfile.$$.tmp~" proto_src="$(echo $@ | tr ' ' '\n' | sort | uniq)" echo creating $symsfile mkdir -p $(dirname $symsfile) ${awk} -f $(dirname $0)/mksyms.awk $proto_src >$symsfile_tmp if cmp -s $symsfile $symsfile_tmp 2>/dev/null; then echo "$symsfile unchanged" rm $symsfile_tmp else mv $symsfile_tmp $symsfile fi