Skip to content
Snippets Groups Projects
Commit 8fa8e013 authored by Kristof Szabados's avatar Kristof Szabados
Browse files

Merge pull request #64 from BenceJanosSzabo/master

Clang compatibility (artf735259)
parents cfa84fc8 7889dab7
No related branches found
No related tags found
No related merge requests found
......@@ -1874,10 +1874,19 @@ static void print_makefile(struct makefile_struct *makefile)
, titan_dir ? titan_dir : "");
if (titan_dir) Free(titan_dir);
boolean cxx_free = FALSE;
if (makefile->cxxcompiler) {
cxx = makefile->cxxcompiler;
} else {
#ifdef __clang__
unsigned int
compiler_major = __clang_major__,
compiler_minor = __clang_minor__;
cxx = mprintf("clang++-%u.%u", compiler_major, compiler_minor);
cxx_free = TRUE;
#else
cxx = "g++";
#endif
}
fprintf(fp, "\n# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or "
......@@ -1944,6 +1953,11 @@ static void print_makefile(struct makefile_struct *makefile)
"CXXDEPFLAGS = -%s\n\n", strstr(cxx, "g++") ? "MM" : "xM1");
}
if (cxx_free) {
Free((char*)cxx);
cxx = NULL;
}
if (makefile->preprocess || makefile->ttcn3_prep_includes || makefile->ttcn3_prep_defines) {
fputs("# Flags for preprocessing TTCN-3 files:\n"
"CPPFLAGS_TTCN3 =", fp);
......
......@@ -184,7 +184,10 @@ class VALUE_ARRAY : public Base_Type
public:
// This class use the compiler-generated copy constructor and
// copy assignment.
// User defined default constructor, because with clang the text2ttcn test
// won't compile
VALUE_ARRAY() : array_elements(){};
boolean operator==(const VALUE_ARRAY& other_value) const;
inline boolean operator!=(const VALUE_ARRAY& other_value) const
{ return !(*this == other_value); }
......
......@@ -194,8 +194,8 @@ public:
template <typename T_tmp>
inline boolean operator!=(const T_tmp& other_value) const
{ return !is_equal(other_value); }
#ifdef __SUNPRO_CC
/* Note: Without these functions the Sun Workshop Pro C++ compiler reports
#if defined(__SUNPRO_CC) || defined(__clang__)
/* Note: Without these functions the Sun Workshop Pro C++ compiler or clang reports
* overloading ambiguity when comparing an optional charstring field with an
* optional universal charstring. */
template <typename T_tmp>
......
......@@ -50,7 +50,7 @@ PLATFORM = SOLARIS
endif
# Your C++ compiler:
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
......
......@@ -45,7 +45,7 @@ PLATFORM = SOLARIS
endif
# Your C++ compiler:
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
......
......@@ -41,7 +41,7 @@ PLATFORM = SOLARIS
endif
# Your C++ compiler:
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
......
......@@ -41,7 +41,7 @@ PLATFORM = SOLARIS
endif
# Your C++ compiler:
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
......
......@@ -12,145 +12,47 @@
# Pandi, Krisztian
# Raduly, Csaba
# Szabados, Kristof
# Szabo, Bence Janos
#
##############################################################################
# This Makefile was generated by the Makefile Generator
# of the TTCN-3 Test Executor version 1.7.pre0 build 2
# for Attila Balasko (ethbaat@ehubuux110) on Thu Jan 18 09:37:03 2007
TOPDIR := ../../../..
include $(TOPDIR)/Makefile.regression
.SUFFIXES: .ttcn .hh
.PHONY: all clean dep run
# 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.1 modules.
# - make clean Removes all generated files.
# - make compile Translates TTCN-3 and ASN.1 modules to C++.
# - make dep Creates/updates dependency list.
# - make objects Builds the object files without linking the executable.
TTCN3_LIB = ttcn3$(RT2_SUFFIX)-parallel$(DYNAMIC_SUFFIX)
#
# Set these variables...
#
# The path of your TTCN-3 Test Executor installation:
# Uncomment this line to override the environment variable.
# TTCN3_DIR =
# Your platform: (SOLARIS, SOLARIS8, LINUX, FREEBSD or WIN32)
PLATFORM = SOLARIS8
# Your C++ compiler:
CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include
# Flags for the C++ compiler:
CXXFLAGS = -Wall
# Flags for the linker:
LDFLAGS =
# Flags for the TTCN-3 and ASN.1 compiler:
COMPILER_FLAGS =
# Execution mode: (either ttcn3 or ttcn3-parallel)
TTCN3_LIB = ttcn3-parallel
# The path of your OpenSSL installation:
# If you do not have your own one, leave it unchanged.
OPENSSL_DIR = $(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 = PIPEasp_PortType.ttcn PIPEasp_Types.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 = PIPEasp_PortType.cc PIPEasp_Types.cc
GENERATED_HEADERS = PIPEasp_PortType.hh PIPEasp_Types.hh
GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc)
GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
ifdef CODE_SPLIT
GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc _seqof.cc _setof.cc _union.cc))
endif
# C/C++ Source & header files of Test Ports, external functions and
# other modules:
USER_SOURCES = PIPEasp_PT.cc
USER_HEADERS = PIPEasp_PT.hh
# Object files of this project that are needed for the executable test suite:
OBJECTS = PIPEasp_PortType.o PIPEasp_Types.o PIPEasp_PT.o
OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o)
# Other files of the project (Makefile, configuration files, etc.)
# that will be added to the archived source files:
OTHER_FILES = Makefile
TARGET = PIPEasp_PortType$(EXESUFFIX)
# The name of the executable test suite:
TARGET = PIPEasp_PortType
all: $(TARGET)
#
# Do not modify these unless you know what you are doing...
# Platform specific additional libraries:
#
SOLARIS_LIBS = -lsocket -lnsl
SOLARIS8_LIBS = -lsocket -lnsl
LINUX_LIBS =
FREEBSD_LIBS =
WIN32_LIBS =
#
# Rules for building the executable...
#
all: $(TARGET) ;
objects: $(OBJECTS) ;
$(TARGET): $(OBJECTS)
$(CXX) $(LDFLAGS) -o $@ $(OBJECTS) \
-L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \
-L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
.cc.o .c.o:
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
$(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
$(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)
@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
compile: $(TTCN3_MODULES) $(ASN1_MODULES)
$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) \
$(TTCN3_MODULES) $(ASN1_MODULES) - $?
touch $@
clean:
$(filter-out -Nold -E, $(TTCN3_COMPILER)) $(COMPILER_FLAGS) $^
touch compile
clean distclean:
-rm -f $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
$(GENERATED_SOURCES) compile \
tags *.log
dep: $(GENERATED_SOURCES) $(USER_SOURCES)
makedepend $(CPPFLAGS) $(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
#
# Add your rules here if necessary...
#
$(GENERATED_SOURCES) *.log Makefile.bak
dep: $(GENERATED_SOURCES)
makedepend $(CPPFLAGS) $(GENERATED_SOURCES)
......@@ -34,7 +34,7 @@ include ${TOPDIR}/Makefile.regression
# Your C++ compiler:
# (if you change the platform, you may need to change the compiler)
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include
......
......@@ -34,7 +34,7 @@ include ${TOPDIR}/Makefile.regression
# Your C++ compiler:
# (if you change the platform, you may need to change the compiler)
CXX = g++
#CXX = g++
# Flags for the C++ preprocessor (and makedepend as well):
CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment