Loading README.md +18 −6 Original line number Diff line number Diff line Loading @@ -163,7 +163,12 @@ Procedure: - TITAN, according the procedure specified [here](https://github.com/eclipse/titan.core) - Import the TITAN plugin into your Eclipse IDE, according the procedure specified [here](https://github.com/eclipse/titan.core) - Clone the ETSI ITS protocols project into $HOME/dev folder - ... ```sh $ git clone ``` - Update your default environment with the content of the script $HOME/dev/STF525_Its/scripts/devenv.bash.ubuntu - Switch to the next clause (Usage) Loading @@ -175,27 +180,34 @@ The procedures below illustrate how to run the CAM test suite. The same procedur Pre-requisites: - Your machine is installed followimg one of the installation method describes in the previous clause - Refer to the ETSU TS 103 099 for the description of the Test System architecture and configuration - Refer to the ETSI TS 103 099 for the description of the Test System architecture and configuration - Your are logged as 'etsi' or 'vagrant' user Procedure using Eclipse TITAN: <TODO> Procedure in TITAN command line: - Open several SSH session (PuTTY...) - Change to the directory ~/dev/STF525_Its/src/AtsCAM/objs - Build the test suite AtsCAM ```sh $ ../bin/cam_generate_makefile.bash ... ``` - Edit the file ../etc/AtsCAM.cfg - Update the following fields: - Update the following fields (see ETSI TS 103 099 for details): - system.camPort.params - system.utPort.params - Execute the following command: - To run the test suitem, execute the following command: ```sh $ ../bin/run-all.bash ... ``` - The log files are located in ../logs folder. Yu can edit them using any editor or using the Eclipse TITAN log plugins - Your machine is installed followimg one of the installation method describes in the previous clause - The log files are located in ../logs folder. You can edit them using any editor or using the Eclipse TITAN log plugins ## Rebuild Wireshark with support of ETSI ITS Protocols Loading Vagrant/provisioner.bash +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y sudo DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y sudo DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs openjdk-11-jre gcc-8 g++-8 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libxml2-dev xutils-dev tcpdump libpcap-dev libwireshark-dev wget tree unzip sshpass kubuntu-desktop valgrind qt5-default qtmultimedia5-dev libqt5svg5-dev -y sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs openjdk-11-jre gcc-8 g++-8 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libxml2-dev xutils-dev tcpdump libpcap-dev libwireshark-dev wget tree unzip sshpass kubuntu-desktop valgrind qt5-default qtmultimedia5-dev libqt5svg5-dev vim tzdata -y # Install java #sudo DEBIAN_FRONTEND=noninteractive apt-get install oracle-java9-installer oracle-java9-set-default -y #sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install oracle-java10-installer oracle-java10-set-default -y Loading docker/Dockerfile +5 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ ENV HOSTNAME docker-titan-STF525 ARG USERNAME ARG PASSWORD RUN echo "docker-titan" > /etc/hostname \ RUN echo "docker-titan-STF525" > /etc/hostname \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \ Loading Loading @@ -87,7 +87,10 @@ RUN cd /home/etsi \ && wget 'http://ftp.halifax.rwth-aachen.de/eclipse//technology/epp/downloads/release/oxygen/2/eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz' -Oeclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && tar -zxvf ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && rm -f ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && cd /home/etsi/dev/STF525_Its/scripts && . /home/etsi/devenv.bash \ && cd /home/etsi/dev/STF525_Its/scripts \ && ./build_titan.bash \ && ./update_its_project.bash CMD ["/bin/bash"] Loading scripts/autointerop_generate_makefile.bash 0 → 100644 +247 −0 Original line number Diff line number Diff line #!/bin/bash set -e set -vx function f_exit { cd ${CURPWD} unset TTCN_FILES unset CC_FILES unset CFG_FILES unset EXECUTABLE echo $1 exit $2 } function f_usage { echo "build.bash: This script import from External Disk the " echo "Optional arguments:" echo " prof: Generate a makefile including profiling options (e.g. ./build.bash prof)" exit 0 } clear if [ "$1" == "help" ] then f_usage fi ATS_NAME=AutoInterop #CURPWD=`pwd` if [ ! "${PWD##*/}" == "objs" ] then cd ../objs if [ ! $? == 0 ] then echo "Please move to PROJECT/obj directory" exit 1 fi fi # Remove everything rm -fr ../objs/*.hh rm -fr ../objs/*.cc rm -fr ../objs/*.log rm -fr ../objs/*.o rm -fr ../objs/Makefile # Remove useless files find .. -type f -name "*~" -exec rm {} \; find .. -type f -name "*.bak" -exec rm {} \; find .. -type f -name "*.log" -exec rm {} \; # Build XSD files if any and put them in objs directory if [ -d ../xsd ] then XSD_FILES=`find ../xsd -name '*.xsd'` if [ "${OSTYPE}" == "cygwin" ] then xsd2ttcn.exe ${XSD_FILES} else xsd2ttcn ${XSD_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate XSD source code" 2 fi fi # Build ASN.1 files if any and put them in objs directory ASN1_PATH=${PATH_DEV_ITS}/asn1 if [ -d ${ASN1_PATH} ] then ASN1_FILES=`find ${ASN1_PATH} -name '*.asn*'` if [ "${OSTYPE}" == "cygwin" ] then asn1_compiler.exe -e ${ASN1_FILES} else asn1_compiler -e ${ASN1_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate ASN.1 source code" 3 fi fi REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http" for i in ${REFERENCES} do # TTCN code for j in `find ${PATH_DEV_ITS}/src/$i/ttcn -type f -name "*.ttcn"`; do ln -sf $j ../ttcn/`basename $j` done # Include source code files=`find ${PATH_DEV_ITS}/src/$i/include -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../include/`basename $j` done fi # CC source code files=`find ${PATH_DEV_ITS}/src/$i/src -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../src/`basename $j` done fi done # Generate the list of the TTCN-3 files TTCN_FILES=`find .. -name '*.ttcn*'` # Start ATS generation - Step 1 if [ "${OSTYPE}" == "cygwin" ] then rm ../bin/*.exe ../lib/*.dll compiler.exe -d -e -f -g -j -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 4 fi else compiler -d -e -f -g -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 6 fi fi # Sart ATS generation - Step 2 # Create working variables CC_FILES=`find ../src -name '*.c*'` FWK_FILES=`find ${PATH_DEV_ITS}/framework/ -name '*.c*'` CFG_FILES=`find ../etc -name '*.cfg'` # Sart ATS generation - Step 3 if [ "${OSTYPE}" == "cygwin" ] then ttcn3_makefilegen.exe -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 5 fi else ttcn3_makefilegen -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 7 fi fi # Remove port skeletons to use src/<port skeletons> for i in `ls ../include/*.hh` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done for i in `ls ../src/*.cc` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done # Check if Makefile was generated if [ ! -f ./Makefile ] then f_exit "Failed to generate ATS source code" 8 fi # Patch ATS generated files #./bin/patch.bash 2>&1 3>&1 | tee --append build.log # Add compiler/linker options if [ "$1" == "prof" ] then if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -D_XOPEN_SOURCE=700 -pthreads -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT else CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -pthreads -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -pg -pthread -fstack-check -fstack-protector/g' else if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -D_XOPEN_SOURCE=700 -pthread -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT else CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -pthread -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -g -pthread -fstack-check -fstack-protector/g' fi ADD_INCLUDE='/CPPFLAGS = /a\\CPPFLAGS += -I/usr/local/share -I$(PATH_DEV_ITS)/include -I$(PATH_DEV_ITS)/include/asn1 -I$(PATH_DEV_ITS)/framework/include -I../include -I../../LibIts/Common/include -I../../LibIts/BTP/include -I../../LibIts/CAM/include -I../../LibIts/DENM/include -I$(HOME_INC) -I.' ADD_LIBRARIES='s/LINUX_LIBS = -lxml2/LINUX_LIBS = -lrt -lxml2 -lstdc++fs -lpcap -L$(PATH_DEV_ITS)\/lib -lItsAsn /g' sed --in-place "${CXXFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${LDFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${ADD_INCLUDE}" ./Makefile sed --in-place "${ADD_LIBRARIES}" ./Makefile # Update COMPILER_FLAGS COMPILER_FLAGS='s/COMPILER_FLAGS = /COMPILER_FLAGS = -e /g' sed --in-place "${COMPILER_FLAGS}" ./Makefile # Update clean clause CLEAN_LINE='s/$(RM) $(EXECUTABLE)/$(RM) ..\/bin\/$(EXECUTABLE) ..\/src\/*.o/g' sed --in-place "${CLEAN_LINE}" ./Makefile # Move binary file command EXECUTABLE=MyExample MV_CMD='s/all: $(TARGET) ;/all: $(TARGET) ; @if [ -f ..\/objs\/$(EXECUTABLE) ]; then mv ..\/objs\/$(EXECUTABLE) ..\/bin; fi ;/g' sed --in-place "${MV_CMD}" ./Makefile # Add run command ADD_HOST='/PLATFORM = /aHOST=127.0.0.1' ADD_PORT='/PLATFORM = /aPORT=12000' sed --in-place "${ADD_PORT}" ./Makefile sed --in-place "${ADD_HOST}" ./Makefile ADD_RUN_LINE_1='$arun: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_d: all' ADD_RUN_LINE_2='$a\\t@gdb --args $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_v: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Add Doxygen entry ADD_RUN_LINE_1='$agendoc:' ADD_RUN_LINE_2='$a\\tdoxygen ../docs/o2.cfg' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Build all make all 2>&1 3>&1 | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 9 fi ../bin/Ats${ATS_NAME} -v f_exit "Build done successfully" 0 scripts/cam_generate_makefile.bash 0 → 100644 +249 −0 Original line number Diff line number Diff line #!/bin/bash set -e set -vx function f_exit { cd ${CURPWD} unset TTCN_FILES unset CC_FILES unset CFG_FILES unset EXECUTABLE echo $1 exit $2 } function f_usage { echo "build.bash: This script import from External Disk the " echo "Optional arguments:" echo " prof: Generate a makefile including profiling options (e.g. ./build.bash prof)" exit 0 } clear if [ "$1" == "help" ] then f_usage fi ATS_NAME=CAM #CURPWD=`pwd` if [ ! "${PWD##*/}" == "objs" ] then cd ../objs if [ ! $? == 0 ] then echo "Please move to PROJECT/obj directory" exit 1 fi fi # Remove everything rm -fr ../objs/*.hh rm -fr ../objs/*.cc rm -fr ../objs/*.log rm -fr ../objs/*.o rm -fr ../objs/Makefile # Remove useless files find .. -type f -name "*~" -exec rm {} \; find .. -type f -name "*.bak" -exec rm {} \; find .. -type f -name "*.log" -exec rm {} \; # Build XSD files if any and put them in objs directory if [ -d ../xsd ] then XSD_FILES=`find ../xsd -name '*.xsd'` if [ "${OSTYPE}" == "cygwin" ] then xsd2ttcn.exe ${XSD_FILES} else xsd2ttcn ${XSD_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate XSD source code" 2 fi fi # Build ASN.1 files if any and put them in objs directory ASN1_PATH=${PATH_DEV_ITS}/asn1 if [ -d ${ASN1_PATH} ] then ASN1_FILES=`find ${ASN1_PATH} -name '*.asn*'` if [ "${OSTYPE}" == "cygwin" ] then asn1_compiler.exe -e ${ASN1_FILES} else asn1_compiler -e ${ASN1_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate ASN.1 source code" 3 fi fi REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http" for i in ${REFERENCES} do # TTCN code for j in `find ${PATH_DEV_ITS}/src/$i/ttcn -type f -name "*.ttcn"`; do ln -sf $j ../ttcn/`basename $j` done # Include source code files=`find ${PATH_DEV_ITS}/src/$i/include -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../include/`basename $j` done fi # CC source code files=`find ${PATH_DEV_ITS}/src/$i/src -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../src/`basename $j` done fi done # Generate the list of the TTCN-3 files TTCN_FILES=`find .. -name '*.ttcn*'` # Start ATS generation - Step 1 if [ "${OSTYPE}" == "cygwin" ] then rm ../bin/*.exe ../lib/*.dll compiler.exe -d -e -f -g -j -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 4 fi else compiler -d -e -f -g -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 6 fi fi # Sart ATS generation - Step 2 # Create working variables CC_FILES=`find ../src -name '*.c*'` FWK_FILES=`find ${PATH_DEV_ITS}/framework/ -name '*.c*'` CFG_FILES=`find ../etc -name '*.cfg'` # Sart ATS generation - Step 3 if [ "${OSTYPE}" == "cygwin" ] then ttcn3_makefilegen.exe -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 5 fi else ttcn3_makefilegen -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 7 fi fi # Remove port skeletons to use src/<port skeletons> for i in `ls ../include/*.hh` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done for i in `ls ../src/*.cc` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done # Check if Makefile was generated if [ ! -f ./Makefile ] then f_exit "Failed to generate ATS source code" 8 fi # Patch ATS generated files #./bin/patch.bash 2>&1 3>&1 | tee --append build.log # Add compiler/linker options if [ "$1" == "prof" ] then if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -DAS_USE_SSL -D_XOPEN_SOURCE=700 -pthreads -fstack-check -fstack-protector/g' else CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -DAS_USE_SSL -pthreads -fstack-check -fstack-protector/g' fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -pg -pthread -fstack-check -fstack-protector/g' else if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -DAS_USE_SSL -D_XOPEN_SOURCE=700 -pthread -fstack-check -fstack-protector/g' else CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -DAS_USE_SSL -pthread -fstack-check -fstack-protector/g' fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -g -pthread -fstack-check -fstack-protector/g' fi ADD_INCLUDE='/CPPFLAGS = /a\\CPPFLAGS += -I/usr/local/share -I$(PATH_DEV_ITS)/include -I$(PATH_DEV_ITS)/include/asn1 -I$(PATH_DEV_ITS)/framework/include -I../include -I../../LibIts/Common/include -I../../LibIts/BTP/include -I../../LibIts/CAM/include -I../../LibIts/DENM/include -I$(HOME_INC) -I.' ADD_LIBRARIES='s/LINUX_LIBS = -lxml2/LINUX_LIBS = -lrt -lxml2 -lssl -lstdc++fs -lpcap -L$(PATH_DEV_ITS)\/lib -lItsAsn /g' sed --in-place "${CXXFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${LDFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${ADD_INCLUDE}" ./Makefile sed --in-place "${ADD_LIBRARIES}" ./Makefile # Update COMPILER_FLAGS COMPILER_FLAGS='s/COMPILER_FLAGS = /COMPILER_FLAGS = -e /g' sed --in-place "${COMPILER_FLAGS}" ./Makefile # Update clean clause CLEAN_LINE='s/$(RM) $(EXECUTABLE)/$(RM) ..\/bin\/$(EXECUTABLE) ..\/src\/*.o/g' sed --in-place "${CLEAN_LINE}" ./Makefile # Move binary file command EXECUTABLE=MyExample MV_CMD='s/all: $(TARGET) ;/all: $(TARGET) ; @if [ -f ..\/objs\/$(EXECUTABLE) ]; then mv ..\/objs\/$(EXECUTABLE) ..\/bin; fi ;/g' sed --in-place "${MV_CMD}" ./Makefile # Add run command ADD_HOST='/PLATFORM = /aHOST=127.0.0.1' ADD_PORT='/PLATFORM = /aPORT=12000' sed --in-place "${ADD_PORT}" ./Makefile sed --in-place "${ADD_HOST}" ./Makefile ADD_RUN_LINE_1='$arun: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_d: all' ADD_RUN_LINE_2='$a\\t@gdb --args $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_v: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Add Doxygen entry ADD_RUN_LINE_1='$agendoc:' ADD_RUN_LINE_2='$a\\tdoxygen ../docs/o2.cfg' ADD_RUN_LINE_3='$a\\tmandb ../docs/man' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile sed --in-place "${ADD_RUN_LINE_3}" ./Makefile # Build all make all 2>&1 3>&1 | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 9 fi ../bin/Ats${ATS_NAME} -v f_exit "Build done successfully" 0 Loading
README.md +18 −6 Original line number Diff line number Diff line Loading @@ -163,7 +163,12 @@ Procedure: - TITAN, according the procedure specified [here](https://github.com/eclipse/titan.core) - Import the TITAN plugin into your Eclipse IDE, according the procedure specified [here](https://github.com/eclipse/titan.core) - Clone the ETSI ITS protocols project into $HOME/dev folder - ... ```sh $ git clone ``` - Update your default environment with the content of the script $HOME/dev/STF525_Its/scripts/devenv.bash.ubuntu - Switch to the next clause (Usage) Loading @@ -175,27 +180,34 @@ The procedures below illustrate how to run the CAM test suite. The same procedur Pre-requisites: - Your machine is installed followimg one of the installation method describes in the previous clause - Refer to the ETSU TS 103 099 for the description of the Test System architecture and configuration - Refer to the ETSI TS 103 099 for the description of the Test System architecture and configuration - Your are logged as 'etsi' or 'vagrant' user Procedure using Eclipse TITAN: <TODO> Procedure in TITAN command line: - Open several SSH session (PuTTY...) - Change to the directory ~/dev/STF525_Its/src/AtsCAM/objs - Build the test suite AtsCAM ```sh $ ../bin/cam_generate_makefile.bash ... ``` - Edit the file ../etc/AtsCAM.cfg - Update the following fields: - Update the following fields (see ETSI TS 103 099 for details): - system.camPort.params - system.utPort.params - Execute the following command: - To run the test suitem, execute the following command: ```sh $ ../bin/run-all.bash ... ``` - The log files are located in ../logs folder. Yu can edit them using any editor or using the Eclipse TITAN log plugins - Your machine is installed followimg one of the installation method describes in the previous clause - The log files are located in ../logs folder. You can edit them using any editor or using the Eclipse TITAN log plugins ## Rebuild Wireshark with support of ETSI ITS Protocols Loading
Vagrant/provisioner.bash +1 −1 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y sudo DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y sudo DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs openjdk-11-jre gcc-8 g++-8 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libxml2-dev xutils-dev tcpdump libpcap-dev libwireshark-dev wget tree unzip sshpass kubuntu-desktop valgrind qt5-default qtmultimedia5-dev libqt5svg5-dev -y sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install emacs openjdk-11-jre gcc-8 g++-8 git subversion lsof ntp gdb make cmake flex bison autoconf doxygen graphviz libtool libncurses5-dev expect libssl-dev libxml2-dev xutils-dev tcpdump libpcap-dev libwireshark-dev wget tree unzip sshpass kubuntu-desktop valgrind qt5-default qtmultimedia5-dev libqt5svg5-dev vim tzdata -y # Install java #sudo DEBIAN_FRONTEND=noninteractive apt-get install oracle-java9-installer oracle-java9-set-default -y #sudo DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install oracle-java10-installer oracle-java10-set-default -y Loading
docker/Dockerfile +5 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ ENV HOSTNAME docker-titan-STF525 ARG USERNAME ARG PASSWORD RUN echo "docker-titan" > /etc/hostname \ RUN echo "docker-titan-STF525" > /etc/hostname \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \ && DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \ Loading Loading @@ -87,7 +87,10 @@ RUN cd /home/etsi \ && wget 'http://ftp.halifax.rwth-aachen.de/eclipse//technology/epp/downloads/release/oxygen/2/eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz' -Oeclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && tar -zxvf ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && rm -f ./eclipse-cpp-oxygen-2-linux-gtk-x86_64.tar.gz \ && cd /home/etsi/dev/STF525_Its/scripts && . /home/etsi/devenv.bash \ && cd /home/etsi/dev/STF525_Its/scripts \ && ./build_titan.bash \ && ./update_its_project.bash CMD ["/bin/bash"] Loading
scripts/autointerop_generate_makefile.bash 0 → 100644 +247 −0 Original line number Diff line number Diff line #!/bin/bash set -e set -vx function f_exit { cd ${CURPWD} unset TTCN_FILES unset CC_FILES unset CFG_FILES unset EXECUTABLE echo $1 exit $2 } function f_usage { echo "build.bash: This script import from External Disk the " echo "Optional arguments:" echo " prof: Generate a makefile including profiling options (e.g. ./build.bash prof)" exit 0 } clear if [ "$1" == "help" ] then f_usage fi ATS_NAME=AutoInterop #CURPWD=`pwd` if [ ! "${PWD##*/}" == "objs" ] then cd ../objs if [ ! $? == 0 ] then echo "Please move to PROJECT/obj directory" exit 1 fi fi # Remove everything rm -fr ../objs/*.hh rm -fr ../objs/*.cc rm -fr ../objs/*.log rm -fr ../objs/*.o rm -fr ../objs/Makefile # Remove useless files find .. -type f -name "*~" -exec rm {} \; find .. -type f -name "*.bak" -exec rm {} \; find .. -type f -name "*.log" -exec rm {} \; # Build XSD files if any and put them in objs directory if [ -d ../xsd ] then XSD_FILES=`find ../xsd -name '*.xsd'` if [ "${OSTYPE}" == "cygwin" ] then xsd2ttcn.exe ${XSD_FILES} else xsd2ttcn ${XSD_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate XSD source code" 2 fi fi # Build ASN.1 files if any and put them in objs directory ASN1_PATH=${PATH_DEV_ITS}/asn1 if [ -d ${ASN1_PATH} ] then ASN1_FILES=`find ${ASN1_PATH} -name '*.asn*'` if [ "${OSTYPE}" == "cygwin" ] then asn1_compiler.exe -e ${ASN1_FILES} else asn1_compiler -e ${ASN1_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate ASN.1 source code" 3 fi fi REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http" for i in ${REFERENCES} do # TTCN code for j in `find ${PATH_DEV_ITS}/src/$i/ttcn -type f -name "*.ttcn"`; do ln -sf $j ../ttcn/`basename $j` done # Include source code files=`find ${PATH_DEV_ITS}/src/$i/include -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../include/`basename $j` done fi # CC source code files=`find ${PATH_DEV_ITS}/src/$i/src -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../src/`basename $j` done fi done # Generate the list of the TTCN-3 files TTCN_FILES=`find .. -name '*.ttcn*'` # Start ATS generation - Step 1 if [ "${OSTYPE}" == "cygwin" ] then rm ../bin/*.exe ../lib/*.dll compiler.exe -d -e -f -g -j -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 4 fi else compiler -d -e -f -g -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 6 fi fi # Sart ATS generation - Step 2 # Create working variables CC_FILES=`find ../src -name '*.c*'` FWK_FILES=`find ${PATH_DEV_ITS}/framework/ -name '*.c*'` CFG_FILES=`find ../etc -name '*.cfg'` # Sart ATS generation - Step 3 if [ "${OSTYPE}" == "cygwin" ] then ttcn3_makefilegen.exe -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 5 fi else ttcn3_makefilegen -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 7 fi fi # Remove port skeletons to use src/<port skeletons> for i in `ls ../include/*.hh` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done for i in `ls ../src/*.cc` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done # Check if Makefile was generated if [ ! -f ./Makefile ] then f_exit "Failed to generate ATS source code" 8 fi # Patch ATS generated files #./bin/patch.bash 2>&1 3>&1 | tee --append build.log # Add compiler/linker options if [ "$1" == "prof" ] then if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -D_XOPEN_SOURCE=700 -pthreads -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT else CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -pthreads -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -pg -pthread -fstack-check -fstack-protector/g' else if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -D_XOPEN_SOURCE=700 -pthread -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT else CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -pthread -fstack-check -fstack-protector/g' # -DASN_DISABLE_OER_SUPPORT fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -g -pthread -fstack-check -fstack-protector/g' fi ADD_INCLUDE='/CPPFLAGS = /a\\CPPFLAGS += -I/usr/local/share -I$(PATH_DEV_ITS)/include -I$(PATH_DEV_ITS)/include/asn1 -I$(PATH_DEV_ITS)/framework/include -I../include -I../../LibIts/Common/include -I../../LibIts/BTP/include -I../../LibIts/CAM/include -I../../LibIts/DENM/include -I$(HOME_INC) -I.' ADD_LIBRARIES='s/LINUX_LIBS = -lxml2/LINUX_LIBS = -lrt -lxml2 -lstdc++fs -lpcap -L$(PATH_DEV_ITS)\/lib -lItsAsn /g' sed --in-place "${CXXFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${LDFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${ADD_INCLUDE}" ./Makefile sed --in-place "${ADD_LIBRARIES}" ./Makefile # Update COMPILER_FLAGS COMPILER_FLAGS='s/COMPILER_FLAGS = /COMPILER_FLAGS = -e /g' sed --in-place "${COMPILER_FLAGS}" ./Makefile # Update clean clause CLEAN_LINE='s/$(RM) $(EXECUTABLE)/$(RM) ..\/bin\/$(EXECUTABLE) ..\/src\/*.o/g' sed --in-place "${CLEAN_LINE}" ./Makefile # Move binary file command EXECUTABLE=MyExample MV_CMD='s/all: $(TARGET) ;/all: $(TARGET) ; @if [ -f ..\/objs\/$(EXECUTABLE) ]; then mv ..\/objs\/$(EXECUTABLE) ..\/bin; fi ;/g' sed --in-place "${MV_CMD}" ./Makefile # Add run command ADD_HOST='/PLATFORM = /aHOST=127.0.0.1' ADD_PORT='/PLATFORM = /aPORT=12000' sed --in-place "${ADD_PORT}" ./Makefile sed --in-place "${ADD_HOST}" ./Makefile ADD_RUN_LINE_1='$arun: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_d: all' ADD_RUN_LINE_2='$a\\t@gdb --args $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_v: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Add Doxygen entry ADD_RUN_LINE_1='$agendoc:' ADD_RUN_LINE_2='$a\\tdoxygen ../docs/o2.cfg' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Build all make all 2>&1 3>&1 | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 9 fi ../bin/Ats${ATS_NAME} -v f_exit "Build done successfully" 0
scripts/cam_generate_makefile.bash 0 → 100644 +249 −0 Original line number Diff line number Diff line #!/bin/bash set -e set -vx function f_exit { cd ${CURPWD} unset TTCN_FILES unset CC_FILES unset CFG_FILES unset EXECUTABLE echo $1 exit $2 } function f_usage { echo "build.bash: This script import from External Disk the " echo "Optional arguments:" echo " prof: Generate a makefile including profiling options (e.g. ./build.bash prof)" exit 0 } clear if [ "$1" == "help" ] then f_usage fi ATS_NAME=CAM #CURPWD=`pwd` if [ ! "${PWD##*/}" == "objs" ] then cd ../objs if [ ! $? == 0 ] then echo "Please move to PROJECT/obj directory" exit 1 fi fi # Remove everything rm -fr ../objs/*.hh rm -fr ../objs/*.cc rm -fr ../objs/*.log rm -fr ../objs/*.o rm -fr ../objs/Makefile # Remove useless files find .. -type f -name "*~" -exec rm {} \; find .. -type f -name "*.bak" -exec rm {} \; find .. -type f -name "*.log" -exec rm {} \; # Build XSD files if any and put them in objs directory if [ -d ../xsd ] then XSD_FILES=`find ../xsd -name '*.xsd'` if [ "${OSTYPE}" == "cygwin" ] then xsd2ttcn.exe ${XSD_FILES} else xsd2ttcn ${XSD_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate XSD source code" 2 fi fi # Build ASN.1 files if any and put them in objs directory ASN1_PATH=${PATH_DEV_ITS}/asn1 if [ -d ${ASN1_PATH} ] then ASN1_FILES=`find ${ASN1_PATH} -name '*.asn*'` if [ "${OSTYPE}" == "cygwin" ] then asn1_compiler.exe -e ${ASN1_FILES} else asn1_compiler -e ${ASN1_FILES} fi if [ "$?" != "0" ] then f_exit "Failed to generate ASN.1 source code" 3 fi fi REFERENCES="LibCommon LibIts/Common LibIts/BTP LibIts/GeoNetworking LibIts/Ipv6OverGeoNetworking LibIts/Security LibIts/CAM LibIts/DENM LibIts/IVIM LibIts/MapemSpatem LibIts/SremSsem LibIts/Http" for i in ${REFERENCES} do # TTCN code for j in `find ${PATH_DEV_ITS}/src/$i/ttcn -type f -name "*.ttcn"`; do ln -sf $j ../ttcn/`basename $j` done # Include source code files=`find ${PATH_DEV_ITS}/src/$i/include -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../include/`basename $j` done fi # CC source code files=`find ${PATH_DEV_ITS}/src/$i/src -type f` if [ "${files}" != " " ] then for j in ${files}; do ln -sf $j ../src/`basename $j` done fi done # Generate the list of the TTCN-3 files TTCN_FILES=`find .. -name '*.ttcn*'` # Start ATS generation - Step 1 if [ "${OSTYPE}" == "cygwin" ] then rm ../bin/*.exe ../lib/*.dll compiler.exe -d -e -f -g -j -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 4 fi else compiler -d -e -f -g -l -L -t -R -U none -x -X ${TTCN_FILES} ${ASN1_FILES} 2>&1 3>&1 | tee build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 6 fi fi # Sart ATS generation - Step 2 # Create working variables CC_FILES=`find ../src -name '*.c*'` FWK_FILES=`find ${PATH_DEV_ITS}/framework/ -name '*.c*'` CFG_FILES=`find ../etc -name '*.cfg'` # Sart ATS generation - Step 3 if [ "${OSTYPE}" == "cygwin" ] then ttcn3_makefilegen.exe -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to compile ATS" 5 fi else ttcn3_makefilegen -d -f -g -m -R -U none -e Ats${ATS_NAME} ${TTCN_FILES} ${ASN1_FILES} ${CC_FILES} ${FWK_FILES} ${CFG_FILES} | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 7 fi fi # Remove port skeletons to use src/<port skeletons> for i in `ls ../include/*.hh` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done for i in `ls ../src/*.cc` do if [ -f ./`basename $i` ] then rm ./`basename $i` fi done # Check if Makefile was generated if [ ! -f ./Makefile ] then f_exit "Failed to generate ATS source code" 8 fi # Patch ATS generated files #./bin/patch.bash 2>&1 3>&1 | tee --append build.log # Add compiler/linker options if [ "$1" == "prof" ] then if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -DAS_USE_SSL -D_XOPEN_SOURCE=700 -pthreads -fstack-check -fstack-protector/g' else CXXFLAGS_DEBUG_MODE='s/-Wall/-pg -Wall -std=c++11 -DAS_USE_SSL -pthreads -fstack-check -fstack-protector/g' fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -pg -pthread -fstack-check -fstack-protector/g' else if [ "${OSTYPE}" == "cygwin" ] then CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -DAS_USE_SSL -D_XOPEN_SOURCE=700 -pthread -fstack-check -fstack-protector/g' else CXXFLAGS_DEBUG_MODE='s/-Wall/-ggdb -O0 -Wall -std=c++11 -DAS_USE_SSL -pthread -fstack-check -fstack-protector/g' fi LDFLAGS_DEBUG_MODE='s/LDFLAGS = /LDFLAGS = -g -pthread -fstack-check -fstack-protector/g' fi ADD_INCLUDE='/CPPFLAGS = /a\\CPPFLAGS += -I/usr/local/share -I$(PATH_DEV_ITS)/include -I$(PATH_DEV_ITS)/include/asn1 -I$(PATH_DEV_ITS)/framework/include -I../include -I../../LibIts/Common/include -I../../LibIts/BTP/include -I../../LibIts/CAM/include -I../../LibIts/DENM/include -I$(HOME_INC) -I.' ADD_LIBRARIES='s/LINUX_LIBS = -lxml2/LINUX_LIBS = -lrt -lxml2 -lssl -lstdc++fs -lpcap -L$(PATH_DEV_ITS)\/lib -lItsAsn /g' sed --in-place "${CXXFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${LDFLAGS_DEBUG_MODE}" ./Makefile sed --in-place "${ADD_INCLUDE}" ./Makefile sed --in-place "${ADD_LIBRARIES}" ./Makefile # Update COMPILER_FLAGS COMPILER_FLAGS='s/COMPILER_FLAGS = /COMPILER_FLAGS = -e /g' sed --in-place "${COMPILER_FLAGS}" ./Makefile # Update clean clause CLEAN_LINE='s/$(RM) $(EXECUTABLE)/$(RM) ..\/bin\/$(EXECUTABLE) ..\/src\/*.o/g' sed --in-place "${CLEAN_LINE}" ./Makefile # Move binary file command EXECUTABLE=MyExample MV_CMD='s/all: $(TARGET) ;/all: $(TARGET) ; @if [ -f ..\/objs\/$(EXECUTABLE) ]; then mv ..\/objs\/$(EXECUTABLE) ..\/bin; fi ;/g' sed --in-place "${MV_CMD}" ./Makefile # Add run command ADD_HOST='/PLATFORM = /aHOST=127.0.0.1' ADD_PORT='/PLATFORM = /aPORT=12000' sed --in-place "${ADD_PORT}" ./Makefile sed --in-place "${ADD_HOST}" ./Makefile ADD_RUN_LINE_1='$arun: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_d: all' ADD_RUN_LINE_2='$a\\t@gdb --args $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile ADD_RUN_LINE_1='$arun_v: all' ADD_RUN_LINE_2='$a\\t@sudo LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --track-fds=yes --run-cxx-freeres=yes $(PWD)/../bin/$(EXECUTABLE) $(HOST) $(PORT)' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile # Add Doxygen entry ADD_RUN_LINE_1='$agendoc:' ADD_RUN_LINE_2='$a\\tdoxygen ../docs/o2.cfg' ADD_RUN_LINE_3='$a\\tmandb ../docs/man' sed --in-place "${ADD_RUN_LINE_1}" ./Makefile sed --in-place "${ADD_RUN_LINE_2}" ./Makefile sed --in-place "${ADD_RUN_LINE_3}" ./Makefile # Build all make all 2>&1 3>&1 | tee --append build.log if [ "$?" == "1" ] then f_exit "Failed to generate ATS source code" 9 fi ../bin/Ats${ATS_NAME} -v f_exit "Build done successfully" 0