File: generate-map-file.sh

package info (click to toggle)
pulseaudio 17.0%2Bdfsg1-2.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,456 kB
  • sloc: ansic: 157,280; sh: 1,050; python: 789; cpp: 298; perl: 166; xml: 84; makefile: 75
file content (30 lines) | stat: -rwxr-xr-x 932 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash

# Generator for linker version script.
# We use the same linker version script for all public .so files
#
# generate-map-file.sh where-is/map-file public_interface_1.h public_interface_2.h ... public_interface_N.h
#

CTAGS_IDENTIFIER_LIST="PA_GCC_MALLOC,PA_GCC_ALLOC_SIZE2,PA_GCC_ALLOC_SIZE,PA_GCC_PURE,PA_GCC_CONST,PA_GCC_DEPRECATED,PA_GCC_PRINTF_ATTR"

print_map_file() {
    echo "PULSE_0 {"
    echo "global:"
    ctags -I ${CTAGS_IDENTIFIER_LIST} -f - --c-kinds=p "$@" | awk '/^pa_/ { print $1 ";" }' | sort
    echo "local:"
    echo "*;"
    echo "};"
}

print_def_file() {
    echo "EXPORTS"
    ctags -I ${CTAGS_IDENTIFIER_LIST} -f - --c-kinds=p "$@" | awk '/^pa_/ && !/(^pa_glib_|^pa_simple_)/ { print $1 }' | sort
}

MAP_FILE=$1
DEF_FILE=$2
shift 2

cd "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}" && print_map_file "$@" > ${MAP_FILE}
cd "${MESON_SOURCE_ROOT}/${MESON_SUBDIR}" && print_def_file "$@" > ${DEF_FILE}