From ff557de72fc76017b440fb6db0d969cf6c0b6d14 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 3 Jul 2017 17:02:43 +0100 Subject: [PATCH] basic structure to re-generate symlinks to external modules + makefile --- testproject/Makefile | 183 ++++++++++++++++++++++++++++++++++ testproject/gen_links.sh | 24 +++++ testproject/regen_makefile.sh | 8 ++ 3 files changed, 215 insertions(+) create mode 100644 testproject/Makefile create mode 100755 testproject/gen_links.sh create mode 100755 testproject/regen_makefile.sh diff --git a/testproject/Makefile b/testproject/Makefile new file mode 100644 index 0000000..997311b --- /dev/null +++ b/testproject/Makefile @@ -0,0 +1,183 @@ +# This Makefile was generated by the Makefile Generator +# of the TTCN-3 Test Executor version CRL 113 200/6 R2A +# for Harald Welte (laforge@nataraja) on Mon Jul 3 16:40:24 2017 + +# Copyright (c) 2000-2017 Ericsson Telecom AB + +# The following make commands are available: +# - make, make all Builds the executable test suite. +# - make archive Archives all source files. +# - make check Checks the semantics of TTCN-3 and ASN.1modules. +# - make port Generates port skeletons. +# - make clean Removes all generated files. +# - make compile Translates TTCN-3 and ASN.1 modules to C++. +# - make dep Creates/updates dependency list. +# - make executable Builds the executable test suite. +# - make library Builds the library archive. +# - make objects Builds the object files without linking the executable. +# +# Set these variables... +# + +# The path of your TTCN-3 Test Executor installation: +# Uncomment this line to override the environment variable. +TTCN3_DIR = /usr + +# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32) +PLATFORM = LINUX + +# Your C++ compiler: +# (if you change the platform, you may need to change the compiler) +CXX = g++ + +# Flags for the C++ preprocessor (and makedepend as well): +CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I/usr/include/titan + +# Flags for the C++ compiler: +CXXFLAGS = -Wall + +# Flags for the linker: +LDFLAGS = -L /usr/lib/titan + +ifeq ($(PLATFORM), WIN32) +# Silence linker warnings. +LDFLAGS += -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc +endif + +# Utility to create library files +AR = ar +ARFLAGS = + +# Flags for the TTCN-3 and ASN.1 compiler: +COMPILER_FLAGS = -L + +# Execution mode: (either ttcn3 or ttcn3-parallel) +TTCN3_LIB = ttcn3-parallel + +# The path of your libxml2 installation: +# If you do not have your own one, leave it unchanged. +XMLDIR = $(TTCN3_DIR) + +# Directory to store the archived source files: +# Note: you can set any directory except ./archive +ARCHIVE_DIR = backup + +# +# You may change these variables. Add your files if necessary... +# + +# TTCN-3 modules of this project: +TTCN3_MODULES = IPL4asp_Functions.ttcn IPL4asp_PortType.ttcn IPL4asp_Types.ttcn Socket_API_Definitions.ttcn TCCConversion_Functions.ttcn TCCInterface_Functions.ttcn + +# ASN.1 modules of this project: +ASN1_MODULES = + +# C++ source & header files generated from the TTCN-3 & ASN.1 modules of +# this project: +GENERATED_SOURCES = IPL4asp_Functions.cc IPL4asp_PortType.cc IPL4asp_Types.cc Socket_API_Definitions.cc TCCConversion_Functions.cc TCCInterface_Functions.cc +GENERATED_HEADERS = IPL4asp_Functions.hh IPL4asp_PortType.hh IPL4asp_Types.hh Socket_API_Definitions.hh TCCConversion_Functions.hh TCCInterface_Functions.hh + +# C/C++ Source & header files of Test Ports, external functions and +# other modules: +USER_SOURCES = IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc +USER_HEADERS = IPL4asp_PT.hh IPL4asp_protocol_L234.hh + +# Object files of this project that are needed for the executable test suite: +OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS) + +GENERATED_OBJECTS = IPL4asp_Functions.o IPL4asp_PortType.o IPL4asp_Types.o Socket_API_Definitions.o TCCConversion_Functions.o TCCInterface_Functions.o + +USER_OBJECTS = IPL4asp_PT.o IPL4asp_discovery.o TCCConversion.o TCCInterface.o + +# Other files of the project (Makefile, configuration files, etc.) +# that will be added to the archived source files: +OTHER_FILES = Makefile + +# The name of the executable test suite: +EXECUTABLE = IPL4asp_Functions + + + +LIBRARY = lib$(EXECUTABLE).a + +TARGET = $(EXECUTABLE) + +# +# Do not modify these unless you know what you are doing... +# Platform specific additional libraries: +# +SOLARIS_LIBS = -lsocket -lnsl -lxml2 +SOLARIS8_LIBS = -lsocket -lnsl -lxml2 +LINUX_LIBS = -lxml2 +FREEBSD_LIBS = -lxml2 +WIN32_LIBS = -lxml2 + +# +# Rules for building the executable... +# + +all: $(TARGET) ; + +executable: $(EXECUTABLE) ; + +library: $(LIBRARY) ; + +objects: $(OBJECTS) compile; + +$(EXECUTABLE): $(OBJECTS) + if $(CXX) $(LDFLAGS) -o $@ $(OBJECTS) \ + -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \ + -L$(OPENSSL_DIR)/lib -lcrypto \ + -L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \ + then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi + +$(LIBRARY): $(OBJECTS) + $(AR) -r $(ARFLAGS) $(LIBRARY) $(OBJECTS) + +.cc.o .c.o: + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + +$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile + @if [ ! -f $@ ]; then rm -f compile; $(MAKE) compile; fi + +check: $(TTCN3_MODULES) $(ASN1_MODULES) + $(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) \ + $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) + +port: $(TTCN3_MODULES) $(ASN1_MODULES) + $(TTCN3_DIR)/bin/compiler -t $(COMPILER_FLAGS) \ + $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES) + +compile: $(TTCN3_MODULES) $(ASN1_MODULES) + $(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) \ + $(TTCN3_MODULES) $(ASN1_MODULES) - $? + touch $@ + +clean: + -rm -f $(EXECUTABLE) $(LIBRARY) $(OBJECTS) $(GENERATED_HEADERS) \ + $(GENERATED_SOURCES) compile \ + tags *.log + +dep: $(GENERATED_SOURCES) $(USER_SOURCES) ; + makedepend $(CPPFLAGS) -DMAKEDEPEND_RUN $(GENERATED_SOURCES) $(USER_SOURCES) + +archive: + mkdir -p $(ARCHIVE_DIR) + tar -cvhf - $(TTCN3_MODULES) $(ASN1_MODULES) \ + $(USER_HEADERS) $(USER_SOURCES) $(OTHER_FILES) \ + | gzip >$(ARCHIVE_DIR)/`basename $(TARGET) .exe`-`date '+%y%m%d-%H%M'`.tgz + +diag: + $(TTCN3_DIR)/bin/compiler -v 2>&1 + $(TTCN3_DIR)/bin/mctr_cli -v 2>&1 + $(CXX) -v 2>&1 + $(AR) -V 2>&1 + @echo TTCN3_DIR=$(TTCN3_DIR) + @echo OPENSSL_DIR=$(OPENSSL_DIR) + @echo XMLDIR=$(XMLDIR) + @echo PLATFORM=$(PLATFORM) + +# +# Add your rules here if necessary... +# + diff --git a/testproject/gen_links.sh b/testproject/gen_links.sh new file mode 100755 index 0000000..637da2a --- /dev/null +++ b/testproject/gen_links.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +BASEDIR=~/projects/git + +gen_links() { + DIR=$1 + FILES=$* + for f in $FILES; do + echo "Linking $f" + ln -sf $DIR/$f $f + done +} + +DIR=$BASEDIR/titan.TestPorts.IPL4asp/src +FILES="IPL4asp_Functions.ttcn IPL4asp_PT.cc IPL4asp_PT.hh IPL4asp_PortType.ttcn IPL4asp_Types.ttcn IPL4asp_discovery.cc IPL4asp_protocol_L234.hh" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.Common_Components.Socket-API/src +FILES="Socket_API_Definitions.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.Libraries.TCCUsefulFunctions/src +FILES="TCCInterface_Functions.ttcn TCCConversion_Functions.ttcn TCCConversion.cc TCCInterface.cc TCCInterface_ip.h" +gen_links $DIR $FILES diff --git a/testproject/regen_makefile.sh b/testproject/regen_makefile.sh new file mode 100755 index 0000000..1ac90ce --- /dev/null +++ b/testproject/regen_makefile.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +FILES="*.ttcn *.cc *.hh" + +ttcn3_makefilegen -f $FILES +sed -i -e 's/# TTCN3_DIR = /TTCN3_DIR = \/usr/' Makefile +sed -i -e 's/LDFLAGS = /LDFLAGS = -L \/usr\/lib\/titan/' Makefile +sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile