summaryrefslogtreecommitdiff
path: root/scripts/make-L-files
blob: 8280e3d76ae1a10ec4deb43160aaeb04a694f64c (plain)
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/sh
cwd=`pwd`
dir=`basename ${cwd}`
#
# When compiling a file that goes into libunwind, we only
# need to compile it when we really do support UNW_LOCAL_ONLY.
# In contrast, libunwind-tests should always get compiled.
#
if test $dir = "tests"; then
  local_only_test=""
else
  local_only_test="defined(UNW_LOCAL_ONLY) && "
fi
for gname in `ls G*.c G*.cxx G*.S 2>/dev/null`; do
	lname="L$(expr $gname : '.\(.*\)')"
	bk edit $lname >/dev/null 2>&1
	ext=$(expr $gname : '[^.]*[.]\(.*\)')
	if [ "$ext" = "S" ]; then
	    include=""
	else
	    include="#include <libunwind.h>"
	fi
	echo -e "\
#define UNW_LOCAL_ONLY\n\
$include\n\
#if ${local_only_test}!defined(UNW_REMOTE_ONLY)\n\
#include \"$gname\"\n\
#endif" > $lname
	echo created $lname
done