220 lines
5.8 KiB
Makefile
220 lines
5.8 KiB
Makefile
|
# This Makefile was generated by the Makefile Generator
|
||
|
# of the TTCN-3 Test Executor version CRL 113 200/6 R5A
|
||
|
# for Harald Welte (laforge@nataraja) on Sun Jan 6 20:29:51 2019
|
||
|
|
||
|
# Copyright (c) 2000-2018 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.
|
||
|
# - make shared_objects Builds the shared object files without linking the executable.
|
||
|
# WARNING! This Makefile can be used with GNU make only.
|
||
|
# Other versions of make may report syntax errors in it.
|
||
|
|
||
|
#
|
||
|
# Do NOT touch this line...
|
||
|
#
|
||
|
.PHONY: all shared_objects executable library objects check port clean dep archive
|
||
|
|
||
|
.SUFFIXES: .d
|
||
|
|
||
|
#
|
||
|
# Set these variables...
|
||
|
#
|
||
|
|
||
|
ifndef TTCN3_DIR
|
||
|
ifneq (,$(wildcard /usr/include/titan/))
|
||
|
TTCN3_DIR = /usr
|
||
|
TTCN3_SUBDIR = /titan
|
||
|
else
|
||
|
TTCN3_DIR =
|
||
|
TTCN3_SUBDIR =
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
# 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$(TTCN3_SUBDIR) $(shell pkg-config --cflags libusb-1.0)
|
||
|
|
||
|
# Flags for dependency generation
|
||
|
CXXDEPFLAGS = -MM
|
||
|
|
||
|
# Flags for the C++ compiler:
|
||
|
CXXFLAGS = -Wall -fPIC
|
||
|
|
||
|
# Flags for the linker:
|
||
|
LDFLAGS = -fPIC $(shell pkg-config --libs libusb-1.0)
|
||
|
|
||
|
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-dynamic
|
||
|
|
||
|
# 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:
|
||
|
ARCHIVE_DIR = backup
|
||
|
|
||
|
#
|
||
|
# You may change these variables. Add your files if necessary...
|
||
|
#
|
||
|
|
||
|
# TTCN-3 modules of this project:
|
||
|
TTCN3_MODULES = USB_PortType.ttcn USB_PortTypes.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 = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
|
||
|
GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
|
||
|
|
||
|
# C/C++ Source & header files of Test Ports, external functions and
|
||
|
# other modules:
|
||
|
USER_SOURCES = USB_PT.cc
|
||
|
USER_HEADERS = $(USER_SOURCES:.cc=.hh)
|
||
|
|
||
|
# Shared object files of this project:
|
||
|
SHARED_OBJECTS = $(GENERATED_SOURCES:.cc=.so) $(USER_SOURCES:.cc=.so)
|
||
|
|
||
|
# Object files of this project that are needed for the executable test suite:
|
||
|
OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS)
|
||
|
|
||
|
GENERATED_OBJECTS = $(GENERATED_SOURCES:.cc=.o)
|
||
|
|
||
|
USER_OBJECTS = $(USER_SOURCES:.cc=.o)
|
||
|
|
||
|
DEPFILES = $(USER_OBJECTS:.o=.d) $(GENERATED_OBJECTS:.o=.d)
|
||
|
|
||
|
# 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 = USB_PortType
|
||
|
|
||
|
|
||
|
|
||
|
LIBRARY = lib$(EXECUTABLE).so
|
||
|
|
||
|
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) ;
|
||
|
|
||
|
shared_objects: $(SHARED_OBJECTS) ;
|
||
|
|
||
|
executable: $(EXECUTABLE) ;
|
||
|
|
||
|
library: $(LIBRARY) ;
|
||
|
|
||
|
objects: $(OBJECTS) compile;
|
||
|
|
||
|
$(EXECUTABLE): $(SHARED_OBJECTS)
|
||
|
if $(CXX) $(LDFLAGS) -o $@ -Wl,--no-as-needed $^ \
|
||
|
-L$(TTCN3_DIR)/lib$(TTCN3_SUBDIR) -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)
|
||
|
$(CXX) -shared -o $@ $(OBJECTS)
|
||
|
|
||
|
.cc.o .c.o:
|
||
|
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
|
||
|
|
||
|
.cc.d .c.d:
|
||
|
@echo Creating dependency file for '$<'; set -e; \
|
||
|
$(CXX) $(CXXDEPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $< \
|
||
|
| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
|
||
|
[ -s $@ ] || rm -f $@
|
||
|
|
||
|
%.so: %.o
|
||
|
$(CXX) -shared -o $@ $<
|
||
|
|
||
|
$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
|
||
|
@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
|
||
|
|
||
|
check: $(TTCN3_MODULES) $(ASN1_MODULES)
|
||
|
$(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) $^
|
||
|
|
||
|
port: $(TTCN3_MODULES) $(ASN1_MODULES)
|
||
|
$(TTCN3_DIR)/bin/compiler -t $(COMPILER_FLAGS) $^
|
||
|
|
||
|
compile: $(TTCN3_MODULES) $(ASN1_MODULES)
|
||
|
$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) $^ - $?
|
||
|
touch $@
|
||
|
|
||
|
clean:
|
||
|
-$(RM) $(EXECUTABLE) $(LIBRARY) $(OBJECTS) $(GENERATED_HEADERS) \
|
||
|
$(GENERATED_SOURCES) $(SHARED_OBJECTS) compile $(DEPFILES) \
|
||
|
tags *.log
|
||
|
|
||
|
dep: $(GENERATED_SOURCES) $(USER_SOURCES) ;
|
||
|
|
||
|
ifeq ($(findstring n,$(MAKEFLAGS)),)
|
||
|
ifeq ($(filter clean check port compile archive diag,$(MAKECMDGOALS)),)
|
||
|
-include $(DEPFILES)
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
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
|
||
|
@echo TTCN3_DIR=$(TTCN3_DIR)
|
||
|
@echo OPENSSL_DIR=$(OPENSSL_DIR)
|
||
|
@echo XMLDIR=$(XMLDIR)
|
||
|
@echo PLATFORM=$(PLATFORM)
|
||
|
|
||
|
#
|
||
|
# Add your rules here if necessary...
|
||
|
#
|
||
|
|