mirror of https://gerrit.osmocom.org/asn1c
77 lines
1.5 KiB
Bash
Executable File
77 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#
|
|
# This script is designed to quickly create lots of files in underlying
|
|
# test-* directories, do lots of other magic stuff and exit cleanly.
|
|
#
|
|
|
|
if [ "x$1" = "x" ]; then
|
|
echo "Usage: $0 <check-NN.c>"
|
|
exit
|
|
fi
|
|
|
|
# Compute the .asn1 spec name by the given file name.
|
|
source=`echo "$1" | sed -e 's/.*\///'`
|
|
testno=`echo "$source" | cut -f2 -d'-' | cut -f1 -d'.'`
|
|
|
|
args=`echo "$source" | sed -e 's/\.c[c]*$//'`
|
|
testdir=test-${args}
|
|
|
|
OFS=$IFS
|
|
IFS="."
|
|
set $args
|
|
shift
|
|
IFS=$OFS
|
|
AFLAGS="$@"
|
|
|
|
touch ${testdir}-FAILED # Create this file to ease post mortem analysis
|
|
|
|
if [ ! -d $testdir ]; then
|
|
mkdir $testdir || exit $?
|
|
fi
|
|
cd $testdir || exit $?
|
|
rm -f ./$source 2>/dev/null
|
|
ln -fns ../$source || exit $?
|
|
|
|
asn_module=`echo ../../../tests/${testno}-*.asn1`
|
|
|
|
# Create a Makefile for the project.
|
|
cat > Makefile <<EOM
|
|
# This file is autogenerated by ../$0
|
|
|
|
COMMON_FLAGS= -I. -DEMIT_ASN_DEBUG
|
|
CFLAGS=\${COMMON_FLAGS} ${CFLAGS}
|
|
CXXFLAGS=\${COMMON_FLAGS} ${CXXFLAGS}
|
|
|
|
CC ?= ${CC}
|
|
|
|
all: check-executable
|
|
check-executable: compiled-module *.c*
|
|
@rm -f *.core
|
|
\$(CC) \$(CFLAGS) -o check-executable -lm *.c*
|
|
|
|
# Compile the corresponding .asn1 spec.
|
|
compiled-module: ${asn_module} ../../asn1c
|
|
../../asn1c -S ../../../skeletons -Wdebug-compiler \\
|
|
${AFLAGS} ${asn_module}
|
|
rm -f converter-sample.c
|
|
@touch compiled-module
|
|
|
|
check-succeeded: check-executable
|
|
@rm -f check-succeeded
|
|
./check-executable
|
|
@touch check-succeeded
|
|
|
|
check: check-succeeded
|
|
|
|
clean:
|
|
@rm -f *.o check-executable
|
|
EOM
|
|
|
|
# Perform building and checking
|
|
make check || exit $?
|
|
|
|
rm -f ../${testdir}-FAILED
|
|
|
|
exit 0
|