24 Commits

Author SHA1 Message Date
3d955b1c98 varied gcc compiler in makefile 2025-10-10 12:09:56 +02:00
532abc7b1b README and cafe_version-py 2025-10-06 11:47:30 +02:00
9e00fc0e0c first user commit to gitea 2025-10-01 12:36:28 +02:00
a1c964f771 epics 7.0.8 2024-07-10 16:00:57 +02:00
df07cf1a29 v1.20.1 2024-07-04 11:47:27 +02:00
7b517f2fa6 changes from Nov. 2023 2024-02-08 14:23:15 +01:00
b00167016e testing wf behaviour thru ca gateway 2023-07-06 10:01:36 +02:00
33bbcde48a cafe-1.19.0-py38-gcc-7.5.0 2023-06-19 10:24:07 +02:00
7b052a21fc Updated windows makefiles and config.h to build on windows VSC2019 - L. Rettig (FHI) 2023-01-26 11:51:15 +01:00
d40ecbc53c rm cached 2023-01-16 13:17:50 +01:00
9b5803b7f0 config.h for cpp build 2023-01-16 07:17:01 +01:00
7e31c8fd80 missing config.h now included 2023-01-15 19:07:40 +01:00
64fda927e0 cafe-1.16.1 2022-08-04 10:16:44 +02:00
9851b72ba2 new commit 2022-06-28 10:14:07 +02:00
8c671dee59 investigated cafeMutex not resolved for py35 on RH7 2022-05-12 09:36:50 +02:00
844afa0a02 1.15.0 update 2022-03-11 14:40:13 +01:00
4cab5862dc m4 directory added 2022-01-06 14:19:28 +01:00
c2934ce3f7 py 3.10 option in configure.ac 2022-01-06 13:21:59 +01:00
7c779d9add py 3.10 option in configure.ac 2022-01-06 13:16:36 +01:00
80ce12d374 reset status in getCache (PVDataHolder) following put with nowtaccess error 2021-10-17 16:43:20 +02:00
90e063f930 reset status in getCache following put with nowtaccess error 2021-10-14 19:32:28 +02:00
cc804d2e7b testing getUnits for cython 2021-08-11 15:34:25 +02:00
cecf4a3f11 helper functions used to extract handle_index in instant.h for pyvind11 compatability 2021-07-27 16:49:07 +02:00
275bf4ad10 modified py fns for cycafe callbacks 2021-06-15 16:14:50 +02:00
104 changed files with 1170256 additions and 117405 deletions

13
.gitignore vendored
View File

@@ -1,6 +1,7 @@
# Temporary editor files #
##########################
*~
*-
# AFS temporary files #
#######################
@@ -9,14 +10,15 @@
# Temporary (build) files #
###########################
*.bak
*.*-*
*.*+*
aclocal.m4
autom4te.cache
config.*
config.in
configure
depcomp
install-sh
ltmain.sh
m4
makefile
makefile.in
missing
@@ -33,7 +35,12 @@ src/*.o
src/*.lo
src/*.la
src/.deps/*
src/bitshuffle/.deps/*
src/bitshuffle/.libs/*
src/bitshuffle/*.o
src/bitshuffle/*.Plo
src/bitshuffle/*.lo
src/.libs/*
examples/cafeTest/*.*-
doc
compile

317
INSTALL
View File

@@ -1,8 +1,8 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -12,97 +12,96 @@ without warranty of any kind.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
Briefly, the shell command './configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the 'README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
'INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
those values to create a 'Makefile' in each directory of the package.
It may also create one or more '.h' files containing system-dependent
definitions. Finally, it creates a shell script 'config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
file 'config.log' containing compiler output (useful mainly for
debugging 'configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
It can also use an optional file (typically called 'config.cache' and
enabled with '--cache-file=config.cache' or simply '-C') that saves the
results of its tests to speed up reconfiguring. Caching is disabled by
default to prevent problems with accidental use of stale cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
to figure out how 'configure' could check whether to do them, and mail
diffs or instructions to the address given in the 'README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
some point 'config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The file 'configure.ac' (or 'configure.in') is used to create
'configure' by a program called 'autoconf'. You need 'configure.ac' if
you want to change it or regenerate 'configure' using a newer version of
'autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
1. 'cd' to the directory containing the package's source code and type
'./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
Running 'configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
2. Type 'make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
3. Optionally, type 'make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
4. Type 'make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
user, and only the 'make install' phase executed with root
privileges.
5. Optionally, type `make installcheck' to repeat any self-tests, but
5. Optionally, type 'make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
regular user, particularly if the prior 'make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
source code directory by typing 'make clean'. To also remove the
files that 'configure' created (so you can compile the package for
a different kind of computer), type 'make distclean'. There is
also a 'make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type `make uninstall' to remove the installed
7. Often, you can also type 'make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide `make
8. Some packages, particularly those that use Automake, provide 'make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
targets like 'make install' and 'make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
the 'configure' script does not know about. Run './configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
You can give 'configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here is
an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
@@ -113,21 +112,21 @@ Compiling For Multiple Architectures
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
own directory. To do this, you can use GNU 'make'. 'cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'. This
is known as a "VPATH" build.
the 'configure' script. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'. This is known
as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
With a non-GNU 'make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
installed the package for one architecture, use 'make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
"universal" binaries--by specifying multiple '-arch' options to the
compiler but only a single '-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
@@ -136,100 +135,104 @@ this:
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
using the 'lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
By default, 'make install' installs the package's commands under
'/usr/local/bin', include files under '/usr/local/include', etc. You
can specify an installation prefix other than '/usr/local' by giving
'configure' the option '--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
options like '--bindir=DIR' to specify different values for particular
kinds of files. Run 'configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the default
for these options is expressed in terms of '${prefix}', so that
specifying just '--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
correct locations to 'configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
'make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
affected directory. For example, 'make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
'${prefix}'. Any directories that were specified during 'configure',
but not in terms of '${prefix}', must each be overridden at install time
for the entire installation to be relocated. The approach of makefile
variable overrides for each directory variable is required by the GNU
Coding Standards, and ideally causes no recompilation. However, some
platforms have known limitations with the semantics of shared libraries
that end up requiring recompilation when using this method, particularly
noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
The second method involves providing the 'DESTDIR' variable. For
example, 'make install DESTDIR=/alternate/directory' will prepend
'/alternate/directory' before all installation names. The approach of
'DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
when some directory options were not specified in terms of '${prefix}'
at 'configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
with an extra prefix or suffix on their names by giving 'configure' the
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
Some packages pay attention to '--enable-FEATURE' options to
'configure', where FEATURE indicates an optional part of the package.
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
is something like 'gnu-as' or 'x' (for the X Window System). The
'README' should mention any '--enable-' and '--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
For packages that use the X Window System, 'configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
you can use the 'configure' options '--x-includes=DIR' and
'--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
execution of 'make' will be. For these packages, running './configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
overridden with 'make V=1'; while running './configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
overridden with 'make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX 'make' updates targets which have the same time stamps as their
prerequisites, which makes it generally unusable when shipped generated
files such as 'configure' are involved. Use GNU 'make' instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
workaround. If GNU CC is not installed, it is therefore recommended to
try
./configure CC="cc"
@@ -237,26 +240,26 @@ and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
in your 'PATH', put it _after_ '/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
On Haiku, software installed for all users goes in '/boot/common',
not '/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
There may be some features 'configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
_same_ architectures, 'configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
'--build=TYPE' option. TYPE can either be a short name for the system
type, such as 'sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
@@ -265,101 +268,101 @@ where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
See the file 'config.sub' for the possible values of each field. If
'config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
use the option '--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
eventually be run) with '--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
If you want to set default values for 'configure' scripts to share,
you can create a site shell script called 'config.site' that gives
default values for variables like 'CC', 'cache_file', and 'prefix'.
'configure' looks for 'PREFIX/share/config.site' if it exists, then
'PREFIX/etc/config.site' if it exists. Or, you can set the
'CONFIG_SITE' environment variable to the location of the site script.
A warning: not all 'configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
environment passed to 'configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
them in the 'configure' command line, using 'VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
causes the specified 'gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
Autoconf limitation. Until the limitation is lifted, you can use this
workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
'configure' Invocation
======================
`configure' recognizes the following options to control how it
'configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
'--help'
'-h'
Print a summary of all of the options to 'configure', and exit.
`--help=short'
`--help=recursive'
'--help=short'
'--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
'configure', and exit. The 'short' variant lists options used only
in the top level, while the 'recursive' variant lists options also
present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
'--version'
'-V'
Print the version of Autoconf used to generate the 'configure'
script, and exit.
`--cache-file=FILE'
'--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
traditionally 'config.cache'. FILE defaults to '/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
'--config-cache'
'-C'
Alias for '--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
'--quiet'
'--silent'
'-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
suppress all normal output, redirect it to '/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
'--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
'configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
'--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names:: for
more details, including other options available for fine-tuning the
installation locations.
`--no-create'
`-n'
'--no-create'
'-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
'configure' also accepts some other, not widely useful, options. Run
'configure --help' for more details.

View File

@@ -1,39 +1,38 @@
INCLUDES = -IC:\CAFE\cafe-1.0.0-beta-3\cpp\include -IC:\local\boost_1_63_0\boost \
-IC:\local\boost_1_63_0 -IC:\EPICS\base-3.14.12.5\include -IC:\EPICS\base-3.14.12.5\include\os\WIN32
INCLUDES = -IC:\EPICS\CAFE\cpp\include -IC:\EPICS\CAFE\cpp -IC:\EPICS\boost_1_81_0\boost \
-IC:\EPICS\boost_1_81_0 -IC:\epics\epics-base\include -IC:\epics\epics-base\include\os\WIN32 \
-Ic:\EPICS\epics-base\include\compiler\msvc \
#-IC:\Qt\qt-4.8.6-x64-msvc2010\include -Ic:\Qt\qt-4.8.6-x64-msvc2010\include -Ic:\Qt\qt-4.8.6-x64-msvc2010\include\QtCore \
#-IC:\Qt\qt-4.8.6-msvc2010\include\QtXml
#-IC:\Qt\qt-4.8.6-msvc2010\include\QtXml \
#-IC:\Users\chrin\AppData\Local\Continuum\Anaconda3\envs\py345\include
LIB_DEST=lib\cafe-noqt
CXX=cl
CXXFLAGS = /W4 /EHsc /c /MT
OUTPUT_OPTION = /o "$@"
LIB_LOCAL = C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib \
C:\local\boost_1_63_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_63.lib \
C:\local\boost_1_63_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_63.lib
CXXFLAGS = -DUSE_TYPED_RSET -EHsc -nologo -FC -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Ox -GL -Oy- -W3 -MD -DEPICS_BUILD_DLL -DEPICS_CALL_DLL -c
#OUTPUT_OPTION = /o "$@"
OUTPUT_OPTION = /Fo"$@"
LIB_LOCAL = C:\epics\epics-base\lib\win32-x86\Com.lib C:\epics\epics-base\lib\win32-x86\ca.lib \
#C:\EPICS\boost_1_81_0\stage\lib\\libboost_thread-vc142-mt-x32-1_81.lib \
#C:\EPICS\boost_1_81_0\stage\lib\\libboost_system-vc142-mt-gd-x32-1_81.lib \
#C:\EPICS\boost_1_81_0\stage\lib\\libboost_date_time-vc142-mt-gd-x32-1_81.lib \
#C:\EPICS\boost_1_81_0\stage\lib\\libboost_chrono-vc142-mt-x32-1_81.lib \
#C:\EPICS\boost_1_81_0\stage\lib\\libboost_exception-vc142-mt-gd-x32-1_81.lib \
#C:\Qt\qt-4.8.6-x64-msvc2010\lib\QtCore4.lib C:\Qt\qt-4.8.6-x64-msvc2010\lib\QtXml4.lib \
#C:\Users\chrin\AppData\Local\Continuum\Anaconda3\envs\py345\libs\python34.lib
#C:\Users\chrin\AppData\Local\Continuum\Anaconda3\envs\py345\libs\python34.lib \
OBJS= src\cafeCache.obj src\cafeGroup.obj src\cafe.obj src\cafeVectors.obj \
src\callbackHandlerCreate.obj src\callbackHandlerMonitor.obj src\conduitGroup.obj src\conduit.obj \
src\connectCallbacks.obj src\connectGroup.obj \
src\connect.obj src\exceptionsHelper.obj src\granules.obj src\handleHelper.obj src\helper.obj \
src\methodCallbacks.obj src\policyHelper.obj src\transpose.obj \
src\cafeXML.obj src\loadCollectionXMLParser.obj src\loadGroupXMLParser.obj \
src\restorePVGroupXMLParser.obj $(LIB_LOCAL)
OBJS= cafeCache.obj cafeGroup.obj cafe.obj cafeVectors.obj \
callbackHandlerCreate.obj callbackHandlerMonitor.obj conduitGroup.obj conduit.obj \
connectCallbacks.obj connectGroup.obj \
connect.obj exceptionsHelper.obj granules.obj handleHelper.obj helper.obj \
methodCallbacks.obj policyHelper.obj transpose.obj \
cafeXML.obj loadCollectionXMLParser.obj loadGroupXMLParser.obj \
restorePVGroupXMLParser.obj $(LIB_LOCAL)
cafe.lib: $(OBJS)
LIB $(OBJS) /out:cafe.lib
$(LIB_DEST)\cafe.lib: $(OBJS)
LIB $(OBJS) /out:$(LIB_DEST)\cafe.lib
%.obj: src\%.cpp
%.obj: %.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) $(OUTPUT_OPTION) $<
clean:
del *.obj
del src\*.obj

View File

@@ -0,0 +1,39 @@
INCLUDES = -IC:\CAFE\cafe-1.0.0-beta-3\cpp\include -IC:\local\boost_1_63_0\boost \
-IC:\local\boost_1_63_0 -IC:\EPICS\base-3.14.12.5\include -IC:\EPICS\base-3.14.12.5\include\os\WIN32
#-IC:\Qt\qt-4.8.6-x64-msvc2010\include -Ic:\Qt\qt-4.8.6-x64-msvc2010\include -Ic:\Qt\qt-4.8.6-x64-msvc2010\include\QtCore \
#-IC:\Qt\qt-4.8.6-msvc2010\include\QtXml
#-IC:\Users\chrin\AppData\Local\Continuum\Anaconda3\envs\py345\include
LIB_DEST=lib\cafe-noqt
CXX=cl
CXXFLAGS = /W4 /EHsc /c /MT
OUTPUT_OPTION = /o "$@"
LIB_LOCAL = C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib \
C:\local\boost_1_63_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_63.lib \
C:\local\boost_1_63_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_63.lib
#C:\Qt\qt-4.8.6-x64-msvc2010\lib\QtCore4.lib C:\Qt\qt-4.8.6-x64-msvc2010\lib\QtXml4.lib \
#C:\Users\chrin\AppData\Local\Continuum\Anaconda3\envs\py345\libs\python34.lib
OBJS= cafeCache.obj cafeGroup.obj cafe.obj cafeVectors.obj \
callbackHandlerCreate.obj callbackHandlerMonitor.obj conduitGroup.obj conduit.obj \
connectCallbacks.obj connectGroup.obj \
connect.obj exceptionsHelper.obj granules.obj handleHelper.obj helper.obj \
methodCallbacks.obj policyHelper.obj transpose.obj \
cafeXML.obj loadCollectionXMLParser.obj loadGroupXMLParser.obj \
restorePVGroupXMLParser.obj $(LIB_LOCAL)
$(LIB_DEST)\cafe.lib: $(OBJS)
LIB $(OBJS) /out:$(LIB_DEST)\cafe.lib
%.obj: src\%.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) $(OUTPUT_OPTION) $<
clean:
del *.obj

28
MakefileWin/config.h Normal file
View File

@@ -0,0 +1,28 @@
/* epics major release */
#define EPICS_MAJOR 7
/* epics minor release */
#define EPICS_MINOR 0
/* epics patch release */
#define EPICS_PATCH 6
/* epics version */
#define HAVE_EPICS 7.0.6
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
#define HAVE_BOOST_THREAD 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
/*define HAVE_LIBQTXML 1 */
/* Define to 1 if you have the <Python.h> header file. */
/*#define HAVE_PYTHON_H 1 */
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

View File

@@ -0,0 +1,26 @@
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
#define HAVE_BOOST_THREAD 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
#define HAVE_LIBQTXML 1
/* Define to 1 if you have the <Python.h> header file. */
#define HAVE_PYTHON_H 1

View File

@@ -0,0 +1,26 @@
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
#define HAVE_BOOST_THREAD 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
#define HAVE_LIBQTXML 1
/* Define to 1 if you have the <Python.h> header file. */
/*#define HAVE_PYTHON_H 1 */

View File

@@ -0,0 +1,26 @@
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
#define HAVE_BOOST_THREAD 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
/*#define HAVE_LIBQTXML 1 */
/* Define to 1 if you have the <Python.h> header file. */
/*#define HAVE_PYTHON_H 1 */

44
README
View File

@@ -1,18 +1,25 @@
##
autogen_rel_py3.sh ==> generates library for use from within python and C++
autogen_rel_py3_noqt.sh ==> generates library for use from within python and C++ (remove Qt4 dependency if xml not required)
autogen_rel_noqt.sh ==> generates library for building a mex file (remove Qt4 dependence as matlab requires Qt5)
autogen_rel.sh ==> normal c++ release
Change cafe version in three place:
1)
configure.ac
AC_INIT([CAFE], [1.22.0], [Bug reports to: felix.armborst@psi.ch, j.chrin@hispeed.ch])
2)
src/makefile.am
libcafe_la_LDFLAGS = -version-info 23:0:22 #corresponds to 1.22.0 (run cafe_version.py)
3)
autogen.sh
CAFE_V="cafe-1.22.0"
EPICS_BASE='base-7.0.9' #change epics version here
autogen.sh sls2 py310/py38/py37 ==> generates library for use from within python and C++
autogen.sh sls2 cpp ==> generates library for use in cpp
autogen.sh sls2 matlab ==> generates library for building a mex file
autogen.sh hipa cpp ==> generates library for use cpp **without** qt libraries
autogen.sh sf py37 ==> generates library for use use in swissfel with bsread/zmq capabilty
Libraries are only made available when the appropriate is enabld
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
##
## --------------------------------------------------------------------------
@@ -23,17 +30,6 @@ Libraries are only made available when the appropriate is enabld
##
## --libdir: This is the directory to which the cafe shared objects are
## installed
## --with-boost: base directory for the boost header files
## --with-epics7: epics7 top level directory
## --with-epics3: epics3 top level directory
## Note that configure.ac assume that the architecture is
## base/lib/${EPICS_HOST_ARCH}
## --with-qt5: Qt5 base directory (optional)
## --with-python37: Python 3.7 directory, if building PyCafe
## --with-python35: Python 3.5 directory, if bulding PyCafe
## Remaining libraries are specific to swissfel zmq streams
## --------------------------------------------------------------------------
1) Modify autogen.sh according to above

View File

@@ -1,86 +0,0 @@
### psi specific - select compiler
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f src/PyCafe.cpp
ln -s PyCafe_sls.cpp src/PyCafe.cpp
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.13.0"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
echo 'darwin' $CAFE_HOST_FLAG_DARWIN
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7.4.1' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
ENABLE_OPTIONS="--enable-boost-inc"
ENABLE_OPTIONS+=" --enable-epics3"
#ENABLE_OPTIONS+=" --enable-epics7"
ENABLE_OPTIONS+=" --enable-qt5"
#ENABLE_OPTIONS+=" --enable-qt4"
ENABLE_OPTIONS+=" --enable-python37"
#ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics7=${EPICS}/base-7.0.4.1 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

1
autogen.sh Symbolic link
View File

@@ -0,0 +1 @@
autogen_sfbd.sh

286
autogen_psi.sh- Normal file
View File

@@ -0,0 +1,286 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/9.4.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.14.4"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py38" ] ||
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
fi
fi
if [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
else
ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/zmq/lz4/lib \
--with-epics7=${EPICS}/base-7.0.6
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

348
autogen_sfbd.sh Normal file
View File

@@ -0,0 +1,348 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/10.4.0 ##rhel8 - default
#Above overwritten for python in the below
#module load gcc/7.3.0 for py35 py37
#module load gcc/7.5.0 for py38 py310
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
libtoolize --force --copy #select libtools 2.4.6
#libtoolize --force --copy
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.22.0"
EPICS_BASE='base-7.0.9' #
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
##EPICS_BASE=$(readlink ${EPICS_BASE}) #$(readlink ${EPICS}/base)
_EPICS_HOST_ARCH=${RHREL}-x86_64
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
#if [ -z "$EPICS_BASE_VERSION" ]
#then
# EPICS_BASE='base-7.0.7' #7.0 = 7+0 = 7 for major release
#fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
#FACILITY_DEFAULT="sf"
#CACLIENT_DEFAULT="python"
FACILITY_DEFAULT="sls2"
CACLIENT_DEFAULT="py37"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py310" ] || [ "$FACILITY" = "py39" ] || \
[ "$FACILITY" = "py38" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ] || [ "$FACILITY" = "py34" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY=$FACILITY_DEFAULT
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py310" ] || [ "$CACLIENT" = "py39" ] || \
[ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ] || [ "$CACLIENT" = "py34" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py310" ] || [ "$CACLIENT_TEMP" = "py39" ] || \
[ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ] || [ "$CACLIENT_TEMP" = "py34" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
#CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics7"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
elif [ "$FACILITY" = "hipa" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-hipa"
elif [ "$FACILITY" = "sls" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-epics3"
fi
fi
if [ "$CACLIENT" = "py34" ]
then
ENABLE_OPTIONS+=" --enable-python34"
ENABLE_OPTIONS+=" --enable-qt4py34"
CAFE_V+="-py34"
module unload
module load gcc/7.3.0
elif [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
module unload
module load gcc/7.3.0
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
module unload
module load gcc/7.5.0
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
module unload
module load gcc/7.5.0
elif [ "$CACLIENT" = "py39" ]
then
ENABLE_OPTIONS+=" --enable-python39"
ENABLE_OPTIONS+=" --enable-qt5py39"
CAFE_V+="-py39"
module load gcc/7.5.0
elif [ "$CACLIENT" = "py310" ]
then
ENABLE_OPTIONS+=" --enable-python310"
ENABLE_OPTIONS+=" --enable-qt5py310"
CAFE_V+="-py310"
module unload
module load gcc/7.5.0
elif [ "$CACLIENT" = "cpp" ]
then
if [ "$FACILITY" != "hipa" ]
then
ENABLE_OPTIONS+=" --enable-qt5py310"
fi
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
module unload
module load gcc/7.3.0
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS============> '$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${_EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python310=/opt/gfa/python-3.10/latest \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-python34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-qt5py310=/opt/gfa/python-3.10/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-qt4py34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-json=/opt/gfa/cafe/deps/zmq/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/opt/gfa/cafe/deps/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/opt/gfa/cafe/deps/zmq/curl-7.55.1 \
--with-lz4=/opt/gfa/cafe/deps/zmq/lz4/lib \
--with-epics7=/usr/local/epics/${EPICS_BASE}
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

306
autogen_sfbd.sh- Normal file
View File

@@ -0,0 +1,306 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/7.3.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
#libtoolize --force --copy
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.15.1"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
EPICS_BASE=$(readlink ${EPICS}/base)
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
if [ -z "$EPICS_BASE" ]
then
EPICS_BASE='base-7' #7.0 = 7+0 = 7 for major release
fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sf"
CACLIENT_DEFAULT="python"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py310" ] || [ "$FACILITY" = "py38" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ] || [ "$FACILITY" = "py34" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py310" ] || [ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ] || [ "$CACLIENT" = "py34" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py310" ] || [ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ] || [ "$CACLIENT_TEMP" = "py34" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
#CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics3"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
elif [ "$FACILITY" = "sls" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-epics3"
fi
fi
if [ "$CACLIENT" = "py34" ]
then
ENABLE_OPTIONS+=" --enable-python34"
ENABLE_OPTIONS+=" --enable-qt4py34"
CAFE_V+="-py34"
elif [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
elif [ "$CACLIENT" = "py310" ]
then
ENABLE_OPTIONS+=" --enable-python310"
#ENABLE_OPTIONS+=" --enable-qt5py310"
CAFE_V+="-py310"
else
ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python310=/ioc/python/latest \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-python34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-qt5py310=/ioc/python/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-qt4py34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-json=/sf/bd/deps/zmq/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/sf/bd/deps/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/sf/bd/deps/zmq/curl-7.55.1 \
--with-lz4=/sf/bd/deps/zmq/lz4/lib \
--with-epics7=${EPICS}/base-7.0.6
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

321
autogen_sfbd_RHEL7.sh Normal file
View File

@@ -0,0 +1,321 @@
### psi specific - select compiler
#source <this_autogen_file> <facility> <target_language>
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/7.5.0 #7.5.0 for py38 AND PY310 7.3.0 py37
#module load gcc/8.5.0 #rhel8
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
/opt/gfa/python-3.7/latest/bin/libtoolize --force --copy #select libtools 2.4.6
#libtoolize --force --copy
autoconf --force #interprets configure.ac
autoheader --force
automake --force --add-missing --copy
#autoreconf not wanted
#Check what the EPICS RELEASE IS from ${EPICS}/base
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.19.3"
EPICS_BASE='base-7.0.7'
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
export CAFE_HOST_FLAG_DARWIN=$CAFE_HOST_FLAG_DARWIN
RETURN_ON_WRONG_INPUT=true
RETURN_FLAG=false
###EPICS_BASE=$(readlink ${EPICS_BASE}) #$(readlink ${EPICS}/base)
_EPICS_HOST_ARCH=${RHREL}-x86_64
#EB=$(readlink /afs/psi.ch/project/cafe/gitworkspace/CAFE/cpp/base)
echo $EPICS_BASE
#if [ -z "$EPICS_BASE_VERSION" ]
#then
# EPICS_BASE='base-7.0.7' #7.0 = 7+0 = 7 for major release
#fi
echo 'input' "$0" "$1" "$2"
echo $EPICS_BASE
FACILITY=$(echo "$1" | tr '[:upper:]' '[:lower:]')
CACLIENT=$(echo "$2" | tr '[:upper:]' '[:lower:]')
FACILITY_DEFAULT="sls2"
CACLIENT_DEFAULT="py37"
FACILITY_TEMP=""
CACLIENT_TEMP=""
echo 'input arg. facility/target' $FACILITY $CACLIENT
if [ -n "$FACILITY" ]
then
if [ "$FACILITY" = "matlab" ] || [ "$FACILITY" = "python" ] || \
[ "$FACILITY" = "py310" ] || [ "$FACILITY" = "py39" ] || \
[ "$FACILITY" = "py38" ] || \
[ "$FACILITY" = "py37" ] || [ "$FACILITY" = "py35" ] || \
[ "$FACILITY" = "julia" ] || [ "$FACILITY" = "cpp" ] || \
[ "$FACILITY" = "cc" ] || [ "$FACILITY" = "py34" ]
then
CACLIENT_TEMP=$FACILITY
FACILITY_TEMP=$2
fi
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "sls" ] || [ "$CACLIENT" = "sls2" ] || \
[ "$CACLIENT" = "sf" ] || [ "$CACLIENT" = "swissfel" ] || \
[ "$CACLIENT" = "sfel" ] || [ "$CACLIENT" = "hipa" ]
then
if [ -z $FACILITY_TEMP ]
then
FACILITY_TEMP=$CACLIENT
CACLIENT_TEMP=$1
fi
fi
fi
if [ -z "$FACILITY" ]
then
FACILITY="sf"
echo "FACILITY = " $FACILITY
if [ -z $CACLIENT ]
then
CACLIENT=$CACLIENT_DEFAULT
fi
elif [ "$FACILITY" = "sls" ] || [ "$FACILITY" = "sls2" ] || \
[ "$FACILITY" = "sf" ] || [ "$FACILITY" = "swissfel" ] || \
[ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "hipa" ]
then
echo "FACILITY = " $FACILITY
elif [ -n "$FACILITY_TEMP" ]
then
if [ "$FACILITY_TEMP" = "sls" ] || [ "$FACILITY_TEMP" = "sls2" ] || \
[ "$FACILITY_TEMP" = "sf" ] || [ "$FACILITY_TEMP" = "swissfel" ] || \
[ "$FACILITY_TEMP" = "sfel" ] || [ "$FACILITY_TEMP" = "hipa" ]
then
FACILITY=$FACILITY_TEMP
else
if [ -n "$2" ]
then
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
fi
echo "***OTHERWISE THE DEFAULT FACILITY IS:" $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT FACILITY***" $FACILITY
echo "***VALID VALUES ARE: sls sls2 sf hipa"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT FACILITY IS: " $FACILITY_DEFAULT
FACILITY=$FACILITY_DEFAULT
fi
if [ -n "$CACLIENT" ]
then
if [ "$CACLIENT" = "matlab" ] || [ "$CACLIENT" = "python" ] || \
[ "$CACLIENT" = "py310" ] || [ "$CACLIENT" = "py39" ] || \
[ "$CACLIENT" = "py38" ] || \
[ "$CACLIENT" = "py37" ] || [ "$CACLIENT" = "py35" ] || \
[ "$CACLIENT" = "julia" ] || [ "$CACLIENT" = "cpp" ] || \
[ "$CACLIENT" = "cc" ] || [ "$CACLIENT" = "py34" ]
then
echo "CA TARGET = " $CACLIENT
else
if [ -n "$CACLIENT_TEMP" ]
then
if [ "$CACLIENT_TEMP" = "matlab" ] || [ "$CACLIENT_TEMP" = "python" ] || \
[ "$CACLIENT_TEMP" = "py310" ] || [ "$CACLIENT_TEMP" = "py39" ] || \
[ "$CACLIENT_TEMP" = "py38" ] || \
[ "$CACLIENT_TEMP" = "py37" ] || [ "$CACLIENT_TEMP" = "py35" ] || \
[ "$CACLIENT_TEMP" = "julia" ] || [ "$CACLIENT_TEMP" = "cpp" ] || \
[ "$CACLIENT_TEMP" = "cc" ] || [ "$CACLIENT_TEMP" = "py34" ]
then
CACLIENT=$CACLIENT_TEMP
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
else
echo "***UNRECOGNIZED INPUT CA TARGET***" $CACLIENT
echo "***VALID VALUES ARE: cpp matlab python"
RETURN_FLAG=true
echo "***OTHERWISE THE DEFAULT CA TARGET IS:" $CACLIENT_DEFAULT
CACLIENT=$CACLIENT_DEFAULT
fi
fi
else
CACLIENT=$CACLIENT_DEFAULT
fi
if [ $RETURN_ON_WRONG_INPUT = true ] ; then
if [ $RETURN_FLAG = true ] ; then
return 1 2>/dev/null
exit 1
fi
fi
echo "FACILITY SELECTED = " $FACILITY
echo "CA TARGET SELECTED = " $CACLIENT
ENABLE_OPTIONS="--enable-boost-inc"
if [ "$FACILITY" = "sfel" ] || [ "$FACILITY" = "swissfel" ]
then
FACILITY="sf"
fi
if [ "$CACLIENT" = "python" ] || [ "$CACLIENT" = "julia" ]
then
CACLIENT="py37"
fi
if [ "$FACILITY" = "sls2" ]
then
ENABLE_OPTIONS+=" --enable-epics7"
#CAFE_V+="-sls2"
else
ENABLE_OPTIONS+=" --enable-epics7"
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-sf"
elif [ "$FACILITY" = "sls" ] && [ "$CACLIENT" != "matlab" ]
then
CAFE_V+="-epics3"
fi
fi
if [ "$CACLIENT" = "py34" ]
then
ENABLE_OPTIONS+=" --enable-python34"
ENABLE_OPTIONS+=" --enable-qt4py34"
CAFE_V+="-py34"
elif [ "$CACLIENT" = "py35" ]
then
ENABLE_OPTIONS+=" --enable-python35"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py35"
elif [ "$CACLIENT" = "py37" ]
then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
elif [ "$CACLIENT" = "py38" ]
then
ENABLE_OPTIONS+=" --enable-python38"
ENABLE_OPTIONS+=" --enable-qt5py38"
CAFE_V+="-py38"
elif [ "$CACLIENT" = "py39" ]
then
ENABLE_OPTIONS+=" --enable-python39"
ENABLE_OPTIONS+=" --enable-qt5py39"
CAFE_V+="-py39"
elif [ "$CACLIENT" = "py310" ]
then
ENABLE_OPTIONS+=" --enable-python310"
#ENABLE_OPTIONS+=" --enable-qt5py310"
CAFE_V+="-py310"
elif [ "$CACLIENT" = "cpp" ]
then
ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
#ln -s PyCafe3.cpp src/PyCafe.cpp
ENABLE_OPTIONS+=" --enable-json"
ENABLE_OPTIONS+=" --enable-zeromq"
ENABLE_OPTIONS+=" --enable-curl"
ENABLE_OPTIONS+=" --enable-lz4"
#else
#rm -f src/PyCafe.cpp
#ln -s PyCafe_sls.cpp src/PyCafe.cpp
fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
EB1=$(echo $EPICS_BASE | sed -e "s/[a-zA-Z]*-//g")
EBMAJ=$(echo $EB1 | sed -e "s/[[:punct:]].*//g")
EBMIN1=$(echo $EB1 | sed -e "s/^[[:digit:]]*[[:punct:]]//g")
EBMIN=$(echo $EBMIN1 | sed -e "s/[[:punct:]][[:digit:]]*//g")
EBPAT=$(echo $EB1 | sed -e "s/[[:digit:]]*[[:punct:]]//g")
echo EPICS_MAJOR=$EBMAJ
echo EPICS_MINOR=$EBMIN
echo EPICS_PATCH=$EBPAT
#echo $EBMIN1
export CAFE_EPICS_V_MAJOR=$EBMAJ
export CAFE_EPICS_V_MINOR=$EBMIN
export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-qt5"
##ENABLE_OPTIONS+=" --enable-qt4"
#ENABLE_OPTIONS+=" --enable-python37"
##ENABLE_OPTIONS+=" --enable-python35"
#ENABLE_OPTIONS+=" --enable-json"
#ENABLE_OPTIONS+=" --enable-zeromq"
#ENABLE_OPTIONS+=" --enable-curl"
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS============> '$ENABLE_OPTIONS
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${_EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-epics3=${EPICS}/base \
--with-python310=/opt/gfa/python-3.10/latest \
--with-python38=/opt/gfa/python-3.8/latest \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-python34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-qt5py310=/opt/gfa/python-3.10/latest \
--with-qt5py38=/opt/gfa/python-3.8/latest \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-qt4py34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-json=/sf/bd/deps/zmq/json/jsoncpp-src-0.6.0-rc2 \
--with-zeromq=/sf/bd/deps/zmq/zeromq-4.2.3-gcc-6.3.0 \
--with-curl=/sf/bd/deps/zmq/curl-7.55.1 \
--with-lz4=/sf/bd/deps/zmq/lz4/lib \
--with-epics7=/usr/local/epics/${EPICS_BASE}
unset CAFE_EPICS_V_PATCH
unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

View File

@@ -3,13 +3,12 @@
#<facility = sls sls2 sf> default is sf
#<target_language = cpp matlab python>
module unload gcc
module load gcc/6.3.0
module load gcc/7.3.0
### psi specific - end
rm -f configure.ac
ln -s configurePSI.ac configure.ac
rm -f ./aclocal.m4
rm -rf ./autom4te.cache
aclocal --force -I m4
@@ -23,7 +22,7 @@ automake --force --add-missing --copy
#Used by ./configure
#Assumes format ${EPICS}/base-3.14.12
#source cafeVersion-gcc-7.3.0
CAFE_V="cafe-1.13.0"
CAFE_V="cafe-1.15.1"
#For later check of existence of HOST_ARCH for $EPICS/include/os/$HOST_ARCH
#Assume Linux but check if Darwin
CAFE_HOST_FLAG_DARWIN=$(echo ${EPICS_HOST_ARCH} | grep -c "Darwin")
@@ -205,10 +204,18 @@ then
ENABLE_OPTIONS+=" --enable-python37"
ENABLE_OPTIONS+=" --enable-qt5"
CAFE_V+="-py37"
else
ENABLE_OPTIONS+=" --enable-qt5"
#else
#ENABLE_OPTIONS+=" --enable-qt5"
elif [ "$CACLIENT" = "py34" ]
then
ENABLE_OPTIONS+=" --enable-python34"
ENABLE_OPTIONS+=" --enable-qt4"
CAFE_V+="-py34"
#else
#ENABLE_OPTIONS+=" --enable-qt5"
fi
if [ "$FACILITY" = "sf" ] && [ "$CACLIENT" != "matlab" ]
then
#rm -f src/PyCafe.cpp
@@ -224,7 +231,7 @@ fi
CAFE_V+="-gcc-"$GCC_VERSION
echo "$CAFE_V"
echo "CAFE VERSION: $CAFE_V"
#echo 'EPICS BASE IS='$EPICS_BASE
#echo 'EPICS BASE DIR='${EPICS}/base-7.0.4.1
@@ -253,16 +260,18 @@ export CAFE_EPICS_V_PATCH=$EBPAT
#ENABLE_OPTIONS+=" --enable-lz4"
echo 'ENABLE_OPTIONS='$ENABLE_OPTIONS
echo 'EPICS='${EPICS}
./configure \
--prefix=/opt/gfa/cafe/cpp/${CAFE_V} \
--libdir=/opt/gfa/cafe/cpp/${CAFE_V}/lib/${EPICS_HOST_ARCH} \
${ENABLE_OPTIONS} \
--with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include \
--with-boost-inc=/afs/psi.ch/project/cafe/gitlab/CAFE/boost/boost_1_61_0/include \
--with-epics7=${EPICS}/base-7.0.4.1 \
--with-epics3=${EPICS}/base \
--with-python37=/opt/gfa/python-3.7/latest \
--with-python35=/opt/gfa/python-3.5/latest \
--with-python34=/opt/psi/Programming/psi-python34/2.1.0 \
--with-qt5=/opt/gfa/python-3.7/latest \
--with-qt4=/opt/gfa/python-3.5/latest \
--with-json=/opt/gfa/zmsglog/json/jsoncpp-src-0.6.0-rc2 \
@@ -275,4 +284,3 @@ unset CAFE_EPICS_V_MINOR
unset CAFE_EPICS_V_MAJOR
unset CAFE_HOST_FLAG_DARWIN

24
cafe_version.py Normal file
View File

@@ -0,0 +1,24 @@
# Converts cafe 'major' 'minor' 'revision'
# to syntax for use in libcafe_la_LDFLAGS
# in src/makefile.am
#
import sys
if (len(sys.argv) != 4):
print('Usage: cafe_version_py major minor revision')
print('Usage: e.g. cafe_version.py 1.22.0 returns 23:0:22')
sys.exit()
print(f'input args: {sys.argv}')
print('Change the following in src/makefile.am')
major = int(sys.argv[1])
minor = int(sys.argv[2])
rev = int(sys.argv[3])
current = major+minor
revision = rev
age = minor
print(f'libcafe_la_LDFLAGS = -version-info {current}:{revision}:{age}')

1476
config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

888
config.log Normal file
View File

@@ -0,0 +1,888 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by CAFE configure 1.22.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --prefix=/opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0 --libdir=/opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0/lib/RHEL8-x86_64 --enable-boost-inc --enable-epics7 --with-boost-inc=/opt/gfa/cafe/boost/boost_1_61_0/include --with-epics3=/usr/local/epics/base --with-python310=/opt/gfa/python-3.10/latest --with-python38=/opt/gfa/python-3.8/latest --with-python37=/opt/gfa/python-3.7/latest --with-python35=/opt/gfa/python-3.5/latest --with-python34=/opt/psi/Programming/psi-python34/2.1.0 --with-qt5py310=/opt/gfa/python-3.10/latest --with-qt5py38=/opt/gfa/python-3.8/latest --with-qt5=/opt/gfa/python-3.7/latest --with-qt4=/opt/gfa/python-3.5/latest --with-qt4py34=/opt/psi/Programming/psi-python34/2.1.0 --with-json=/opt/gfa/cafe/deps/zmq/json/jsoncpp-src-0.6.0-rc2 --with-zeromq=/opt/gfa/cafe/deps/zmq/zeromq-4.2.3-gcc-6.3.0 --with-curl=/opt/gfa/cafe/deps/zmq/curl-7.55.1 --with-lz4=/opt/gfa/cafe/deps/zmq/lz4/lib --with-epics7=/usr/local/epics/base-7.0.9 CXX=/opt/psi/Programming/gcc/10.4.0/bin/g++ CC=/opt/psi/Programming/gcc/10.4.0/bin/gcc --no-create --no-recursion
## --------- ##
## Platform. ##
## --------- ##
hostname = sls-lc8.psi.ch
uname -m = x86_64
uname -r = 4.18.0-553.22.1.el8_10.x86_64
uname -s = Linux
uname -v = #1 SMP Wed Sep 11 18:02:00 EDT 2024
/usr/bin/uname -p = x86_64
/bin/uname -X = unknown
/bin/arch = x86_64
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /opt/psi/Programming/gcc/10.4.0/bin
PATH: /opt/psi/Programming/matlab/2024b/bin
PATH: /opt/gfa/python-3.7/2018.12/bin
PATH: /opt/gfa/python-3.7/2018.12/condabin
PATH: /opt/gfa/python-3.5/latest/bin
PATH: /usr/local/epics/seq/bin/RHEL8-x86_64
PATH: /usr/lib/openoffice.org/program
PATH: /opt/psi/Tools/HDFView/3.1.2/bin
PATH: /usr/share/Modules/bin
PATH: /sbin
PATH: /bin
PATH: /sls/bd/bin
PATH: /sls/controls/bin
PATH: /sls/diag/bin
PATH: /sls/mag/bin
PATH: /sls/metro/bin
PATH: /sls/op/bin
PATH: /sls/plc
PATH: /sls/rf/bin
PATH: /sls/vcs/bin
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /usr/local/sbin
PATH: /usr/sbin
PATH: /usr/local/epics/base-7.0.9/bin/RHEL8-x86_64
PATH: /sls/bd/bin
PATH: /sls/controls/bin
PATH: /opt/puppetlabs/bin
PATH: /afs/psi.ch/project/zeromq/deps/pycharm-community-2018.1.4/bin
PATH: /afs/psi.ch/user/c/chrin/Downloads/astyle/build/gcc/bin
PATH: /afs/psi.ch/user/c/chrin/.local/bin
PATH: /afs/psi.ch/user/c/chrin/python/pycharm-community-2018.1.4/bin
PATH: /afs/psi.ch/user/c/chrin/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2503: checking for a BSD-compatible install
configure:2571: result: /bin/install -c
configure:2582: checking whether build environment is sane
configure:2637: result: yes
configure:2788: checking for a thread-safe mkdir -p
configure:2827: result: /bin/mkdir -p
configure:2834: checking for gawk
configure:2850: found /bin/gawk
configure:2861: result: gawk
configure:2872: checking whether make sets $(MAKE)
configure:2894: result: yes
configure:2923: checking whether make supports nested variables
configure:2940: result: yes
configure:3189: checking for C++ compiler version
configure:3198: /opt/psi/Programming/gcc/10.4.0/bin/g++ --version >&5
g++ ('PSI Environment Module') 10.4.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3209: $? = 0
configure:3198: /opt/psi/Programming/gcc/10.4.0/bin/g++ -v >&5
Using built-in specs.
COLLECT_GCC=/opt/psi/Programming/gcc/10.4.0/bin/g++
COLLECT_LTO_WRAPPER=/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.4.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /opt/psi/var/tmp/gsell/gcc-10.4.0/src/configure --prefix=/opt/psi/Programming/gcc/10.4.0 --enable-languages=c,c++,objc,obj-c++,lto,fortran,go --with-gmp=/opt/psi/Libraries/gmp/6.2.1 --with-mpfr=/opt/psi/Libraries/mpfr/4.1.0 --with-mpc=/opt/psi/Libraries/mpc/1.2.1 --enable-lto --disable-multilib --with-pkgversion=''\''PSI Environment Module'\''' --with-build-config=bootstrap-debug
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.4.0 ('PSI Environment Module')
configure:3209: $? = 0
configure:3198: /opt/psi/Programming/gcc/10.4.0/bin/g++ -V >&5
g++: error: unrecognized command-line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:3209: $? = 1
configure:3198: /opt/psi/Programming/gcc/10.4.0/bin/g++ -qversion >&5
g++: error: unrecognized command-line option '-qversion'; did you mean '--version'?
g++: fatal error: no input files
compilation terminated.
configure:3209: $? = 1
configure:3229: checking whether the C++ compiler works
configure:3251: /opt/psi/Programming/gcc/10.4.0/bin/g++ conftest.cpp >&5
configure:3255: $? = 0
configure:3303: result: yes
configure:3306: checking for C++ compiler default output file name
configure:3308: result: a.out
configure:3314: checking for suffix of executables
configure:3321: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest conftest.cpp >&5
configure:3325: $? = 0
configure:3347: result:
configure:3369: checking whether we are cross compiling
configure:3377: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest conftest.cpp >&5
configure:3381: $? = 0
configure:3388: ./conftest
configure:3392: $? = 0
configure:3407: result: no
configure:3412: checking for suffix of object files
configure:3434: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c conftest.cpp >&5
configure:3438: $? = 0
configure:3459: result: o
configure:3463: checking whether we are using the GNU C++ compiler
configure:3482: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c conftest.cpp >&5
configure:3482: $? = 0
configure:3491: result: yes
configure:3500: checking whether /opt/psi/Programming/gcc/10.4.0/bin/g++ accepts -g
configure:3520: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g conftest.cpp >&5
configure:3520: $? = 0
configure:3561: result: yes
configure:3587: checking whether make supports the include directive
configure:3602: make -f confmf.GNU && cat confinc.out
make[1]: Entering directory '/afs/psi.ch/project/cafe/gitea/CAFE/cpp'
make[1]: Leaving directory '/afs/psi.ch/project/cafe/gitea/CAFE/cpp'
this is the am__doit target
configure:3605: $? = 0
configure:3624: result: yes (GNU style)
configure:3649: checking dependency style of /opt/psi/Programming/gcc/10.4.0/bin/g++
configure:3760: result: gcc3
configure:3806: checking build system type
configure:3820: result: x86_64-pc-linux-gnu
configure:3840: checking host system type
configure:3853: result: x86_64-pc-linux-gnu
configure:3894: checking how to print strings
configure:3921: result: printf
configure:3990: checking for gcc
configure:4017: result: /opt/psi/Programming/gcc/10.4.0/bin/gcc
configure:4246: checking for C compiler version
configure:4255: /opt/psi/Programming/gcc/10.4.0/bin/gcc --version >&5
gcc ('PSI Environment Module') 10.4.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:4266: $? = 0
configure:4255: /opt/psi/Programming/gcc/10.4.0/bin/gcc -v >&5
Using built-in specs.
COLLECT_GCC=/opt/psi/Programming/gcc/10.4.0/bin/gcc
COLLECT_LTO_WRAPPER=/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../libexec/gcc/x86_64-pc-linux-gnu/10.4.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /opt/psi/var/tmp/gsell/gcc-10.4.0/src/configure --prefix=/opt/psi/Programming/gcc/10.4.0 --enable-languages=c,c++,objc,obj-c++,lto,fortran,go --with-gmp=/opt/psi/Libraries/gmp/6.2.1 --with-mpfr=/opt/psi/Libraries/mpfr/4.1.0 --with-mpc=/opt/psi/Libraries/mpc/1.2.1 --enable-lto --disable-multilib --with-pkgversion=''\''PSI Environment Module'\''' --with-build-config=bootstrap-debug
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.4.0 ('PSI Environment Module')
configure:4266: $? = 0
configure:4255: /opt/psi/Programming/gcc/10.4.0/bin/gcc -V >&5
gcc: error: unrecognized command-line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4266: $? = 1
configure:4255: /opt/psi/Programming/gcc/10.4.0/bin/gcc -qversion >&5
gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:4266: $? = 1
configure:4270: checking whether we are using the GNU C compiler
configure:4289: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c conftest.c >&5
configure:4289: $? = 0
configure:4298: result: yes
configure:4307: checking whether /opt/psi/Programming/gcc/10.4.0/bin/gcc accepts -g
configure:4327: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g conftest.c >&5
configure:4327: $? = 0
configure:4368: result: yes
configure:4385: checking for /opt/psi/Programming/gcc/10.4.0/bin/gcc option to accept ISO C89
configure:4448: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:4448: $? = 0
configure:4461: result: none needed
configure:4486: checking whether /opt/psi/Programming/gcc/10.4.0/bin/gcc understands -c and -o together
configure:4508: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c conftest.c -o conftest2.o
configure:4511: $? = 0
configure:4508: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c conftest.c -o conftest2.o
configure:4511: $? = 0
configure:4523: result: yes
configure:4542: checking dependency style of /opt/psi/Programming/gcc/10.4.0/bin/gcc
configure:4653: result: gcc3
configure:4668: checking for a sed that does not truncate output
configure:4732: result: /bin/sed
configure:4750: checking for grep that handles long lines and -e
configure:4808: result: /bin/grep
configure:4813: checking for egrep
configure:4875: result: /bin/grep -E
configure:4880: checking for fgrep
configure:4942: result: /bin/grep -F
configure:4977: checking for ld used by /opt/psi/Programming/gcc/10.4.0/bin/gcc
configure:5044: result: /bin/ld
configure:5051: checking if the linker (/bin/ld) is GNU ld
configure:5066: result: yes
configure:5078: checking for BSD- or MS-compatible name lister (nm)
configure:5132: result: /bin/nm -B
configure:5262: checking the name lister (/bin/nm -B) interface
configure:5269: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 conftest.cpp >&5
configure:5272: /bin/nm -B "conftest.o"
configure:5275: output
0000000000000000 B some_variable
configure:5282: result: BSD nm
configure:5285: checking whether ln -s works
configure:5289: result: yes
configure:5297: checking the maximum length of command line arguments
configure:5428: result: 1572864
configure:5476: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:5516: result: func_convert_file_noop
configure:5523: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:5543: result: func_convert_file_noop
configure:5550: checking for /bin/ld option to reload object files
configure:5557: result: -r
configure:5631: checking for objdump
configure:5647: found /bin/objdump
configure:5658: result: objdump
configure:5690: checking how to recognize dependent libraries
configure:5890: result: pass_all
configure:5975: checking for dlltool
configure:6005: result: no
configure:6035: checking how to associate runtime and link libraries
configure:6062: result: printf %s\n
configure:6123: checking for ar
configure:6139: found /bin/ar
configure:6150: result: ar
configure:6187: checking for archiver @FILE support
configure:6204: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 conftest.cpp >&5
configure:6204: $? = 0
configure:6207: ar cru libconftest.a @conftest.lst >&5
configure:6210: $? = 0
configure:6215: ar cru libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:6218: $? = 1
configure:6230: result: @
configure:6288: checking for strip
configure:6304: found /bin/strip
configure:6315: result: strip
configure:6387: checking for ranlib
configure:6403: found /bin/ranlib
configure:6414: result: ranlib
configure:6516: checking command to parse /bin/nm -B output from /opt/psi/Programming/gcc/10.4.0/bin/gcc object
configure:6669: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 conftest.cpp >&5
configure:6672: $? = 0
configure:6676: /bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:6679: $? = 0
configure:6745: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest -g -O2 conftest.cpp conftstm.o >&5
configure:6748: $? = 0
configure:6786: result: ok
configure:6833: checking for sysroot
configure:6863: result: no
configure:6870: checking for a working dd
configure:6908: result: /bin/dd
configure:6912: checking how to truncate binary pipes
configure:6927: result: /bin/dd bs=4096 count=1
configure:7064: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 conftest.cpp >&5
configure:7067: $? = 0
configure:7257: checking for mt
configure:7287: result: no
configure:7307: checking if : is a manifest tool
configure:7313: : '-?'
configure:7321: result: no
configure:7998: checking how to run the C preprocessor
configure:8029: /opt/psi/Programming/gcc/10.4.0/bin/gcc -E conftest.c
configure:8029: $? = 0
configure:8043: /opt/psi/Programming/gcc/10.4.0/bin/gcc -E conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
11 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:8043: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "CAFE"
| #define PACKAGE_TARNAME "cafe"
| #define PACKAGE_VERSION "1.22.0"
| #define PACKAGE_STRING "CAFE 1.22.0"
| #define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
| #define PACKAGE_URL ""
| #define PACKAGE "cafe"
| #define VERSION "1.22.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:8068: result: /opt/psi/Programming/gcc/10.4.0/bin/gcc -E
configure:8088: /opt/psi/Programming/gcc/10.4.0/bin/gcc -E conftest.c
configure:8088: $? = 0
configure:8102: /opt/psi/Programming/gcc/10.4.0/bin/gcc -E conftest.c
conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory
11 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:8102: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "CAFE"
| #define PACKAGE_TARNAME "cafe"
| #define PACKAGE_VERSION "1.22.0"
| #define PACKAGE_STRING "CAFE 1.22.0"
| #define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
| #define PACKAGE_URL ""
| #define PACKAGE "cafe"
| #define VERSION "1.22.0"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:8131: checking for ANSI C header files
configure:8151: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8151: $? = 0
configure:8224: /opt/psi/Programming/gcc/10.4.0/bin/gcc -o conftest -g -O2 conftest.c >&5
configure:8224: $? = 0
configure:8224: ./conftest
configure:8224: $? = 0
configure:8235: result: yes
configure:8248: checking for sys/types.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for sys/stat.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for stdlib.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for string.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for memory.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for strings.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for inttypes.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for stdint.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8248: checking for unistd.h
configure:8248: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8248: $? = 0
configure:8248: result: yes
configure:8262: checking for dlfcn.h
configure:8262: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:8262: $? = 0
configure:8262: result: yes
configure:8528: checking for objdir
configure:8543: result: .libs
configure:8807: checking if /opt/psi/Programming/gcc/10.4.0/bin/gcc supports -fno-rtti -fno-exceptions
configure:8825: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C
configure:8829: $? = 0
configure:8842: result: no
configure:9200: checking for /opt/psi/Programming/gcc/10.4.0/bin/gcc option to produce PIC
configure:9207: result: -fPIC -DPIC
configure:9215: checking if /opt/psi/Programming/gcc/10.4.0/bin/gcc PIC flag -fPIC -DPIC works
configure:9233: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5
configure:9237: $? = 0
configure:9250: result: yes
configure:9279: checking if /opt/psi/Programming/gcc/10.4.0/bin/gcc static flag -static works
configure:9307: result: no
configure:9322: checking if /opt/psi/Programming/gcc/10.4.0/bin/gcc supports -c -o file.o
configure:9343: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 -o out/conftest2.o conftest.c >&5
configure:9347: $? = 0
configure:9369: result: yes
configure:9377: checking if /opt/psi/Programming/gcc/10.4.0/bin/gcc supports -c -o file.o
configure:9424: result: yes
configure:9457: checking whether the /opt/psi/Programming/gcc/10.4.0/bin/gcc linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:10716: result: yes
configure:10753: checking whether -lc should be explicitly linked in
configure:10761: /opt/psi/Programming/gcc/10.4.0/bin/gcc -c -g -O2 conftest.c >&5
configure:10764: $? = 0
configure:10779: /opt/psi/Programming/gcc/10.4.0/bin/gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1
configure:10782: $? = 0
configure:10796: result: no
configure:10956: checking dynamic linker characteristics
configure:11537: /opt/psi/Programming/gcc/10.4.0/bin/gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5
configure:11537: $? = 0
configure:11774: result: GNU/Linux ld.so
configure:11896: checking how to hardcode library paths into programs
configure:11921: result: immediate
configure:12469: checking whether stripping libraries is possible
configure:12474: result: yes
configure:12509: checking if libtool supports shared libraries
configure:12511: result: yes
configure:12514: checking whether to build shared libraries
configure:12539: result: yes
configure:12542: checking whether to build static libraries
configure:12546: result: yes
configure:12569: checking how to run the C++ preprocessor
configure:12596: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E conftest.cpp
configure:12596: $? = 0
configure:12610: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
23 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:12610: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "CAFE"
| #define PACKAGE_TARNAME "cafe"
| #define PACKAGE_VERSION "1.22.0"
| #define PACKAGE_STRING "CAFE 1.22.0"
| #define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
| #define PACKAGE_URL ""
| #define PACKAGE "cafe"
| #define VERSION "1.22.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:12635: result: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E
configure:12655: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E conftest.cpp
configure:12655: $? = 0
configure:12669: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E conftest.cpp
conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory
23 | #include <ac_nonexistent.h>
| ^~~~~~~~~~~~~~~~~~
compilation terminated.
configure:12669: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "CAFE"
| #define PACKAGE_TARNAME "cafe"
| #define PACKAGE_VERSION "1.22.0"
| #define PACKAGE_STRING "CAFE 1.22.0"
| #define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
| #define PACKAGE_URL ""
| #define PACKAGE "cafe"
| #define VERSION "1.22.0"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:12831: checking for ld used by /opt/psi/Programming/gcc/10.4.0/bin/g++
configure:12898: result: /bin/ld -m elf_x86_64
configure:12905: checking if the linker (/bin/ld -m elf_x86_64) is GNU ld
configure:12920: result: yes
configure:12975: checking whether the /opt/psi/Programming/gcc/10.4.0/bin/g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:14048: result: yes
configure:14084: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 conftest.cpp >&5
configure:14087: $? = 0
configure:14568: checking for /opt/psi/Programming/gcc/10.4.0/bin/g++ option to produce PIC
configure:14575: result: -fPIC -DPIC
configure:14583: checking if /opt/psi/Programming/gcc/10.4.0/bin/g++ PIC flag -fPIC -DPIC works
configure:14601: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 -fPIC -DPIC -DPIC conftest.cpp >&5
configure:14605: $? = 0
configure:14618: result: yes
configure:14641: checking if /opt/psi/Programming/gcc/10.4.0/bin/g++ static flag -static works
configure:14669: result: no
configure:14681: checking if /opt/psi/Programming/gcc/10.4.0/bin/g++ supports -c -o file.o
configure:14702: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 -o out/conftest2.o conftest.cpp >&5
configure:14706: $? = 0
configure:14728: result: yes
configure:14733: checking if /opt/psi/Programming/gcc/10.4.0/bin/g++ supports -c -o file.o
configure:14780: result: yes
configure:14810: checking whether the /opt/psi/Programming/gcc/10.4.0/bin/g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:14850: result: yes
configure:14991: checking dynamic linker characteristics
configure:15736: result: GNU/Linux ld.so
configure:15801: checking how to hardcode library paths into programs
configure:15826: result: immediate
configure:16051: checking cadef.h usability
configure:16051: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc conftest.cpp >&5
configure:16051: $? = 0
configure:16051: result: yes
configure:16051: checking cadef.h presence
configure:16051: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc conftest.cpp
configure:16051: $? = 0
configure:16051: result: yes
configure:16051: checking for cadef.h
configure:16051: result: yes
configure:16070: checking epicsTypes.h usability
configure:16070: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc conftest.cpp >&5
configure:16070: $? = 0
configure:16070: result: yes
configure:16070: checking epicsTypes.h presence
configure:16070: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc conftest.cpp
configure:16070: $? = 0
configure:16070: result: yes
configure:16070: checking for epicsTypes.h
configure:16070: result: yes
configure:16087: checking for main in -lca
configure:16106: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 conftest.cpp -lca >&5
/bin/ld: warning: -z nodefs ignored.
configure:16106: $? = 0
configure:16115: result: yes
configure:16128: checking for main in -lCom
configure:16147: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 conftest.cpp -lCom >&5
/bin/ld: warning: -z nodefs ignored.
configure:16147: $? = 0
configure:16156: result: yes
configure:16169: checking for main in -ldl
configure:16188: /opt/psi/Programming/gcc/10.4.0/bin/g++ -o conftest -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 conftest.cpp -ldl >&5
/bin/ld: warning: -z nodefs ignored.
configure:16188: $? = 0
configure:16197: result: yes
configure:16402: checking multi_index_container.hpp usability
configure:16402: /opt/psi/Programming/gcc/10.4.0/bin/g++ -c -g -O2 -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include conftest.cpp >&5
configure:16402: $? = 0
configure:16402: result: yes
configure:16402: checking multi_index_container.hpp presence
configure:16402: /opt/psi/Programming/gcc/10.4.0/bin/g++ -E -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include conftest.cpp
configure:16402: $? = 0
configure:16402: result: yes
configure:16402: checking for multi_index_container.hpp
configure:16402: result: yes
configure:18163: checking that generated files are newer than configure
configure:18169: result: done
configure:18208: creating ./config.status
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value=/opt/psi/Programming/gcc/10.4.0/bin/gcc
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=/opt/psi/Programming/gcc/10.4.0/bin/g++
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_header_cadef_h=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_epicsTypes_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_multi_index_container_hpp=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_lib_Com_main=yes
ac_cv_lib_ca_main=yes
ac_cv_lib_dl_main=yes
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_FGREP='/bin/grep -F'
ac_cv_path_GREP=/bin/grep
ac_cv_path_SED=/bin/sed
ac_cv_path_install='/bin/install -c'
ac_cv_path_lt_DD=/bin/dd
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='/opt/psi/Programming/gcc/10.4.0/bin/gcc -E'
ac_cv_prog_CXXCPP='/opt/psi/Programming/gcc/10.4.0/bin/g++ -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=/opt/psi/Programming/gcc/10.4.0/bin/gcc
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/bin/ld
lt_cv_path_LDCXX='/bin/ld -m elf_x86_64'
lt_cv_path_NM='/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/bin/dd bs=4096 count=1'
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing aclocal-1.16'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_CPPFLAGS=' -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='1'
AM_LDFLAGS=' -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64'
AM_V='$(V)'
AR='ar'
AUTOCONF='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoconf'
AUTOHEADER='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoheader'
AUTOMAKE='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing automake-1.16'
AWK='gawk'
CAFE_CPPFLAGS='-I$(top_srcdir)/include '
CC='/opt/psi/Programming/gcc/10.4.0/bin/gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPP='/opt/psi/Programming/gcc/10.4.0/bin/gcc -E'
CPPFLAGS=' -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include'
CXX='/opt/psi/Programming/gcc/10.4.0/bin/g++'
CXXCPP='/opt/psi/Programming/gcc/10.4.0/bin/g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS='-g -O2'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
FGREP='/bin/grep -F'
GREP='/bin/grep'
HAVE_PYCAFE_EXT__FALSE=''
HAVE_PYCAFE_EXT__TRUE='#'
HAVE_PYTHON__FALSE=''
HAVE_PYTHON__TRUE='#'
HAVE_ZEROMQ__FALSE=''
HAVE_ZEROMQ__TRUE='#'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/bin/ld -m elf_x86_64'
LDFLAGS=' -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64'
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAKEINFO='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/bin/mkdir -p'
NM='/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='cafe'
PACKAGE_BUGREPORT='Bug reports to: jan.chrin@psi.ch'
PACKAGE_NAME='CAFE'
PACKAGE_STRING='CAFE 1.22.0'
PACKAGE_TARNAME='cafe'
PACKAGE_URL=''
PACKAGE_VERSION='1.22.0'
PATH_SEPARATOR=':'
RANLIB='ranlib'
SED='/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
STRIP='strip'
VERSION='1.22.0'
ac_ct_AR='ar'
ac_ct_CC='/opt/psi/Programming/gcc/10.4.0/bin/gcc'
ac_ct_CXX=''
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/install-sh'
libdir='/opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0/lib/RHEL8-x86_64'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "CAFE"
#define PACKAGE_TARNAME "cafe"
#define PACKAGE_VERSION "1.22.0"
#define PACKAGE_STRING "CAFE 1.22.0"
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
#define PACKAGE_URL ""
#define PACKAGE "cafe"
#define VERSION "1.22.0"
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define HAVE_LINUX 1
#define HAVE_CADEF_H 1
#define HAVE_EPICSTYPES_H 1
#define HAVE_EPICS 7.0.9
#define EPICS_MAJOR 7
#define EPICS_MINOR 0
#define EPICS_PATCH 9
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
#define HAVE_BOOST 1
configure: exit 0
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by CAFE config.status 1.22.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on sls-lc8.psi.ch
config.status:1168: creating makefile
config.status:1168: creating src/makefile
config.status:1168: creating include/makefile
config.status:1168: creating ./include/config.h
config.status:1349: ./include/config.h is unchanged
config.status:1397: executing depfiles commands
config.status:1474: cd src && sed -e '/# am--include-marker/d' makefile | make -f - am--depfiles
make[1]: Entering directory '/afs/psi.ch/project/cafe/gitea/CAFE/cpp/src'
make[1]: Nothing to be done for 'am--depfiles'.
make[1]: Leaving directory '/afs/psi.ch/project/cafe/gitea/CAFE/cpp/src'
config.status:1479: $? = 0
config.status:1397: executing libtool commands
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by CAFE config.status 1.22.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status ./include/config.h
on sls-lc8.psi.ch
config.status:1168: creating ./include/config.h
config.status:1349: ./include/config.h is unchanged

2213
config.status Executable file

File diff suppressed because it is too large Load Diff

1833
config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

1191
configure.ac-Mar10 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -8,8 +8,8 @@
# Standard macros
AC_PREREQ(2.63)
AC_COPYRIGHT([CAFE,Jan Chrin, 2018])
AC_INIT([CAFE], [1.13.0], [Bug reports to: jan.chrin@psi.ch])
AC_COPYRIGHT([CAFE, Jan Chrin, PSI, 2010-2023])
AC_INIT([CAFE], [1.22.0], [Bug reports to: jan.chrin@psi.ch])
AC_CONFIG_AUX_DIR(./)
@@ -38,7 +38,8 @@ AC_LANG([C++])
AC_DEFINE_UNQUOTED(HAVE_LINUX, 1, [linux dependency (sleep)])
CPPFLAGS=" -fexceptions -fPIC -std=c++1z"
#-z nodefs suppress unresolöved symbols
CPPFLAGS=" -fexceptions -fPIC -std=c++1z -z nodefs"
# provide include directories
AC_SUBST([CAFE_CPPFLAGS], '-I$(top_srcdir)/include ')
@@ -93,7 +94,7 @@ if test x$HAVE_EPICS_3 == xtrue ; then
EPICS_PREFIX=$withval
EPICS_INCL_PATH="-I"${EPICS_PREFIX}"/include/ \
-I"${EPICS_PREFIX}"/include/os/"${HOST_ARCH}
EPICS_LIB_PATH=${EPICS_PREFIX}"/lib/"${EPICS_HOST_ARCH}
EPICS_LIB_PATH=${EPICS_PREFIX}"/lib/"${RHREL}"-x86_64"
## Add epics release
EPICS_MAJOR_DEFAULT="3"
EPICS_MINOR_DEFAULT="14"
@@ -114,11 +115,11 @@ if test x$HAVE_EPICS_7 == xtrue ; then
-I"${EPICS_PREFIX}"/include/os/"${HOST_ARCH}
EPICS_INCL_PATH=${EPICS_INCL_PATH}" \
-I"${EPICS_PREFIX}"/include/compiler/gcc"
EPICS_LIB_PATH=${EPICS_PREFIX}"/lib/"${EPICS_HOST_ARCH}
EPICS_LIB_PATH=${EPICS_PREFIX}"/lib/"${RHREL}"-x86_64"
## Add epics release
EPICS_MAJOR_DEFAULT="7"
EPICS_MINOR_DEFAULT="4"
EPICS_PATCH_DEFAULT="1"
EPICS_MINOR_DEFAULT="0"
EPICS_PATCH_DEFAULT="9"
]
)
fi
@@ -166,6 +167,8 @@ if test x$HAVE_EPICS == xtrue; then
CPPFLAGS=${CPPFLAGS}" "${EPICS_INCL_PATH}
TEMP_LDFLAGS=${LDFLAGS}
LDFLAGS=${LDFLAGS}" -L"${EPICS_LIB_PATH}" -Wl,-rpath,"${EPICS_LIB_PATH}
#LDFLAGS=${LDFLAGS}" -L/opt/psi/Programming/gcc/7.3.0/lib64 -Wl,-rpath,/opt/psi/Programming/gcc/7.3.0/lib64"
#LDFLAGS=${LDFLAGS}" -L/opt/psi/Programming/gcc/7.3.0/lib -Wl,-rpath,/opt/psi/Programming/gcc/7.3.0/lib"
fi
if test x$HAVE_EPICS == xtrue ; then
@@ -363,6 +366,31 @@ PYTHON_OPTION=""
##-- Python 3.5/3.7 -- path and options
##-- Python header files required for callbacks
AC_ARG_ENABLE(
[python34],
AC_HELP_STRING([--enable-python34],
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY34_=true]
)
if test x$HAVE_PY34_ == xtrue ; then
AC_ARG_WITH(
python34,
AC_HELP_STRING(
[--with-python34 = location of python],
[prefix giving the python base directory]),
[#HAVE_PYTHON_=true
PYTHON_PREFIX=$withval
PYTHON_INCL_PATH="-I"${PYTHON_PREFIX}/include/python3.4m
PYTHON_INCL_PATH=${PYTHON_INCL_PATH}" -I"${PYTHON_PREFIX}\
"/lib/python3.4/site-packages/numpy/core/include"
PYTHON_LIB_PATH=${PYTHON_PREFIX}"/lib"
]
)
fi
AC_ARG_ENABLE(
[python35],
@@ -394,7 +422,8 @@ AC_ARG_ENABLE(
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY37_=true
HAVE_PY35_=false]
HAVE_PY35_=false
HAVE_PY34_=false]
)
if test x$HAVE_PY37_ == xtrue ; then
@@ -412,6 +441,65 @@ if test x$HAVE_PY37_ == xtrue ; then
]
)
fi
AC_ARG_ENABLE(
[python38],
AC_HELP_STRING([--enable-python38],
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY38_=true
HAVE_PY37_=false
HAVE_PY35_=false
HAVE_PY34_=false]
)
if test x$HAVE_PY38_ == xtrue ; then
AC_ARG_WITH(
python38,
AC_HELP_STRING(
[--with-python38 = location of python],
[prefix giving the python base directory]),
[#HAVE_PYTHON_=true
PYTHON_PREFIX=$withval
PYTHON_INCL_PATH="-I"${PYTHON_PREFIX}/include/python3.8
PYTHON_INCL_PATH=${PYTHON_INCL_PATH}" -I"${PYTHON_PREFIX}\
"/lib/python3.8/site-packages/numpy/core/include"
PYTHON_LIB_PATH=${PYTHON_PREFIX}"/lib"
]
)
fi
AC_ARG_ENABLE(
[python310],
AC_HELP_STRING([--enable-python310],
[enable python use [default=no]]),
[HAVE_PYTHON_=true
HAVE_PY310_=true
HAVE_PY38_=false
HAVE_PY37_=false
HAVE_PY35_=false
HAVE_PY34_=false]
)
if test x$HAVE_PY310_ == xtrue ; then
AC_ARG_WITH(
python310,
AC_HELP_STRING(
[--with-python310 = location of python],
[prefix giving the python base directory]),
[#HAVE_PYTHON_=true
PYTHON_PREFIX=$withval
PYTHON_INCL_PATH="-I"${PYTHON_PREFIX}/include/python3.10
PYTHON_INCL_PATH=${PYTHON_INCL_PATH}" -I"${PYTHON_PREFIX}\
"/lib/python3.10/site-packages/numpy/core/include"
PYTHON_LIB_PATH=${PYTHON_PREFIX}"/lib"
]
)
fi
##
##---------------------------------------------------------------------------
@@ -450,6 +538,23 @@ if test x$HAVE_PYTHON_ == xtrue ; then
[])
#fi
if test x$HAVE_PY310_ == xtrue ; then
AC_CHECK_LIB(python3.10,[main], [],
[HAVE_PYTHON_=false
AC_MSG_WARN(libpython3.10 not found!)]
)
fi
if test x$HAVE_PY38_ == xtrue ; then
AC_CHECK_LIB(python3.8,[main], [],
[HAVE_PYTHON_=false
AC_MSG_WARN(libpython3.8 not found!)]
)
fi
if test x$HAVE_PY37_ == xtrue ; then
AC_CHECK_LIB(python3.7m,[main], [],
@@ -466,6 +571,16 @@ if test x$HAVE_PYTHON_ == xtrue ; then
)
fi
if test x$HAVE_PY34_ == xtrue ; then
AC_CHECK_LIB(python3.4m,[main], [],
[HAVE_PYTHON_=false
AC_MSG_WARN(libpython3.4m not found!)]
)
fi
# If all checks are OK we add Qt version 4 to the FLAGS.
if test x$HAVE_PYTHON_ != xtrue ; then
@@ -488,7 +603,7 @@ fi
AC_LANG_POP
##
##-- end Python 3.7 -- check header files and library
##-- end Python 3.7(3.8 -- check header files and library
##-----------------------------
@@ -538,7 +653,7 @@ AC_ARG_ENABLE(
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5_ == xtrue ; then
@@ -556,7 +671,101 @@ if test x$HAVE_QT_5_ == xtrue ; then
]
)
fi
AC_ARG_ENABLE(
[qt5py38],
AC_HELP_STRING([--enable-qt5py38],
[enable Qt version 5 use [default=no]]),
[HAVE_QT_=true
HAVE_QT_5py38_=true
HAVE_QT_5_=false
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5py38_ == xtrue ; then
AC_ARG_WITH(
qt5py38,
AC_HELP_STRING([--with-qt5py38=PREFIX],
[prefix, parent directory where the Qt version 5 library is installed]),
[#HAVE_QT_=true
QT_PREFIX=$withval
QT_INCL_BASE=" -I"${QT_PREFIX}"/include/qt"
QT_INCL_PATH=${QT_INCL_BASE}
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtCore"
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtXml"
QT_LIB_PATH=${QT_PREFIX}"/lib "
]
)
fi
AC_ARG_ENABLE(
[qt5py310],
AC_HELP_STRING([--enable-qt5py310],
[enable Qt version 5 use [default=no]]),
[HAVE_QT_=true
HAVE_QT_5py310_=true
HAVE_QT_5py38_=false
HAVE_QT_5_=false
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_5py310_ == xtrue ; then
AC_ARG_WITH(
qt5py310,
AC_HELP_STRING([--with-qt5py310=PREFIX],
[prefix, parent directory where the Qt version 5 library is installed]),
[#HAVE_QT_=true
QT_PREFIX=$withval
QT_INCL_BASE=" -I"${QT_PREFIX}"/include/qt"
QT_INCL_PATH=${QT_INCL_BASE}
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtCore"
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtXml"
QT_LIB_PATH=${QT_PREFIX}"/lib "
]
)
fi
AC_ARG_ENABLE(
[qt4py34],
AC_HELP_STRING([--enable-qt4py34],
[enable Qt version 4 use [default=no]]),
[HAVE_QT_=true
HAVE_QT_4py34_=true
HAVE_QT_5py310_=false
HAVE_QT_5py38_=false
HAVE_QT_5_=false
HAVE_QT_4_=false]
)
#Only if enable flag is set
if test x$HAVE_QT_4py34_ == xtrue ; then
AC_ARG_WITH(
qt4py34,
AC_HELP_STRING([--with-qt4py34=PREFIX],
[prefix, parent directory where the Qt version 4 library is installed]),
[#HAVE_QT_=true
QT_PREFIX=$withval
QT_INCL_BASE=" -I"${QT_PREFIX}"/include"
QT_INCL_PATH=${QT_INCL_BASE}
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtCore"
QT_INCL_PATH=${QT_INCL_PATH}" "${QT_INCL_BASE}"/QtXml"
QT_LIB_PATH=${QT_PREFIX}"/lib "
]
)
fi
##
##---------------------------------------------------------------------------
@@ -601,21 +810,23 @@ if test x$HAVE_QT_ == xtrue ; then
AC_MSG_WARN(libQtXml not found!)])
fi
#if test x$HAVE_QT_5_ == xtrue ; then
# AC_CHECK_LIB(Qt5Core,[write],
# [],
# [HAVE_QT_=false #force true if there but not found
# AC_MSG_WARN(libQt5Core... no check)])
#fi
if test x$HAVE_QT_5_ == xtrue ; then
AC_CHECK_LIB(Qt5Core,[write],
[],
[HAVE_QT_=true #force true if there but not found
AC_MSG_WARN(libQt5Core not checked for!)])
fi
if test x$HAVE_QT_5_ == xtrue ; then
AC_CHECK_LIB(Qt5Xml,[qt_version_tag],
[],
[HAVE_QT_=false
AC_MSG_WARN(libQt5Xml not found!)])
[],
[HAVE_QT_=true
AC_MSG_WARN(libQt5Xml not checked for!)])
fi
# If all checks are OK we add Qt version 5 to the FLAGS.
if test x$HAVE_QT_ != xtrue ; then
if test x"${QT_PREFIX}" != x"" ; then

1052
configurePSI.ac- Normal file

File diff suppressed because it is too large Load Diff

1118
configurePSI.ac-- Normal file

File diff suppressed because it is too large Load Diff

1191
configurePSI.ac-Mar10 Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
examples/cafeTest/cafeTest- Executable file

Binary file not shown.

BIN
examples/cafeTest/cafeTest-- Executable file

Binary file not shown.

View File

@@ -2,7 +2,6 @@
// A simple example
//
#include <cafe.h>
#include "callbacks.h" //ca callback funtions
// Test with 6 PVS
@@ -14,7 +13,7 @@
#define PV_X1 "ARIDI-BPM-01LE:X-AVG"
#define PV_Y1 "ARIDI-BPM-01LE:Y-AVG"
#define PV_WF "ARIDI-BPM-01LE:WF-INT-2" //256 elements
#define PV_WF "ARIDI-BPM-01LE:WF-INT-1" //256 elements
#define PV_MBBI "ARIDI-BPM-01LE:GET-ENABLE" //mmbi
#define PV_X1_DESC "ARIDI-BPM-01LE:X-AVG.DESC" //dbr_string_t
#define PV_JOKE "PV:JOKE"
@@ -64,7 +63,14 @@ int main( int argc, char *argv[] )
//Instantaite CAFE
CAFE * cafe = new CAFE();
//PVCtrlHolder pvcd;
//dbr_string_t str_out;
//cafe->open("SF-OP:CR-MSG:OP-MSG1.DESC", handle);
//cafe->open("ARIDI-BPM:OFB-YRMS", handle);
//status = cafe->getCtrl("ARIDI-BPM:OFB-YRMS", pvcd);
//pvcd.print();
//cout << "status " << status << " value " << str_out << endl;
//exit(1);
//------------------------------------------------------------
//(1) Establishing connections to EPICS Process Variables (PVs)
@@ -191,6 +197,35 @@ int main( int argc, char *argv[] )
cout << "---------------------------------------------------------------------" << endl;
//reset Number of elements to native value for get operation
cafe->getHandleHelper().setNelem(hArray[2], cafe->getNelemNative(hArray[2]) );
//Allocate
double * dwf2 = new double[cafe->getNelemNative(hArray[2])];
status=cafe->get(PV_WF, dwf2);
if (status != ICAFE_NORMAL)
{
cout << "Status = " << status << "; indicates an error at " << __METHOD__ << "//" << __LINE__ << endl;
cafe->getCafeStatus().report(status);
}
else
{
cout << PV_WF << " successfully read out " << endl;
cout << "First five elements have values: " << endl;
for (int i=0; i<std::min(10,(int) cafe->getNelemRequest(hArray[2])); ++i)
{
cout << dwf2[i] << " [" << i << "] ";
}
cout << endl;
}
;
//------------------------------------------------------------
//(2) Basic Single Channel Operations
//------------------------------------------------------------
@@ -468,8 +503,10 @@ int main( int argc, char *argv[] )
//------------------------------------------------------------
//Data retrieval methods returning a waveform array
//------------------------------------------------------------
ChannelRequestPolicy channelRequestPolicyGetWF;
channelRequestPolicyGetWF.setPolicy(CAFENUM::FLUSH_AFTER_EACH_MESSAGE,
CAFENUM::WAIT, CAFENUM::WITHOUT_CALLBACK); //Wait!!
status=cafe->getPolicyHelper().setChannelRequestPolicyGet(hArray[2], channelRequestPolicyGetWF);
//inwf array of 20 doubles previous defined
//copy to vector to illustrate other possibilities
@@ -540,6 +577,7 @@ int main( int argc, char *argv[] )
cout << endl;
}
//reset offset for read and the nelemtonative
cout << "Resetting nelem for wf to native value: " << cafe->getHandleHelper().setNelemToNative(hArray[2])
<< " and resetting offset to: " << cafe->getHandleHelper().setOffset(hArray[2], 0) << endl;

View File

@@ -7,7 +7,7 @@
#CAFE version to link to
CAFE_VERSION=cafe-1.12.5-gcc-7.3.0
CAFE_VERSION=cafe-1.14.4-gcc-7.3.0
#PYTHON_INCLUDE=/opt/gfa/python-3.5/latest/include/python3.5m
#PYTHON_LIB=/opt/gfa/python-3.5/latest/lib
@@ -18,10 +18,6 @@ EPICS_BASE=${EPICS}/base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
CAFE_BASE=/afs/psi.ch/project/cafe/gitlab/CAFE/
CAFE_CPP_BASE=${CAFE_BASE}
CAFE_VERSION=cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
@@ -32,10 +28,14 @@ INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-L/opt/gfa/python-3.7/latest/lib \
-Wl,-rpath,/opt/gfa/python-3.7/latest/lib \
-L/opt/psi/Programming/gcc/10.3.0/lib64 \
-Wl,-rpath,/opt/psi/Programming/gcc/10.3.0/lib64
LIBS += -lcafe -lca -lCom
LIBS += -lcafe -lca -lCom -lQt5Core
cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o cafeTest \

View File

@@ -0,0 +1,52 @@
#
# Jan Chrin
# June 2016
#
# Makefile to build a simple C++ cafe client
#
#-py37- libcafe.so: undefined reference to `cy_event_handler_wrapper
#CAFE version to link to
#CAFE_VERSION=cafe-1.14.4-sls2-gcc-7.3.0
CAFE_VERSION=cafe-1.20.1-py37-gcc-8.5.0
#CAFE_VERSION=cafe-1.15.0-gcc-10.3.0
PYTHON_INCLUDE=/opt/gfa/python-3.7/latest/include/python3.7m
PYTHON_LIB=/opt/gfa/python-3.7/latest/lib
EPICS_BASE=${EPICS}/base-7.0.7
#CAFE project base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
-I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/compiler/gcc \
-I$(EPICS_BASE)/include/os/Linux \
-I$(BOOST_BASE) -I${PYTHON_INCLUDE}
#-I$(BOOST_BASE)/boost
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib/${EPICS_HOST_ARCH} \
-L/opt/psi/Programming/gcc/10.3.0/lib64 -Wl,-rpath,/opt/psi/Programming/gcc/10.3.0/lib64 \
-L$(PYTHON_LIB) -Wl,-rpath,$(PYTHON_LIB)
LIBS += -lcafe -lca -lCom -lQt5Core -lpython3.7m
${EPICS_HOST_ARCH}/monitorTest: monitorTest.cc
g++ monitorTest.cc -o ${EPICS_HOST_ARCH}/monitorTest \
$(INCLUDE_PATH) $(LIB_DIR) $(LIBS)
${EPICS_HOST_ARCH}/cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o ${EPICS_HOST_ARCH}/cafeTest \
$(INCLUDE_PATH) $(LIB_DIR) $(LIBS)
clean:
rm -f ${EPICS_HOST_ARCH}/cafeTest.o ${EPICS_HOST_ARCH}/cafeTest ${EPICS_HOST_ARCH}/monitorTest.o ${EPICS_HOST_ARCH}/monitorTest

View File

@@ -0,0 +1,46 @@
#
# Jan Chrin
# June 2016
#
# Makefile to build a simple C++ cafe client
#
#CAFE version to link to
CAFE_VERSION=cafe-1.14.1-gcc-7.3.0
#PYTHON_INCLUDE=/opt/gfa/python-3.5/latest/include/python3.5m
#PYTHON_LIB=/opt/gfa/python-3.5/latest/lib
EPICS_BASE=${EPICS}/base
#CAFE project base
CAFE_BASE=/opt/gfa/cafe
CAFE_CPP_BASE=${CAFE_BASE}/cpp
CAFE_BASE=/afs/psi.ch/project/cafe/gitlab/CAFE/
CAFE_CPP_BASE=${CAFE_BASE}
CAFE_VERSION=cpp
BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include
INCLUDE_PATH += -I$(CAFE_CPP_BASE)/$(CAFE_VERSION)/include \
-I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \
-I$(BOOST_BASE)
#-I$(BOOST_BASE)/boost
LIB_DIR += -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \
-L$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib \
-Wl,-rpath,$(CAFE_CPP_BASE)/$(CAFE_VERSION)/lib
LIBS += -lcafe -lca -lCom
cafeTest: cafeTest.cc callbacks.h
g++ cafeTest.cc -o cafeTest \
$(INCLUDE_PATH) $(LIB_DIR) $(LIBS)
clean:
rm -f cafeTest.o cafeTest

View File

@@ -1,22 +1,26 @@
INCLUDES = -Ic:\CAFE\CAFE\cpp\include -Ic:\CAFE\CAFE\cpp -Ic:\local\boost_1_62_0 \
-Ic:\local\boost_1_62_0\boost -Ic:\epics\base-3.14.12.5\include -Ic:\epics\base-3.14.12.5\include\os\WIN32 \
-Ic:\Qt\4.8.4\include
INCLUDES = -Ic:\EPICS\CAFE\cpp\include -Ic:\EPICS\CAFE\cpp -Ic:\EPICS\boost_1_81_0 \
-Ic:\EPICS\boost_1_81_0\boost -IC:\epics\epics-base\include -IC:\epics\epics-base\include\os\WIN32 \
-Ic:\EPICS\epics-base\include\compiler\msvc \
#-Ic:\Qt\4.8.4\include
CXX=cl
CXXFLAGS = /W4 /EHsc
OUTPUT_OPTION = /o $@
LIB_LOCAL = C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib \
C:\CAFE\CAFE\cpp\cafe.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-s-1_62.lib \
C:\Qt\4.8.4\lib\QtCore4.lib C:\Qt\4.8.4\lib\QtXml4.lib
CXXFLAGS = -DUSE_TYPED_RSET -EHsc -nologo -FC -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -Ox -GL -Oy- -W3 -MD -DEPICS_BUILD_DLL -DEPICS_CALL_DLL -c
OUTPUT_OPTION = /Fo"$@"
LIB_LOCAL = C:\epics\epics-base\lib\win32-x86\Com.lib C:\epics\epics-base\lib\win32-x86\ca.lib \
C:\EPICS\CAFE\cpp\cafe.lib \
C:\EPICS\boost_1_81_0\stage\lib\\libboost_thread-vc142-mt-x32-1_81.lib \
C:\EPICS\boost_1_81_0\stage\lib\\libboost_system-vc142-mt-x32-1_81.lib \
C:\EPICS\boost_1_81_0\stage\lib\\libboost_date_time-vc142-mt-x32-1_81.lib \
C:\EPICS\boost_1_81_0\stage\lib\\libboost_chrono-vc142-mt-x32-1_81.lib \
# C:\Qt\4.8.4\lib\QtCore4.lib C:\Qt\4.8.4\lib\QtXml4.lib
cafeTest: cafeTest.obj
$(CXX) cafeTest.obj $(LIB_LOCAL)
link -nologo -LTCG -incremental:no -opt:ref -release cafeTest.obj $(LIB_LOCAL)
cafeTest.obj: cafeTest.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) /c cafeTest.cpp
cafeTest.obj: cafeTest.cc
$(CXX) $(CXXFLAGS) $(INCLUDES) cafeTest.cc
clean:
del *.obj
#"C:\Program Files (x86)\GnuWin32\bin\make"

View File

@@ -0,0 +1,23 @@
INCLUDES = -Ic:\CAFE\CAFE\cpp\include -Ic:\CAFE\CAFE\cpp -Ic:\local\boost_1_62_0 \
-Ic:\local\boost_1_62_0\boost -Ic:\epics\base-3.14.12.5\include -Ic:\epics\base-3.14.12.5\include\os\WIN32 \
-Ic:\Qt\4.8.4\include
CXX=cl
CXXFLAGS = /W4 /EHsc
OUTPUT_OPTION = /o $@
LIB_LOCAL = C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib \
C:\CAFE\CAFE\cpp\cafe.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-s-1_62.lib \
C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-s-1_62.lib \
C:\Qt\4.8.4\lib\QtCore4.lib C:\Qt\4.8.4\lib\QtXml4.lib
cafeTest: cafeTest.obj
$(CXX) cafeTest.obj $(LIB_LOCAL)
cafeTest.obj: cafeTest.cpp
$(CXX) $(CXXFLAGS) $(INCLUDES) /c cafeTest.cpp
#"C:\Program Files (x86)\GnuWin32\bin\make"

View File

@@ -9,7 +9,7 @@
#CAFE version to link to
CAFE_VERSION=pyzcafe-1.12.5-gcc-7.3.0
CAFE_VERSION=cafe-1.15.0-gcc-7.3.0
PYTHON_INCLUDE=/opt/gfa/python-3.7/latest/include/python3.7m
PYTHON_LIB=/opt/gfa/python-3.7/latest/lib

BIN
examples/cafeTest/monitorTest Executable file

Binary file not shown.

View File

@@ -0,0 +1,293 @@
//
// A simple example
//
#include <cafe.h>
#include <fcntl.h>
/* Green States */
#define FEEDBACK_OFF 0
#define READY_FOR_EVENT 1
#define CHECKING_TUNE 2
#define RAMPING_UP 3
#define RAMPING_DOWN 4
#define TUNE_OK 5
#define IPCT_BELOW_THRESHOLD 6
/* Yellow States */
#define NO_TUNE_VALUE 7
#define BAD_TUNE_VALUE 8
/* Red States */
#define CHANNELS_DISCONNECTED 9
#define ZERO_NOMINAL_TUNE 10
#define ZERO_DQ_MINIMUM 11
#define EMERGENCY_OFF 12
/* Define Anti_States with underscore*/
/* Green States */
#define _FEEDBACK_ON 100
#define _IPCT_ABOVE_THRESHOLD 106
/* Red State */
#define _CHANNELS_CONNECTED 109
#define _NON_ZERO_NOMINAL_TUNE 110
#define _NON_ZERO_DQ_MINIMUM 111
void callbackHandlerMonitor( struct event_handler_args args) {
#define __METHOD__ "callbackHandlerMonitor"
if (args.status != ECA_NORMAL) {
std::cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << std::endl;
std::cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << std::endl;
//return;
//}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find((unsigned int)_handle);
if (it_handle != handle_index.end()) {
//std::cout << (*it_handle).getPV() << " " << (*it_handle).getHandle() << std::endl;
if(MUTEX){cafeMutex.lock();}
handle_index.modify(it_handle, change_eventHandlerArgs (args));
if(MUTEX){cafeMutex.unlock();}
//**** ADD USER CODE HERE ***//
if (args.type < DBR_GR_STRING) {
PVDataHolder pvd(args.count);
(*it_handle).getPVDataHolder(pvd);
pvd.print();
//std::cout << "val/D//= " << pvd.getAsString(0) << std::endl;
}
else if (args.type < DBR_PUT_ACKT) {
PVCtrlHolder pvc(args.count);
(*it_handle).getPVCtrlHolder(pvc);
pvc.print();
//std::cout << "val/C/= " << pvc.getAsString(0) << std::endl;
}
//**** END USER CODE ***//
}
else {
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
std::cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << std::endl;
}
}
return;
#undef __METHOD__
};
#define NHANDLES 40
#define ALLHANDLES 72*4
int main( int argc, char *argv[] )
{
using namespace std;
int poutFlag = 0;
char message[40];
char s[40];
sprintf(message," OUTPUT FLAG == %d \n", poutFlag);
time_t nowJCrhcp=time(NULL);
char * theTime=ctime(&nowJCrhcp);
strftime(s,36,"/tmp/QX_%Y_%m_%d_%H:%M:%S",localtime(&nowJCrhcp));
char * pmac = s;
cout << s << " " << theTime << endl;
cout << pmac << endl;
open(pmac, O_WRONLY | O_CREAT, 0777);
FILE * ofpJCrhcp = fopen(pmac, "w");
fprintf(ofpJCrhcp, "%s%s: STARTING Q_CHECK SEQUENCER \n", theTime, "QX");
fclose(ofpJCrhcp);
char theMessage[40];
strcpy(theMessage, "FEEDBACK ON\n");
time_t now=time(NULL);
theTime=ctime(&now);
FILE * ofp = fopen(pmac, "a");
fprintf(ofp, "%s%s: %s",theTime, "QX", theMessage);
fclose(ofp);
int code = READY_FOR_EVENT;
switch(code) {
case FEEDBACK_OFF:
strcpy(theMessage, "FEEDBACK OFF\n");
break;
case _FEEDBACK_ON:
strcpy(theMessage, "FEEDBACK ON\n");
break;
case READY_FOR_EVENT:
strcpy(theMessage, "READY FOR EVENT\n");
break;
case RAMPING_UP:
strcpy(theMessage, "RAMPING UP\n");
break;
case RAMPING_DOWN:
strcpy(theMessage, "RAMPING DOWN\n");
break;
case TUNE_OK:
strcpy(theMessage, "TUNE OK\n");
break;
case IPCT_BELOW_THRESHOLD:
strcpy(theMessage, "IPCT BELOW THRESHOLD\n");
break;
case _IPCT_ABOVE_THRESHOLD:
strcpy(theMessage, "IPCT ABOVE THRESHOLD\n");
break;
case NO_TUNE_VALUE:
strcpy(theMessage, "NO TUNE VALUE\n");
break;
case BAD_TUNE_VALUE:
strcpy(theMessage, "BAD TUNE VALUE: OUTSIDE ALLOWED RANGE\n");
break;
case CHANNELS_DISCONNECTED:
strcpy(theMessage, "CHANNEL DISCONNECTED\n");
break;
case ZERO_NOMINAL_TUNE:
strcpy(theMessage, "ZERO NOMINAL TUNE\n");
break;
case _NON_ZERO_NOMINAL_TUNE:
strcpy(theMessage, "NOMINAL TUNE NOW NON-ZERO\n");
break;
case ZERO_DQ_MINIMUM:
strcpy(theMessage, "ZERO DQ MINIMUM\n");
break;
case _NON_ZERO_DQ_MINIMUM:
strcpy(theMessage, "DQ MINIMUM NOW NON-ZERO\n");
break;
case EMERGENCY_OFF:
strcpy(theMessage, "RAMPING DOWN\n");
break;
case _CHANNELS_CONNECTED:
strcpy(theMessage, "CHANNELS CONNECTED\n");
break;
}
now=time(NULL);
theTime=ctime(&now);
ofp = fopen(pmac, "a");
fprintf(ofp, "%s%s: %s",theTime, "QX", theMessage);
fclose(ofp);
unsigned int hArray [NHANDLES];
string pvArray[NHANDLES]= {
"ARIDI-BPM-03SD:X-AVG", "ARIDI-BPM-03SD:Y-AVG", "ARIDI-BPM-03SD:INT-AVG", "ARIDI-BPM-03SD:GET-ENABLE",
"ARIDI-BPM-06SB:X-AVG", "ARIDI-BPM-06SB:Y-AVG", "ARIDI-BPM-06SB:INT-AVG", "ARIDI-BPM-06SB:GET-ENABLE",
"ARIDI-BPM-11MB:X-AVG", "ARIDI-BPM-11MB:Y-AVG", "ARIDI-BPM-11MB:INT-AVG", "ARIDI-BPM-11MB:GET-ENABLE",
"ARIDI-BPM-09LB:X-AVG", "ARIDI-BPM-09LB:Y-AVG", "ARIDI-BPM-09LB:INT-AVG", "ARIDI-BPM-09LB:GET-ENABLE",
"ARIDI-BPM-11SB:X-AVG", "ARIDI-BPM-11SB:Y-AVG", "ARIDI-BPM-11SB:INT-AVG", "ARIDI-BPM-11SB:GET-ENABLE",
"ARIDI-BPM-10SB:X-AVG", "ARIDI-BPM-10SB:Y-AVG", "ARIDI-BPM-10SB:INT-AVG", "ARIDI-BPM-10SB:GET-ENABLE",
"ARIDI-BPM-04LD:X-AVG", "ARIDI-BPM-04LB:Y-AVG", "ARIDI-BPM-04LD:INT-AVG", "ARIDI-BPM-04LB:GET-ENABLE",
"ARIDI-BPM-09LD:X-AVG", "ARIDI-BPM-09LD:Y-AVG", "ARIDI-BPM-09LD:INT-AVG", "ARIDI-BPM-09LD:GET-ENABLE",
"ARIDI-BPM-05SE:X-AVG", "ARIDI-BPM-05SE:Y-AVG", "ARIDI-BPM-05SE:INT-AVG", "ARIDI-BPM-05SE:GET-ENABLE",
"ARIDI-BPM-09SD:X-AVG", "ARIDI-BPM-09SD:Y-AVG", "ARIDI-BPM-09SD:INT-AVG", "ARIDI-BPM-09SD:GET-ENABLE"
};
char bpmList[73][18]= {"ARIDI-BPM-01LB" , "ARIDI-BPM-01LE" , "ARIDI-BPM-01LD" , "ARIDI-BPM-01SD" , "ARIDI-BPM-01SE" , "ARIDI-BPM-01SB" , "ARIDI-BPM-02SB" , "ARIDI-BPM-02SE" , "ARIDI-BPM-02SD" , "ARIDI-BPM-02MD" , "ARIDI-BPM-02ME" , "ARIDI-BPM-02MB" , "ARIDI-BPM-03MB" , "ARIDI-BPM-03ME" , "ARIDI-BPM-03MD" , "ARIDI-BPM-03SD" , "ARIDI-BPM-03SE" , "ARIDI-BPM-03SB" , "ARIDI-BPM-04SB" , "ARIDI-BPM-04SE" , "ARIDI-BPM-04SD" , "ARIDI-BPM-04LD" , "ARIDI-BPM-04LE" , "ARIDI-BPM-04LB" , "ARIDI-BPM-05LB" , "ARIDI-BPM-05LE" , "ARIDI-BPM-05LD" , "ARIDI-BPM-05SD" , "ARIDI-BPM-05SE" , "ARIDI-BPM-05SB" , "ARIDI-BPM-06SB" , "ARIDI-BPM-06SE" , "ARIDI-BPM-06SD" , "ARIDI-BPM-06MD" , "ARIDI-BPM-06ME" , "ARIDI-BPM-06MB" , "ARIDI-BPM-07MB" , "ARIDI-BPM-07ME" , "ARIDI-BPM-07MD" , "ARIDI-BPM-07SD" , "ARIDI-BPM-07SE" , "ARIDI-BPM-07SB" , "ARIDI-BPM-08SB" , "ARIDI-BPM-08SE" , "ARIDI-BPM-08SD" , "ARIDI-BPM-08LD" , "ARIDI-BPM-08LE" , "ARIDI-BPM-08LB" , "ARIDI-BPM-09LB" , "ARIDI-BPM-09LE" , "ARIDI-BPM-09LD" , "ARIDI-BPM-09SD" , "ARIDI-BPM-09SE" , "ARIDI-BPM-09SB" , "ARIDI-BPM-10SB" , "ARIDI-BPM-10SE" , "ARIDI-BPM-10SD" , "ARIDI-BPM-10MD" , "ARIDI-BPM-10ME" , "ARIDI-BPM-10MB" , "ARIDI-BPM-11MB" , "ARIDI-BPM-11ME" , "ARIDI-BPM-11MD" , "ARIDI-BPM-11SD" , "ARIDI-BPM-11SE" , "ARIDI-BPM-11SB" , "ARIDI-BPM-12SB" , "ARIDI-BPM-12SE" , "ARIDI-BPM-12SD" , "ARIDI-BPM-12LD" , "ARIDI-BPM-12LE" , "ARIDI-BPM-12LB" , "ARIDI-BPM-MP" };
string dev, att[4], devAtt;
int bpmRingMax=73;
att[1]="X-AVG"; att[2]="Y-AVG"; att[0]="INT-AVG"; att[3]="GET-ENABLE";
vector<string> pvArrayString;
pvArrayString.reserve(72*4);
vector<unsigned int> hArrayString;
hArrayString.reserve(72*4);
int ij=0;
for (int i=0; i<bpmRingMax-1 ; ++i) { // max 72
dev=bpmList[i];
for (int j=0; j<4; ++j) {
devAtt = dev +":" + att[j];
pvArrayString.push_back(devAtt);
}
}
//Instantaite CAFE
CAFE * cafe = new CAFE();
cafe->openPrepare();
cafe->open(pvArrayString, hArrayString); //, ALLHANDLES);
cafe->openNowAndWait(4);
MonitorPolicy mp[ALLHANDLES];
for (int i=0; i<ALLHANDLES; ++i) {
mp[i].setUserArgs((void *) pvArrayString[i].c_str());
mp[i].setHandler(callbackHandlerMonitor);
mp[i].setCafeDbrType(CAFENUM::DBR_TIME);
mp[i].setMask(DBE_VALUE | DBE_LOG | DBE_ALARM);
}
for (int i=0; i<ALLHANDLES; ++i) {
cafe->monitorStart(hArrayString[i], mp[i]);
cout << pvArrayString[i] << endl;
}
cafe->printDisconnectedHandles();
while (true) {
//for (int i=0; i<100; ++i) {
usleep(10000);
}
for (int i=0; i<ALLHANDLES; ++i) {
cafe->monitorStop(hArray[i], mp[i]);
}
cafe->closeHandles();
cafe->terminate();
return 0;
}

View File

@@ -18,15 +18,19 @@
#define DL_IMPORT(_T) _T
#endif
__PYX_EXTERN_C void cy_monitor_handler_wrapper(void *);
__PYX_EXTERN_C void cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
__PYX_EXTERN_C void cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
__PYX_EXTERN_C void cy_event_handler_wrapper(void *, unsigned int, std::string);
__PYX_EXTERN_C void cy_handle_handler_wrapper(void *, unsigned int);
__PYX_EXTERN_C void cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
__PYX_EXTERN_C void py_cb_wrapper(PVDataHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_handle_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_monid_wrapper(unsigned int, unsigned long);
__PYX_EXTERN_C void cy_cb_handle_get_wrapper(void *, unsigned int);
__PYX_EXTERN_C void py_cb_handle_get_wrapper(unsigned int);
__PYX_EXTERN_C void cy_cb_handle_put_wrapper(void *, unsigned int);
__PYX_EXTERN_C void py_cb_handle_put_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_open_wrapper(unsigned int, int);
__PYX_EXTERN_C void py_cb_handle_connect_wrapper(unsigned int, std::string, int);

46
include/PyCafe_sf.h Normal file
View File

@@ -0,0 +1,46 @@
/* Generated by Cython 0.29.2 */
#ifndef __PYX_HAVE__PyCafe
#define __PYX_HAVE__PyCafe
#ifndef __PYX_HAVE_API__PyCafe
#ifndef __PYX_EXTERN_C
#ifdef __cplusplus
#define __PYX_EXTERN_C extern "C"
#else
#define __PYX_EXTERN_C extern
#endif
#endif
#ifndef DL_IMPORT
#define DL_IMPORT(_T) _T
#endif
__PYX_EXTERN_C void cy_data_event_handler_wrapper(void *, unsigned int, std::string, PVDataHolder);
__PYX_EXTERN_C void cy_ctrl_event_handler_wrapper(void *, unsigned int, std::string, PVCtrlHolder);
__PYX_EXTERN_C void cy_event_handler_wrapper(void *, unsigned int, std::string);
__PYX_EXTERN_C void cy_handle_handler_wrapper(void *, unsigned int);
__PYX_EXTERN_C void cy_connect_handler_wrapper(void *, unsigned int, std::string, int);
__PYX_EXTERN_C void py_cb_wrapper(PVDataHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_ctrl_wrapper(PVCtrlHolder, unsigned int, std::string);
__PYX_EXTERN_C void py_cb_handle_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_monid_wrapper(unsigned int, unsigned long);
__PYX_EXTERN_C void py_cb_handle_get_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_put_wrapper(unsigned int);
__PYX_EXTERN_C void py_cb_handle_open_wrapper(unsigned int, int);
__PYX_EXTERN_C void py_cb_handle_connect_wrapper(unsigned int, std::string, int);
#endif /* !__PYX_HAVE_API__PyCafe */
/* WARNING: the interface of the module init function changed in CPython 3.5. */
/* It now returns a PyModuleDef instance instead of a PyModule instance. */
#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC initPyCafe(void);
#else
PyMODINIT_FUNC PyInit_PyCafe(void);
#endif
#endif /* !__PYX_HAVE__PyCafe */

View File

@@ -7,12 +7,13 @@
#ifndef CAFE_H
#define CAFE_H
#include <hashConduit.h>
#include <connect.h>
#include <conduitEventHandlerArgs.h>
#include <instant.h>
#include <cafeDataType.h>
#include <global.h>
#if HAVE_PYTHON_H
#include <unicodeobject.h>
#endif
@@ -112,6 +113,9 @@ public:
// if HAVE_LIBQTXML moved to within header file
//#endif
int wfExpress(const unsigned int handle, const unsigned int nelem, dbr_char_t * chval);
//int wfExpress(const unsigned int handle);
//get NON_BLOCKING
int getNonBlocking(const unsigned int handle)
{

View File

@@ -182,6 +182,10 @@ int getCache(const unsigned int handle, dbr_long_t * _val, dbr_short_t &alarm
return cafeLatte.getCache(handle, DBR_TIME_LONG, _val, alarmStatus, alarmSeverity, ts);
};
//4
int getCacheCharArray(const unsigned int handle, dbr_char_t * _val)
{
return cafeCappuccino.getCache(handle, DBR_CHAR, _val);
};
int getCache(const unsigned int handle, dbr_char_t * _val)
{
return cafeCappuccino.getCache(handle, DBR_CHAR, _val);

View File

@@ -325,6 +325,128 @@ int matchMany(std::vector<std::string> valSetV, std::vector<unsigned int> handle
//
int matchManyWithStatus(std::vector<dbr_double_t> valSet, std::vector<unsigned int> handleMatch,
dbr_double_t tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
status = cafeDoppio.matchManyWithStatus(DBR_DOUBLE, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
return status;
}
int matchManyWithStatus(std::vector<dbr_float_t> valSet, std::vector<unsigned int> handleMatch,
dbr_float_t tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
return cafeFrappuccino.matchManyWithStatus(DBR_FLOAT, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<dbr_char_t> valSet, std::vector<unsigned int> handleMatch,
dbr_char_t tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
return cafeCappuccino.matchManyWithStatus(DBR_CHAR, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<dbr_enum_t> valSet, std::vector<unsigned int> handleMatch,
dbr_enum_t tolerance, double timeout, bool printFlag, std::vector<int> statusV)
{
return cafeEspresso.matchManyWithStatus(DBR_ENUM, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<dbr_short_t> valSet, std::vector<unsigned int> handleMatch,
dbr_short_t tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
return cafeSchale.matchManyWithStatus(DBR_SHORT, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<dbr_long_t> valSet, std::vector<unsigned int> handleMatch,
dbr_long_t tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
return cafeLatte.matchManyWithStatus(DBR_LONG, valSet, handleMatch, tolerance, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<long long> valSet, std::vector<unsigned int> handleMatch,
long long tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
std::vector<dbr_double_t> valSetDoubleV;
valSetDoubleV.reserve(valSet.size());
std::copy(valSet.begin(), valSet.end(),
std::back_inserter(valSetDoubleV));
dbr_double_t toleranceDouble = tolerance;
return cafeDoppio.matchManyWithStatus(DBR_DOUBLE, valSetDoubleV, handleMatch, toleranceDouble, timeout, printFlag, statusV);
}
int matchManyWithStatus(std::vector<std::string> valSetV, std::vector<unsigned int> handleMatchV,
std::string tolerance, double timeout, bool printFlag, std::vector<int> &statusV)
{
#define __METHOD__ "matchManyWithStatus (std::vector<string> valSetV, std::vector<unsigned int> handleMatchV, \
string tolerance, double timeout, bool printFlag, std::vector<int> statusV)"
std::vector<dbr_double_t> valSetDoubleV;
std::istringstream ss;
dbr_double_t d=0;
dbr_double_t toleranceDouble = 0;
for (size_t i=0; i< valSetV.size(); ++i)
{
d=0;
ss.clear();
ss.str(valSetV[i]);
ss>>d;
if ( !ss.fail())
{
valSetDoubleV.push_back(d);
}
else
{
std::cout << __METHOD__ << __LINE__ << std::endl;
std::cout << "***WARNING*** NO STRING TO DBR_DOUBLE CONVERSION " << std::endl;
std::cout << "***WARNING*** COULD NOT CONVERT: ";
std::cout << valSetV[i];
std::cout << " TO DOUBLE!" << std::endl;
return ECAFE_NO_CONVERT;
}
}
d=0;
ss.clear();
ss.str(tolerance);
ss>>d;
if ( !ss.fail())
{
toleranceDouble=d;
}
else
{
std::cout << __METHOD__ << __LINE__ << std::endl;
std::cout << "***WARNING*** NO STRING TO DBR_DOUBLE CONVERSION " << std::endl;
std::cout << "***WARNING*** COULD NOT CONVERT: ";
std::cout << tolerance;
std::cout << " TO DOUBLE!" << std::endl;
return ECAFE_NO_CONVERT;
}
return cafeDoppio.matchManyWithStatus(DBR_DOUBLE, valSetDoubleV, handleMatchV, toleranceDouble, timeout, printFlag, statusV);
#undef __METHOD__
}
int setAndMatchMany(std::vector<unsigned int> handleSet, std::vector<dbr_double_t> valSet, std::vector<unsigned int> handleMatch,
dbr_double_t tolerance, double timeout, bool printFlag)
{

View File

@@ -179,13 +179,13 @@ public:
}
};
std::string getCafeConnectionStateAsString()
std::string getCafeConnectionStateAsString()
{
return cafeStatus.csc.message(cafeConnectionState);
};
ChannelRegalia():channelID((chid) NULL), connectFlag(false), nelem((unsigned int) 1),
dataType((chtype) CAFE_TYPENOTCONN),
dataType(chtype((int)CAFE_TYPENOTCONN)),
accessRead((unsigned short) 0), accessWrite((unsigned short) 0),
connectionState((int) CA_OP_CONN_DOWN), cafeConnectionState((int) ICAFE_CS_NEVER_CONN)
{

View File

@@ -237,9 +237,12 @@ private:
//void * PyDataEventHandler() const;
//void * PyCtrlEventHandler() const;
void * CyEventHandler() const;
void * CyDataEventHandler() const;
void * CyCtrlEventHandler() const;
void * CyMonitorHandler() const; //can handle all three cb signatures
//void * CyHandleHandler() const; //handle
//void * CyEventHandler() const; //handle, pv
//void * CyDataEventHandler() const; //handle, pv, pvdata
void * CyCtrlEventHandler() const; //handle, pv, pvctrl
bool pyOpenCallbackFlag;
@@ -738,6 +741,8 @@ public:
std::cout << "getMonitorPolicyVector(monitor_id): " << monitor_id << " NOT FOUND! " << std::endl;
std::cout << "Could not modify entry!" << std::endl;
}
MonitorPolicy mp;
return mp;
};
std::vector<MonitorPolicy> getMonitorPolicyVector(void) const

View File

@@ -15,6 +15,7 @@
/**
* Friend to Conduit/CAFEGroup records the connection_handler_args struct from callback fns
* in hash table
* Function is not invoked on closechannel by user
*/
struct change_connectionHandlerArgs
{
@@ -34,7 +35,7 @@ struct change_connectionHandlerArgs
// but we do not overwrite it upon disconnect.
//std::cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << std::endl;
//std::cout << new_connectionHandlerArgs.op << std::endl;
//connectFlag
if (new_connectionHandlerArgs.op == CA_OP_CONN_UP)
{
@@ -298,7 +299,7 @@ struct change_dataBufferSize_CTRL
{
//std::cout << "sizeof c.ctrlBuffer " << dbr_size_n(new_ctrlTypeBuffer,c.channelRequestMetaCtrl.getNelem()) << std::endl;
c.ctrlBuffer = (db_access_val *) malloc ( dbr_size_n(new_ctrlTypeBuffer,c.channelRequestMetaCtrl.getNelem()) );
c.channelRequestMetaCtrl.byteSize=dbr_size_n(new_ctrlTypeBuffer,c.channelRequestMetaCtrl.getNelem());
c.channelRequestMetaCtrl.byteSize=dbr_size_n(new_ctrlTypeBuffer, c.channelRequestMetaCtrl.getNelem());
}

View File

@@ -22,18 +22,22 @@ struct change_eventHandlerArgs
#define __METHOD__ "change_eventHandlerArgs"
change_eventHandlerArgs (const struct event_handler_args & new_eventHandlerArgs) :
new_eventHandlerArgs(new_eventHandlerArgs) {}
void operator() (Conduit& c)
{
//c.eventHandlerArgs = new_eventHandlerArgs;
c.status= new_eventHandlerArgs.status;
//Must always return else segmentataion fault
//But all initCallbacksComplete method will return false
//Change this to stop this happening
if(c.status!=ECA_NORMAL) {
std::cout << __METHOD__ << " STATUS IS " << c.status << std::endl;
std::cout << __METHOD__ << " return from method enforced " << std::endl;
std::cout << "conduitEventHandlerArgs.h/" << __LINE__ << " " << __METHOD__ << " STATUS IS " << c.status << std::endl;
std::cout << "conduitEventHandlerArgs.h/" << __LINE__ << " " << __METHOD__ << " return from method ***IS *** enforced " << std::endl;
return;
}
//std::cout << __METHOD__ << " STATUS IS " << c.status << std::endl;
Helper helper;
@@ -259,6 +263,7 @@ struct change_eventHandlerArgs
switch(dbrTypeClass)
{
case CAFENUM::DBR_PRIMITIVE:
@@ -336,6 +341,7 @@ struct change_eventHandlerArgs
for (long i=0; i<new_eventHandlerArgs.count; ++i)
{
(*(&((c.dataBuffer)->fltval)+i))
= (dbr_float_t) (*(&( ( (union db_access_val *) new_eventHandlerArgs.dbr)->fltval)+i));
}
@@ -500,6 +506,7 @@ struct change_eventHandlerArgs
for (long i=0; i<new_eventHandlerArgs.count; ++i)
{
(*(&((c.dataBuffer)->tdblval.value)+i))
= (*(&( ((union db_access_val *) new_eventHandlerArgs.dbr)->tdblval.value)+i));
}
@@ -518,12 +525,15 @@ struct change_eventHandlerArgs
case DBR_TIME_FLOAT: //16
for (long i=0; i<new_eventHandlerArgs.count; ++i)
{
{
(*(&((c.dataBuffer)->tfltval.value)+i))
= (dbr_float_t) (*(&( ( (union db_access_val *) new_eventHandlerArgs.dbr)->tfltval.value)+i));
//if (i< 10) {
// std::cout << i << " // " << __METHOD__ << " " << (*(&((c.dataBuffer)->tfltval.value)+i)) << std::endl;
//}
}
(*(&((c.dataBuffer)->tfltval.status))) = ((struct dbr_time_float *) new_eventHandlerArgs.dbr)->status;
@@ -641,9 +651,16 @@ struct change_eventHandlerArgs
((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->precision;
(*(&((c.ctrlBuffer)->cdblval.RISC_pad0))) =
(dbr_short_t) ((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->RISC_pad0; //dbr_short_t
//std::cout << __METHOD__ << __LINE__ << std::endl;
//std::cout << ((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units << std::endl;
memcpy((*(&((c.ctrlBuffer)->cdblval.units))),
&(((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units),
sizeof(char[MAX_UNITS_SIZE]));
sizeof( char[MAX_UNITS_SIZE])); // (((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->units) ));
(*(&((c.ctrlBuffer)->cdblval.upper_disp_limit))) =
((struct dbr_ctrl_double *) new_eventHandlerArgs.dbr)->upper_disp_limit;
(*(&((c.ctrlBuffer)->cdblval.lower_disp_limit))) =

177
include/config.h Normal file
View File

@@ -0,0 +1,177 @@
/* ./include/config.h. Generated from config.in by configure. */
/* ./include/config.in. Generated from configure.ac by autoheader. */
/* epics major release */
#define EPICS_MAJOR 7
/* epics minor release */
#define EPICS_MINOR 0
/* epics patch release */
#define EPICS_PATCH 9
/* Availability of boost */
#define HAVE_BOOST 1
/* boost thread library */
/* #undef HAVE_BOOST_THREAD */
/* Define to 1 if you have the <cadef.h> header file. */
#define HAVE_CADEF_H 1
/* Availability of curl */
/* #undef HAVE_CURL */
/* Define to 1 if you have the <curl/curl.h> header file. */
/* #undef HAVE_CURL_CURL_H */
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* epics version */
#define HAVE_EPICS 7.0.9
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Availability of json */
/* #undef HAVE_JSON */
/* Define to 1 if you have the <json/json.h> header file. */
/* #undef HAVE_JSON_JSON_H */
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
/* #undef HAVE_LIBBOOST_THREAD */
/* Define to 1 if you have the `curl' library (-lcurl). */
/* #undef HAVE_LIBCURL */
/* Define to 1 if you have the `json_linux-gcc-6.3.0_libmt' library
(-ljson_linux-gcc-6.3.0_libmt). */
/* #undef HAVE_LIBJSON_LINUX_GCC_6_3_0_LIBMT */
/* Define to 1 if you have the `lz4' library (-llz4). */
/* #undef HAVE_LIBLZ4 */
/* Define to 1 if you have the `python3.10' library (-lpython3.10). */
/* #undef HAVE_LIBPYTHON3_10 */
/* Define to 1 if you have the `python3.4m' library (-lpython3.4m). */
/* #undef HAVE_LIBPYTHON3_4M */
/* Define to 1 if you have the `python3.5m' library (-lpython3.5m). */
/* #undef HAVE_LIBPYTHON3_5M */
/* Define to 1 if you have the `python3.7m' library (-lpython3.7m). */
/* #undef HAVE_LIBPYTHON3_7M */
/* Define to 1 if you have the `python3.8' library (-lpython3.8). */
/* #undef HAVE_LIBPYTHON3_8 */
/* Define to 1 if you have the `Qt5Core' library (-lQt5Core). */
/* #undef HAVE_LIBQT5CORE */
/* Define to 1 if you have the `Qt5Xml' library (-lQt5Xml). */
/* #undef HAVE_LIBQT5XML */
/* Define to 1 if you have the `QtCore' library (-lQtCore). */
/* #undef HAVE_LIBQTCORE */
/* Availability of Qt version 5 confirmed */
/* #undef HAVE_LIBQTXML */
/* Define to 1 if you have the `zmq' library (-lzmq). */
/* #undef HAVE_LIBZMQ */
/* linux dependency (sleep) */
#define HAVE_LINUX 1
/* Availability of LZ4 */
/* #undef HAVE_LZ4 */
/* Define to 1 if you have the <lz4.h> header file. */
/* #undef HAVE_LZ4_H */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <multi_index_container.hpp> header file. */
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
/* pycafe extern C */
/* #undef HAVE_PYCAFE_EXT */
/* Availability of python */
/* #undef HAVE_PYTHON */
/* Define to 1 if you have the <Python.h> header file. */
/* #undef HAVE_PYTHON_H */
/* Availability of Qt version 5 confirmed */
/* #undef HAVE_QT */
/* Define to 1 if you have the <qxml.h> header file. */
/* #undef HAVE_QXML_H */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Availability of zeromq */
/* #undef HAVE_ZEROMQ */
/* Define to 1 if you have the <zmq.h> header file. */
/* #undef HAVE_ZMQ_H */
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "cafe"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
/* Define to the full name of this package. */
#define PACKAGE_NAME "CAFE"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "CAFE 1.22.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "cafe"
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.22.0"
/* Availability of Qt version 5 confirmed */
/* #undef QT_NO_VERSION_TAGGING */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.22.0"

View File

@@ -32,7 +32,8 @@
#include <boost/chrono.hpp>
#endif
#include <epicsVersion.h>
//include <epicsMutex.h>
class Connect
@@ -45,16 +46,12 @@ protected:
CAFEGlobalAlarmSeverity epicsAlarmSeverity;
CAFEGlobalAlarmCondition epicsAlarmStatus;
cafeConduit_set::iterator itcs;
cafeGroup_set::iterator itgs;
CAFEDataTypeCode cafeDataTypeCode;
ExceptionsHelper exceptionsHelper;
PolicyHelper policyHelper;
HandleHelper handleHelper;
Helper helper;
@@ -66,7 +63,7 @@ protected:
//connectCallbacks.cc
static void callbackHandlerAccessRights(struct access_rights_handler_args args);
static void callbackHandlerException (struct exception_handler_args args);
static void callbackHandlerException (struct exception_handler_args args);
//connect.cpp
//int createHandle(const char * pv, ca_client_context * ccc, ChannelRequestPolicy channelRequestPolicyPut, unsigned int &handle)
@@ -202,6 +199,14 @@ public:
return ca_flush_io();
}
std::string _ca_version(){
return (std::string) ca_version();
}
std::string _epics_version(){
return (std::string) EPICS_VERSION_STRING;
}
int _ca_flush_io()
{
return ca_flush_io();
@@ -689,14 +694,19 @@ public:
{
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end())
{
return (*it_handle).isConnected();
//cafeMutex.lock();
bool isConnected = (*it_handle).isConnected();
//cafeMutex.unlock();
return isConnected;
}
else
{
std::cout<< "Input handle " << handle << " does not exists! " << std::endl;
std::cout<< "Input handle " << handle << " does not exist! " << std::endl;
return false;
}
}

View File

@@ -9,20 +9,19 @@
#ifndef GLOBAL_H
#define GLOBAL_H
#include <cadef.h>
//include <epicsTime.h>
//include <epicsMutex.h>
//#include <cadef.h>
#include <hashConduit.h>
#include <hashConduitGroup.h>
#include <PVGroup.h>
#include <deviceCollection.h>
#include <enumStrings.h>
//#include <enumStrings.h>
extern bool CHECK_CONSISTENCY_CA_STATE;
extern bool MUTEX;
extern epicsMutex cafeMutex;
extern cafeConduit_set cs;
extern cafeGroup_set gs;
extern std::vector<PVGroup> PVGroupV;
@@ -32,14 +31,11 @@ extern std::map<std::vector<unsigned int>, std::string> groupPseudoMap;
extern std::vector<std::string> globalChannelList;
extern std::string contentsS;
extern std::string contentsBS;
extern unsigned long nCBs;
extern bool callbackLiveFlag;
extern bool SF_WITH_PULSE_ID;

View File

@@ -83,6 +83,17 @@ public:
ca_client_context * getContextFromPV (const char * _pv);
ca_client_context * getContextFromHandle (unsigned int _handle);
cafeConduit_set_by_handle::iterator getIterFromHandle(unsigned int handle);
cafeConduit_set_by_handle & getcsHandleIndex();
int modifyHandleIndexStatus(unsigned int handle, long status);
int modifyChannelRequestMetaDataClient(unsigned int handle,
ChannelRequestMetaDataClient channelRequestMetaDataClient);
int modifyChannelRequestStatusGet(unsigned int handle,
ChannelRequestStatus channelRequestStatusGet);
int modifyChannelTimeoutPolicyGet(unsigned int handle,
ChannelTimeoutPolicy channelTimeoutPolicyGet);
const char * getPVFromHandle (unsigned int _handle);
const char * getPVFromHandle (unsigned int _handle, ca_client_context * ccc);
@@ -93,6 +104,8 @@ public:
const char * getPVAlias (unsigned int _handle);
const char * getPVAlias (unsigned int _handle, ca_client_context * ccc);
unsigned int getHandleFromPV (const char * _pv);
unsigned int getHandleFromPV (const char * _pv, ca_client_context * ccc);
unsigned int getHandleFromPVAlias(const char * _pv);
@@ -327,6 +340,9 @@ public:
int getMonitorAction(unsigned int _handle, std::vector<std::string> &msV);
std::vector<std::string> getMonitorAction(bool onlyIfNewData); //all handles; false gives all
int updateMonitorPolicyDeltaMS(unsigned int _handle, unsigned int _monid,
unsigned short deltaMS);
int getMonitorPolicyVector(unsigned int _handle, std::vector<MonitorPolicy> &mpV);
int getMonitorPolicyInWaitingVector(unsigned int _handle, std::vector<MonitorPolicy> &mpV);
int getNmonitor(unsigned int _handle);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

61
include/instantT.h Normal file
View File

@@ -0,0 +1,61 @@
///
/// \file instantT.h
/// \author Jan Chrin, PSI
/// \date Release: July 2021
/// \version CAFE 1.14.2
///
#ifndef INSTANT_T_H
#define INSTANT_T_H
#include <instant.h>
template <class CTYPE> int Instant<CTYPE>::set(const unsigned int _handle,
const chtype _dbrType, const CTYPE * _val );
template <class CTYPE> int Instant<CTYPE>::get(const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts);
template <class CTYPE> int Instant<CTYPE>::getCache(const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts);
template <class CTYPE> int Instant<CTYPE>::getCache(const unsigned int *handleArray, const unsigned int nelem,
const chtype _dbrType, CTYPE * val, int *statusArray,
dbr_short_t *alarmStatus, dbr_short_t *alarmSeverity, epicsTimeStamp *ts);
template <class CTYPE> int Instant<CTYPE>::set(const unsigned int *handleArray, const unsigned int nelem,
onst chtype _dbrType, const CTYPE * val, int *statusArray);
template <class CTYPE> int Instant<CTYPE>::clientRequests(
const unsigned int _handle,
const chtype _dbrType, CTYPE * _val,
dbr_short_t &alarmStatus, dbr_short_t &alarmSeverity, epicsTimeStamp &ts, bool isCacheRequest);
template <class CTYPE> int Instant<CTYPE>::clientRequests(
const unsigned int _handle, const chtype _dbrType, const CTYPE * _val);
template <class CTYPE> int Instant<CTYPE>::setAndGet(const unsigned int handleSet, const chtype dbrType, CTYPE valSet, CTYPE &valGet);
template <class CTYPE> int Instant<CTYPE>::setMany(std::vector<unsigned int> handleSet, const chtype dbrType, std::vector<CTYPE> valSet, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::compareAndMatchMany(std::vector<unsigned int> handleSet, const chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
//template <class CTYPE> int Instant<CTYPE>::setTriggerAndMatchMany(std::vector<unsigned int> handleSet, chtype dbrType, std::vector<CTYPE> valSet,
template <class CTYPE> int Instant<CTYPE>::setAndMatchMany(std::vector<unsigned int> handleSet, chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::setAndMatch(const unsigned int handleSet, const chtype dbrType, CTYPE valSet, const unsigned int handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::match(const chtype dbrType, CTYPE valSet, unsigned int handleMatch,
CTYPE tolerance, double timeout, bool printFlag);
template <class CTYPE> int Instant<CTYPE>::matchMany(const chtype dbrType, std::vector<CTYPE> valSet, std::vector<unsigned int> handleMatch, CTYPE tolerance, double timeout, bool printFlag);
#endif

View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.16.1 from makefile.am.
# include/makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,61 @@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -32,8 +86,8 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
build_triplet = x86_64-pc-linux-gnu
host_triplet = x86_64-pc-linux-gnu
#am__append_1 = zbsread.h zbsHash.h zbsdtHelper.h zbsDataHolders.h \
# bitshuffle/bitshuffle_core.h bitshuffle/bitshuffle.h bitshuffle/iochain.h \
# bitshuffle/bitshuffle_internals.h
@@ -42,11 +96,9 @@ host_triplet = x86_64-unknown-linux-gnu
#if HAVE_PYTHON_
#include_HEADERS += PyCafe_api.h
#endif
am__append_2 = PyCafe.h
#am__append_3 = PyCafe_api.h
#am__append_2 = PyCafe.h
am__append_3 = PyCafe_api.h
subdir = include
DIST_COMMON = $(am__include_HEADERS_DIST) $(srcdir)/makefile.am \
$(srcdir)/makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -54,12 +106,31 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/makefile.am $(am__include_HEADERS_DIST) \
$(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./include/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__include_HEADERS_DIST = config.h cafe.h cafeCache.h cafeConvert.h \
cafeDataType.h cafeDataTypeHelper.h cafeEnum.h \
cafeEnumStrings.h cafeRoast.h cafeVectors.h cafeXML.h \
@@ -68,7 +139,7 @@ am__include_HEADERS_DIST = config.h cafe.h cafeCache.h cafeConvert.h \
conduitFriends.h connect.h defines.h deviceCollection.h \
exceptions.h exceptionsHelper.h global.h enumStrings.h \
granules.h handleHelper.h hashConduit.h helper.h instant.h \
instant.cpp loadCollectionXMLParser.h loadGroupXMLParser.h \
loadCollectionXMLParser.h loadGroupXMLParser.h \
methodCallbacks.h policies.h policyHelper.h PVCtrlHolder.h \
PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h \
@@ -97,28 +168,53 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(includedir)"
HEADERS = $(include_HEADERS)
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__DIST_COMMON = $(srcdir)/makefile.in
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing aclocal-1.16
AMTAR = $${TAR-tar}
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing automake-1.16
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/7.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/10.4.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/10.4.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/10.4.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -134,24 +230,24 @@ EGREP = /bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
INSTALL = /usr/bin/install -c
INSTALL = /bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LD = /bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64
LIBOBJS =
LIBS = -lQt5Xml -lpython3.7m
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
NM = /usr/bin/nm -B
NM = /bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
@@ -160,59 +256,60 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.13.0
PACKAGE_STRING = CAFE 1.22.0
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
PACKAGE_URL =
PACKAGE_VERSION = 1.22.0
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.13.0
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/include
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/include
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
VERSION = 1.22.0
abs_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp/include
abs_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp/include
abs_top_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build = x86_64-pc-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host = x86_64-pc-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.13.0/lib/SL6-x86_64
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0/lib/RHEL8-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.13.0
prefix = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -231,7 +328,7 @@ include_HEADERS = config.h cafe.h cafeCache.h cafeConvert.h \
conduitFriends.h connect.h defines.h deviceCollection.h \
exceptions.h exceptionsHelper.h global.h enumStrings.h \
granules.h handleHelper.h hashConduit.h helper.h instant.h \
instant.cpp loadCollectionXMLParser.h loadGroupXMLParser.h \
loadCollectionXMLParser.h loadGroupXMLParser.h \
methodCallbacks.h policies.h policyHelper.h PVCtrlHolder.h \
PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h \
@@ -251,14 +348,13 @@ $(srcdir)/makefile.in: $(srcdir)/makefile.am $(am__configure_deps)
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu include/makefile
.PRECIOUS: makefile
makefile: $(srcdir)/makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -277,8 +373,11 @@ clean-libtool:
-rm -rf .libs _libs
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -292,30 +391,17 @@ uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(includedir)" && rm -f $$files
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -327,15 +413,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -344,11 +426,29 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -395,10 +495,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
@@ -478,18 +583,21 @@ uninstall-am: uninstall-includeHEADERS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool ctags distclean distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am \
.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
clean-libtool cscopelist-am ctags ctags-am distclean \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-includeHEADERS install-info install-info-am \
install-man install-pdf install-pdf-am install-ps \
install-ps-am install-strip installcheck installcheck-am \
installdirs maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS
ps ps-am tags tags-am uninstall uninstall-am \
uninstall-includeHEADERS
.PRECIOUS: makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -7,7 +7,7 @@ include_HEADERS = config.h cafe.h cafeCache.h cafeConvert.h cafeDataType.h cafeD
cafeEnumStrings.h cafeRoast.h cafeVectors.h cafeXML.h caopCodes.h channelRegalia.h \
conduit.h conduitConnectionHandlerArgs.h conduitEventHandlerArgs.h conduitFriends.h \
connect.h defines.h deviceCollection.h exceptions.h exceptionsHelper.h global.h \
enumStrings.h granules.h handleHelper.h hashConduit.h helper.h instant.h instant.cpp \
enumStrings.h granules.h handleHelper.h hashConduit.h helper.h instant.h \
loadCollectionXMLParser.h loadGroupXMLParser.h methodCallbacks.h policies.h policyHelper.h \
PVCtrlHolder.h PVDataHolder.h PVGroup.h PVHolder.h statusCodes.h transpose.h \
conduitGroup.h hashConduitGroup.h restorePVGroupXMLParser.h tmDateMap.h

View File

@@ -0,0 +1,104 @@
/* ./include/config.h. Generated from config.in by configure. */
/* ./include/config.in. Generated from configure.ac by autoheader. */
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* Availability of boost */
#define HAVE_BOOST 1
/* boost thread library */
/* #undef HAVE_BOOST_THREAD */
/* Define to 1 if you have the <cadef.h> header file. */
#define HAVE_CADEF_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
/* #undef HAVE_LIBBOOST_THREAD */
/* Define to 1 if you have the `QtCore' library (-lQtCore). */
/* #undef HAVE_LIBQTCORE */
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
/* #undef HAVE_LIBQTXML */
/* linux dependency (sleep) */
#define HAVE_LINUX 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <multi_index_container.hpp> header file. */
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
/* Availability of Qt version 4 confirmed */
/* #undef HAVE_QT4 */
/* Define to 1 if you have the <qxml.h> header file. */
/* #undef HAVE_QXML_H */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "cafe"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
/* Define to the full name of this package. */
#define PACKAGE_NAME "CAFE"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "CAFE 1.12.5"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "cafe"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.12.5"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.12.5"

View File

@@ -0,0 +1,157 @@
/* ./include/config.h. Generated from config.in by configure. */
/* ./include/config.in. Generated from configure.ac by autoheader. */
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* Availability of boost */
#define HAVE_BOOST 1
/* boost thread library */
/* #undef HAVE_BOOST_THREAD */
/* Define to 1 if you have the <cadef.h> header file. */
#define HAVE_CADEF_H 1
/* Availability of curl */
/* #undef HAVE_CURL */
/* Define to 1 if you have the <curl/curl.h> header file. */
/* #undef HAVE_CURL_CURL_H */
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Availability of json */
/* #undef HAVE_JSON */
/* Define to 1 if you have the <json/json.h> header file. */
/* #undef HAVE_JSON_JSON_H */
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
/* #undef HAVE_LIBBOOST_THREAD */
/* Define to 1 if you have the `curl' library (-lcurl). */
/* #undef HAVE_LIBCURL */
/* Define to 1 if you have the `json_linux-gcc-6.3.0_libmt' library
(-ljson_linux-gcc-6.3.0_libmt). */
/* #undef HAVE_LIBJSON_LINUX_GCC_6_3_0_LIBMT */
/* Define to 1 if you have the `lz4' library (-llz4). */
/* #undef HAVE_LIBLZ4 */
/* Define to 1 if you have the `python2.7' library (-lpython2.7). */
/* #undef HAVE_LIBPYTHON2_7 */
/* Define to 1 if you have the `python3.5m' library (-lpython3.5m). */
/* #undef HAVE_LIBPYTHON3_5M */
/* Define to 1 if you have the `QtCore' library (-lQtCore). */
#define HAVE_LIBQTCORE 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
#define HAVE_LIBQTXML 1
/* Define to 1 if you have the `zmq' library (-lzmq). */
/* #undef HAVE_LIBZMQ */
/* linux dependency (sleep) */
#define HAVE_LINUX 1
/* Availability of LZ4 */
/* #undef HAVE_LZ4 */
/* Define to 1 if you have the <lz4.h> header file. */
/* #undef HAVE_LZ4_H */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <multi_index_container.hpp> header file. */
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
/* pycafe extern C */
/* #undef HAVE_PYCAFE_EXT */
/* Availability of python2 */
/* #undef HAVE_PYTHON */
/* Define to 1 if you have the <Python.h> header file. */
/* #undef HAVE_PYTHON_H */
/* Availability of Qt version 4 confirmed */
#define HAVE_QT4 1
/* Define to 1 if you have the <qxml.h> header file. */
#define HAVE_QXML_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Availability of zeromq */
/* #undef HAVE_ZEROMQ */
/* Define to 1 if you have the <zmq.h> header file. */
/* #undef HAVE_ZMQ_H */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "cafe"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
/* Define to the full name of this package. */
#define PACKAGE_NAME "CAFE"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "CAFE 1.8.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "cafe"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.8.0"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.8.0"

View File

@@ -0,0 +1,157 @@
/* ./include/config.h. Generated from config.in by configure. */
/* ./include/config.in. Generated from configure.ac by autoheader. */
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* Availability of boost */
#define HAVE_BOOST 1
/* boost thread library */
/* #undef HAVE_BOOST_THREAD */
/* Define to 1 if you have the <cadef.h> header file. */
#define HAVE_CADEF_H 1
/* Availability of curl */
/* #undef HAVE_CURL */
/* Define to 1 if you have the <curl/curl.h> header file. */
/* #undef HAVE_CURL_CURL_H */
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Availability of json */
/* #undef HAVE_JSON */
/* Define to 1 if you have the <json/json.h> header file. */
/* #undef HAVE_JSON_JSON_H */
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
/* #undef HAVE_LIBBOOST_THREAD */
/* Define to 1 if you have the `curl' library (-lcurl). */
/* #undef HAVE_LIBCURL */
/* Define to 1 if you have the `json_linux-gcc-6.3.0_libmt' library
(-ljson_linux-gcc-6.3.0_libmt). */
/* #undef HAVE_LIBJSON_LINUX_GCC_6_3_0_LIBMT */
/* Define to 1 if you have the `lz4' library (-llz4). */
/* #undef HAVE_LIBLZ4 */
/* Define to 1 if you have the `python2.7' library (-lpython2.7). */
/* #undef HAVE_LIBPYTHON2_7 */
/* Define to 1 if you have the `python3.5m' library (-lpython3.5m).
#define HAVE_LIBPYTHON3_5M 1 */
/* Define to 1 if you have the `QtCore' library (-lQtCore). */
#define HAVE_LIBQTCORE 1
/* Define to 1 if you have the `QtXml' library (-lQtXml). */
#define HAVE_LIBQTXML 1
/* Define to 1 if you have the `zmq' library (-lzmq). */
/* #undef HAVE_LIBZMQ */
/* linux dependency (sleep) */
#define HAVE_LINUX 1
/* Availability of LZ4 */
/* #undef HAVE_LZ4 */
/* Define to 1 if you have the <lz4.h> header file. */
/* #undef HAVE_LZ4_H */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <multi_index_container.hpp> header file. */
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
/* pycafe extern C */
#define HAVE_PYCAFE_EXT 1
/* Availability of python2 */
#define HAVE_PYTHON 1
/* Define to 1 if you have the <Python.h> header file. */
#define HAVE_PYTHON_H 1
/* Availability of Qt version 4 confirmed */
#define HAVE_QT4 1
/* Define to 1 if you have the <qxml.h> header file. */
#define HAVE_QXML_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Availability of zeromq */
/* #undef HAVE_ZEROMQ */
/* Define to 1 if you have the <zmq.h> header file. */
/* #undef HAVE_ZMQ_H */
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "cafe"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
/* Define to the full name of this package. */
#define PACKAGE_NAME "CAFE"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "CAFE 1.12.5"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "cafe"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.12.5"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.12.5"

View File

@@ -0,0 +1,162 @@
/* include/config.h. Generated from config.in by configure. */
/* ./include/config.in. Generated from configure.ac by autoheader. */
/* epics major release */
#define EPICS_MAJOR 3
/* epics minor release */
#define EPICS_MINOR 14
/* epics patch release */
#define EPICS_PATCH 12
/* Availability of boost */
#define HAVE_BOOST 1
/* boost thread library */
/* #undef HAVE_BOOST_THREAD */
/* Define to 1 if you have the <cadef.h> header file. */
#define HAVE_CADEF_H 1
/* Availability of curl */
#define HAVE_CURL 1
/* Define to 1 if you have the <curl/curl.h> header file. */
#define HAVE_CURL_CURL_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* epics version */
#define HAVE_EPICS 3.14.12
/* Define to 1 if you have the <epicsTypes.h> header file. */
#define HAVE_EPICSTYPES_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Availability of json */
#define HAVE_JSON 1
/* Define to 1 if you have the <json/json.h> header file. */
#define HAVE_JSON_JSON_H 1
/* Define to 1 if you have the `boost_thread' library (-lboost_thread). */
/* #undef HAVE_LIBBOOST_THREAD */
/* Define to 1 if you have the `curl' library (-lcurl). */
#define HAVE_LIBCURL 1
/* Define to 1 if you have the `json_linux-gcc-6.3.0_libmt' library
(-ljson_linux-gcc-6.3.0_libmt). */
#define HAVE_LIBJSON_LINUX_GCC_6_3_0_LIBMT 1
/* Define to 1 if you have the `lz4' library (-llz4). */
#define HAVE_LIBLZ4 1
/* Define to 1 if you have the `python2.7' library (-lpython2.7). */
/* #undef HAVE_LIBPYTHON2_7 */
/* Define to 1 if you have the `python3.7m' library (-lpython3.7m). */
#define HAVE_LIBPYTHON3_7M 1
/* Define to 1 if you have the `Qt5Core' library (-lQt5Core). */
/* #undef HAVE_LIBQT5CORE */
/* Define to 1 if you have the `Qt5Xml' library (-lQt5Xml). */
#define HAVE_LIBQT5XML 1
/* Availability of Qt version 5 confirmed */
#define HAVE_LIBQTXML 1
/* Define to 1 if you have the `zmq' library (-lzmq). */
#define HAVE_LIBZMQ 1
/* linux dependency (sleep) */
#define HAVE_LINUX 1
/* Availability of LZ4 */
#define HAVE_LZ4 1
/* Define to 1 if you have the <lz4.h> header file. */
#define HAVE_LZ4_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <multi_index_container.hpp> header file. */
#define HAVE_MULTI_INDEX_CONTAINER_HPP 1
/* pycafe extern C */
#define HAVE_PYCAFE_EXT 1
/* Availability of python2 */
#define HAVE_PYTHON 1
/* Define to 1 if you have the <Python.h> header file. */
#define HAVE_PYTHON_H 1
/* Availability of Qt version 5 confirmed */
#define HAVE_QT5 1
/* Define to 1 if you have the <qxml.h> header file. */
#define HAVE_QXML_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Availability of zeromq */
#define HAVE_ZEROMQ 1
/* Define to 1 if you have the <zmq.h> header file. */
#define HAVE_ZMQ_H 1
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Name of package */
#define PACKAGE "cafe"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "Bug reports to: jan.chrin@psi.ch"
/* Define to the full name of this package. */
#define PACKAGE_NAME "CAFE"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "CAFE 1.12.5"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "cafe"
/* Define to the version of this package. */
#define PACKAGE_VERSION "1.12.5"
/* Availability of Qt version 5 confirmed */
#define QT_NO_VERSION_TAGGING 1
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "1.12.5"

View File

@@ -120,7 +120,7 @@ public:
}
unsigned short setPriority(unsigned short p)
{
priority=std::min(p,(unsigned short) CA_SERVER_DISPATCH_PRIORITY_MAX);
priority=(std::min)(p,(unsigned short) CA_SERVER_DISPATCH_PRIORITY_MAX);
return priority;
}
@@ -462,17 +462,17 @@ public:
};
double setTimeout(double t)
{
timeout=std::max(t,TIMEOUT_PEND_IO_MIN);
return timeout=std::min(timeout,TIMEOUT_PEND_IO_MAX);
timeout=(std::max)(t,TIMEOUT_PEND_IO_MIN);
return timeout=(std::min)(timeout,TIMEOUT_PEND_IO_MAX);
};
double setDeltaTimeout(double dt)
{
deltaTimeout=std::max(dt,PEND_IO_INCREMENT_TIME_MIN);
return deltaTimeout=std::min(deltaTimeout,PEND_IO_INCREMENT_TIME_MAX);
deltaTimeout=(std::max)(dt,PEND_IO_INCREMENT_TIME_MIN);
return deltaTimeout=(std::min)(deltaTimeout,PEND_IO_INCREMENT_TIME_MAX);
};
unsigned short setNtries(unsigned short nt)
{
return ntries=std::min(nt, PEND_IO_MAX_TRIES);
return ntries=(std::min)(nt, PEND_IO_MAX_TRIES);
};
double setDefaultTimeout(double t)
@@ -506,7 +506,7 @@ private:
pCallback handler; // for blockingKind=WITH_CALLBACK_DEFAULT or WITH_CALLBACK_USER_SUPPLIED
int callbackStatus; // used by CAFE::waitForGetEvent() to record status of callback
void * cyCallback; // callback provide by python client
public:
ChannelWhenToFlushSendBufferPolicyKind getWhenToFlushSendBuffer() const
@@ -533,6 +533,7 @@ public:
return callbackStatus;
};
void setHandler(pCallback h)
{
if (h!=NULL)
@@ -543,16 +544,26 @@ public:
};
#if HAVE_PYTHON_H
void setPyHandlerGet()
void setPyHandlerGet(void * cythonCallback)
{
cyCallback=cythonCallback;
handler= CALLBACK_CAFE::PyHandlerGet;
methodKind=WITH_CALLBACK_USER_SUPPLIED;
}; //CAFE_CALLBACK::PyHandlerGet
void setPyHandlerPut()
};
//CAFE_CALLBACK::PyHandlerGet
void setPyHandlerPut(void * cythonCallback)
{
cyCallback=cythonCallback;
handler= CALLBACK_CAFE::PyHandlerPut;
methodKind=WITH_CALLBACK_USER_SUPPLIED;
}; //CAFE_CALLBACK::PyHandlerPut
};
//CAFE_CALLBACK::PyHandlerPut
void * getCyCallback() const
{
return cyCallback;
};
#endif
void setMethodKind(ChannelRequestPolicyKind m)
@@ -642,7 +653,7 @@ public:
//Constructors
ChannelRequestPolicy():
whenKind(FLUSH_AFTER_EACH_MESSAGE),waitKind(WAIT),methodKind(WITH_CALLBACK_DEFAULT), //WITHOUT_CALLBACK),
callbackStatus(ICAFE_NORMAL)
callbackStatus(ICAFE_NORMAL), cyCallback(NULL)
{
handler=NULL;
@@ -659,6 +670,7 @@ public:
std::cout << b << " is anINVALID ChannelRequestPolicyKind" << std::endl;
}
handler=NULL;
cyCallback=NULL;
callbackStatus=ICAFE_NORMAL;
whenKind=FLUSH_AFTER_EACH_MESSAGE;
waitKind=WAIT;
@@ -667,6 +679,7 @@ public:
ChannelRequestPolicy(pCallback h)
{
handler=h;
cyCallback=NULL;
methodKind=WITH_CALLBACK_DEFAULT;
whenKind=FLUSH_AFTER_EACH_MESSAGE;
waitKind=WAIT;
@@ -699,6 +712,7 @@ private:
unsigned int mask; //4
pCallback handler; //5
void * cyCallback;
unsigned short nCyCallbackParameters; // 1=handle, 2=handle,pv 3=handle,pv,pvdata
void * userArgs; //6 handle
evid eventID; //output
int status; //output
@@ -706,8 +720,10 @@ private:
unsigned short notifyDeltaMilliSeconds; // Nov. 2020; push to Python Widgets
ptime lastUpdate;
static void PyCallbackHandlerMonitorData(struct event_handler_args args); //pushes pvd,handle,pvname
static void PyCallbackHandlerMonitor(struct event_handler_args args); //pushes handle
static void PyCallbackHandlerMonitorData(struct event_handler_args args); //pushes handle, pvname, pvdata
static void PyCallbackHandlerMonitor(struct event_handler_args args); //pushes handle, pvname
//static void PyCallbackHandlerHandle(struct event_handler_args args); //pushes handle
void setEventID(evid e)
{
@@ -720,8 +736,8 @@ public:
cafeDbrType((CAFENUM::DBR_TYPE) CAFENUM::DBR_TIME),
nelem(0), mask(DBE_VALUE | DBE_LOG | DBE_ALARM),
handler(callbackHandlerMonitor), cyCallback(NULL),
userArgs(NULL), eventID(NULL), status(ICAFE_NORMAL),
notifyDeltaMilliSeconds(0)
nCyCallbackParameters(1), userArgs(NULL), eventID(NULL),
status(ICAFE_NORMAL), notifyDeltaMilliSeconds(0)
{
++idNext;
id = idNext;
@@ -785,6 +801,11 @@ public:
return cyCallback;
};
unsigned short getNoCyCallbackParameters() const
{
return nCyCallbackParameters;
};
pCallback getHandler() const
{
return handler;
@@ -849,6 +870,18 @@ public:
cyCallback=cythonCallback;
}
void setNoCyCallbackParameters(unsigned int nCyCbParam){
nCyCallbackParameters = nCyCbParam;
}
//void setPyCyHandlerHandle(void * cythonCallback)
//{
// handler= PyCallbackHandlerHandle;
// cyCallback=cythonCallback;
//};
void setPyCyHandler(void * cythonCallback)
{
handler= PyCallbackHandlerMonitor;

View File

@@ -113,7 +113,7 @@ public:
double g;
int st;
st=getTimeout(_handle, p, g);
pg=std::min(p,g);
pg=(std::min)(p,g);
return st;
}
int getTimeoutPut(unsigned int _handle, double &p)
@@ -192,7 +192,7 @@ public:
double g;
int st;
st=getSGTimeout(_handle, p, g);
pg=std::min(p,g);
pg=(std::min)(p,g);
return st;
}
int getSGTimeoutPut(unsigned int _handle, double &p)

View File

@@ -228,7 +228,7 @@ public:
};
int asInt (std::string message)
int asInt(std::string message)
{
for (pos=mapAlarmCondition.begin(); pos != mapAlarmCondition.end(); ++pos)
{

View File

@@ -28,7 +28,7 @@
template <class CTYPE> class Transpose {
public:
Transpose () {};
Transpose () {useHandleHelper = true;};
~Transpose () {};
HandleHelper handleHelper;
@@ -109,6 +109,8 @@ private:
chtype _dataTypeClient;
char stig [MAX_ENUM_STATES][MAX_ENUM_STRING_SIZE];
bool useHandleHelper; //instantiating global extern cs for use in pybind11
};
@@ -269,8 +271,15 @@ template <class CTYPE> int Transpose<CTYPE>::put(const unsigned int _handle,
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end()) {
@@ -711,7 +720,7 @@ template <class CTYPE> int Transpose<CTYPE>::put(const unsigned int _handle,
//long Transpose<CAFE_DATATYPE_UNION>::put( const unsigned int _handle,
// CAFE_DATATYPE_UNION_SEQ val, CAFE_DATATYPE cdt)
template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
CAFE_DATATYPE_UNION_SEQ val, CAFE_DATATYPE cdt)
{
#define __METHOD__ "Transpose<CTYPE>::put()"
@@ -720,7 +729,13 @@ template <class CTYPE> int Transpose<CTYPE>::put( const unsigned int _handle,
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {
@@ -987,7 +1002,14 @@ template <class CTYPE> int Transpose<CTYPE>::putString
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {
@@ -1264,7 +1286,7 @@ template <class CTYPE> int Transpose<CTYPE>::putString
/**
* \brief Retrieves data transmitted by CA with dbrTypeRequest_DataBuffer
* and then converts to CTYPE i.e. _dataTypeClient
* and then converts to CTYPE i.e. _dataTypeClient
* \param _handle input: handle to Conduit object
* \param val output: CTYPE datatype
* \param alarmStatus output: dbr_short_t
@@ -1281,7 +1303,19 @@ template <class CTYPE> int Transpose<CTYPE>::get(
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
//pybind11 fix
//cafeConduit_set_by_handle & handle_index = helper.getcsHandleIndex();
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
//std::cout << __FILE__ << "//" << __METHOD__ << std::endl;
@@ -1840,7 +1874,14 @@ template <class CTYPE> int Transpose<CTYPE>::getCtrl (
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (useHandleHelper) {
it_handle = handleHelper.getIterFromHandle(_handle);
}
else {
it_handle = handle_index.find(_handle);
}
if (it_handle != handle_index.end()) {

34
libtool
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Generated automatically by config.status (cafe) 1.13.0
# Libtool was configured on host gfa-lc6-64:
# Generated automatically by config.status (cafe) 1.22.0
# Libtool was configured on host sls-lc8.psi.ch:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
@@ -67,12 +67,12 @@ PATH_SEPARATOR=":"
# The host system.
host_alias=
host=x86_64-unknown-linux-gnu
host=x86_64-pc-linux-gnu
host_os=linux-gnu
# The build system.
build_alias=
build=x86_64-unknown-linux-gnu
build=x86_64-pc-linux-gnu
build_os=linux-gnu
# A sed program that does not truncate output.
@@ -91,13 +91,13 @@ EGREP="/bin/grep -E"
FGREP="/bin/grep -F"
# A BSD- or MS-compatible name lister.
NM="/usr/bin/nm -B"
NM="/bin/nm -B"
# Whether we need soft or hard links.
LN_S="ln -s"
# What is the maximum length of a command?
max_cmd_len=1966080
max_cmd_len=1572864
# Object file suffix (normally "o").
objext=o
@@ -162,7 +162,7 @@ old_postuninstall_cmds=""
lock_old_archive_extraction=no
# A C compiler.
LTCC="/opt/psi/Programming/gcc/7.3.0/bin/gcc"
LTCC="/opt/psi/Programming/gcc/10.4.0/bin/gcc"
# LTCC compiler flags.
LTCFLAGS="-g -O2"
@@ -282,10 +282,10 @@ finish_eval=""
hardcode_into_libs=yes
# Compile-time system search path for libraries.
sys_lib_search_path_spec="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib/gcc /opt/psi/Programming/gcc/7.3.0/lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib64 /lib64 /usr/lib64 /opt/psi/Programming/gcc/7.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/lib /lib /usr/lib "
sys_lib_search_path_spec="/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0 /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/lib/gcc /opt/psi/Programming/gcc/10.4.0/lib64 /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/lib64 /lib64 /usr/lib64 /opt/psi/Programming/gcc/10.4.0/lib /opt/psi/Tools/HDFView/3.1.2/lib /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/lib /lib /usr/lib "
# Detected run-time system search path for libraries.
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/atlas /usr/lib64/ctapi /usr/lib64/llvm /usr/lib64/mysql /usr/lib64/papi-4.1.3 /usr/lib64/papi-5.1.1/usr/lib /usr/lib/qt-3.3/lib /usr/lib64/qt-3.3/lib /usr/lib64/tcl8.5/tclx8.4 /usr/lib64/tcl8.5 /usr/lib64/xulrunner "
sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib64/atlas /usr/lib64/llvm17/lib/ /usr/lib/oracle/19.18/client64/lib /usr/lib64/tclx8.6 /usr/lib64/wine/ "
# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
configure_time_lt_sys_library_path=""
@@ -305,7 +305,7 @@ striplib="strip --strip-unneeded"
# The linker used to build libraries.
LD="/usr/bin/ld -m elf_x86_64"
LD="/bin/ld -m elf_x86_64"
# How to create reloadable object files.
reload_flag=" -r"
@@ -315,7 +315,7 @@ reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
# A language specific compiler.
CC="/opt/psi/Programming/gcc/7.3.0/bin/gcc"
CC="/opt/psi/Programming/gcc/10.4.0/bin/gcc"
# Is the compiler the GNU compiler?
with_gcc=yes
@@ -11684,7 +11684,7 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
# ### BEGIN LIBTOOL TAG CONFIG: CXX
# The linker used to build libraries.
LD="/usr/bin/ld -m elf_x86_64"
LD="/bin/ld -m elf_x86_64"
# How to create reloadable object files.
reload_flag=" -r"
@@ -11694,7 +11694,7 @@ reload_cmds="\$LD\$reload_flag -o \$output\$reload_objs"
old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
# A language specific compiler.
CC="/opt/psi/Programming/gcc/7.3.0/bin/g++"
CC="/opt/psi/Programming/gcc/10.4.0/bin/g++"
# Is the compiler the GNU compiler?
with_gcc=yes
@@ -11815,17 +11815,17 @@ file_list_spec=""
hardcode_action=immediate
# The directories searched by this compiler when creating a shared library.
compiler_lib_search_dirs="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc /opt/psi/Programming/gcc/7.3.0/lib64/../lib64 /opt/psi/Programming/gcc/7.3.0/lib/../lib64 /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /opt/psi/Programming/gcc/7.3.0/lib64 /opt/psi/Programming/gcc/7.3.0/lib /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../.."
compiler_lib_search_dirs="/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0 /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc /opt/psi/Programming/gcc/10.4.0/lib64/../lib64 /opt/psi/Programming/gcc/10.4.0/lib/../lib64 /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../lib64 /lib/../lib64 /usr/lib/../lib64 /opt/psi/Programming/gcc/10.4.0/lib64 /opt/psi/Programming/gcc/10.4.0/lib /opt/psi/Tools/HDFView/3.1.2/lib /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../.."
# Dependencies to place before and after the objects being linked to
# create a shared library.
predep_objects="/usr/lib/../lib64/crti.o /afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/crtbeginS.o"
postdep_objects="/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/crtendS.o /usr/lib/../lib64/crtn.o"
predep_objects="/lib/../lib64/crti.o /afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/crtbeginS.o"
postdep_objects="/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/crtendS.o /lib/../lib64/crtn.o"
predeps=""
postdeps="-lstdc++ -lm -lgcc_s -lc -lgcc_s"
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path="-L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc -L/opt/psi/Programming/gcc/7.3.0/lib64/../lib64 -L/opt/psi/Programming/gcc/7.3.0/lib/../lib64 -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/psi/Programming/gcc/7.3.0/lib64 -L/opt/psi/Programming/gcc/7.3.0/lib -L/afs/psi.ch/sys/psi.x86_64_slp6/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../.."
compiler_lib_search_path="-L/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0 -L/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc -L/opt/psi/Programming/gcc/10.4.0/lib64/../lib64 -L/opt/psi/Programming/gcc/10.4.0/lib/../lib64 -L/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/opt/psi/Programming/gcc/10.4.0/lib64 -L/opt/psi/Programming/gcc/10.4.0/lib -L/opt/psi/Tools/HDFView/3.1.2/lib -L/afs/psi.ch/sys/psi.ra/Programming/gcc/10.4.0/bin/../lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../.."
# ### END LIBTOOL TAG CONFIG: CXX

8369
m4/libtool.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

437
m4/ltoptions.m4 vendored Normal file
View File

@@ -0,0 +1,437 @@
# Helper functions for option handling. -*- Autoconf -*-
#
# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 8 ltoptions.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
# ------------------------------------------
m4_define([_LT_MANGLE_OPTION],
[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
# ---------------------------------------
# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
# matching handler defined, dispatch to it. Other OPTION-NAMEs are
# saved as a flag.
m4_define([_LT_SET_OPTION],
[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
_LT_MANGLE_DEFUN([$1], [$2]),
[m4_warning([Unknown $1 option '$2'])])[]dnl
])
# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
# ------------------------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
m4_define([_LT_IF_OPTION],
[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
# -------------------------------------------------------
# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
# are set.
m4_define([_LT_UNLESS_OPTIONS],
[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
[m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
[m4_define([$0_found])])])[]dnl
m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
])[]dnl
])
# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
# ----------------------------------------
# OPTION-LIST is a space-separated list of Libtool options associated
# with MACRO-NAME. If any OPTION has a matching handler declared with
# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
# the unknown option and exit.
m4_defun([_LT_SET_OPTIONS],
[# Set options
m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
[_LT_SET_OPTION([$1], _LT_Option)])
m4_if([$1],[LT_INIT],[
dnl
dnl Simply set some default values (i.e off) if boolean options were not
dnl specified:
_LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
])
_LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
])
dnl
dnl If no reference was made to various pairs of opposing options, then
dnl we run the default mode handler for the pair. For example, if neither
dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
dnl archives by default:
_LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
_LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
_LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
_LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
[_LT_ENABLE_FAST_INSTALL])
_LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
[_LT_WITH_AIX_SONAME([aix])])
])
])# _LT_SET_OPTIONS
## --------------------------------- ##
## Macros to handle LT_INIT options. ##
## --------------------------------- ##
# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
# -----------------------------------------
m4_define([_LT_MANGLE_DEFUN],
[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
# -----------------------------------------------
m4_define([LT_OPTION_DEFINE],
[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
])# LT_OPTION_DEFINE
# dlopen
# ------
LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
])
AU_DEFUN([AC_LIBTOOL_DLOPEN],
[_LT_SET_OPTION([LT_INIT], [dlopen])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'dlopen' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
# win32-dll
# ---------
# Declare package support for building win32 dll's.
LT_OPTION_DEFINE([LT_INIT], [win32-dll],
[enable_win32_dll=yes
case $host in
*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)
;;
esac
test -z "$AS" && AS=as
_LT_DECL([], [AS], [1], [Assembler program])dnl
test -z "$DLLTOOL" && DLLTOOL=dlltool
_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
test -z "$OBJDUMP" && OBJDUMP=objdump
_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
])# win32-dll
AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
[AC_REQUIRE([AC_CANONICAL_HOST])dnl
_LT_SET_OPTION([LT_INIT], [win32-dll])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'win32-dll' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
# _LT_ENABLE_SHARED([DEFAULT])
# ----------------------------
# implement the --enable-shared flag, and supports the 'shared' and
# 'disable-shared' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_SHARED],
[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([shared],
[AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
_LT_DECL([build_libtool_libs], [enable_shared], [0],
[Whether or not to build shared libraries])
])# _LT_ENABLE_SHARED
LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
# Old names:
AC_DEFUN([AC_ENABLE_SHARED],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
])
AC_DEFUN([AC_DISABLE_SHARED],
[_LT_SET_OPTION([LT_INIT], [disable-shared])
])
AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AM_ENABLE_SHARED], [])
dnl AC_DEFUN([AM_DISABLE_SHARED], [])
# _LT_ENABLE_STATIC([DEFAULT])
# ----------------------------
# implement the --enable-static flag, and support the 'static' and
# 'disable-static' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_STATIC],
[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([static],
[AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_static=]_LT_ENABLE_STATIC_DEFAULT)
_LT_DECL([build_old_libs], [enable_static], [0],
[Whether or not to build static libraries])
])# _LT_ENABLE_STATIC
LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
# Old names:
AC_DEFUN([AC_ENABLE_STATIC],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
])
AC_DEFUN([AC_DISABLE_STATIC],
[_LT_SET_OPTION([LT_INIT], [disable-static])
])
AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AM_ENABLE_STATIC], [])
dnl AC_DEFUN([AM_DISABLE_STATIC], [])
# _LT_ENABLE_FAST_INSTALL([DEFAULT])
# ----------------------------------
# implement the --enable-fast-install flag, and support the 'fast-install'
# and 'disable-fast-install' LT_INIT options.
# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
m4_define([_LT_ENABLE_FAST_INSTALL],
[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
AC_ARG_ENABLE([fast-install],
[AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
[optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
[p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
no) enable_fast_install=no ;;
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
_LT_DECL([fast_install], [enable_fast_install], [0],
[Whether or not to optimize for fast installation])dnl
])# _LT_ENABLE_FAST_INSTALL
LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
# Old names:
AU_DEFUN([AC_ENABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
the 'fast-install' option into LT_INIT's first parameter.])
])
AU_DEFUN([AC_DISABLE_FAST_INSTALL],
[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you put
the 'disable-fast-install' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
# _LT_WITH_AIX_SONAME([DEFAULT])
# ----------------------------------
# implement the --with-aix-soname flag, and support the `aix-soname=aix'
# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
m4_define([_LT_WITH_AIX_SONAME],
[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[[5-9]]*,yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide])
AC_ARG_WITH([aix-soname],
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
[case $withval in
aix|svr4|both)
;;
*)
AC_MSG_ERROR([Unknown argument to --with-aix-soname])
;;
esac
lt_cv_with_aix_soname=$with_aix_soname],
[AC_CACHE_VAL([lt_cv_with_aix_soname],
[lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
with_aix_soname=$lt_cv_with_aix_soname])
AC_MSG_RESULT([$with_aix_soname])
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
# and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
# Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
# the AIX toolchain works better with OBJECT_MODE set (default 32).
if test 64 = "${OBJECT_MODE-32}"; then
shared_archive_member_spec=shr_64
else
shared_archive_member_spec=shr
fi
fi
;;
*)
with_aix_soname=aix
;;
esac
_LT_DECL([], [shared_archive_member_spec], [0],
[Shared archive member basename, for filename based shared library versioning on AIX])dnl
])# _LT_WITH_AIX_SONAME
LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
# _LT_WITH_PIC([MODE])
# --------------------
# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
# LT_INIT options.
# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
m4_define([_LT_WITH_PIC],
[AC_ARG_WITH([pic],
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
[lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac],
[pic_mode=m4_default([$1], [default])])
_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
])# _LT_WITH_PIC
LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
# Old name:
AU_DEFUN([AC_LIBTOOL_PICMODE],
[_LT_SET_OPTION([LT_INIT], [pic-only])
AC_DIAGNOSE([obsolete],
[$0: Remove this warning and the call to _LT_SET_OPTION when you
put the 'pic-only' option into LT_INIT's first parameter.])
])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
## ----------------- ##
## LTDL_INIT Options ##
## ----------------- ##
m4_define([_LTDL_MODE], [])
LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
[m4_define([_LTDL_MODE], [nonrecursive])])
LT_OPTION_DEFINE([LTDL_INIT], [recursive],
[m4_define([_LTDL_MODE], [recursive])])
LT_OPTION_DEFINE([LTDL_INIT], [subproject],
[m4_define([_LTDL_MODE], [subproject])])
m4_define([_LTDL_TYPE], [])
LT_OPTION_DEFINE([LTDL_INIT], [installable],
[m4_define([_LTDL_TYPE], [installable])])
LT_OPTION_DEFINE([LTDL_INIT], [convenience],
[m4_define([_LTDL_TYPE], [convenience])])

124
m4/ltsugar.m4 vendored Normal file
View File

@@ -0,0 +1,124 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software
# Foundation, Inc.
# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 6 ltsugar.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
# lt_join(SEP, ARG1, [ARG2...])
# -----------------------------
# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
# associated separator.
# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
# versions in m4sugar had bugs.
m4_define([lt_join],
[m4_if([$#], [1], [],
[$#], [2], [[$2]],
[m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
m4_define([_lt_join],
[m4_if([$#$2], [2], [],
[m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
# lt_car(LIST)
# lt_cdr(LIST)
# ------------
# Manipulate m4 lists.
# These macros are necessary as long as will still need to support
# Autoconf-2.59, which quotes differently.
m4_define([lt_car], [[$1]])
m4_define([lt_cdr],
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
[$#], 1, [],
[m4_dquote(m4_shift($@))])])
m4_define([lt_unquote], $1)
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
# ------------------------------------------
# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
# Note that neither SEPARATOR nor STRING are expanded; they are appended
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
# than defined and empty).
#
# This macro is needed until we can rely on Autoconf 2.62, since earlier
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
m4_define([lt_append],
[m4_define([$1],
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
# ----------------------------------------------------------
# Produce a SEP delimited list of all paired combinations of elements of
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
# has the form PREFIXmINFIXSUFFIXn.
# Needed until we can rely on m4_combine added in Autoconf 2.62.
m4_define([lt_combine],
[m4_if(m4_eval([$# > 3]), [1],
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
[[m4_foreach([_Lt_prefix], [$2],
[m4_foreach([_Lt_suffix],
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
# -----------------------------------------------------------------------
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
m4_define([lt_if_append_uniq],
[m4_ifdef([$1],
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
[lt_append([$1], [$2], [$3])$4],
[$5])],
[lt_append([$1], [$2], [$3])$4])])
# lt_dict_add(DICT, KEY, VALUE)
# -----------------------------
m4_define([lt_dict_add],
[m4_define([$1($2)], [$3])])
# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
# --------------------------------------------
m4_define([lt_dict_add_subkey],
[m4_define([$1($2:$3)], [$4])])
# lt_dict_fetch(DICT, KEY, [SUBKEY])
# ----------------------------------
m4_define([lt_dict_fetch],
[m4_ifval([$3],
m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
# -----------------------------------------------------------------
m4_define([lt_if_dict_fetch],
[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
[$5],
[$6])])
# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
# --------------------------------------------------------------
m4_define([lt_dict_filter],
[m4_if([$5], [], [],
[lt_join(m4_quote(m4_default([$4], [[, ]])),
lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
[lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
])

23
m4/ltversion.m4 vendored Normal file
View File

@@ -0,0 +1,23 @@
# ltversion.m4 -- version numbers -*- Autoconf -*-
#
# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.
# Written by Scott James Remnant, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# @configure_input@
# serial 4179 ltversion.m4
# This file is part of GNU Libtool
m4_define([LT_PACKAGE_VERSION], [2.4.6])
m4_define([LT_PACKAGE_REVISION], [2.4.6])
AC_DEFUN([LTVERSION_VERSION],
[macro_version='2.4.6'
macro_revision='2.4.6'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])

99
m4/lt~obsolete.m4 vendored Normal file
View File

@@ -0,0 +1,99 @@
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
#
# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software
# Foundation, Inc.
# Written by Scott James Remnant, 2004.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
# serial 5 lt~obsolete.m4
# These exist entirely to fool aclocal when bootstrapping libtool.
#
# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
# which have later been changed to m4_define as they aren't part of the
# exported API, or moved to Autoconf or Automake where they belong.
#
# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
# using a macro with the same name in our local m4/libtool.m4 it'll
# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
# and doesn't know about Autoconf macros at all.)
#
# So we provide this file, which has a silly filename so it's always
# included after everything else. This provides aclocal with the
# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
# because those macros already exist, or will be overwritten later.
# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
#
# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
# Yes, that means every name once taken will need to remain here until
# we give up compatibility with versions before 1.7, at which point
# we need to keep only those names which we still refer to.
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])

1
m4/makefile.am Normal file
View File

@@ -0,0 +1 @@
ACLOCAL_AMFLAGS -I m4

525
makefile
View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.16.1 from makefile.am.
# makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,61 @@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -32,17 +86,9 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
build_triplet = x86_64-pc-linux-gnu
host_triplet = x86_64-pc-linux-gnu
subdir = .
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(srcdir)/makefile.am $(srcdir)/makefile.in \
$(top_srcdir)/./include/config.in $(top_srcdir)/configure \
.//AUTHORS .//COPYING .//ChangeLog .//INSTALL .//NEWS \
.//README .//config.guess .//config.sub .//depcomp \
.//install-sh .//ltmain.sh .//missing AUTHORS COPYING \
ChangeLog INSTALL NEWS config.guess config.sub depcomp \
install-sh ltmain.sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -50,21 +96,41 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/makefile.am $(top_srcdir)/configure \
$(am__configure_deps) $(include_HEADERS) $(am__DIST_COMMON)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./include/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
install-exec-recursive install-html-recursive \
install-info-recursive install-pdf-recursive \
install-ps-recursive install-recursive installcheck-recursive \
installdirs-recursive pdf-recursive ps-recursive \
tags-recursive uninstall-recursive
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -86,23 +152,62 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(includedir)"
HEADERS = $(include_HEADERS)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
am__recursive_targets = \
$(RECURSIVE_TARGETS) \
$(RECURSIVE_CLEAN_TARGETS) \
$(am__extra_recursive_targets)
AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
cscope distdir distdir-am dist dist-all distcheck
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
CSCOPE = cscope
DIST_SUBDIRS = $(SUBDIRS)
am__DIST_COMMON = $(srcdir)/makefile.in $(top_srcdir)/./compile \
$(top_srcdir)/./config.guess $(top_srcdir)/./config.sub \
$(top_srcdir)/./include/config.in $(top_srcdir)/./install-sh \
$(top_srcdir)/./ltmain.sh $(top_srcdir)/./missing .//AUTHORS \
.//COPYING .//ChangeLog .//INSTALL .//NEWS .//README \
.//compile .//config.guess .//config.sub .//depcomp \
.//install-sh .//ltmain.sh .//missing AUTHORS COPYING \
ChangeLog INSTALL NEWS README compile config.guess config.sub \
depcomp install-sh ltmain.sh missing
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -130,25 +235,29 @@ am__relativize = \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
DIST_TARGETS = dist-gzip
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml -I$(top_srcdir)/include
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib @CAFE_LIBS@
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing aclocal-1.16
AMTAR = $${TAR-tar}
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I$(top_srcdir)/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 @CAFE_LIBS@
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing automake-1.16
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/7.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/10.4.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/10.4.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/10.4.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -164,24 +273,24 @@ EGREP = /bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
INSTALL = /usr/bin/install -c
INSTALL = /bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LD = /bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64
LIBOBJS =
LIBS = -lQt5Xml -lpython3.7m
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
NM = /usr/bin/nm -B
NM = /bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
@@ -190,59 +299,60 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.13.0
PACKAGE_STRING = CAFE 1.22.0
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
PACKAGE_URL =
PACKAGE_VERSION = 1.22.0
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.13.0
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
VERSION = 1.22.0
abs_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
abs_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
abs_top_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build = x86_64-pc-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host = x86_64-pc-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.13.0/lib/SL6-x86_64
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0/lib/RHEL8-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.13.0
prefix = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -259,7 +369,7 @@ ACLOCAL_AMFLAGS = -I m4
all: all-recursive
.SUFFIXES:
am--refresh:
am--refresh: makefile
@:
$(srcdir)/makefile.in: $(srcdir)/makefile.am $(am__configure_deps)
@for dep in $?; do \
@@ -274,15 +384,14 @@ $(srcdir)/makefile.in: $(srcdir)/makefile.am $(am__configure_deps)
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu makefile
.PRECIOUS: makefile
makefile: $(srcdir)/makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -295,10 +404,8 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__aclocal_m4_deps):
./include/config.h: ./include/stamp-h1
@if test ! -f $@; then \
rm -f ./include/stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) ./include/stamp-h1; \
else :; fi
@test -f $@ || rm -f ./include/stamp-h1
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) ./include/stamp-h1
./include/stamp-h1: $(top_srcdir)/./include/config.in $(top_builddir)/config.status
@rm -f ./include/stamp-h1
@@ -321,8 +428,11 @@ distclean-libtool:
-rm -f libtool config.lt
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
if test -n "$$list"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
fi; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
@@ -336,27 +446,28 @@ uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(includedir)" && rm -f $$files
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
# into them and run 'make' without going through this Makefile.
# To change the values of 'make' variables: instead of editing Makefiles,
# (1) if the variable is set in 'config.status', edit 'config.status'
# (which will cause the Makefiles to be regenerated when you run 'make');
# (2) otherwise, pass the desired values on the 'make' command line.
$(am__recursive_targets):
@fail=; \
if $(am__make_keepgoing); then \
failcom='fail=yes'; \
else \
failcom='exit 1'; \
fi; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
@@ -371,57 +482,12 @@ $(RECURSIVE_TARGETS):
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@fail= failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-recursive
TAGS: tags
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -437,12 +503,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -454,15 +515,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
ctags: ctags-recursive
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -471,11 +528,36 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscope: cscope.files
test ! -s cscope.files \
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
clean-cscope:
-rm -f cscope.files
cscope.files: clean-cscope cscopelist
cscopelist: cscopelist-recursive
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -509,13 +591,10 @@ distdir: $(DISTFILES)
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
$(am__make_dryrun) \
|| test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
@@ -543,37 +622,43 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
$(am__post_remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
$(am__post_remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-lzip: distdir
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
$(am__post_remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
$(am__post_remove_distdir)
dist-tarZ: distdir
@echo WARNING: "Support for distribution archives compressed with" \
"legacy program 'compress' is deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
$(am__post_remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
@echo WARNING: "Support for shar distribution archives is" \
"deprecated." >&2
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
$(am__post_remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
$(am__post_remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist dist-all:
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
$(am__post_remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
@@ -581,31 +666,33 @@ dist dist-all: distdir
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.lz*) \
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod u+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod -R a-w $(distdir)
chmod u+w $(distdir)
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
&& $(am__cd) $(distdir)/_build/sub \
&& ../../configure \
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
$(DISTCHECK_CONFIGURE_FLAGS) \
--srcdir=../.. --prefix="$$dc_install_base" \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
@@ -628,13 +715,21 @@ distcheck: dist
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
$(am__post_remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@test -n '$(distuninstallcheck_dir)' || { \
echo 'ERROR: trying to run $@ with an empty' \
'$$(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
$(am__cd) '$(distuninstallcheck_dir)' || { \
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
exit 1; \
}; \
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
@@ -668,10 +763,15 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
@@ -753,25 +853,26 @@ ps-am:
uninstall-am: uninstall-includeHEADERS
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
install-am install-strip tags-recursive
.MAKE: $(am__recursive_targets) install-am install-strip
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-generic distclean-hdr \
distclean-libtool distclean-tags distcleancheck distdir \
distuninstallcheck dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-includeHEADERS install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
uninstall uninstall-am uninstall-includeHEADERS
.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool cscope cscopelist-am ctags ctags-am dist \
dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
dist-xz dist-zip distcheck distclean distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-includeHEADERS \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs installdirs-am \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags tags-am uninstall uninstall-am uninstall-includeHEADERS
.PRECIOUS: makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -1 +1 @@
PyCafe_sls.cpp
PyCafe_sls_py38.cpp

168553
src/PyCafe37.cpp Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

166929
src/PyCafe_sls_py37.cpp Normal file

File diff suppressed because it is too large Load Diff

169336
src/PyCafe_sls_py38.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

View File

@@ -1 +1,159 @@
# dummy
bitshuffle/bitshuffle.lo: bitshuffle/bitshuffle.c \
/usr/include/stdc-predef.h bitshuffle/bitshuffle.h /usr/include/stdlib.h \
/usr/include/bits/libc-header-start.h /usr/include/features.h \
/usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
bitshuffle/bitshuffle_core.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h bitshuffle/bitshuffle_internals.h \
bitshuffle/iochain.h .././include/lz4.h /usr/include/stdio.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/bits/stdio.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h
/usr/include/stdc-predef.h:
bitshuffle/bitshuffle.h:
/usr/include/stdlib.h:
/usr/include/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/bits/long-double.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/bits/floatn.h:
/usr/include/bits/floatn-common.h:
/usr/include/sys/types.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/types/clock_t.h:
/usr/include/bits/types/clockid_t.h:
/usr/include/bits/types/time_t.h:
/usr/include/bits/types/timer_t.h:
/usr/include/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/uintn-identity.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/types/sigset_t.h:
/usr/include/bits/types/__sigset_t.h:
/usr/include/bits/types/struct_timeval.h:
/usr/include/bits/types/struct_timespec.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/thread-shared-types.h:
/usr/include/bits/pthreadtypes-arch.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-bsearch.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/bitshuffle_core.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h:
/usr/include/stdint.h:
/usr/include/bits/wchar.h:
/usr/include/bits/stdint-uintn.h:
bitshuffle/bitshuffle_internals.h:
bitshuffle/iochain.h:
.././include/lz4.h:
/usr/include/stdio.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h:
/usr/include/bits/types/__fpos_t.h:
/usr/include/bits/types/__mbstate_t.h:
/usr/include/bits/types/__fpos64_t.h:
/usr/include/bits/types/__FILE.h:
/usr/include/bits/types/FILE.h:
/usr/include/bits/types/struct_FILE.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/bits/stdio.h:
/usr/include/string.h:
/usr/include/bits/types/locale_t.h:
/usr/include/bits/types/__locale_t.h:
/usr/include/strings.h:

View File

@@ -1 +1,167 @@
# dummy
bitshuffle/bitshuffle_core.lo: bitshuffle/bitshuffle_core.c \
/usr/include/stdc-predef.h bitshuffle/bitshuffle_core.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/wchar.h /usr/include/bits/stdint-intn.h \
/usr/include/bits/stdint-uintn.h /usr/include/stdlib.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
bitshuffle/bitshuffle_internals.h bitshuffle/iochain.h \
/usr/include/stdio.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h \
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/bits/stdio.h /usr/include/string.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/strings.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/emmintrin.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mmintrin.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mm_malloc.h
/usr/include/stdc-predef.h:
bitshuffle/bitshuffle_core.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdint.h:
/usr/include/stdint.h:
/usr/include/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/bits/long-double.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/wchar.h:
/usr/include/bits/stdint-intn.h:
/usr/include/bits/stdint-uintn.h:
/usr/include/stdlib.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/bits/floatn.h:
/usr/include/bits/floatn-common.h:
/usr/include/sys/types.h:
/usr/include/bits/types/clock_t.h:
/usr/include/bits/types/clockid_t.h:
/usr/include/bits/types/time_t.h:
/usr/include/bits/types/timer_t.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/uintn-identity.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/types/sigset_t.h:
/usr/include/bits/types/__sigset_t.h:
/usr/include/bits/types/struct_timeval.h:
/usr/include/bits/types/struct_timespec.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/thread-shared-types.h:
/usr/include/bits/pthreadtypes-arch.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-bsearch.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/bitshuffle_internals.h:
bitshuffle/iochain.h:
/usr/include/stdio.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stdarg.h:
/usr/include/bits/types/__fpos_t.h:
/usr/include/bits/types/__mbstate_t.h:
/usr/include/bits/types/__fpos64_t.h:
/usr/include/bits/types/__FILE.h:
/usr/include/bits/types/FILE.h:
/usr/include/bits/types/struct_FILE.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/bits/stdio.h:
/usr/include/string.h:
/usr/include/bits/types/locale_t.h:
/usr/include/bits/types/__locale_t.h:
/usr/include/strings.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/emmintrin.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/xmmintrin.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mmintrin.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/mm_malloc.h:

View File

@@ -1 +1,100 @@
# dummy
bitshuffle/iochain.lo: bitshuffle/iochain.c /usr/include/stdc-predef.h \
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
bitshuffle/iochain.h
/usr/include/stdc-predef.h:
/usr/include/stdlib.h:
/usr/include/bits/libc-header-start.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/bits/long-double.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/afs/psi.ch/sys/psi.ra/Programming/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/include/stddef.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/bits/floatn.h:
/usr/include/bits/floatn-common.h:
/usr/include/sys/types.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/bits/types/clock_t.h:
/usr/include/bits/types/clockid_t.h:
/usr/include/bits/types/time_t.h:
/usr/include/bits/types/timer_t.h:
/usr/include/bits/stdint-intn.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/bits/uintn-identity.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/types/sigset_t.h:
/usr/include/bits/types/__sigset_t.h:
/usr/include/bits/types/struct_timeval.h:
/usr/include/bits/types/struct_timespec.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/thread-shared-types.h:
/usr/include/bits/pthreadtypes-arch.h:
/usr/include/alloca.h:
/usr/include/bits/stdlib-bsearch.h:
/usr/include/bits/stdlib-float.h:
bitshuffle/iochain.h:

0
src/bitshuffle/.dirstamp Normal file
View File

View File

@@ -20,7 +20,6 @@
///
#include <cafe.h>
#include <conduitGroup.h>
#include <cafeEnum.h>
@@ -31,20 +30,119 @@
using namespace std;
bool MUTEX=true;
bool CHECK_CONSISTENCY_CA_STATE=true;
bool SF_WITH_PULSE_ID = false;
epicsMutex cafeMutex;
/*
int CAFE::wfExpress(const unsigned int handle) {
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
vector<PVGroup> PVGroupV;
vector<PVGroup> PVGroupPseudo;
vector<deviceCollection> deviceCollectionV;
vector<string> globalChannelList;
map<vector<unsigned int>, string> groupPseudoMap;
it_handle = handle_index.find(handle);
cafeGroup_set gs;
cafeConduit_set cs;
if (it_handle != handle_index.end())
{
std::cout << "Initiate Callback =============" << std::endl;
status=(*it_handle).getWithCallback(CALLBACK_CAFE::handlerGet);
ca_flush_io();
}
return status;
}
*/
int CAFE::wfExpress(const unsigned int handle, const unsigned int nelem, dbr_char_t * chval) {
int status = ICAFE_NORMAL;
chval = new dbr_char_t[nelem];
//dbr_float_t * val = new dbr_float_t[nelem];
//cafeGranules.channelExecuteGet(handle);
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end())
{
std::cout << "Initiate Callback =============" << std::endl;
status=(*it_handle).getWithCallback(CALLBACK_CAFE::handlerGet);
ca_flush_io();
for (int i=0; i <20; ++i) {
#if HAVE_BOOST_THREAD
boost::this_thread::sleep_for(boost::chrono::milliseconds(50));
#else
#if HAVE_LINUX
sleep(0.05);
#endif
#endif
//std::cout << "iscb done " << cafeGranules.isGetCallbackDone(handle) << std::endl;
}
//(*it_handle).getWithCallback(CALLBACK_CAFE::handlerGet);
union db_access_val * PVDataL = (*it_handle).getDataBuffer();
for (unsigned int i=0; i<nelem; ++i) {
//val[i] = (dbr_float_t) (*(&((PVDataL)->tfltval.value)+i));
chval[i] = (dbr_char_t) (*(&((PVDataL)->tchrval.value)+i));
}
//memcpy( chval, &(&((PVDataL)->charval))[0], sizeof(dbr_char_t)*nelem);
std::cout << chval[0] << " //0//==> " << (short) chval[0] << std::endl;
std::cout << chval[1] << " //1//==> " << (short) chval[1] << std::endl;
}
delete [] chval;
return status;
//union db_access_val * data;
ChannelRegalia channelInfo;
CAFE::getChannelInfo(handle, channelInfo);
chid channelID = channelInfo.getChannelID();
dbr_time_char * data = (dbr_time_char *) malloc(dbr_size_n(DBR_TIME_CHAR, nelem));
//chval[0] = 2;
std::cout << channelID << " // " << nelem << std::endl;
//data = (db_access_val *) malloc (dbr_size_n(DBR_CHAR, nelem) );
status = ca_array_get(DBR_TIME_CHAR, nelem, channelID, data);
status = ca_pend_io(4.1);
std::cout << status << " // " << nelem << std::endl;
if (status == ICAFE_NORMAL) {
dbr_char_t * value = & data->value;
std::cout << value[0] << "///" << (short) value[0] << std::endl;
std::cout << value[1] << "///" << (short) value[1] << std::endl;
}
//memcpy(chval, &((data)->charval), nelem*sizeof(dbr_char_t));
/*
for (unsigned int i=0; i<nelem; ++i)
{
chval[i] = (unsigned short) value[i]; //(*(&((data)->charval)+i));
}
std::cout << chval[0] << "///" << (unsigned short) chval[0] << std::endl;
*/
free(data);
return status;
}
//5+ long long
@@ -879,7 +977,15 @@ int CAFE::get(const unsigned int handle, PVDataHolder & pvd)
}
if ((status=cafeGranules.channelExecuteGet(handle)) != ICAFE_NORMAL)
{
std::cout << "HANDLE " << handle << __METHOD__ << std::endl;
(*it_handle).getPVDataHolder(pvd);
std::cout << "BELEM " << pvd.nelem << __METHOD__ << std::endl;
std::cout << pvd.getAsFloat(0) << std::endl;
if (pvd.nelem > 1) {
std::cout << "////" << pvd.getAsFloat(1) << std::endl;
}
pvd.status=status;
pvd.alarmStatus=-1;
pvd.alarmSeverity=-1;
@@ -5131,7 +5237,13 @@ int CAFE::supplementHandlesV(std::vector<unsigned int> hV)
for (int ij=0; ij<20; ++ij) {
if (!initCallbackComplete(allHandles) ) {
//cout << "Will wait for " << ij << " " << (1+ij)*0.1 << " ======= SECONDS ==== " << endl;
usleep(100000); //tenth of a sec and loop over 2 sec
#if HAVE_BOOST_THREAD
boost::this_thread::sleep_for(boost::chrono::microseconds(100000)); //tenth of a sec and loop over 2 sec
#else
#if HAVE_LINUX
usleep(100000); //tenth of a sec and loop over 2 sec
#endif
#endif
}
}

View File

@@ -650,6 +650,27 @@ int CAFE::getCache(const unsigned int handle, PVDataHolder & pvd)
if (it_handle != handle_index.end())
{
//Reset any possible put error that preceded call to getCache
if ( (*it_handle).getStatus() == ECAFE_NOWTACCESS ||
(*it_handle).getStatus() == ECA_PUTFAIL ||
(*it_handle).getStatus() == ECA_PUTCBINPROG) {
if(MUTEX)
{
cafeMutex.lock();
}; //lock
//std::cout << "getStatus - before:" << (*it_handle).getStatus() << std::endl;
handle_index.modify(it_handle, change_status(ICAFE_NORMAL));
pvd.status = ICAFE_NORMAL;
//std::cout << "getStatus - after:" << (*it_handle).getStatus() << std::endl;
if(MUTEX)
{
cafeMutex.unlock();
}; //unlock
}
//meant for use in callbacks in monitors!
if ( (*it_handle).getChannelGetCacheWaitPolicy().getWaitKind() == CAFENUM::GET_CACHE_NO_CHECK)
{

View File

@@ -25,8 +25,9 @@ using namespace std;
/**
* \brief Callback function for ca_create_channel.
* Modifies Conduit object accordingly
* Function is not invoked on closechannel by user
* \param args returns connection handler parameters \n
* i.e. args.chid, args.op{CA_OP_CONN_UP, CA_OP_CONN_DOWN}
* i.e. args.chid, args.op{CA_OP_CONN_UP, CA_OP_CONN_DOWN}
*/
void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args args)
{
@@ -202,8 +203,7 @@ void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args a
CAFEStatus cafeStatus;
cafeStatus.report(status);
}
// Check if any monitors for this channel are to be started.....
// If monitors are to be started, then start the monitors
// pass on handler functions
@@ -315,6 +315,8 @@ void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args a
cafeMutex.unlock();
}
//std::cout << "DISCONNECT - has pycafe " << (*it_handle).getPyCafe() << std::endl;
#if HAVE_PYTHON_H
// monitors
if ((*it_handle).getPyCafe() )
@@ -339,7 +341,8 @@ void ChannelCreatePolicy::callbackHandlerCreate(struct connection_handler_args a
//std::cout << __METHOD__ << __LINE__ << " (*it_handle).CyDataeventHandler(); at DISCCONNECT " << (*it_handle).pv << std::endl;
//cout << "(*it_handle).PyEventHandler(); " << (*itmp).getMonitorID() << endl;
//(*it_handle).PyEventHandler((*itmp).getMonitorID());
(*it_handle).CyDataEventHandler();
//(*it_handle).CyDataEventHandler();
(*it_handle).CyMonitorHandler();
}
//Disconnect signal
if ( (*it_handle).getPyOpenCallbackFlag() )

View File

@@ -14,6 +14,7 @@
#include <methodCallbacks.h>
#include <granules.h>
#define RETURN_ON_ERROR false
using namespace std;
using namespace boost::posix_time;
@@ -31,7 +32,7 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
//return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
@@ -80,7 +81,6 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
#if HAVE_ZEROMQ
if (SF_WITH_PULSE_ID)
{
cafeConduit_set::iterator itcs;
unsigned long long pulseID=0;
PVDataHolder pvd;
@@ -136,6 +136,95 @@ void MonitorPolicy::callbackHandlerMonitor( struct event_handler_args args)
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
* \param args input: event handler arguments
*/
void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
{
#define __METHOD__ "MonitorPolicy::PyCallbackHandlerMonitor"
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find((unsigned int)_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
}
handle_index.modify(it_handle, change_eventHandlerArgs (args));
if(MUTEX)
{
cafeMutex.unlock();
}
#if HAVE_PYTHON_H
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
MonitorPolicy mp = (*it_handle).getMonitorPolicy(monid);
ptime timeNow(microsec_clock::local_time());
//Get time of last update as recorded in cache
ptime timePrevious = mp.getLastUpdate(); //(*it_handle).getCallback_ptime();
//Compare times and if delta is greater than requested - fire event
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds();
//if ( (*it_handle).pv == "SIN-TIMAST-EVG0:TX-PULSEID " ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID// " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < (updateDeltaMillioseconds-5.61)) {
return;
}
else {
mp.setLastUpdate(timeNow);
handle_index.modify(it_handle, change_monitorPolicy(mp));
}
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//(*it_handle).PyEventHandler();
//(*it_handle).CyEventHandler(); //pushes handle, pvname
(*it_handle).CyMonitorHandler();
#endif
}
else
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
return;
#undef __METHOD__
}
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
@@ -152,7 +241,7 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
{
cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
// return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) ca_puser(args.chid);// args.usr; // ca_puser(args.chid);
@@ -181,7 +270,7 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
#if HAVE_PYTHON_H
//For monitors args.usr is the id of the monitorpolicy class
//std::cout << "usrArgs == " << args.usr << std::endl;
//std::cout << "HAS PYTHON usrArgs == " << args.usr << std::endl;
//Place timecheck here
//Get present timestamp
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
@@ -190,7 +279,6 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
//std::cout << "monitorID " << mp.getNotifyDeltaMilliSeconds() << std::endl;
//mp.setNotifyDeltaMilliSeconds(1000);
ptime timeNow(microsec_clock::local_time());
//Get time of last update as recorded in cache
@@ -199,31 +287,31 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
//Compare times and if delta is greater than requested - fire event
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds(); //1000; //1Hz
double updateDeltaMilliseconds = mp.getNotifyDeltaMilliSeconds(); //1000; //1Hz
//if ( (*it_handle).pv == "SINSB03-DSCR110:ENERGY-OP" ) {
//if ( (*it_handle).pv == "S10BC01-DBPM050:Q1" ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < updateDeltaMillioseconds*0.998) {
if (timeElapsedMilliseconds < (updateDeltaMilliseconds-5.61)) {
return;
}
else {
//update cache with timeNow
// handle_index.modify(it_handle, change_callback_ptime(timeNow));
mp.setLastUpdate(timeNow);
if(MUTEX) { cafeMutex.lock();}
handle_index.modify(it_handle, change_monitorPolicy(mp));
if(MUTEX) { cafeMutex.unlock();}
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
}
if (args.type < DBR_GR_STRING)
{
//(*it_handle).PyDataEventHandler();
(*it_handle).CyDataEventHandler();
//(*it_handle).PyDataEventHandler();
//(*it_handle).CyDataEventHandler();
(*it_handle).CyMonitorHandler();
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
}
else if (args.type < DBR_PUT_ACKT)
@@ -244,12 +332,14 @@ void MonitorPolicy::PyCallbackHandlerMonitorData (struct event_handler_args args
};
/**
* \brief Callback function for monitor method is invoked
* with a pointer to the retrieved value; also fires a user supplied Python callback.
* \param args input: event handler arguments
*/
void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
/*
void MonitorPolicy::PyCallbackHandlerHandle (struct event_handler_args args)
{
#define __METHOD__ "MonitorPolicy::PyCallbackHandlerMonitor"
@@ -284,7 +374,6 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
}
#if HAVE_PYTHON_H
unsigned long monid = (unsigned long) (*it_handle).getUsrArgs();
MonitorPolicy mp = (*it_handle).getMonitorPolicy(monid);
ptime timeNow(microsec_clock::local_time());
@@ -296,11 +385,13 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
time_duration duration(timeNow-timePrevious);
double timeElapsedMilliseconds= (double) duration.total_milliseconds();
double updateDeltaMillioseconds = mp.getNotifyDeltaMilliSeconds();
//if ( (*it_handle).pv == "SIN-TIMAST-EVG0:TX-PULSEID " ) {
//std::cout << (*it_handle).pv <<" time elapses " << timeElapsedMilliseconds << std::endl;
//std::cout << "monitorID// " << monid << " wait" << mp.getNotifyDeltaMilliSeconds() << std::endl;
//}
if (timeElapsedMilliseconds < updateDeltaMillioseconds*0.998) {
if (timeElapsedMilliseconds < (updateDeltaMillioseconds-5.61)) {
return;
}
else {
@@ -309,7 +400,7 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
}
//(*it_handle).PyEventHandler();
(*it_handle).CyEventHandler();
(*it_handle).CyHandleHandler(); //pushes handle only
#endif
}
@@ -318,11 +409,8 @@ void MonitorPolicy::PyCallbackHandlerMonitor (struct event_handler_args args)
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
return;
#undef __METHOD__
}
*/

View File

@@ -277,19 +277,29 @@ void * Conduit::PyConnectHandler() const
void * Conduit::PyGetHandler() const
{
//PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
//getPVDataHolder(pvd);
//std::cout << "PyGetHandler" << pvd.getAsString(0) << std::endl;
py_cb_handle_get_wrapper(handle);
void * cythonCallback=channelRequestPolicyGet.getCyCallback();
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::PyGetHandler()" << std::endl;
return (void *) 0; ;
}
cy_cb_handle_get_wrapper(cythonCallback, handle);
//py_cb_handle_get_wrapper(handle);
return (void *) 0;
}
void * Conduit::PyPutHandler() const
{
void * cythonCallback=channelRequestPolicyPut.getCyCallback();
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::PyPutHandler()" << std::endl;
return (void *) 0; ;
}
py_cb_handle_put_wrapper(handle);
cy_cb_handle_put_wrapper(cythonCallback, handle);
//py_cb_handle_put_wrapper(handle);
return (void *) 0;
}
@@ -302,7 +312,8 @@ void * Conduit::PyPutHandler() const
py_cb_handle_monid_wrapper(handle, (unsigned long) usrArgs);
return (void *) 0;
}*/
}
*/
/*void * Conduit::PyEventHandler(unsigned int monid) const
@@ -312,7 +323,30 @@ void * Conduit::PyPutHandler() const
py_cb_handle_monid_wrapper(handle, monid);
return (void *) 0;
}*/
}
*/
/*
void * Conduit::CyHandleHandler() const
{
void * cythonCallback = NULL;
for (int i=0; i < mpV.size(); ++i) {
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
break;
}
}
//std::cout << " cythonCallback " << cythonCallback << std:: endl;
if (cythonCallback == NULL) {
//std::cout << " NO CYTHON CALLBACK MATCH FOUND in Conduit::CyEventHandler()" << std::endl;
return (void *) 0; ;
}
cy_handle_handler_wrapper(cythonCallback, handle);
return (void *) 0;
}
void * Conduit::CyEventHandler() const
@@ -335,6 +369,41 @@ void * Conduit::CyEventHandler() const
}
void * Conduit::CyDataEventHandler() const
{
//std::cout << " void * Conduit::CyDataEventHandler() " << std::endl;
PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
void * cythonCallback = NULL;
for (int i=0; i < mpV.size(); ++i) {
//std::cout << i << " " << mpV[i].getCyCallback()
// << " " << mpV[i].getID() << " " << pv << " " << handle
// << std::endl;
//std::cout << "user args " << (unsigned long) usrArgs << std::endl;
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
break;
}
}
if (cythonCallback == NULL) {
std::cout << " NO CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
}
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
//std::cout << " CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
}
*/
/*void * Conduit::PyDataEventHandler() const
{
PVDataHolder pvd(channelRequestMetaData.nelem);
@@ -344,38 +413,64 @@ void * Conduit::CyEventHandler() const
return (void *) 0;
}*/
void * Conduit::CyDataEventHandler() const
void * Conduit::CyMonitorHandler() const
{
PVDataHolder pvd(channelRequestMetaData.nelem);
//size is set in conduitEventHandlerArgs.h
#define __METHOD__ "Conduit::CyMonitorHandler() "
void * cythonCallback = NULL;
unsigned int ncbparameters = 1;
for (int i=0; i < mpV.size(); ++i) {
//std::cout << i << " " << mpV[i].getCyCallback()
// << " " << mpV[i].getID()
// << std::endl;
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
if ((unsigned long) mpV[i].getID() == (unsigned long) usrArgs) {
cythonCallback = mpV[i].getCyCallback();
ncbparameters = mpV[i].getNoCyCallbackParameters();
break;
}
}
if (cythonCallback == NULL) {
//std::cout << " NO CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
std::cout << " NO CYTHON CALLBACK MATCH FOUND " << std::endl;
return (void *) 0; ;
}
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
//std::cout << " CYTHON CALLBACK MATCH FOUND Conduit::CyDataEventHandler()" << std::endl;
return (void *) 0;
//ptime timeStart(microsec_clock::local_time());
//double timeElapsed=0;
if (ncbparameters == 0) {
cy_monitor_handler_wrapper(cythonCallback);
}
else if (ncbparameters == 1) {
cy_handle_handler_wrapper(cythonCallback, handle);
}
else if (ncbparameters == 2) {
cy_event_handler_wrapper(cythonCallback, handle, pv);
}
else if (ncbparameters == 3) {
PVDataHolder pvd(channelRequestMetaData.nelem);
getPVDataHolder(pvd);
cy_data_event_handler_wrapper(cythonCallback, handle, pv, pvd);
}
else {
std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
std::cout << " Wrong no. cb parameters " << ncbparameters << std::endl;
std::cout << " Allowed are 1 (handle) 2 (+pv) 3 (+pvdata) " << std::endl;
}
//ptime timeEnd(microsec_clock::local_time());
//time_duration duration(timeEnd-timeStart);
//timeElapsed= (double) duration.total_microseconds()/1000000.0;
//std::cout << "timeElapsed " << timeElapsed << std::endl;
return (void *) 0;
#undef __METHOD__
}
/*void * Conduit::PyCtrlEventHandler() const
{
@@ -470,13 +565,14 @@ int Conduit::putWithCallback(pCallback callbackHandlerPut) const
int Conduit::get(void) const
{
#define __METHOD__ "Conduit::get(void) "
/* For testing readout time for waveforms!
/* For testing readout time for waveforms! */
/*
using namespace boost::posix_time;
ptime timeStart(microsec_clock::local_time());
double timeElapsed=0;
unsigned int nPoll=0;
for (int i=0; i< 100000; ++i) {
unsigned nevent = 10;
for (int i=0; i< nevent; ++i) {
ca_array_get(channelRequestMetaData.dbrDataType, channelRequestMetaData.nelem,
channelRegalia.channelID,dataBuffer);
}
@@ -485,6 +581,7 @@ int Conduit::get(void) const
timeElapsed= (double) duration.total_microseconds()/1000000.0;
std::cout << "Time Elapsed " << timeElapsed << std::endl;
std::cout << "Time Elapsed/per event " << timeElapsed/nevent << std::endl;
*/
return ca_array_get(channelRequestMetaData.dbrDataType, channelRequestMetaData.nelem,
channelRegalia.channelID, dataBuffer);
@@ -492,6 +589,8 @@ int Conduit::get(void) const
#undef __METHOD__
};
/**
* \brief Called from Granules.cc \n
* Retrieves PV data through channel access into the Conduit::dataBuffer thru callbackHandlerGet
@@ -501,6 +600,52 @@ int Conduit::get(void) const
int Conduit::getWithCallback(pCallback callbackHandlerGet) const
{
#define __METHOD__ "Conduit::getCallback(pCallback callbackHandlerGet) "
//Need ca_pend_io and ca-flush_io!!
/*
if (channelRequestMetaData.nelem > 1) {
using namespace boost::posix_time;
ptime timeStart(microsec_clock::local_time());
double timeElapsed=0;
unsigned int nPoll=0;
unsigned int nevent = 1000;
std::cout << "NELM ==> " << channelRequestMetaData.nelem << std::endl;
for (int i=0; i< nevent; ++i) {
ca_array_get(channelRequestMetaData.dbrDataType, channelRequestMetaData.nelem,
channelRegalia.channelID,dataBuffer);
}
ptime timeEnd(microsec_clock::local_time());
time_duration duration(timeEnd-timeStart);
timeElapsed= (double) duration.total_microseconds()/1000000.0;
std::cout << "Time Elapsed nevents " << timeElapsed << " " << nevent << std::endl;
std::cout << "Time Elapsed/per event " << timeElapsed/nevent << std::endl;
ptime timeStart2(microsec_clock::local_time());
timeElapsed=0;
nPoll=0;
for (int i=0; i<nevent; ++i) {
ca_array_get_callback(channelRequestMetaData.dbrDataType, channelRequestMetaData.nelem,
channelRegalia.channelID,callbackHandlerGet,(void *) (long long) handle );
}
ptime timeEnd2(microsec_clock::local_time());
time_duration duration2(timeEnd2-timeStart2);
timeElapsed= (double) duration2.total_microseconds()/1000000.0;
std::cout << "Time Elapsed with CB " << timeElapsed << std::endl;
std::cout << "Time Elapsed/per event " << timeElapsed/nevent << std::endl;
}
*/
//std::cout << "Datatype " << channelRequestMetaData.dbrDataType << std::endl;
//std::cout << "Nelem " << channelRequestMetaData.nelem << std::endl;
//std::cout << "channelRegalia.channelID " << channelRegalia.channelID << std::endl;
//std::cout << "handle " << handle << std::endl;
return ca_array_get_callback(channelRequestMetaData.dbrDataType, channelRequestMetaData.nelem,
channelRegalia.channelID,callbackHandlerGet,(void *) (long long) handle );
@@ -1163,7 +1308,8 @@ int Conduit::monitorStart(MonitorPolicy &mp) const
}
evid eventID;
int status = ca_create_subscription(mp.getDbrDataType(), mp.getNelem(), channelRegalia.channelID, mp.getMask(),
int status = ca_create_subscription(mp.getDbrDataType(), mp.getNelem(),
channelRegalia.channelID, mp.getMask(),
mp.getHandler(), (void *) mp.getUserArgs(), &eventID);
mp.setEventID(eventID);

View File

@@ -5,6 +5,8 @@
/// \version CAFE 1.6.0
///
//#include <epicsMutex.h>
#include <connect.h>
#include <conduitFriends.h>
#include <conduitConnectionHandlerArgs.h>
@@ -24,7 +26,25 @@
#endif
#endif
bool MUTEX=true;
bool CHECK_CONSISTENCY_CA_STATE=true;
bool SF_WITH_PULSE_ID = false;
using namespace std;
vector<PVGroup> PVGroupV;
vector<PVGroup> PVGroupPseudo;
vector<deviceCollection> deviceCollectionV;
vector<string> globalChannelList;
map<vector<unsigned int>, string> groupPseudoMap;
cafeGroup_set gs;
cafeConduit_set cs;
epicsMutex cafeMutex;
//epicsMutex cafeMutex;
/**
* \brief Return epics Version as an unsigned short \n
@@ -61,7 +81,8 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
cafeConduit_set_by_handle & handle_index= cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
int _status = ICAFE_NORMAL;
it_handle =handle_index.find(handle);
if (it_handle != handle_index.end())
@@ -73,7 +94,7 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
//
Moved to create Handle
*/
status = ca_create_channel(pv, channelCreatePolicy.getHandler(), (void *) (unsigned long) handle,
_status = ca_create_channel(pv, channelCreatePolicy.getHandler(), (void *) (unsigned long) handle,
channelCreatePolicy.getPriority(), &pCh);
if (pCh!=NULL)
@@ -119,25 +140,25 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
ca_replace_access_rights_event(pCh, callbackHandlerAccessRights);
}
if (status != ECA_NORMAL)
if (_status != ECA_NORMAL)
{
cout << __FILE__ << ":" << __LINE__ << endl;
cout << __METHOD__ << " ca_create_channel failed: " << endl;
if (status == ECA_EVDISALLOW)
if (_status == ECA_EVDISALLOW)
{
cout << " due to inappropriate function " << endl;
}
cafeStatus.report(status);
cafeStatus.report(_status);
if(MUTEX)
{
cafeMutex.lock(); //lock
}
handle_index.modify(it_handle, change_status (status) );
handle_index.modify(it_handle, change_status (_status) );
if(MUTEX)
{
cafeMutex.unlock(); //unlock
}
return (int) status;
return (int) _status;
}
//To Flush Send Buffer or not? Examine channelOpenPolicy.
@@ -185,16 +206,17 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
ChannelRequestStatus cre;
handleHelper.getChannelRequestStatusGet (handle, cre);
nPoll=0;
unsigned int microSecondsWait=2000;
while (cre.getCallbackProgressKind()==(CAFENUM::CallbackProgressKind) CAFENUM::PENDING
&& nPoll<50)
&& nPoll<200)
{
#if HAVE_BOOST_THREAD
boost::this_thread::sleep_for(boost::chrono::microseconds(2000));
boost::this_thread::sleep_for(boost::chrono::microseconds(microSecondsWait));
#else
#if HAVE_LINUX
usleep(2000);
usleep(microSecondsWait);
#endif
#endif
++nPoll;
@@ -204,12 +226,22 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
//std::cout << __FILE__ << ":" << __LINE__ << " nPoll=" << nPoll << std::endl;
if ((*it_handle).isConnected() && cre.getCallbackProgressKind()==(CAFENUM::CallbackProgressKind) CAFENUM::PENDING)
{
std::cout << __FILE__ << ":" << __LINE__ << std::endl;
std::cout << "==================================" << std::endl;
std::cout << __FILE__ << ":" << __LINE__ << " pv = " << pv << std::endl;
std::cout << __METHOD__ << std::endl;
std::cout << handleHelper.getPVFromHandle(handle) << " with handle " << handle << std::endl;
std::cout << "Value of 1 is pending, Value of 2 is complete" << std::endl;
std::cout << "Get Callback PENDING for createChannel?: " << cre.getCallbackProgressKind() << std::endl;
std::cout << "Get Callback PENDING for createChannel?: " << cre.getCallbackProgressKind() << std::endl;
std::cout << "==================================" << std::endl;
}
if (nPoll > 140) {
std::cout << "==================================" << std::endl;
std::cout << __FILE__ << ":" << __LINE__ << " pv = " << pv << std::endl;
std::cout << __METHOD__ << std::endl;
std::cout << "nPoll = " << nPoll << std::endl;
std::cout << "Wait time for all callbacks for pv to complete = " << float(microSecondsWait)/1000000*nPoll << " sec" <<std::endl;
std::cout << "==================================" << std::endl;
}
}//if (channelOpenPolicy.getWhenToFlushSendBuffer()==FLUSH_AFTER_EACH_CHANNEL_CREATION)
@@ -218,7 +250,8 @@ int Connect::createChannel(unsigned int handle, const char * pv, chid &pCh)
{
return ECAFE_INVALID_HANDLE;
}
return (int) status;
return (int) _status;
#undef __METHOD__
};
@@ -238,6 +271,7 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
chid pCh = NULL;
std::pair<cafeConduit_set::iterator, bool> p;
int _status = ICAFE_NORMAL;
// CAFEConduit object initialized and placed into hash map
@@ -346,8 +380,9 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
#endif
// Normal return is ECA_TIMEOUT if pend_io/pend_event is instigated!!
status=createChannel(handle, pv, pCh);
_status=createChannel(handle, pv, pCh);
// Channel Access will spit out an Invalid String Error if pv not a string!
// Possible Errors from ca_create_channel: ECA_NORMAL, ECA_BADTYPE, ECA_STRTOBIG, ECA_ALLOCMEM
// Possible Error from ca_pend_event: ECA_EVDISALLOW
@@ -355,27 +390,28 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
// IF FAILED THROW EXCEPTION
if (status == ECA_BADSTR)
if (_status == ECA_BADSTR)
{
//Cannot Connect::close(handle) in this event else segmentation fault
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv("empty", "empty", (*(p.first)).getHandle(), pCh, status,
__METHOD__, __LINE__);
e = exceptionsHelper.prepareCAFEException_pv("empty", "empty", (*(p.first)).getHandle(),
pCh, _status, __METHOD__, __LINE__);
throw (e);
return status;
return _status;
}
else if (status != ECA_NORMAL && status != ECA_TIMEOUT)
else if (_status != ECA_NORMAL && _status != ECA_TIMEOUT)
{
//Connect::close(handle);
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv((*(p.first)).pv.c_str(), (*(p.first)).pvAlias.c_str(),
(*(p.first)).getHandle(), pCh, status,
(*(p.first)).getHandle(), pCh, _status,
__METHOD__, __LINE__);
throw (e);
return status;
return _status;
}
else if (pCh == NULL)
{
//Connect::close(handle); Close channel in createHandle
CAFEException_pv e;
e = exceptionsHelper.prepareCAFEException_pv( (*(p.first)).pv.c_str(), (*(p.first)).pvAlias.c_str(),
@@ -387,7 +423,7 @@ int Connect::createHandle(const char * pv, ca_client_context * ccc, unsigned in
return ECAFE_NULLCHID;
}
return status;
return _status;
#undef __METHOD__
};
@@ -407,6 +443,8 @@ int Connect::init() //throw (CAFEException_init)
{
#define __METHOD__ "Connect::init()"
int status=ICAFE_NORMAL;
try
{
status=init(ca_enable_preemptive_callback);
@@ -441,8 +479,8 @@ int Connect::init() //throw (CAFEException_init)
int Connect::init(ca_preemptive_callback_select select) //throw (CAFEException_init)
{
#define __METHOD__ "Connect::init(ca_preemptive_callback_select)"
int status=ICAFE_NORMAL;
#if HAVE_PYTHON_H
#if HAVE_PYCAFE_EXT
int pyStatus = PyImport_AppendInittab("PyCafe", PyInit_PyCafe); //Python 3
@@ -456,7 +494,8 @@ int Connect::init(ca_preemptive_callback_select select) //throw (CAFEException_
std::cout << "PyCafe import failed!!" << std::endl;
exit(1);
}
PyInit_PyCafe();
PyInit_PyCafe;
//PyInit_PyCafe_sf();
//Py_Finalize();
//Python 2
//Py_Initialize();
@@ -516,6 +555,8 @@ bool Connect::initCallbackComplete(unsigned int * hArray, unsigned int nHandles)
{
#define __METHOD__ "Connect:initCallbackComplete(unsigned int * hArray, unsigned int nHandle) "
int status=ICAFE_NORMAL;
ChannelRequestStatus cre, crc, crs, crn;
for (unsigned int i=0; i < nHandles; ++i)
{
@@ -573,7 +614,7 @@ int Connect::open(const char ** pvArray, unsigned int * handleArray, const unsig
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char **, unsigned int *, const unsigned int)"
int status=ICAFE_NORMAL;
bool flushAtEndFlag=false;
if (channelOpenPolicy.getWhenToFlushSendBuffer()==FLUSH_AFTER_EACH_CHANNEL_CREATION)
@@ -630,7 +671,7 @@ int Connect::open(const std::string *pvArrayS, unsigned int *handleArray, const
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const std::string *, unsigned int *, unsigned int)"
int status=ICAFE_NORMAL;
bool flushAtEndFlag=false;
if (channelOpenPolicy.getWhenToFlushSendBuffer()==FLUSH_AFTER_EACH_CHANNEL_CREATION)
{
@@ -687,7 +728,7 @@ int Connect::open(std::vector<std::string> pvV, std::vector<unsigned int> &hand
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(vector<string>, vector<unsigned int> &)"
int status=ICAFE_NORMAL;
unsigned int _h=0;
bool flushAtEndFlag=false;
handleV.clear();
@@ -746,7 +787,7 @@ int Connect::open(std::vector<const char *> pvV, std::vector<unsigned int> &hand
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(vector<char *>, vector<unsigned int> &)"
int status=ICAFE_NORMAL;
unsigned int _h=0;
bool flushAtEndFlag=false;
handleV.clear();
@@ -806,7 +847,7 @@ int Connect::open(const char * _pv, const char * _pvAlias, unsigned int & handl
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char * pv, const char * _pvAlias, unsigned int & _handle)"
int status=ICAFE_NORMAL;
try
{
status = open (_pv, handle);
@@ -850,14 +891,13 @@ int Connect::open(const char * _pv, unsigned int &handle)
//throw (CAFEException_open)
{
#define __METHOD__ "Connect::open(const char * _pv, unsigned int &handle)"
int status=ICAFE_NORMAL;
char pv[PVNAME_SIZE];
helper.removeLeadingAndTrailingSpaces(_pv, pv);
// Determine ca-client context
ca_client_context * ccc = ca_current_context();
if (ccc == NULL)
{
try
@@ -885,7 +925,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
// Handles for pvs that are members of a group are treated separately!
handle = handleHelper.getHandleFromPV(pv,ccc);
if (handle != 0)
{
return ICAFE_NORMAL;
@@ -899,7 +939,8 @@ int Connect::open(const char * _pv, unsigned int &handle)
}
catch (CAFEException_pv & e)
{
std::cout << __METHOD__ << " EXCEPTION " << std::endl;
if (e.statusCode != ECA_BADSTR)
{
//ca_flush_io(); // Better Flush or not. Seems that there is not a need.
@@ -916,7 +957,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
std::string ewhat ="CAFEException_open," + std::string(e.pv) + "," + std::to_string(e.handle) + "," \
+ std::to_string(e.statusCode) + "," + e.statusCodeText + "," + e.statusMessage;
CAFEException_open badpv(ewhat);
badpv.pvEx=e;
@@ -940,7 +981,7 @@ int Connect::open(const char * _pv, unsigned int &handle)
int Connect::setPVAlias(unsigned int handle, const char * _pvAlias) //throw(CAFEException_open)
{
#define __METHOD__ "Connect::setPVAlias(unsigned int * _handle, const char * _pv)"
int status=ICAFE_NORMAL;
Helper helper;
char pvAlias[PVNAME_SIZE];
helper.removeLeadingAndTrailingSpaces(_pvAlias, pvAlias);
@@ -1033,7 +1074,7 @@ int Connect::setPVAlias(unsigned int handle, const char * _pvAlias) //throw(CAFE
int Connect::closeChannels(unsigned int * handleArray, unsigned int nHandles)
{
#define __METHOD__ "Connect::closeChannels(unsigned int * handleArray, unsigned int nHandles)"
ca_client_context * cctLocal= ca_current_context();
if (cctLocal == NULL )
{
@@ -1137,7 +1178,7 @@ int Connect::close(unsigned int handle)
// We do not know if this channel belongs to this context!
return ECAFE_NULLCONTEXT;
}
status=ICAFE_NORMAL;
int status=ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -1271,7 +1312,7 @@ int Connect::closeChannels(ca_client_context * cctLocal)
{
return ECAFE_NULLCONTEXT;
}
int status = ICAFE_NORMAL;
int statusGroup = ICAFE_NORMAL;
bool isClearChannel=false;
@@ -1361,7 +1402,7 @@ int Connect::closeChannels(ca_client_context * cctLocal)
int Connect::closeHandle(unsigned int handle)
{
#define __METHOD__ "Connect::closeHandle(unsigned int handle)"
int status = ICAFE_NORMAL;
//We can close handle irrespective of ca_current_context!
ca_client_context * cctLocal= ca_current_context();
status=ICAFE_NORMAL;
@@ -1574,7 +1615,7 @@ int Connect::closeHandles(unsigned int * handleArray, unsigned int nHandles)
int Connect::closeHandles()
{
#define __METHOD__ "Connect::closeHandles()"
int status = ICAFE_NORMAL;
int statusGroup = ECA_NORMAL;
bool isClearChannel =false;
bool isCS =false;
@@ -1649,7 +1690,7 @@ int Connect::closeChannelKeepHandle(unsigned int handle)
{
#define __METHOD__ "Connect::closeChannelKeepHandle(unsigned int handle)"
status=ICAFE_NORMAL;
int status=ICAFE_NORMAL;
//We can close handle irrespective of ca_current_context!
ca_client_context * cctLocal= ca_current_context();
ChannelRegalia channelRegalia;
@@ -2437,7 +2478,7 @@ int Connect::monitorStart(unsigned int handle, MonitorPolicy &mp)
{
#define __METHOD__ "monitorStart(unsigned int handle, MonitorPolicy &mp)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -2602,7 +2643,7 @@ int Connect::monitorStart(unsigned int handle, unsigned int & monitorID)
{
#define __METHOD__ "monitorStart(unsigned int handle, unsigned int & monitorID)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
evid eventID = NULL;
monitorID = (unsigned int) 0;
@@ -2711,7 +2752,7 @@ int Connect::monitorPulseID()
throw(e);
}
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
MonitorPolicy mp;
mp.setUserArgs((void *) (long long) (hPulseID));
@@ -2738,7 +2779,7 @@ int Connect::monitorStopPulseID()
#define __METHOD__ "monitorStopPulseID()"
std::string pulseID=SF_PULSE_ID_PV;
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
status = monitorStop(handleHelper.getHandleFromPV(pulseID.c_str()));
return status;
@@ -2755,7 +2796,7 @@ int Connect::monitorStop()
#define __METHOD__ "monitorStop()"
int statusGroup = ECA_NORMAL;
int status = ICAFE_NORMAL;
bool isClearChannel =false;
if (ca_current_context() != NULL)
@@ -2804,7 +2845,7 @@ int Connect::monitorStop(ca_client_context * cctLocal)
{
return ECAFE_NULLCONTEXT;
}
int status = ICAFE_NORMAL;
int statusGroup = ECA_NORMAL;
bool isClearChannel =false;
@@ -2913,7 +2954,7 @@ int Connect::monitorStop(unsigned int handle)
{
#define __METHOD__ "monitorStop(unsigned int _handle)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -3035,7 +3076,7 @@ int Connect::monitorStop (unsigned int handle, unsigned int monitorID)
{
#define __METHOD__ "monitorStop(unsigned int handle, unsigned int monitorID)"
status = ICAFE_NORMAL;
int status = ICAFE_NORMAL;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;

View File

@@ -8,9 +8,9 @@
#include <connect.h>
#include <conduitFriends.h>
extern cafeConduit_set cs;
extern bool MUTEX;
extern epicsMutex cafeMutex;
//extern cafeConduit_set cs;
//extern bool MUTEX;
//extern epicsMutex cafeMutex;
/**
* Callback function for callbackHandlerAccessRights \n

View File

@@ -792,7 +792,7 @@ int Granules::channelVerifyGet(const unsigned int _handle, chtype _dbrType)
}
// This check of the datatype requested by client and that recorded in the hash table
// is now done in advance of CAFENUM::GET_CACHE_NO_CHECK check made in getCache in instanst.cpp
// is now done in advance of CAFENUM::GET_CACHE_NO_CHECK check made in getCache in instant.cpp
channelRequestMetaDataClient= (*it_handle).getChannelRequestMetaDataClient(); // 2
//2
@@ -927,7 +927,7 @@ int Granules::channelPrepareGet(const unsigned int _handle)
{
//cout << __METHOD__ << endl;
//cout << __METHOD__ << endl;
//cout << " channelRequestMetaData.getNelem() " << channelRequestMetaData.getNelem() << endl;
//cout << " channelRequestMetaDataClient.getNelem() " << channelRequestMetaDataClient.getNelem() << endl;
//cout << " channelRequestMetaDataClient.getOffset() " << channelRequestMetaDataClient.getOffset() << endl;

View File

@@ -928,7 +928,7 @@ int HandleHelper::getChannelRequestStatusGet (unsigned int _handle, Channel
*/
int HandleHelper::getChannelRegalia(unsigned int _handle, ChannelRegalia & channelInfo)
{
#define __METHOD__ "HandleHelper::getChannelInfo(unsigned int _handle, ChannelRegalia channelInfo)"
#define __METHOD__ "HandleHelper::getChannelRegalia(unsigned int _handle, ChannelRegalia channelInfo)"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
@@ -1077,6 +1077,8 @@ int HandleHelper::getUnits(unsigned int _handle, std::string & units)
if (it_handle != handle_index.end())
{
units = (*it_handle).getUnits();
//cout << __FILE__ << "//" << __LINE__ << "//" << __METHOD__ << endl;
//cout << "units" << units << endl;
}
else
{
@@ -1657,6 +1659,123 @@ const char * HandleHelper::getPVAlias(unsigned int handle, ca_client_context * c
#undef __METHOD__
}
cafeConduit_set_by_handle::iterator HandleHelper::getIterFromHandle(unsigned int handle)
{
#define __METHOD__ "HandleHelper::getIterFromHandle(unsigned int handle)"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
//std::cout << __METHOD__ << " pv " << (*it_handle).getPV() << " // " << (*it_handle).handle << std::endl;
return it_handle;
}
else {return it_handle;}
#undef __METHOD__
}
cafeConduit_set_by_handle & HandleHelper::getcsHandleIndex()
{
#define __METHOD__ "HandleHelper::getcsHandleIndex()"
return cs.get<by_handle>();
#undef __METHOD__
}
int HandleHelper::modifyHandleIndexStatus(unsigned int handle, long status)
{
#define __METHOD__ "HandleHelper::modifyHandleIndexStatus()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle, change_status(status));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelTimeoutPolicyGet(unsigned int handle,
ChannelTimeoutPolicy channelTimeoutPolicyGet)
{
#define __METHOD__ "HandleHelper::modifyChannelTimeoutPolicyGet()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelTimeoutPolicyGet(channelTimeoutPolicyGet));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelRequestStatusGet(unsigned int handle,
ChannelRequestStatus channelRequestStatusGet)
{
#define __METHOD__ "HandleHelper::modifyChannelRequestStatusGet()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelRequestStatusGet(channelRequestStatusGet));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
int HandleHelper::modifyChannelRequestMetaDataClient(unsigned int handle,
ChannelRequestMetaDataClient channelRequestMetaDataClient)
{
#define __METHOD__ "HandleHelper::modifyChannelRequestMetaDataClient()"
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
if (it_handle != handle_index.end()) {
handle_index.modify(it_handle,
change_channelRequestMetaDataClient(channelRequestMetaDataClient));
}
else
{
std::cout << "Handle=" << handle << " either never existed or no longer exists " << std::endl;
return ECAFE_INVALID_HANDLE;
}
return ICAFE_NORMAL;
#undef __METHOD__
}
/**
* \brief Retrieves the process variable from a given handle
@@ -1689,9 +1808,14 @@ const char * HandleHelper::getPVFromHandle(unsigned int handle, ca_client_contex
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(handle);
//std::cout << __METHOD__ << "handle_index ==> " << &handle_index << std::endl;
//std::cout << __METHOD__ << "handle_index ==> " << &handle_index << std::endl;
//std::cout << __METHOD__ << "cs " << &cs << std::endl;
if (it_handle != handle_index.end())
{
//std::cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << std::endl;
//std::cout << "Client context: " << ccc << std::endl;
return (*it_handle).getPV();
}
else
@@ -1706,9 +1830,9 @@ const char * HandleHelper::getPVFromHandle(unsigned int handle, ca_client_contex
if ( (*itcs).getHandle()==handle && (*itcs).getClientContext() == ccc)
{
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//cout << " INFORMATION to author: MATCHed Handle= " << handle << " to PV= " << (*itcs).getPV() << endl;
//cout << " by looping through tcs::iterator, while the by_handle::iterator was NOT found! " << endl;
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " INFORMATION to author: MATCHed Handle= " << handle << " to PV= " << (*itcs).getPV() << endl;
cout << " by looping through tcs::iterator, while the by_handle::iterator was NOT found! " << endl;
return (*itcs).getPV();
}
}
@@ -2253,10 +2377,11 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
//Only these have alarm/severity
std::vector<std::string>alarmSeverityRecordTypes;
alarmSeverityRecordTypes.reserve(10);
alarmSeverityRecordTypes.reserve(12);
alarmSeverityRecordTypes.push_back( std::string ( "ai"));
alarmSeverityRecordTypes.push_back( std::string ( "ao"));
alarmSeverityRecordTypes.push_back( std::string ( "calc"));
alarmSeverityRecordTypes.push_back( std::string ( "calcout"));
alarmSeverityRecordTypes.push_back( std::string ( "dfanout"));
alarmSeverityRecordTypes.push_back( std::string ( "longin"));
alarmSeverityRecordTypes.push_back( std::string ( "longout"));
@@ -2266,6 +2391,8 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
alarmSeverityRecordTypes.push_back( std::string ( "steppermotor"));
alarmSeverityRecordTypes.push_back( std::string ( "sub"));
//else use RTYP to get true type
alarmSeverityRecordTypes.push_back( std::string ( "Not Supported by Gateway"));
if (it_handle != handle_index.end())
{
@@ -2320,8 +2447,8 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
// if never connected getStatus is 600 ICAFE_CS_NEVER_CONN
// std::cout << (*it_handle).getPV() << " is Connected " << (*it_handle).isConnected() << std::endl;
// std::cout << "getStatus " << (*it_handle).getStatus() << std::endl;
//std::cout << (*it_handle).getPV() << " is Connected " << (*it_handle).isConnected() << std::endl;
//std::cout << "getStatus " << (*it_handle).getStatus() << std::endl;
// Check if handle has already been supplemented
if ((*it_handle).hasAlarmSeverityStruct())
@@ -2336,6 +2463,7 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
return false;
}
//std::cout << "------ " << std::endl;
PVCtrlHolder _pvc;
@@ -2357,8 +2485,7 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
}
// if Never connected getStatus is 600 ICAFE_CS_NEVER_CONN
// std::cout << "status from getPVCtrlHolder // " << _stat << std::endl;
// std::cout << "status from getPVCtrlHolder // " << _pvc.getStatus() << std::endl;
//_pvc.print();
//return to previous
@@ -2368,8 +2495,6 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
}
if (_stat==ICAFE_NORMAL)
{
//Special test for ENUM value - should never reach here as is mbbi/o record
@@ -2379,32 +2504,34 @@ bool HandleHelper::hasAlarmStatusSeverity(unsigned int _handle)
//}
//enums can have alarms states!!!
if (!((boost::math::isnan)(_pvc.getLowerAlarmLimit_AsDouble())))
{
if (_pvc.getLowerAlarmLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getLowerWarningLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getLowerWarningLimit_AsDouble())))
{
if (_pvc.getLowerWarningLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getUpperWarningLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getUpperWarningLimit_AsDouble())))
{
if (_pvc.getUpperWarningLimit_AsDouble() != 0) {
return true;
}
}
else if (!((boost::math::isnan)(_pvc.getUpperAlarmLimit_AsDouble())))
if (!((boost::math::isnan)(_pvc.getUpperAlarmLimit_AsDouble())))
{
if (_pvc.getUpperAlarmLimit_AsDouble() != 0) {
return true;
}
}
return false;
}
else
@@ -2491,7 +2618,6 @@ int HandleHelper::getAlarmStatusSeverityAsString(unsigned int _handle, std::stri
/**
* \brief Rerieves vector of handles for given vector of PVs
* \param pvV input: vector of PVS
@@ -3891,7 +4017,35 @@ int HandleHelper::getMonitorHandlesAndActions(std::vector<unsigned int> & handle
}
int HandleHelper::updateMonitorPolicyDeltaMS(unsigned int _handle, unsigned int _monid,
unsigned short _deltaMS)
{
cafeConduit_set_by_handle & handle_index=cs.get<by_handle>();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
int status=ICAFE_NORMAL;
if (it_handle != handle_index.end())
{
MonitorPolicy mp = (*it_handle).getMonitorPolicy(_monid);
mp.setNotifyDeltaMilliSeconds(_deltaMS);
if(MUTEX) { cafeMutex.lock();}
handle_index.modify(it_handle, change_monitorPolicy(mp));
if(MUTEX) { cafeMutex.unlock();}
}
else
{
status=ECAFE_INVALID_HANDLE;
if (printErrorPolicy.getInvalidHandle())
{
cafeStatus.report(status);
cout << "Handle=" << _handle << " either never existed or no longer exists " << endl;
}
}
return status;
}
/**
* \brief Gets vector of MonitorIDs in waiting (value=0), i.e., waiting for channel connection

View File

@@ -1,9 +1,8 @@
# makefile.in generated by automake 1.11.1 from makefile.am.
# makefile.in generated by automake 1.16.1 from makefile.am.
# src/makefile. Generated from makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,61 @@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/cafe
pkgincludedir = $(includedir)/cafe
pkglibdir = $(libdir)/cafe
@@ -32,19 +86,13 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = x86_64-unknown-linux-gnu
host_triplet = x86_64-unknown-linux-gnu
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#am__append_1 = zbsCafeService.cpp zbsDataHolders.cpp \
build_triplet = x86_64-pc-linux-gnu
host_triplet = x86_64-pc-linux-gnu
#am__append_1 = PyCafe.cpp
#am__append_2 = zbsCafeService.cpp zbsDataHolders.cpp \
# bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
#am__append_2 = pycafe/PyCafe_sf.cpp
am__append_3 = pycafe/PyCafe.cpp
subdir = src
DIST_COMMON = $(srcdir)/makefile.am $(srcdir)/makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
@@ -52,6 +100,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./include/config.h
CONFIG_CLEAN_FILES =
@@ -77,6 +126,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__installdirs = "$(DESTDIR)$(libdir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libcafe_la_LIBADD =
@@ -87,19 +142,16 @@ am__libcafe_la_SOURCES_DIST = cafe.cpp cafeCache.cpp cafeGroup.cpp \
handleHelper.cpp loadCollectionXMLParser.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp \
policyHelper.cpp conduitGroup.cpp connectGroup.cpp \
transpose.cpp restorePVGroupXMLParser.cpp zbsCafeService.cpp \
zbsDataHolders.cpp bitshuffle/bitshuffle_core.c \
bitshuffle/bitshuffle.c bitshuffle/iochain.c \
pycafe/PyCafe_sf.cpp pycafe/PyCafe.cpp
transpose.cpp restorePVGroupXMLParser.cpp PyCafe.cpp \
zbsCafeService.cpp zbsDataHolders.cpp \
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c \
bitshuffle/iochain.c
#am__objects_1 = PyCafe.lo
am__dirstamp = $(am__leading_dot)dirstamp
#am__objects_1 = zbsCafeService.lo zbsDataHolders.lo \
#am__objects_2 = zbsCafeService.lo zbsDataHolders.lo \
# bitshuffle/bitshuffle_core.lo \
# bitshuffle/bitshuffle.lo \
# bitshuffle/iochain.lo
#am__objects_2 = \
# pycafe/PyCafe_sf.lo
am__objects_3 = \
pycafe/PyCafe.lo
am_libcafe_la_OBJECTS = cafe.lo cafeCache.lo cafeGroup.lo \
cafeVectors.lo cafeXML.lo callbackHandlerCreate.lo \
callbackHandlerMonitor.lo conduit.lo connect.lo \
@@ -107,56 +159,139 @@ am_libcafe_la_OBJECTS = cafe.lo cafeCache.lo cafeGroup.lo \
handleHelper.lo loadCollectionXMLParser.lo \
loadGroupXMLParser.lo methodCallbacks.lo helper.lo \
policyHelper.lo conduitGroup.lo connectGroup.lo transpose.lo \
restorePVGroupXMLParser.lo $(am__objects_1) $(am__objects_2) \
$(am__objects_3)
restorePVGroupXMLParser.lo $(am__objects_1) $(am__objects_2)
libcafe_la_OBJECTS = $(am_libcafe_la_OBJECTS)
libcafe_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
am__v_lt_0 = --silent
am__v_lt_1 =
libcafe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(libcafe_la_LDFLAGS) $(LDFLAGS) -o $@
AM_V_P = $(am__v_P_$(V))
am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_$(V))
am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_$(V))
am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I. -I$(top_builddir)/./include
depcomp = $(SHELL) $(top_srcdir)/./depcomp
am__depfiles_maybe = depfiles
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/PyCafe.Plo ./$(DEPDIR)/cafe.Plo \
./$(DEPDIR)/cafeCache.Plo ./$(DEPDIR)/cafeGroup.Plo \
./$(DEPDIR)/cafeVectors.Plo ./$(DEPDIR)/cafeXML.Plo \
./$(DEPDIR)/callbackHandlerCreate.Plo \
./$(DEPDIR)/callbackHandlerMonitor.Plo ./$(DEPDIR)/conduit.Plo \
./$(DEPDIR)/conduitGroup.Plo ./$(DEPDIR)/connect.Plo \
./$(DEPDIR)/connectCallbacks.Plo ./$(DEPDIR)/connectGroup.Plo \
./$(DEPDIR)/exceptionsHelper.Plo ./$(DEPDIR)/granules.Plo \
./$(DEPDIR)/handleHelper.Plo ./$(DEPDIR)/helper.Plo \
./$(DEPDIR)/loadCollectionXMLParser.Plo \
./$(DEPDIR)/loadGroupXMLParser.Plo \
./$(DEPDIR)/methodCallbacks.Plo ./$(DEPDIR)/policyHelper.Plo \
./$(DEPDIR)/restorePVGroupXMLParser.Plo \
./$(DEPDIR)/transpose.Plo ./$(DEPDIR)/zbsCafeService.Plo \
./$(DEPDIR)/zbsDataHolders.Plo \
bitshuffle/$(DEPDIR)/bitshuffle.Plo \
bitshuffle/$(DEPDIR)/bitshuffle_core.Plo \
bitshuffle/$(DEPDIR)/iochain.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_$(V))
am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_$(V))
am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_$(V))
am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY))
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_$(V))
am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY))
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libcafe_la_SOURCES)
DIST_SOURCES = $(am__libcafe_la_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__DIST_COMMON = $(srcdir)/makefile.in $(top_srcdir)/./depcomp
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run aclocal-1.11
AMTAR = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run tar
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml -I$(top_srcdir)/include
AM_LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
ACLOCAL = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing aclocal-1.16
AMTAR = $${TAR-tar}
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#else
#if HAVE_PYTHON_
#libcafe_la_SOURCES += pycafe/PyCafe.cpp
#endif
AM_CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I$(top_srcdir)/include
AM_DEFAULT_VERBOSITY = 1
AM_LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64
AR = ar
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run automake-1.11
AUTOCONF = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoconf
AUTOHEADER = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing autoheader
AUTOMAKE = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing automake-1.16
AWK = gawk
CAFE_CPPFLAGS = -I$(top_srcdir)/include
CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = /opt/psi/Programming/gcc/7.3.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -I/usr/local/epics/base/include/ -I/usr/local/epics/base/include/os/Linux -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include -I/opt/gfa/python-3.7/latest/include/python3.7m -I/opt/gfa/python-3.7/latest/lib/python3.7/site-packages/numpy/core/include -I/opt/gfa/python-3.7/latest/include/qt -I/opt/gfa/python-3.7/latest/include/qt/QtCore -I/opt/gfa/python-3.7/latest/include/qt/QtXml
CXX = /opt/psi/Programming/gcc/7.3.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/7.3.0/bin/g++ -E
CPP = /opt/psi/Programming/gcc/10.4.0/bin/gcc -E
CPPFLAGS = -fexceptions -fPIC -std=c++1z -z nodefs -I/usr/local/epics/base-7.0.9/include/ -I/usr/local/epics/base-7.0.9/include/os/Linux -I/usr/local/epics/base-7.0.9/include/compiler/gcc -I/opt/gfa/cafe/boost/boost_1_61_0/include/boost -I/opt/gfa/cafe/boost/boost_1_61_0/include
CXX = /opt/psi/Programming/gcc/10.4.0/bin/g++
CXXCPP = /opt/psi/Programming/gcc/10.4.0/bin/g++ -E
CXXDEPMODE = depmode=gcc3
CXXFLAGS = -g -O2
CYGPATH_W = echo
@@ -172,24 +307,24 @@ EGREP = /bin/grep -E
EXEEXT =
FGREP = /bin/grep -F
GREP = /bin/grep
INSTALL = /usr/bin/install -c
INSTALL = /bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base/lib/SL6-x86_64 -Wl,-rpath,/usr/local/epics/base/lib/SL6-x86_64 -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib -L/opt/gfa/python-3.7/latest/lib -Wl,-rpath,/opt/gfa/python-3.7/latest/lib
LD = /bin/ld -m elf_x86_64
LDFLAGS = -L/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64 -Wl,-rpath,/usr/local/epics/base-7.0.9/lib/RHEL8-x86_64
LIBOBJS =
LIBS = -lQt5Xml -lpython3.7m
LIBS =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO =
LN_S = ln -s
LTLIBOBJS =
LT_SYS_LIBRARY_PATH =
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/missing --run makeinfo
MAKEINFO = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/missing makeinfo
MANIFEST_TOOL = :
MKDIR_P = /bin/mkdir -p
NM = /usr/bin/nm -B
NM = /bin/nm -B
NMEDIT =
OBJDUMP = objdump
OBJEXT = o
@@ -198,59 +333,60 @@ OTOOL64 =
PACKAGE = cafe
PACKAGE_BUGREPORT = Bug reports to: jan.chrin@psi.ch
PACKAGE_NAME = CAFE
PACKAGE_STRING = CAFE 1.13.0
PACKAGE_STRING = CAFE 1.22.0
PACKAGE_TARNAME = cafe
PACKAGE_VERSION = 1.13.0
PACKAGE_URL =
PACKAGE_VERSION = 1.22.0
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE =
SHELL = /bin/sh
STRIP = strip
VERSION = 1.13.0
abs_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/src
abs_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/src
abs_top_builddir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitlab/CAFE/cpp
VERSION = 1.22.0
abs_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp/src
abs_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp/src
abs_top_builddir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
abs_top_srcdir = /afs/psi.ch/project/cafe/gitea/CAFE/cpp
ac_ct_AR = ar
ac_ct_CC = /opt/psi/Programming/gcc/7.3.0/bin/gcc
ac_ct_CC = /opt/psi/Programming/gcc/10.4.0/bin/gcc
ac_ct_CXX =
ac_ct_DUMPBIN =
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
am__tar = $${TAR-tar} chof - "$$tardir"
am__untar = $${TAR-tar} xf -
bindir = ${exec_prefix}/bin
build = x86_64-unknown-linux-gnu
build = x86_64-pc-linux-gnu
build_alias =
build_cpu = x86_64
build_os = linux-gnu
build_vendor = unknown
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = x86_64-unknown-linux-gnu
host = x86_64-pc-linux-gnu
host_alias =
host_cpu = x86_64
host_os = linux-gnu
host_vendor = unknown
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitlab/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.13.0/lib/SL6-x86_64
install_sh = ${SHELL} /afs/psi.ch/project/cafe/gitea/CAFE/cpp/install-sh
libdir = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0/lib/RHEL8-x86_64
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
mkdir_p = $(MKDIR_P)
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /opt/gfa/cafe/cpp/cafe-1.13.0
prefix = /opt/gfa/cafe/cpp/cafe-1.22.0-gcc-10.4.0
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
@@ -269,8 +405,8 @@ lib_LTLIBRARIES = libcafe.la
#1st: current-age
#2nd: age
#3rd: revision
#1.9.1 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 14:0:13
#1.9.2 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 23:0:22
libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp \
cafeVectors.cpp cafeXML.cpp callbackHandlerCreate.cpp \
callbackHandlerMonitor.cpp conduit.cpp connect.cpp \
@@ -279,7 +415,7 @@ libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp \
policyHelper.cpp conduitGroup.cpp connectGroup.cpp \
transpose.cpp restorePVGroupXMLParser.cpp $(am__append_1) \
$(am__append_2) $(am__append_3)
$(am__append_2)
all: all-am
.SUFFIXES:
@@ -296,14 +432,13 @@ $(srcdir)/makefile.in: $(srcdir)/makefile.am $(am__configure_deps)
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/makefile
.PRECIOUS: makefile
makefile: $(srcdir)/makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -314,9 +449,9 @@ $(top_srcdir)/configure: $(am__configure_deps)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
list2=; for p in $$list; do \
if test -f $$p; then \
@@ -324,6 +459,8 @@ install-libLTLIBRARIES: $(lib_LTLIBRARIES)
else :; fi; \
done; \
test -z "$$list2" || { \
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
}
@@ -339,12 +476,14 @@ uninstall-libLTLIBRARIES:
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
@list='$(lib_LTLIBRARIES)'; \
locs=`for p in $$list; do echo $$p; done | \
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
sort -u`; \
test -z "$$locs" || { \
echo rm -f $${locs}; \
rm -f $${locs}; \
}
bitshuffle/$(am__dirstamp):
@$(MKDIR_P) bitshuffle
@: > bitshuffle/$(am__dirstamp)
@@ -357,112 +496,100 @@ bitshuffle/bitshuffle.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
bitshuffle/iochain.lo: bitshuffle/$(am__dirstamp) \
bitshuffle/$(DEPDIR)/$(am__dirstamp)
pycafe/$(am__dirstamp):
@$(MKDIR_P) pycafe
@: > pycafe/$(am__dirstamp)
pycafe/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) pycafe/$(DEPDIR)
@: > pycafe/$(DEPDIR)/$(am__dirstamp)
pycafe/PyCafe_sf.lo: pycafe/$(am__dirstamp) \
pycafe/$(DEPDIR)/$(am__dirstamp)
pycafe/PyCafe.lo: pycafe/$(am__dirstamp) \
pycafe/$(DEPDIR)/$(am__dirstamp)
libcafe.la: $(libcafe_la_OBJECTS) $(libcafe_la_DEPENDENCIES)
$(libcafe_la_LINK) -rpath $(libdir) $(libcafe_la_OBJECTS) $(libcafe_la_LIBADD) $(LIBS)
libcafe.la: $(libcafe_la_OBJECTS) $(libcafe_la_DEPENDENCIES) $(EXTRA_libcafe_la_DEPENDENCIES)
$(AM_V_CXXLD)$(libcafe_la_LINK) -rpath $(libdir) $(libcafe_la_OBJECTS) $(libcafe_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f bitshuffle/bitshuffle.$(OBJEXT)
-rm -f bitshuffle/bitshuffle.lo
-rm -f bitshuffle/bitshuffle_core.$(OBJEXT)
-rm -f bitshuffle/bitshuffle_core.lo
-rm -f bitshuffle/iochain.$(OBJEXT)
-rm -f bitshuffle/iochain.lo
-rm -f pycafe/PyCafe.$(OBJEXT)
-rm -f pycafe/PyCafe.lo
-rm -f pycafe/PyCafe_sf.$(OBJEXT)
-rm -f pycafe/PyCafe_sf.lo
-rm -f bitshuffle/*.$(OBJEXT)
-rm -f bitshuffle/*.lo
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/cafe.Plo
include ./$(DEPDIR)/cafeCache.Plo
include ./$(DEPDIR)/cafeGroup.Plo
include ./$(DEPDIR)/cafeVectors.Plo
include ./$(DEPDIR)/cafeXML.Plo
include ./$(DEPDIR)/callbackHandlerCreate.Plo
include ./$(DEPDIR)/callbackHandlerMonitor.Plo
include ./$(DEPDIR)/conduit.Plo
include ./$(DEPDIR)/conduitGroup.Plo
include ./$(DEPDIR)/connect.Plo
include ./$(DEPDIR)/connectCallbacks.Plo
include ./$(DEPDIR)/connectGroup.Plo
include ./$(DEPDIR)/exceptionsHelper.Plo
include ./$(DEPDIR)/granules.Plo
include ./$(DEPDIR)/handleHelper.Plo
include ./$(DEPDIR)/helper.Plo
include ./$(DEPDIR)/loadCollectionXMLParser.Plo
include ./$(DEPDIR)/loadGroupXMLParser.Plo
include ./$(DEPDIR)/methodCallbacks.Plo
include ./$(DEPDIR)/policyHelper.Plo
include ./$(DEPDIR)/restorePVGroupXMLParser.Plo
include ./$(DEPDIR)/transpose.Plo
include ./$(DEPDIR)/zbsCafeService.Plo
include ./$(DEPDIR)/zbsDataHolders.Plo
include bitshuffle/$(DEPDIR)/bitshuffle.Plo
include bitshuffle/$(DEPDIR)/bitshuffle_core.Plo
include bitshuffle/$(DEPDIR)/iochain.Plo
include pycafe/$(DEPDIR)/PyCafe.Plo
include pycafe/$(DEPDIR)/PyCafe_sf.Plo
include ./$(DEPDIR)/PyCafe.Plo # am--include-marker
include ./$(DEPDIR)/cafe.Plo # am--include-marker
include ./$(DEPDIR)/cafeCache.Plo # am--include-marker
include ./$(DEPDIR)/cafeGroup.Plo # am--include-marker
include ./$(DEPDIR)/cafeVectors.Plo # am--include-marker
include ./$(DEPDIR)/cafeXML.Plo # am--include-marker
include ./$(DEPDIR)/callbackHandlerCreate.Plo # am--include-marker
include ./$(DEPDIR)/callbackHandlerMonitor.Plo # am--include-marker
include ./$(DEPDIR)/conduit.Plo # am--include-marker
include ./$(DEPDIR)/conduitGroup.Plo # am--include-marker
include ./$(DEPDIR)/connect.Plo # am--include-marker
include ./$(DEPDIR)/connectCallbacks.Plo # am--include-marker
include ./$(DEPDIR)/connectGroup.Plo # am--include-marker
include ./$(DEPDIR)/exceptionsHelper.Plo # am--include-marker
include ./$(DEPDIR)/granules.Plo # am--include-marker
include ./$(DEPDIR)/handleHelper.Plo # am--include-marker
include ./$(DEPDIR)/helper.Plo # am--include-marker
include ./$(DEPDIR)/loadCollectionXMLParser.Plo # am--include-marker
include ./$(DEPDIR)/loadGroupXMLParser.Plo # am--include-marker
include ./$(DEPDIR)/methodCallbacks.Plo # am--include-marker
include ./$(DEPDIR)/policyHelper.Plo # am--include-marker
include ./$(DEPDIR)/restorePVGroupXMLParser.Plo # am--include-marker
include ./$(DEPDIR)/transpose.Plo # am--include-marker
include ./$(DEPDIR)/zbsCafeService.Plo # am--include-marker
include ./$(DEPDIR)/zbsDataHolders.Plo # am--include-marker
include bitshuffle/$(DEPDIR)/bitshuffle.Plo # am--include-marker
include bitshuffle/$(DEPDIR)/bitshuffle_core.Plo # am--include-marker
include bitshuffle/$(DEPDIR)/iochain.Plo # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.c.o:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# source='$<' object='$@' libtool=no \
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c -o $@ $<
# $(AM_V_CC_no)$(COMPILE) -c -o $@ $<
.c.obj:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# source='$<' object='$@' libtool=no \
# $(AM_V_CC)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Plo
# source='$<' object='$@' libtool=yes \
# $(AM_V_CC)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(LTCOMPILE) -c -o $@ $<
# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $<
.cpp.o:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# source='$<' object='$@' libtool=no \
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(CXXCOMPILE) -c -o $@ $<
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
$(am__mv) $$depbase.Tpo $$depbase.Po
# source='$<' object='$@' libtool=no \
# $(AM_V_CXX)source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
# $(AM_V_CXX_no)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
$(am__mv) $$depbase.Tpo $$depbase.Plo
# source='$<' object='$@' libtool=yes \
# $(AM_V_CXX)source='$<' object='$@' libtool=yes \
# DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
# $(LTCXXCOMPILE) -c -o $@ $<
# $(AM_V_CXX_no)$(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -470,28 +597,16 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-rm -rf bitshuffle/.libs bitshuffle/_libs
-rm -rf pycafe/.libs pycafe/_libs
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
@@ -503,15 +618,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
@@ -520,11 +631,29 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -571,10 +700,15 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
clean-generic:
@@ -584,8 +718,6 @@ distclean-generic:
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-rm -f bitshuffle/$(DEPDIR)/$(am__dirstamp)
-rm -f bitshuffle/$(am__dirstamp)
-rm -f pycafe/$(DEPDIR)/$(am__dirstamp)
-rm -f pycafe/$(am__dirstamp)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -596,7 +728,34 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR) pycafe/$(DEPDIR)
-rm -f ./$(DEPDIR)/PyCafe.Plo
-rm -f ./$(DEPDIR)/cafe.Plo
-rm -f ./$(DEPDIR)/cafeCache.Plo
-rm -f ./$(DEPDIR)/cafeGroup.Plo
-rm -f ./$(DEPDIR)/cafeVectors.Plo
-rm -f ./$(DEPDIR)/cafeXML.Plo
-rm -f ./$(DEPDIR)/callbackHandlerCreate.Plo
-rm -f ./$(DEPDIR)/callbackHandlerMonitor.Plo
-rm -f ./$(DEPDIR)/conduit.Plo
-rm -f ./$(DEPDIR)/conduitGroup.Plo
-rm -f ./$(DEPDIR)/connect.Plo
-rm -f ./$(DEPDIR)/connectCallbacks.Plo
-rm -f ./$(DEPDIR)/connectGroup.Plo
-rm -f ./$(DEPDIR)/exceptionsHelper.Plo
-rm -f ./$(DEPDIR)/granules.Plo
-rm -f ./$(DEPDIR)/handleHelper.Plo
-rm -f ./$(DEPDIR)/helper.Plo
-rm -f ./$(DEPDIR)/loadCollectionXMLParser.Plo
-rm -f ./$(DEPDIR)/loadGroupXMLParser.Plo
-rm -f ./$(DEPDIR)/methodCallbacks.Plo
-rm -f ./$(DEPDIR)/policyHelper.Plo
-rm -f ./$(DEPDIR)/restorePVGroupXMLParser.Plo
-rm -f ./$(DEPDIR)/transpose.Plo
-rm -f ./$(DEPDIR)/zbsCafeService.Plo
-rm -f ./$(DEPDIR)/zbsDataHolders.Plo
-rm -f bitshuffle/$(DEPDIR)/bitshuffle.Plo
-rm -f bitshuffle/$(DEPDIR)/bitshuffle_core.Plo
-rm -f bitshuffle/$(DEPDIR)/iochain.Plo
-rm -f makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
@@ -642,7 +801,34 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR) bitshuffle/$(DEPDIR) pycafe/$(DEPDIR)
-rm -f ./$(DEPDIR)/PyCafe.Plo
-rm -f ./$(DEPDIR)/cafe.Plo
-rm -f ./$(DEPDIR)/cafeCache.Plo
-rm -f ./$(DEPDIR)/cafeGroup.Plo
-rm -f ./$(DEPDIR)/cafeVectors.Plo
-rm -f ./$(DEPDIR)/cafeXML.Plo
-rm -f ./$(DEPDIR)/callbackHandlerCreate.Plo
-rm -f ./$(DEPDIR)/callbackHandlerMonitor.Plo
-rm -f ./$(DEPDIR)/conduit.Plo
-rm -f ./$(DEPDIR)/conduitGroup.Plo
-rm -f ./$(DEPDIR)/connect.Plo
-rm -f ./$(DEPDIR)/connectCallbacks.Plo
-rm -f ./$(DEPDIR)/connectGroup.Plo
-rm -f ./$(DEPDIR)/exceptionsHelper.Plo
-rm -f ./$(DEPDIR)/granules.Plo
-rm -f ./$(DEPDIR)/handleHelper.Plo
-rm -f ./$(DEPDIR)/helper.Plo
-rm -f ./$(DEPDIR)/loadCollectionXMLParser.Plo
-rm -f ./$(DEPDIR)/loadGroupXMLParser.Plo
-rm -f ./$(DEPDIR)/methodCallbacks.Plo
-rm -f ./$(DEPDIR)/policyHelper.Plo
-rm -f ./$(DEPDIR)/restorePVGroupXMLParser.Plo
-rm -f ./$(DEPDIR)/transpose.Plo
-rm -f ./$(DEPDIR)/zbsCafeService.Plo
-rm -f ./$(DEPDIR)/zbsDataHolders.Plo
-rm -f bitshuffle/$(DEPDIR)/bitshuffle.Plo
-rm -f bitshuffle/$(DEPDIR)/bitshuffle_core.Plo
-rm -f bitshuffle/$(DEPDIR)/iochain.Plo
-rm -f makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -663,19 +849,21 @@ uninstall-am: uninstall-libLTLIBRARIES
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am \
install-libLTLIBRARIES install-man install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
ctags ctags-am distclean distclean-compile distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-libLTLIBRARIES install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-libLTLIBRARIES
tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES
.PRECIOUS: makefile
# Tell versions [3.59,3.63) of GNU make to not export all variables.

View File

@@ -11,31 +11,32 @@ lib_LTLIBRARIES = libcafe.la
#1st: current-age
#2nd: age
#3rd: revision
#1.9.1 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 14:0:13
#1.9.2 1.10.2 1.11.0 1.11.1 1.12.0 1.12.1 1.12.2 1.12.4
libcafe_la_LDFLAGS = -version-info 23:0:22
libcafe_la_SOURCES = cafe.cpp cafeCache.cpp cafeGroup.cpp cafeVectors.cpp cafeXML.cpp \
callbackHandlerCreate.cpp callbackHandlerMonitor.cpp conduit.cpp connect.cpp connectCallbacks.cpp \
exceptionsHelper.cpp granules.cpp handleHelper.cpp loadCollectionXMLParser.cpp \
loadGroupXMLParser.cpp methodCallbacks.cpp helper.cpp policyHelper.cpp \
conduitGroup.cpp connectGroup.cpp transpose.cpp restorePVGroupXMLParser.cpp
conduitGroup.cpp connectGroup.cpp transpose.cpp restorePVGroupXMLParser.cpp
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
if HAVE_PYCAFE_EXT_
libcafe_la_SOURCES += PyCafe.cpp
endif
if HAVE_ZEROMQ_
libcafe_la_SOURCES += zbsCafeService.cpp zbsDataHolders.cpp \
bitshuffle/bitshuffle_core.c bitshuffle/bitshuffle.c bitshuffle/iochain.c
if HAVE_PYCAFE_EXT_
libcafe_la_SOURCES += pycafe/PyCafe_sf.cpp
endif
else
if HAVE_PYTHON_
libcafe_la_SOURCES += pycafe/PyCafe.cpp
endif
#if HAVE_PYCAFE_EXT_
#libcafe_la_SOURCES += PyCafe.cpp
#endif
#else
#if HAVE_PYTHON_
#libcafe_la_SOURCES += pycafe/PyCafe.cpp
#endif
endif
AM_CPPFLAGS = @AM_CPPFLAGS@ @CAFE_CPPFLAGS@

View File

@@ -17,6 +17,7 @@ using namespace std;
//#include <PyCafe_api.h>
//#endif
#define RETURN_ON_ERROR false
#if HAVE_PYTHON_H
@@ -32,7 +33,7 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
@@ -47,26 +48,13 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)cafeMutex.lock();
//Change Channel Policy to NO_WAIT(?)
ChannelRequestStatus channelRequestStatusPut=(*it_handle).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(it_handle, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
//if HAVE_PYTHON_H
if(MUTEX)cafeMutex.unlock();
(*it_handle).PyPutHandler();
//endif
}
else
{
@@ -76,7 +64,6 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -87,12 +74,8 @@ void CALLBACK_CAFE::PyHandlerPut( struct event_handler_args args)
ChannelRequestStatus channelRequestStatusPut=(*itcs).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(itcs, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
//if HAVE_PYTHON_H
if(MUTEX)cafeMutex.unlock();
(*it_handle).PyPutHandler();
//endif
internalFlag=true;
break;
}
@@ -125,12 +108,11 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
#define __METHOD__ "CALLBACK_CAFE::PyHandlerGet"
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -141,7 +123,7 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
if (it_handle != handle_index.end())
{
ChannelRequestStatus channelRequestStatusGet=(*it_handle).getChannelRequestStatusGet();
channelRequestStatusGet.setCallbackKind(false, true);
@@ -156,22 +138,16 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
{
cafeMutex.unlock();
}
//if HAVE_PYTHON_H
(*it_handle).PyGetHandler();
//endif
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -186,17 +162,16 @@ void CALLBACK_CAFE::PyHandlerGet( struct event_handler_args args)
}
handle_index.modify(itcs, change_eventHandlerArgs (args));
handle_index.modify(itcs, change_channelRequestStatusGet(channelRequestStatusGet));
if(MUTEX)
{
cafeMutex.unlock();
}
//if HAVE_PYTHON_H
(*it_handle).PyGetHandler();
//endif
internalFlag=true;
break;
}
@@ -231,17 +206,15 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr;
unsigned long long pulse_id=0;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find((unsigned int) _handle);
if (it_handle != handle_index.end())
@@ -262,7 +235,6 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
@@ -271,28 +243,6 @@ void CALLBACK_CAFE::handlerPulseID( struct event_handler_args args)
return;
}
/*
PVDataHolder pvd;
(*it_handle).getPVDataHolder(pvd);
*/
/*
cafeConduit_set::iterator itcs;
// Loop through all elements
for (itcs = cs.begin(); itcs != cs.end(); ++itcs) {
if ((*itcs).getChannelID() != NULL) {
if(MUTEX){cafeMutex.lock();}
handle_index.modify(itcs, change_beamEventNo(pulse_id));
if(MUTEX){cafeMutex.unlock();}
}
}
*/
return;
#undef __METHOD__
};
@@ -310,7 +260,7 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr;
@@ -318,7 +268,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
//cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
//cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << " handle " << _handle << endl;
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -326,30 +275,20 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)cafeMutex.lock();
//Change Channel Policy to NO_WAIT(?)
ChannelRequestStatus channelRequestStatusPut=(*it_handle).getChannelRequestStatusPut();
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(it_handle, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -361,8 +300,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
channelRequestStatusPut.setCallbackKind(false, true);
handle_index.modify(itcs, change_channelRequestStatusPut(channelRequestStatusPut));
if(MUTEX)cafeMutex.unlock();
internalFlag=true;
break;
}
@@ -373,7 +310,6 @@ void CALLBACK_CAFE::handlerPut( struct event_handler_args args)
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
}
return;
@@ -391,16 +327,21 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
{
#define __METHOD__ "CALLBACK_CAFE::handlerGet"
if (args.status !=ECA_NORMAL)
if (args.status != ECA_NORMAL)
{
//if ("ARIDI-BPM-01LE:WF-INT-1" == ca_name (args.chid) ) {
//if ("X09DA-FE-CCD1:FPICTURE" == ca_name (args.chid) ) {
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
//}
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
@@ -408,38 +349,33 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
if (it_handle != handle_index.end())
{
ChannelRequestStatus channelRequestStatusGet=(*it_handle).getChannelRequestStatusGet();
channelRequestStatusGet.setCallbackKind(false, true);
if(MUTEX)
{
cafeMutex.lock();
}
handle_index.modify(it_handle, change_eventHandlerArgs (args));
handle_index.modify(it_handle, change_eventHandlerArgs (args));
handle_index.modify(it_handle, change_channelRequestStatusGet(channelRequestStatusGet));
//cout << __METHOD__ << " CALLBACK DONE " << (*it_handle).getChannelRequestStatusGet().getCallbackProgressKind() << endl;
//cout << "handle/// " << _handle << endl;
if(MUTEX)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << " INFORMATION to author: MATCHed Handle= " << _handle << " to PV= " << (*itcs).getPV() << endl;
cout << " by looping through tcs::iterator, since the by_handle::iterator was NOT found! " << endl;
ChannelRequestStatus channelRequestStatusGet=(*itcs).getChannelRequestStatusGet();
channelRequestStatusGet.setCallbackKind(false, true);
if(MUTEX)
@@ -452,7 +388,6 @@ void CALLBACK_CAFE::handlerGet( struct event_handler_args args)
{
cafeMutex.unlock();
}
internalFlag=true;
break;
}
@@ -487,7 +422,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
//JC May 2021 Still want to update multi-index container even if status has error
/*
#if HAVE_PYTHON_H
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -506,8 +442,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
}
}
#endif
return;
*/
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -517,10 +453,8 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -569,7 +503,6 @@ void CALLBACK_CAFE::handlerGetCtrlAtConnect( struct event_handler_args args)
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -634,8 +567,7 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -645,10 +577,8 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -673,13 +603,11 @@ void CALLBACK_CAFE::handlerGetCtrl( struct event_handler_args args)
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -738,8 +666,7 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
@@ -752,7 +679,6 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -774,17 +700,14 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -822,8 +745,6 @@ void CALLBACK_CAFE::handlerGetSTSACK( struct event_handler_args args)
cout << " Internal CAFE ERROR! Unknown Handle! handle=" << _handle << endl;
}
}
return;
#undef __METHOD__
};
@@ -839,13 +760,12 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
#define __METHOD__ "CALLBACK_CAFE::handlerGetClassName "
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
//return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -853,12 +773,10 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
cafeConduit_set_by_handle & handle_index = cs.get<by_handle> ();
cafeConduit_set_by_handle::iterator it_handle;
it_handle = handle_index.find(_handle);
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -870,7 +788,6 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
}
ChannelRequestStatus channelRequestStatusGetClassName=(*it_handle).getChannelRequestStatusGetClassName();
channelRequestStatusGetClassName.setCallbackKind(false, true);
if(MUTEX)
@@ -882,17 +799,14 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
@@ -919,7 +833,6 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
{
cafeMutex.unlock();
}
internalFlag=true;
break;
}
@@ -939,19 +852,19 @@ void CALLBACK_CAFE::handlerGetClassName( struct event_handler_args args)
/**
* Callback function for handlerClassName method is invoked
* Callback function for handlerGetDescription method is invoked
* with a pointer to the retrieved value
* \param args input: event handler arguments
*/
void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
{
#define __METHOD__ "CALLBACK_CAFE::handlerGetDesscription "
#define __METHOD__ "CALLBACK_CAFE::handlerGetDescription "
if (args.status !=ECA_NORMAL)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;
cout << "Status=" << args.status << " for channel " << ca_name (args.chid) << endl;
return;
if (RETURN_ON_ERROR == true) return;
}
unsigned int _handle = (unsigned long) args.usr; // ca_puser(args.chid);
@@ -963,7 +876,6 @@ void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
if (it_handle != handle_index.end())
{
if(MUTEX)
{
cafeMutex.lock();
@@ -973,17 +885,14 @@ void CALLBACK_CAFE::handlerGetDescription( struct event_handler_args args)
{
cafeMutex.unlock();
}
}
else
{
bool internalFlag=false;
cafeConduit_set::iterator itcs;
// Loop through all elements and search for handle
for (itcs = cs.begin(); itcs != cs.end(); ++itcs)
{
if ( (*itcs).getHandle()==_handle)
{
cout << __FILE__ << "/" << __LINE__ << "/" << __METHOD__ << endl;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More