Commit 2773cea4 authored by thomas.forbriger's avatar thomas.forbriger
Browse files

[WP][FIX] (ticket10): populate libtsioxx directory

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.

copied all required files for the new library to the source code directory
parent 2a3a8bfa
this is <COPYING>
============================================================================
libtfxx C++ software library
----------------------------
$Id: COPYING 4960 2013-02-01 09:02:16Z tforb $
============================================================================
The source code in this directory is part of libtfxx which
compiles libtfxx.a
Copyright (C) 2002, 2013 by Thomas Forbriger
----
libtfxx is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
----
----- END OF COPYING -----
# this is <Makefile>
# ----------------------------------------------------------------------------
# $Id: $
#
# Copyright (c) 2014 by Thomas Forbriger (BFO Schiltach)
#
# Time series input/output functions
#
# REVISIONS and CHANGES
# 27/01/2014 Thomas Forbriger (thof)
#
# ============================================================================
#
.PHONY: all
all: install doc
.PHONY: doc
doc: doxydoc
LIBRARIES=libtsioxx.a
.PHONY: install
install: $(addprefix $(LOCLIBDIR)/,$(LIBRARIES))
$(LOCLIBDIR)/%: install-include %
mkdir -pv $(LOCLIBDIR)
/bin/mv -fv $(word 2,$^) $(LOCLIBDIR)
# ============================================================================
#
CHECKVAR=$(if $($(1)),,$(error ERROR: missing variable $(1)))
CHECKVARS=$(foreach var,$(1),$(call CHECKVAR,$(var)))
#
$(call CHECKVARS,LOCINCLUDEDIR LOCLIBDIR)
$(call CHECKVARS,TF_BROWSER TF_WWWBASEDIR)
#----------------------------------------------------------------------
HEADERS=$(wildcard *.h)
SRC=$(wildcard *.cc)
DOXYTXT=$(wildcard doxygen*.txt)
INCINSTALLPATH=$(LOCINCLUDEDIR)/tsioxx
# name of installed (exported) header files
INSTHEADER=$(addprefix $(INCINSTALLPATH)/,$(notdir $(HEADERS)))
FLAGS+=-fPIC $(MYFLAGS)
CXXFLAGS+=-fhonor-std -Wall $(FLAGS)
CXXFLAGS+=$(FLAGS)
LDFLAGS+=-L$(LOCLIBDIR) $(TF_LINK_REGEXX)
CPPFLAGS+=-I$(LOCINCLUDEDIR) $(FLAGS) $(REGEXXFLAG)
flist: Makefile doxydoc.cfg COPYING README $(DOXYTXT) \
$(HEADERS) $(SRC) $(TF_EDIT)
echo $^ | tr ' ' '\n' | sort > $@
.PHONY: edit
edit: flist; vim $<
.PHONY: clean
clean: ;
-find . -name \*.bak | xargs --no-run-if-empty /bin/rm -v
-find . -name \*.o | xargs --no-run-if-empty /bin/rm -v
-find . -name \*.d | xargs --no-run-if-empty /bin/rm -v
-/bin/rm -vf flist *.o install-include *.strip libtfxx.a *.a *.so *.xxx
cd tests; $(MAKE) clean
#======================================================================
# dependencies
# ------------
%.d: %.cc
$(SHELL) -ec '$(CXX) -M $(CPPFLAGS) $< \
| sed '\''s,\($(notdir $*)\)\.o[ :]*,$(dir $@)\1.o $@ : ,g'\'' \
> $@; \
[ -s $@ ] || rm -f $@'
include $(patsubst %.cc,%.d,$(SRC) $(TESTS))
#======================================================================
# library part
# ------------
libtsioxx.a: $(SRC:.cc=.o)
ar rcv $@ $^
ranlib $@
libtsioxx.so: $(SRC:.cc=.o)
$(CXX) $(CXXFLAGS) -shared -o $@ $^ -L$(LOCLIBDIR)
#----------------------------------------------------------------------
$(call CHECKVARS,INCINSTALLPATH)
$(INCINSTALLPATH)/%.h: %.h
mkdir -p $(INCINSTALLPATH)
-rm -fv $@
/bin/cp -vpd $< $@
.PHONY: install-include
install-include: $(INSTHEADER)
#======================================================================
# reinstall target
# is necessary in case of header file problems (e.g. remcmmnt not installed)
.PHONY: clean-include
clean-include:
/bin/rm -fv $(INSTHEADER)
.PHONY: reinstall
reinstall:
$(MAKE) clean
$(MAKE) clean-include
$(MAKE) install
#======================================================================
# documentation part
# ------------------
#
# targets commonly used:
# ----------------------
#
# make doxyclean removes all documentation
# make doxydoc creates doxygen documentation in the DOXYWWWPATH
# make doxyview creates doxygen documentation and launches netscape to
# browse in the documentation
# make doxyconf edit the doxygen configuration file
#
# If you launch "make doxydoc" the documentation will be written to
# DOXYWWWPATH (see below). This is meant to export the documentation through
# your homepage. The doxyfull directory is just a symbolic link to this
# directory.
#
$(call CHECKVARS,TF_WWWBASEDIR TF_BROWSER)
DOXYWWWPATH=$(TF_WWWBASEDIR)/libtsioxx
.PHONY: doxyclean doxyview doxydoc doxyconf
doxyclean: ;/bin/rm -rfv $(DOXYWWWPATH) doxydoc.xxx
DOXYSRC=$(DOXYTXT) $(HEADERS) $(SRC)
# create doxygen intermediate configuration
PWD=$(shell env pwd)
doxydoc.xxx: doxydoc.cfg
sed 's,<OUTPUTDIRECTORY>,$(DOXYWWWPATH),g;s,<STRIPFROMPATH>,$(PWD),g' \
$< > $@
# create commented version of doxygen configuration
doxycomm.xxx: doxydoc.cfg
/bin/cp -vf $< $@; doxygen -u $@
$(DOXYWWWPATH)/html/index.html: doxydoc.xxx $(DOXYSRC)
mkdir -vp $(DOXYWWWPATH)
doxygen $<
doxydoc: $(DOXYWWWPATH)/html/index.html
doxyview: $(DOXYWWWPATH)/html/index.html
$(TF_BROWSER) file:$< &
#======================================================================
# create package
# --------------
# is delegated to Makefile.packages
ifdef TF_MAKEPKG
.PHONY: package
package: $(TF_MAKEPKG)
$(MAKE) -f $< \
PACKAGE=libtsioxx \
PACKAGEEXPORT="trunk/src/libs/libtfxx:src" \
PACKAGETARGETS="src:install:-i src:doc" \
PACKAGELIBS="-"
# due to the undesired circular dependency between libtfxx and libtsxx, we
# have to install libtsxx as a primary source in the fullpacke
# see ticket:215 and ticket:10
.PHONY: fullpackage
fullpackage: $(TF_MAKEPKG)
$(MAKE) -f $< \
PACKAGE=libtsioxxwithlibs \
PACKAGEEXPORT="trunk/src/libs/libtfxx:src trunk/src/libs/libtsxx:contrib/libtsxx" \
PACKAGETARGETS="contrib/libtsxx:install:-i src:install:-i contrib/libtsxx:reinstall contrib/libtsxx:doc:-i src:all" \
PACKAGELIBS="libgsexx:libtime:libsffxx:libaff:libseife:libdatrwxx"
endif
# ----- END OF Makefile -----
this is <README>
============================================================================
C++ library libtfxx
-------------------
$Id$
============================================================================
For compilation instructions see README.1st in the root directory of the tar-ball or
http://gpitrsvn.gpi.uni-karlsruhe.de:8000/TFSoftware/wiki/docs/installation
A collection of miscellaneous code frequently used by C++ programs in
TFSoftware.
This library contains smaller and independent sets of classes and modules.
They should provide stable and reliable interfaces and sematics.
Some of them will be copied from libclass which was more for experimenting purposes.
The modules provide handling of commandline options and arguments, I/O byte swapping,
I/O for Fortran binary files, error handling, and more.
The home of this software suite is
http://gpitrsvn.gpi.uni-karlsruhe.de:8000/TFSoftware/wiki/trunk/src/libs/libtfxx
Please send bug reports and suggestions to
Thomas.Forbriger@kit.edu
Installation instructions
-------------------------
The command make all will compile and install the binary executables
as well as the doxygen documentation.
Environment variables control where the results are stored and where
libraries and library header files are expected:
LOCLIBDIR defines location of binary libraries
LOCINCLUDEDIR defines location of C/C++ header files (prototypes)
LOCBINDIR defines location of binary executables
TF_WWWBASEDIR defines location of doxygen output
Dependencies:
-------------
Compilers required to build the programs:
C++ compiler
C/C++ preprocessor
doxygen (required to process source code documentation)
TFSoftware libraries required to compile the code:
direct dependencies:
libtsxx, libaff, libsffxx, libtime, libgsexx
indirect dependencies:
libseife, libdatrwxx
Further non-standard libraries required to compile the code:
- the C++ standard template library (STL)
- libboost
- libgsl
Tests and examples are provided in subdirectory tests
The source code itself depends only on common system libraries and the STL.
A note on header files:
----------------------
We extensively comment class declarations within the header files. The
reduce compilation time when using the library code, comments will be
stripped from the header files that are exportet. These stripped versions
are placed in the source code path with name *.h.strip and will be linked to
INCINSTALLPATH with name *.h.
Although comment stripping could be done by perl with an elaborate regular
expression, we prefer the remcmmnt command by Jari Laaksonen. You can find
the code at
http://www.eti.pg.gda.pl/KATEDRY/kecs/lab-cpp/snippets/
If it is not available to you, you should set TF_REMCMMNT=cat in the Makefile.
Detailed documentation is provided through doxygen source code. See target
doxydoc in the Makefile.
----- END OF README -----
# Doxyfile 1.6.3
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "TSIO++ Time series input/output"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = <OUTPUTDIRECTORY>
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = YES
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = <STRIPFROMPATH>
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = YES
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = YES
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
SYMBOL_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = internal
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./
INPUT_ENCODING = UTF-8
FILE_PATTERNS = doxygen*.txt \
*.h \
*.cc
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_FOOTER_DESCRIPTION= NO
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_TIMESTAMP = YES
HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
USE_INLINE_TREES = NO
TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = YES
PAPER_TYPE = a4wide
EXTRA_PACKAGES = pslatex
LATEX_HEADER =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = YES
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = DOXYGEN_MUST_SKIP_THIS
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_FONTNAME = FreeSans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
/*! \file doxygen.txt
* \brief Documentation of libtfxx
* ----------------------------------------------------------------------------
*
* $Id$
* \author Thomas Forbriger
* \date 27/01/2014
*
* Copyright (c) 2013 by Thomas Forbriger (BFO Schiltach)
*
* ----
* The conv/many suite is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
* ----
*
* REVISIONS and CHANGES
* - 27/01/2014 Thomas Forbriger (thof)
*
* ============================================================================
*/
/*! \mainpage
\author Thomas Forbriger
\since January 2014
\date January 2014
$Id$
\section main_aims Aims
This library provides modules for time series input/output.
Some of the functionality for SFF i/o is from a pre-libdatrwxx aera and should
be updated.
Other functionality provides the input and output of complete data files with
trace selection in one line of code.
\section main_history History
These modules previously were implemented in libtsxx and libtfxx.
They produced a bilateral dependency between both libraries which was
undesireable.
The modules are now separated into this library which in turn now depends on
both, libtsxx and libtfxx.
Modules presented in sffheaders.h are from a pre-libdatrwxx aera and should be
replaced by more up-to-date functionality.
*/
// ----- END OF doxygen.txt -----
......@@ -38,15 +38,15 @@
*
* ============================================================================
*/
#define TF_READTSDATA_CC_VERSION \
"TF_READTSDATA_CC V1.3"
#define TF_READTSDATA_CC_CVSID \
#define TSIOXX_READTSDATA_CC_VERSION \
"TSIOXX_READTSDATA_CC V1.3"
#define TSIOXX_READTSDATA_CC_CVSID \
"$Id$"
#include <tfxx/readtsdata.h>