import of www.freescada.com/public-dist/libmbus-0.7.0.tar.gz
This commit is contained in:
commit
19135a6bc1
COPYINGINSTALLMakefile-staticMakefile.amMakefile.inaclocal.m4
autom4te.cache
bin
Makefile-staticMakefile.amMakefile.inmbus-serial-request-data.cmbus-serial-scan-secondary.cmbus-serial-scan.cmbus-serial-select-secondary.cmbus-tcp-request-data.cmbus-tcp-scan-secondary.cmbus-tcp-scan.cmbus-tcp-select-secondary.cmbus_serial_scan.cmbus_slave_init.c
build.shconfig.guessconfig.h.inconfig.subconfigureconfigure.acdepcompdoxygen.cfghardware
install-shlibmbus.pclibmbus.pc.inltmain.shm4
mbus
Makefile.amMakefile.inmbus-protocol-aux.cmbus-protocol-aux.hmbus-protocol.cmbus-protocol.hmbus-serial.cmbus-serial.hmbus-tcp.cmbus-tcp.hmbus.cmbus.h
missingrelease_notes.txttest
Makefile.amMakefile.inmbus_parse.cmbus_parse_hex.cmbus_unit_test1.c
test-frames
electricity-meter-1.hexelectricity-meter-1.xmlelectricity-meter-2.hexelectricity-meter-2.xmlframe1.hexframe1.xmlframe2.hexframe2.xmlkamstrup_multical_601.hexkamstrup_multical_601.xmlmanual_frame2.hexmanual_frame2.xmlmanual_frame3.hexmanual_frame3.xmlmanual_frame7.hexmanual_frame7.xmlsvm_f22_telegram1.hexsvm_f22_telegram1.xml
unsupported-frames
32
COPYING
Normal file
32
COPYING
Normal file
@ -0,0 +1,32 @@
|
||||
Copyright (C) 2010-2011, Raditex AB
|
||||
All rights reserved.
|
||||
|
||||
FreeSCADA
|
||||
http://www.FreeSCADA.com
|
||||
freescada@freescada.com
|
||||
|
||||
The libmbus library is a component of FreeSCADA that is published as open source, and it is free for anyone to use as long as due credit it given to FreeSCADA and Raditex Control in derivative work based on the libmbus library.
|
||||
|
||||
Main developers:
|
||||
|
||||
* Robert Johansson <rob@raditex.nu>
|
||||
|
||||
Other contributers:
|
||||
|
||||
* Markus Bergkvist kindly contributed numerous patches that improved the libmbus API and increased compatibility with the M-BUS standard.
|
||||
|
||||
|
||||
LICENSE:
|
||||
|
||||
Copyright (c) 2010-2011, Raditex Control AB
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of the Raditex Control AB nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
1
INSTALL
Symbolic link
1
INSTALL
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/share/automake-1.11/INSTALL
|
25
Makefile-static
Normal file
25
Makefile-static
Normal file
@ -0,0 +1,25 @@
|
||||
# Copyright (c) 2010
|
||||
# Robert Johansson
|
||||
# Raditex AB.
|
||||
# All rights reserved.
|
||||
|
||||
LIB = libmbus.so
|
||||
|
||||
CFLAGS = -Wall -W -g -fPIC -I.
|
||||
HEADERS = mbus.h mbus-protocol.h
|
||||
OBJS = mbus.o mbus-protocol.o
|
||||
|
||||
$(LIB): $(OBJS)
|
||||
gcc -shared -o $(LIB) $(OBJS)
|
||||
|
||||
all: $(LIB)
|
||||
|
||||
clean:
|
||||
rm -rf *.o *core core $(LIB)
|
||||
|
||||
test:
|
||||
(cd test && make)
|
||||
|
||||
install: all
|
||||
cp $(LIB) /usr/local/freescada/lib
|
||||
cp $(HEADERS) /usr/local/freescada/include
|
12
Makefile.am
Normal file
12
Makefile.am
Normal file
@ -0,0 +1,12 @@
|
||||
#
|
||||
#
|
||||
#
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmbus.pc
|
||||
|
||||
SUBDIRS = mbus bin
|
||||
ACLOCAL = aclocal -I .
|
||||
ACLOCAL_AMFLAGS = -Werror -I m4
|
776
Makefile.in
Normal file
776
Makefile.in
Normal file
@ -0,0 +1,776 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = .
|
||||
DIST_COMMON = $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
|
||||
$(srcdir)/libmbus.pc.in $(top_srcdir)/configure COPYING \
|
||||
INSTALL 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 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = config.h
|
||||
CONFIG_CLEAN_FILES = libmbus.pc
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
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
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
|
||||
DATA = $(pkgconfig_DATA)
|
||||
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
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
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)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = aclocal -I .
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = libmbus.pc
|
||||
SUBDIRS = mbus bin
|
||||
ACLOCAL_AMFLAGS = -Werror -I m4
|
||||
all: config.h
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign 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);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
config.h: stamp-h1
|
||||
@if test ! -f $@; then \
|
||||
rm -f stamp-h1; \
|
||||
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
|
||||
else :; fi
|
||||
|
||||
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
|
||||
@rm -f stamp-h1
|
||||
cd $(top_builddir) && $(SHELL) ./config.status config.h
|
||||
$(srcdir)/config.h.in: $(am__configure_deps)
|
||||
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||
rm -f stamp-h1
|
||||
touch $@
|
||||
|
||||
distclean-hdr:
|
||||
-rm -f config.h stamp-h1
|
||||
libmbus.pc: $(top_builddir)/config.status $(srcdir)/libmbus.pc.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool config.lt
|
||||
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
|
||||
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-pkgconfigDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
|
||||
|
||||
# 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; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(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: $(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) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
empty_fix=.; \
|
||||
else \
|
||||
include_option=--include; \
|
||||
empty_fix=; \
|
||||
fi; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) config.h.in $(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; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
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 \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -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)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-shar: distdir
|
||||
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-zip: distdir
|
||||
-rm -f $(distdir).zip
|
||||
zip -rq $(distdir).zip $(distdir)
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist dist-all: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__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
|
||||
# tarfile.
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gzip -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.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 ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(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" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||
distuninstallcheck \
|
||||
&& chmod -R a-w "$$dc_install_base" \
|
||||
&& ({ \
|
||||
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__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 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
fi ; \
|
||||
$(distuninstallcheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
distcleancheck: distclean
|
||||
@if test '$(srcdir)' = . ; then \
|
||||
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(DATA) config.h
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(pkgconfigdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-recursive
|
||||
install-exec: install-exec-recursive
|
||||
install-data: install-data-recursive
|
||||
uninstall: uninstall-recursive
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-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
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-recursive
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-hdr \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgconfigDATA
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -rf $(top_srcdir)/autom4te.cache
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-recursive
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-pkgconfigDATA
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
|
||||
ctags-recursive install-am install-strip tags-recursive
|
||||
|
||||
.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-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-pkgconfigDATA 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-pkgconfigDATA
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
956
aclocal.m4
vendored
Normal file
956
aclocal.m4
vendored
Normal file
@ -0,0 +1,956 @@
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
# 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
|
||||
[m4_warning([this file was generated for autoconf 2.68.
|
||||
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||
If you have problems, you may need to regenerate the build system entirely.
|
||||
To do so, use the procedure documented by the package, typically `autoreconf'.])])
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
# generated from the m4 files accompanying Automake X.Y.
|
||||
# (This private macro should not be called outside this file.)
|
||||
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||
[am__api_version='1.11'
|
||||
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||
dnl require some minimum version. Point them to the right macro.
|
||||
m4_if([$1], [1.11.1], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
# _AM_AUTOCONF_VERSION(VERSION)
|
||||
# -----------------------------
|
||||
# aclocal traces this macro to find the Autoconf version.
|
||||
# This is a private macro too. Using m4_define simplifies
|
||||
# the logic in aclocal, which can simply ignore this definition.
|
||||
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||
|
||||
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||
# -------------------------------
|
||||
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||
[AM_AUTOMAKE_VERSION([1.11.1])dnl
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||
|
||||
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
|
||||
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
|
||||
#
|
||||
# Of course, Automake must honor this variable whenever it calls a
|
||||
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||
# depending on how configure is run. This is pretty annoying, since
|
||||
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||
# source directory, any form will work fine, but in subdirectories a
|
||||
# relative path needs to be adjusted first.
|
||||
#
|
||||
# $ac_aux_dir/missing
|
||||
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||
# $top_srcdir/$ac_aux_dir/missing
|
||||
# fails if $ac_aux_dir is absolute,
|
||||
# fails when called from a subdirectory in a VPATH build with
|
||||
# a relative $ac_aux_dir
|
||||
#
|
||||
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||
# harmless because $srcdir is `.', but things will broke when you
|
||||
# start a VPATH build or use an absolute $srcdir.
|
||||
#
|
||||
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||
# and then we would define $MISSING as
|
||||
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||
# This will work as long as MISSING is not called from configure, because
|
||||
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||
# However there are other variables, like CC, which are often used in
|
||||
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||
#
|
||||
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||
# configured tree to be moved without reconfiguration.
|
||||
|
||||
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||
[dnl Rely on autoconf to set up CDPATH properly.
|
||||
AC_PREREQ([2.50])dnl
|
||||
# expand $ac_aux_dir to an absolute path
|
||||
am_aux_dir=`cd $ac_aux_dir && pwd`
|
||||
])
|
||||
|
||||
# AM_CONDITIONAL -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 9
|
||||
|
||||
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||
# -------------------------------------
|
||||
# Define a conditional.
|
||||
AC_DEFUN([AM_CONDITIONAL],
|
||||
[AC_PREREQ(2.52)dnl
|
||||
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||
AC_SUBST([$1_TRUE])dnl
|
||||
AC_SUBST([$1_FALSE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||
if $2; then
|
||||
$1_TRUE=
|
||||
$1_FALSE='#'
|
||||
else
|
||||
$1_TRUE='#'
|
||||
$1_FALSE=
|
||||
fi
|
||||
AC_CONFIG_COMMANDS_PRE(
|
||||
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||
Usually this means the macro was only invoked conditionally.]])
|
||||
fi])])
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 10
|
||||
|
||||
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
|
||||
# written in clear, in which case automake, when reading aclocal.m4,
|
||||
# will think it sees a *use*, and therefore will trigger all it's
|
||||
# C support machinery. Also note that it means that autoscan, seeing
|
||||
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||
|
||||
|
||||
# _AM_DEPENDENCIES(NAME)
|
||||
# ----------------------
|
||||
# See how the compiler implements dependency checking.
|
||||
# NAME is "CC", "CXX", "GCJ", or "OBJC".
|
||||
# We try a few techniques and use that to set a single cache variable.
|
||||
#
|
||||
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||
# dependency, and given that the user is not expected to run this macro,
|
||||
# just rely on AC_PROG_CC.
|
||||
AC_DEFUN([_AM_DEPENDENCIES],
|
||||
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||
|
||||
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
|
||||
[$1], CXX, [depcc="$CXX" am_compiler_list=],
|
||||
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||
[$1], UPC, [depcc="$UPC" am_compiler_list=],
|
||||
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||
[depcc="$$1" am_compiler_list=])
|
||||
|
||||
AC_CACHE_CHECK([dependency style of $depcc],
|
||||
[am_cv_$1_dependencies_compiler_type],
|
||||
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||
# We make a subdir and do the tests there. Otherwise we can end up
|
||||
# making bogus files that we don't know about and never remove. For
|
||||
# instance it was reported that on HP-UX the gcc test will end up
|
||||
# making a dummy file named `D' -- because `-MD' means `put the output
|
||||
# in D'.
|
||||
mkdir conftest.dir
|
||||
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||
# using a relative directory.
|
||||
cp "$am_depcomp" conftest.dir
|
||||
cd conftest.dir
|
||||
# We will build objects and dependencies in a subdirectory because
|
||||
# it helps to detect inapplicable dependency modes. For instance
|
||||
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||
# side effect of compilation, but ICC will put the dependencies in
|
||||
# the current directory while Tru64 will put them in the object
|
||||
# directory.
|
||||
mkdir sub
|
||||
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
if test "$am_compiler_list" = ""; then
|
||||
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||
fi
|
||||
am__universal=false
|
||||
m4_case([$1], [CC],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac],
|
||||
[CXX],
|
||||
[case " $depcc " in #(
|
||||
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||
esac])
|
||||
|
||||
for depmode in $am_compiler_list; do
|
||||
# Setup a source with many dependencies, because some compilers
|
||||
# like to wrap large dependency lists on column 80 (with \), and
|
||||
# we should not choose a depcomp mode which is confused by this.
|
||||
#
|
||||
# We need to recreate these files for each test, as the compiler may
|
||||
# overwrite some of them when testing with obscure command lines.
|
||||
# This happens at least with the AIX C compiler.
|
||||
: > sub/conftest.c
|
||||
for i in 1 2 3 4 5 6; do
|
||||
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
|
||||
# Solaris 8's {/usr,}/bin/sh.
|
||||
touch sub/conftst$i.h
|
||||
done
|
||||
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||
|
||||
# We check with `-c' and `-o' for the sake of the "dashmstdout"
|
||||
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||
# handle `-M -o', and we need to detect this. Also, some Intel
|
||||
# versions had trouble with output in subdirs
|
||||
am__obj=sub/conftest.${OBJEXT-o}
|
||||
am__minus_obj="-o $am__obj"
|
||||
case $depmode in
|
||||
gcc)
|
||||
# This depmode causes a compiler race in universal mode.
|
||||
test "$am__universal" = false || continue
|
||||
;;
|
||||
nosideeffect)
|
||||
# after this tag, mechanisms are not by side-effect, so they'll
|
||||
# only be used when explicitly requested
|
||||
if test "x$enable_dependency_tracking" = xyes; then
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
;;
|
||||
msvisualcpp | msvcmsys)
|
||||
# This compiler won't grok `-c -o', but also, the minuso test has
|
||||
# not run yet. These depmodes are late enough in the game, and
|
||||
# so weak that their functioning should not be impacted.
|
||||
am__obj=conftest.${OBJEXT-o}
|
||||
am__minus_obj=
|
||||
;;
|
||||
none) break ;;
|
||||
esac
|
||||
if depmode=$depmode \
|
||||
source=sub/conftest.c object=$am__obj \
|
||||
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||
>/dev/null 2>conftest.err &&
|
||||
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||
# icc doesn't choke on unknown options, it will just issue warnings
|
||||
# or remarks (even with -Werror). So we grep stderr for any message
|
||||
# that says an option was ignored or not supported.
|
||||
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||
# The diagnosis changed in icc 8.0:
|
||||
# icc: Command line remark: option '-MP' not supported
|
||||
if (grep 'ignoring option' conftest.err ||
|
||||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||
am_cv_$1_dependencies_compiler_type=$depmode
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
rm -rf conftest.dir
|
||||
else
|
||||
am_cv_$1_dependencies_compiler_type=none
|
||||
fi
|
||||
])
|
||||
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||
AM_CONDITIONAL([am__fastdep$1], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||
])
|
||||
|
||||
|
||||
# AM_SET_DEPDIR
|
||||
# -------------
|
||||
# Choose a directory name for dependency files.
|
||||
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
|
||||
AC_DEFUN([AM_SET_DEPDIR],
|
||||
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||
])
|
||||
|
||||
|
||||
# AM_DEP_TRACK
|
||||
# ------------
|
||||
AC_DEFUN([AM_DEP_TRACK],
|
||||
[AC_ARG_ENABLE(dependency-tracking,
|
||||
[ --disable-dependency-tracking speeds up one-time build
|
||||
--enable-dependency-tracking do not reject slow dependency extractors])
|
||||
if test "x$enable_dependency_tracking" != xno; then
|
||||
am_depcomp="$ac_aux_dir/depcomp"
|
||||
AMDEPBACKSLASH='\'
|
||||
fi
|
||||
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# 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
|
||||
|
||||
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# ------------------------------
|
||||
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[{
|
||||
# Autoconf 2.62 quotes --file arguments for eval, but not when files
|
||||
# are listed without --file. Let's play safe and only enable the eval
|
||||
# if we detect the quoting.
|
||||
case $CONFIG_FILES in
|
||||
*\'*) eval set x "$CONFIG_FILES" ;;
|
||||
*) set x $CONFIG_FILES ;;
|
||||
esac
|
||||
shift
|
||||
for mf
|
||||
do
|
||||
# Strip MF so we end up with the name of the file.
|
||||
mf=`echo "$mf" | sed -e 's/:.*$//'`
|
||||
# Check whether this is an Automake generated Makefile or not.
|
||||
# We used to match only the files named `Makefile.in', but
|
||||
# some people rename them; so instead we look at the file content.
|
||||
# Grep'ing the first line is not enough: some people post-process
|
||||
# each Makefile.in and add a new line on top of each file to say so.
|
||||
# Grep'ing the whole file is not good either: AIX grep has a line
|
||||
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
|
||||
dirpart=`AS_DIRNAME("$mf")`
|
||||
else
|
||||
continue
|
||||
fi
|
||||
# Extract the definition of DEPDIR, am__include, and am__quote
|
||||
# from the Makefile without running `make'.
|
||||
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
|
||||
test -z "$DEPDIR" && continue
|
||||
am__include=`sed -n 's/^am__include = //p' < "$mf"`
|
||||
test -z "am__include" && continue
|
||||
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
|
||||
# When using ansi2knr, U may be empty or an underscore; expand it
|
||||
U=`sed -n 's/^U = //p' < "$mf"`
|
||||
# Find all dependency output files, they are included files with
|
||||
# $(DEPDIR) in their names. We invoke sed twice because it is the
|
||||
# simplest approach to changing $(DEPDIR) to its actual value in the
|
||||
# expansion.
|
||||
for file in `sed -n "
|
||||
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
|
||||
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
|
||||
# Make sure the directory exists.
|
||||
test -f "$dirpart/$file" && continue
|
||||
fdir=`AS_DIRNAME(["$file"])`
|
||||
AS_MKDIR_P([$dirpart/$fdir])
|
||||
# echo "creating $dirpart/$file"
|
||||
echo '# dummy' > "$dirpart/$file"
|
||||
done
|
||||
done
|
||||
}
|
||||
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
|
||||
|
||||
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||
# -----------------------------
|
||||
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||
#
|
||||
# This code is only required when automatic dependency tracking
|
||||
# is enabled. FIXME. This creates each `.P' file that we will
|
||||
# need in order to bootstrap the dependency handling code.
|
||||
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AC_CONFIG_COMMANDS([depfiles],
|
||||
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
|
||||
])
|
||||
|
||||
# Do all the work for Automake. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 16
|
||||
|
||||
# This macro actually does too much. Some checks are only needed if
|
||||
# your package does certain things. But this isn't really a big deal.
|
||||
|
||||
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||
# -----------------------------------------------
|
||||
# The call with PACKAGE and VERSION arguments is the old style
|
||||
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||
# and VERSION should now be passed to AC_INIT and removed from
|
||||
# the call to AM_INIT_AUTOMAKE.
|
||||
# We support both call styles for the transition. After
|
||||
# the next Automake release, Autoconf can make the AC_INIT
|
||||
# arguments mandatory, and then we can depend on a new Autoconf
|
||||
# release and drop the old call support.
|
||||
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||
[AC_PREREQ([2.62])dnl
|
||||
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||
dnl the ones we care about.
|
||||
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||
# is not polluted with repeated "-I."
|
||||
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||
# test to see if srcdir already configured
|
||||
if test -f $srcdir/config.status; then
|
||||
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||
fi
|
||||
fi
|
||||
|
||||
# test whether we have cygpath
|
||||
if test -z "$CYGPATH_W"; then
|
||||
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||
CYGPATH_W='cygpath -w'
|
||||
else
|
||||
CYGPATH_W=echo
|
||||
fi
|
||||
fi
|
||||
AC_SUBST([CYGPATH_W])
|
||||
|
||||
# Define the identity of the package.
|
||||
dnl Distinguish between old-style and new-style calls.
|
||||
m4_ifval([$2],
|
||||
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||
AC_SUBST([PACKAGE], [$1])dnl
|
||||
AC_SUBST([VERSION], [$2])],
|
||||
[_AM_SET_OPTIONS([$1])dnl
|
||||
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
|
||||
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||
|
||||
_AM_IF_OPTION([no-define],,
|
||||
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
|
||||
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
|
||||
|
||||
# Some tools Automake needs.
|
||||
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOCONF, autoconf)
|
||||
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
|
||||
AM_MISSING_PROG(AUTOHEADER, autoheader)
|
||||
AM_MISSING_PROG(MAKEINFO, makeinfo)
|
||||
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
|
||||
# We need awk for the "check" target. The system "awk" is bad on
|
||||
# some platforms.
|
||||
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||
[_AM_PROG_TAR([v7])])])
|
||||
_AM_IF_OPTION([no-dependencies],,
|
||||
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||
[_AM_DEPENDENCIES(CC)],
|
||||
[define([AC_PROG_CC],
|
||||
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||
[_AM_DEPENDENCIES(CXX)],
|
||||
[define([AC_PROG_CXX],
|
||||
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
|
||||
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||
[_AM_DEPENDENCIES(OBJC)],
|
||||
[define([AC_PROG_OBJC],
|
||||
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
|
||||
])
|
||||
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
|
||||
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
|
||||
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
|
||||
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||
AC_CONFIG_COMMANDS_PRE(dnl
|
||||
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||
])
|
||||
|
||||
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||
m4_define([_AC_COMPILER_EXEEXT],
|
||||
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||
|
||||
|
||||
# When config.status generates a header, we must update the stamp-h file.
|
||||
# This file resides in the same directory as the config header
|
||||
# that is generated. The stamp files are numbered to have different names.
|
||||
|
||||
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||
# loop where config.status creates the headers, so we can generate
|
||||
# our stamp files there.
|
||||
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||
[# Compute $1's index in $config_headers.
|
||||
_am_arg=$1
|
||||
_am_stamp_count=1
|
||||
for _am_header in $config_headers :; do
|
||||
case $_am_header in
|
||||
$_am_arg | $_am_arg:* )
|
||||
break ;;
|
||||
* )
|
||||
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||
esac
|
||||
done
|
||||
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
if test x"${install_sh}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||
*)
|
||||
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||
esac
|
||||
fi
|
||||
AC_SUBST(install_sh)])
|
||||
|
||||
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 2
|
||||
|
||||
# Check whether the underlying file-system supports filenames
|
||||
# with a leading dot. For instance MS-DOS doesn't.
|
||||
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||
[rm -rf .tst 2>/dev/null
|
||||
mkdir .tst 2>/dev/null
|
||||
if test -d .tst; then
|
||||
am__leading_dot=.
|
||||
else
|
||||
am__leading_dot=_
|
||||
fi
|
||||
rmdir .tst 2>/dev/null
|
||||
AC_SUBST([am__leading_dot])])
|
||||
|
||||
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 4
|
||||
|
||||
# AM_MAKE_INCLUDE()
|
||||
# -----------------
|
||||
# Check to see how make treats includes.
|
||||
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||
[am_make=${MAKE-make}
|
||||
cat > confinc << 'END'
|
||||
am__doit:
|
||||
@echo this is the am__doit target
|
||||
.PHONY: am__doit
|
||||
END
|
||||
# If we don't find an include directive, just comment out the code.
|
||||
AC_MSG_CHECKING([for style of include used by $am_make])
|
||||
am__include="#"
|
||||
am__quote=
|
||||
_am_result=none
|
||||
# First try GNU make style include.
|
||||
echo "include confinc" > confmf
|
||||
# Ignore all kinds of additional output from `make'.
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=include
|
||||
am__quote=
|
||||
_am_result=GNU
|
||||
;;
|
||||
esac
|
||||
# Now try BSD make style include.
|
||||
if test "$am__include" = "#"; then
|
||||
echo '.include "confinc"' > confmf
|
||||
case `$am_make -s -f confmf 2> /dev/null` in #(
|
||||
*the\ am__doit\ target*)
|
||||
am__include=.include
|
||||
am__quote="\""
|
||||
_am_result=BSD
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_SUBST([am__include])
|
||||
AC_SUBST([am__quote])
|
||||
AC_MSG_RESULT([$_am_result])
|
||||
rm -f confinc confmf
|
||||
])
|
||||
|
||||
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# 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
|
||||
|
||||
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||
# ------------------------------
|
||||
AC_DEFUN([AM_MISSING_PROG],
|
||||
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||
$1=${$1-"${am_missing_run}$2"}
|
||||
AC_SUBST($1)])
|
||||
|
||||
|
||||
# AM_MISSING_HAS_RUN
|
||||
# ------------------
|
||||
# Define MISSING if not defined so far and test if it supports --run.
|
||||
# If it does, set am_missing_run to use it, otherwise, to nothing.
|
||||
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||
if test x"${MISSING+set}" != xset; then
|
||||
case $am_aux_dir in
|
||||
*\ * | *\ *)
|
||||
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
|
||||
*)
|
||||
MISSING="\${SHELL} $am_aux_dir/missing" ;;
|
||||
esac
|
||||
fi
|
||||
# Use eval to expand $SHELL
|
||||
if eval "$MISSING --run true"; then
|
||||
am_missing_run="$MISSING --run "
|
||||
else
|
||||
am_missing_run=
|
||||
AC_MSG_WARN([`missing' script is too old or missing])
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check for `mkdir -p'.
|
||||
AC_DEFUN([AM_PROG_MKDIR_P],
|
||||
[AC_PREREQ([2.60])dnl
|
||||
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
|
||||
dnl while keeping a definition of mkdir_p for backward compatibility.
|
||||
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
|
||||
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
|
||||
dnl Makefile.ins that do not define MKDIR_P, so we do our own
|
||||
dnl adjustment using top_builddir (which is defined more often than
|
||||
dnl MKDIR_P).
|
||||
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
|
||||
case $mkdir_p in
|
||||
[[\\/$]]* | ?:[[\\/]]*) ;;
|
||||
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
|
||||
esac
|
||||
])
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 4
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||
|
||||
# _AM_SET_OPTION(NAME)
|
||||
# ------------------------------
|
||||
# Set option NAME. Presently that only means defining a flag for this option.
|
||||
AC_DEFUN([_AM_SET_OPTION],
|
||||
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
|
||||
|
||||
# _AM_SET_OPTIONS(OPTIONS)
|
||||
# ----------------------------------
|
||||
# OPTIONS is a space-separated list of Automake options.
|
||||
AC_DEFUN([_AM_SET_OPTIONS],
|
||||
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||
|
||||
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||
# -------------------------------------------
|
||||
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||
AC_DEFUN([_AM_IF_OPTION],
|
||||
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||
|
||||
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
|
||||
# Free Software Foundation, Inc.
|
||||
#
|
||||
# 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
|
||||
|
||||
# AM_SANITY_CHECK
|
||||
# ---------------
|
||||
AC_DEFUN([AM_SANITY_CHECK],
|
||||
[AC_MSG_CHECKING([whether build environment is sane])
|
||||
# Just in case
|
||||
sleep 1
|
||||
echo timestamp > conftest.file
|
||||
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||
# name. Accept space and tab only in the latter.
|
||||
am_lf='
|
||||
'
|
||||
case `pwd` in
|
||||
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||
esac
|
||||
case $srcdir in
|
||||
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
|
||||
esac
|
||||
|
||||
# Do `set' in a subshell so we don't clobber the current shell's
|
||||
# arguments. Must try -L first in case configure is actually a
|
||||
# symlink; some systems play weird games with the mod time of symlinks
|
||||
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||
# directory).
|
||||
if (
|
||||
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||
if test "$[*]" = "X"; then
|
||||
# -L didn't work.
|
||||
set X `ls -t "$srcdir/configure" conftest.file`
|
||||
fi
|
||||
rm -f conftest.file
|
||||
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||
|
||||
# If neither matched, then we have a broken ls. This can happen
|
||||
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||
# broken ls alias from the environment. This has actually
|
||||
# happened. Such a system could not be considered "sane".
|
||||
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||
alias in your environment])
|
||||
fi
|
||||
|
||||
test "$[2]" = conftest.file
|
||||
)
|
||||
then
|
||||
# Ok.
|
||||
:
|
||||
else
|
||||
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||
Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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.
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
# specify the program used to strip binaries. This is especially
|
||||
# annoying in cross-compiling environments, where the build's strip
|
||||
# is unlikely to handle the host's binaries.
|
||||
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||
# always use install-sh in `make install-strip', and initialize
|
||||
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||
# Installed binaries are usually stripped using `strip' when the user
|
||||
# run `make install-strip'. However `strip' might not be the right
|
||||
# tool to use in cross-compilation environments, therefore Automake
|
||||
# will honor the `STRIP' environment variable to overrule this program.
|
||||
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
|
||||
if test "$cross_compiling" != no; then
|
||||
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||
fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 2
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||
# This macro is traced by Automake.
|
||||
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||
|
||||
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
# Public sister of _AM_SUBST_NOTMAKE.
|
||||
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
|
||||
# Check how to create a tarball. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
|
||||
#
|
||||
# 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 2
|
||||
|
||||
# _AM_PROG_TAR(FORMAT)
|
||||
# --------------------
|
||||
# Check how to create a tarball in format FORMAT.
|
||||
# FORMAT should be one of `v7', `ustar', or `pax'.
|
||||
#
|
||||
# Substitute a variable $(am__tar) that is a command
|
||||
# writing to stdout a FORMAT-tarball containing the directory
|
||||
# $tardir.
|
||||
# tardir=directory && $(am__tar) > result.tar
|
||||
#
|
||||
# Substitute a variable $(am__untar) that extract such
|
||||
# a tarball read from stdin.
|
||||
# $(am__untar) < result.tar
|
||||
AC_DEFUN([_AM_PROG_TAR],
|
||||
[# Always define AMTAR for backward compatibility.
|
||||
AM_MISSING_PROG([AMTAR], [tar])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
# Loop over all known methods to create a tar archive until one works.
|
||||
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||
# Do not fold the above two line into one, because Tru64 sh and
|
||||
# Solaris sh will not grok spaces in the rhs of `-'.
|
||||
for _am_tool in $_am_tools
|
||||
do
|
||||
case $_am_tool in
|
||||
gnutar)
|
||||
for _am_tar in tar gnutar gtar;
|
||||
do
|
||||
AM_RUN_LOG([$_am_tar --version]) && break
|
||||
done
|
||||
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||
am__untar="$_am_tar -xf -"
|
||||
;;
|
||||
plaintar)
|
||||
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||
# ustar tarball either.
|
||||
(tar --version) >/dev/null 2>&1 && continue
|
||||
am__tar='tar chf - "$$tardir"'
|
||||
am__tar_='tar chf - "$tardir"'
|
||||
am__untar='tar xf -'
|
||||
;;
|
||||
pax)
|
||||
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||
am__untar='pax -r'
|
||||
;;
|
||||
cpio)
|
||||
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||
am__untar='cpio -i -H $1 -d'
|
||||
;;
|
||||
none)
|
||||
am__tar=false
|
||||
am__tar_=false
|
||||
am__untar=false
|
||||
;;
|
||||
esac
|
||||
|
||||
# If the value was cached, stop now. We just wanted to have am__tar
|
||||
# and am__untar set.
|
||||
test -n "${am_cv_prog_tar_$1}" && break
|
||||
|
||||
# tar/untar a dummy directory, and stop if the command works
|
||||
rm -rf conftest.dir
|
||||
mkdir conftest.dir
|
||||
echo GrepMe > conftest.dir/file
|
||||
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||
rm -rf conftest.dir
|
||||
if test -s conftest.tar; then
|
||||
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||
fi
|
||||
done
|
||||
rm -rf conftest.dir
|
||||
|
||||
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||
AC_SUBST([am__tar])
|
||||
AC_SUBST([am__untar])
|
||||
]) # _AM_PROG_TAR
|
||||
|
||||
m4_include([m4/libtool.m4])
|
||||
m4_include([m4/ltoptions.m4])
|
||||
m4_include([m4/ltsugar.m4])
|
||||
m4_include([m4/ltversion.m4])
|
||||
m4_include([m4/lt~obsolete.m4])
|
3818
autom4te.cache/output.0
Normal file
3818
autom4te.cache/output.0
Normal file
File diff suppressed because it is too large
Load Diff
14187
autom4te.cache/output.1
Normal file
14187
autom4te.cache/output.1
Normal file
File diff suppressed because it is too large
Load Diff
14187
autom4te.cache/output.2
Normal file
14187
autom4te.cache/output.2
Normal file
File diff suppressed because it is too large
Load Diff
356
autom4te.cache/requests
Normal file
356
autom4te.cache/requests
Normal file
@ -0,0 +1,356 @@
|
||||
# This file was generated by Autom4te Sun May 1 09:53:53 UTC 2011.
|
||||
# It contains the lists of macros which have been traced.
|
||||
# It can be safely removed.
|
||||
|
||||
@request = (
|
||||
bless( [
|
||||
'0',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'include' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_SUBST_TRACE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'1',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'/usr/share/aclocal/argz.m4',
|
||||
'/usr/share/aclocal/ltdl.m4',
|
||||
'/usr/share/aclocal-1.11/amversion.m4',
|
||||
'/usr/share/aclocal-1.11/auxdir.m4',
|
||||
'/usr/share/aclocal-1.11/cond.m4',
|
||||
'/usr/share/aclocal-1.11/depend.m4',
|
||||
'/usr/share/aclocal-1.11/depout.m4',
|
||||
'/usr/share/aclocal-1.11/init.m4',
|
||||
'/usr/share/aclocal-1.11/install-sh.m4',
|
||||
'/usr/share/aclocal-1.11/lead-dot.m4',
|
||||
'/usr/share/aclocal-1.11/make.m4',
|
||||
'/usr/share/aclocal-1.11/missing.m4',
|
||||
'/usr/share/aclocal-1.11/mkdirp.m4',
|
||||
'/usr/share/aclocal-1.11/options.m4',
|
||||
'/usr/share/aclocal-1.11/runlog.m4',
|
||||
'/usr/share/aclocal-1.11/sanity.m4',
|
||||
'/usr/share/aclocal-1.11/silent.m4',
|
||||
'/usr/share/aclocal-1.11/strip.m4',
|
||||
'/usr/share/aclocal-1.11/substnot.m4',
|
||||
'/usr/share/aclocal-1.11/tar.m4',
|
||||
'm4/libtool.m4',
|
||||
'm4/ltoptions.m4',
|
||||
'm4/ltsugar.m4',
|
||||
'm4/ltversion.m4',
|
||||
'm4/lt~obsolete.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AM_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_LANG_RC_CONFIG' => 1,
|
||||
'_LT_AC_SHELL_INIT' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'_LT_AC_LANG_CXX_CONFIG' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1,
|
||||
'_LT_AC_LANG_C_CONFIG' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_LIBTOOL_OBJDIR' => 1,
|
||||
'gl_FUNC_ARGZ' => 1,
|
||||
'LTOBSOLETE_VERSION' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_PIC' => 1,
|
||||
'LT_LIB_M' => 1,
|
||||
'_LT_AC_CHECK_DLFCN' => 1,
|
||||
'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1,
|
||||
'LTSUGAR_VERSION' => 1,
|
||||
'_LT_PROG_LTMAIN' => 1,
|
||||
'LT_SYS_SYMBOL_USCORE' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AC_LIBTOOL_GCJ' => 1,
|
||||
'_LT_WITH_SYSROOT' => 1,
|
||||
'LT_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'LT_FUNC_DLSYM_USCORE' => 1,
|
||||
'AC_LIBTOOL_CONFIG' => 1,
|
||||
'_LT_AC_LANG_F77' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_LTDL_DLLIB' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_DISABLE_SHARED' => 1,
|
||||
'_LT_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LTDL_SETUP' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'_LT_AC_LANG_CXX' => 1,
|
||||
'AC_LIB_LTDL' => 1,
|
||||
'_LT_AC_FILE_LTDLL_C' => 1,
|
||||
'AM_PROG_LD' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'AC_PROG_NM' => 1,
|
||||
'AC_LIBTOOL_DLOPEN' => 1,
|
||||
'AC_PROG_LD' => 1,
|
||||
'AC_PROG_LD_GNU' => 1,
|
||||
'AC_ENABLE_FAST_INSTALL' => 1,
|
||||
'AC_LIBTOOL_FC' => 1,
|
||||
'LTDL_CONVENIENCE' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AC_LTDL_PREOPEN' => 1,
|
||||
'_LT_LINKER_BOILERPLATE' => 1,
|
||||
'_LT_PREPARE_SED_QUOTE_VARS' => 1,
|
||||
'AC_LIBTOOL_LANG_CXX_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_CC_C_O' => 1,
|
||||
'gl_PREREQ_ARGZ' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'LT_PROG_RC' => 1,
|
||||
'LT_SYS_MODULE_EXT' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'_LT_AC_LANG_GCJ' => 1,
|
||||
'AC_LTDL_OBJDIR' => 1,
|
||||
'_LT_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_LIBTOOL_RC' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AC_DISABLE_FAST_INSTALL' => 1,
|
||||
'_LT_AC_PROG_ECHO_BACKSLASH' => 1,
|
||||
'_LT_AC_SYS_LIBPATH_AIX' => 1,
|
||||
'_LT_AC_TRY_DLOPEN_SELF' => 1,
|
||||
'include' => 1,
|
||||
'LT_AC_PROG_SED' => 1,
|
||||
'AM_ENABLE_SHARED' => 1,
|
||||
'LTDL_INSTALLABLE' => 1,
|
||||
'_LT_AC_LANG_GCJ_CONFIG' => 1,
|
||||
'AC_ENABLE_SHARED' => 1,
|
||||
'AC_ENABLE_STATIC' => 1,
|
||||
'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1,
|
||||
'_LT_REQUIRED_DARWIN_CHECKS' => 1,
|
||||
'_LT_AC_TAGVAR' => 1,
|
||||
'AC_LIBTOOL_LANG_F77_CONFIG' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'LT_LIB_DLLOAD' => 1,
|
||||
'LTDL_INIT' => 1,
|
||||
'_LT_PROG_F77' => 1,
|
||||
'_LT_PROG_CXX' => 1,
|
||||
'LTVERSION_VERSION' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_PROG_EGREP' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AC_PATH_MAGIC' => 1,
|
||||
'AC_LTDL_SYSSEARCHPATH' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'LT_CMD_MAX_LEN' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_LT_LINKER_OPTION' => 1,
|
||||
'AC_LIBTOOL_COMPILER_OPTION' => 1,
|
||||
'AC_DISABLE_SHARED' => 1,
|
||||
'_LT_COMPILER_BOILERPLATE' => 1,
|
||||
'AC_LIBTOOL_WIN32_DLL' => 1,
|
||||
'AC_LIBTOOL_SETUP' => 1,
|
||||
'AC_PROG_LD_RELOAD_FLAG' => 1,
|
||||
'AC_LTDL_DLSYM_USCORE' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'LT_LANG' => 1,
|
||||
'LT_SYS_DLSEARCH_PATH' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_LIBTOOL_DLOPEN_SELF' => 1,
|
||||
'LT_OUTPUT' => 1,
|
||||
'AC_LIBTOOL_PROG_LD_SHLIBS' => 1,
|
||||
'AC_WITH_LTDL' => 1,
|
||||
'AC_LIBTOOL_LINKER_OPTION' => 1,
|
||||
'LT_AC_PROG_RC' => 1,
|
||||
'AC_LIBTOOL_CXX' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'LT_AC_PROG_GCJ' => 1,
|
||||
'LT_SYS_DLOPEN_SELF' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'AM_DISABLE_STATIC' => 1,
|
||||
'_LT_AC_PROG_CXXCPP' => 1,
|
||||
'_AC_PROG_LIBTOOL' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AC_PATH_TOOL_PREFIX' => 1,
|
||||
'AC_LIBTOOL_F77' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'LT_AC_PROG_EGREP' => 1,
|
||||
'_LT_PROG_FC' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'AC_LIBTOOL_LANG_C_CONFIG' => 1,
|
||||
'LTOPTIONS_VERSION' => 1,
|
||||
'_LT_AC_SYS_COMPILER' => 1,
|
||||
'AM_PROG_NM' => 1,
|
||||
'AC_LIBLTDL_CONVENIENCE' => 1,
|
||||
'AC_DEPLIBS_CHECK_METHOD' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LIBLTDL_INSTALLABLE' => 1,
|
||||
'AC_LTDL_ENABLE_INSTALL' => 1,
|
||||
'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1,
|
||||
'LT_PROG_GCJ' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_DISABLE_STATIC' => 1,
|
||||
'LT_PATH_NM' => 1,
|
||||
'AC_LTDL_SHLIBEXT' => 1,
|
||||
'_LT_AC_LOCK' => 1,
|
||||
'_LT_AC_LANG_RC_CONFIG' => 1,
|
||||
'LT_SYS_MODULE_PATH' => 1,
|
||||
'AC_LIBTOOL_POSTDEP_PREDEP' => 1,
|
||||
'LT_WITH_LTDL' => 1,
|
||||
'AC_LTDL_SHLIBPATH' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'_LT_AC_LANG_F77_CONFIG' => 1,
|
||||
'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'_LT_COMPILER_OPTION' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1,
|
||||
'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1,
|
||||
'AC_LIBTOOL_PICMODE' => 1,
|
||||
'LT_PATH_LD' => 1,
|
||||
'AC_CHECK_LIBM' => 1,
|
||||
'AC_LIBTOOL_SYS_LIB_STRIP' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AC_LTDL_SYMBOL_USCORE' => 1,
|
||||
'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_LT_CC_BASENAME' => 1,
|
||||
'_LT_LIBOBJ' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
'2',
|
||||
1,
|
||||
[
|
||||
'/usr/share/autoconf'
|
||||
],
|
||||
[
|
||||
'/usr/share/autoconf/autoconf/autoconf.m4f',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'include' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'sinclude' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_SUBST_TRACE' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
201
autom4te.cache/traces.0
Normal file
201
autom4te.cache/traces.0
Normal file
@ -0,0 +1,201 @@
|
||||
m4trace:configure.ac:11: -1- AC_INIT([mbus], [0.7.0], [info@rscada.se], [mbus], [http://www.freescada.com/libmbus/])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.ac:24: -1- AC_CONFIG_HEADERS([config.h])
|
||||
m4trace:configure.ac:25: -1- AC_CONFIG_FILES([Makefile mbus/Makefile test/Makefile bin/Makefile libmbus.pc])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_top_builddir])
|
2401
autom4te.cache/traces.1
Normal file
2401
autom4te.cache/traces.1
Normal file
File diff suppressed because it is too large
Load Diff
537
autom4te.cache/traces.2
Normal file
537
autom4te.cache/traces.2
Normal file
@ -0,0 +1,537 @@
|
||||
m4trace:aclocal.m4:952: -1- m4_include([m4/libtool.m4])
|
||||
m4trace:aclocal.m4:953: -1- m4_include([m4/ltoptions.m4])
|
||||
m4trace:aclocal.m4:954: -1- m4_include([m4/ltsugar.m4])
|
||||
m4trace:aclocal.m4:955: -1- m4_include([m4/ltversion.m4])
|
||||
m4trace:aclocal.m4:956: -1- m4_include([m4/lt~obsolete.m4])
|
||||
m4trace:configure.ac:11: -1- AC_INIT([mbus], [0.7.0], [info@rscada.se], [mbus], [http://www.freescada.com/libmbus/])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.ac:12: -1- AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.ac:12: -1- AM_AUTOMAKE_VERSION([1.11.1])
|
||||
m4trace:configure.ac:12: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__isrc])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.ac:12: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([CYGPATH_W])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([PACKAGE])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([VERSION])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:12: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
@%:@undef PACKAGE])
|
||||
m4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:12: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
@%:@undef VERSION])
|
||||
m4trace:configure.ac:12: -1- AC_REQUIRE_AUX_FILE([missing])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([ACLOCAL])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AUTOCONF])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AUTOMAKE])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AUTOHEADER])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([MAKEINFO])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([install_sh])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.ac:12: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([MKDIR_P])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([mkdir_p])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__leading_dot])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([AMTAR])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([AMTAR])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__tar])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([am__untar])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.ac:16: -1- _m4_warn([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete.
|
||||
You should run autoupdate.], [m4/libtool.m4:108: AM_PROG_LIBTOOL is expanded from...
|
||||
configure.ac:16: the top level])
|
||||
m4trace:configure.ac:16: -1- LT_INIT
|
||||
m4trace:configure.ac:16: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
|
||||
m4trace:configure.ac:16: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LIBTOOL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LIBTOOL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LIBTOOL$])
|
||||
m4trace:configure.ac:16: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.ac:16: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.ac:16: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.ac:16: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DEPDIR])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DEPDIR$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([am__include])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([am__include])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^am__include$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([am__quote])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([am__quote])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^am__quote$])
|
||||
m4trace:configure.ac:16: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([AMDEP_TRUE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^AMDEP_TRUE$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([AMDEP_FALSE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^AMDEP_FALSE$])
|
||||
m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
|
||||
m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
|
||||
m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CCDEPMODE])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.ac:16: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:16: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([SED])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([SED])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^SED$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([FGREP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([FGREP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^FGREP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([NM])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([NM])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^NM$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LN_S])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LN_S$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([AR])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([AR])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^AR$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([ac_ct_AR])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([ac_ct_AR])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^ac_ct_AR$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([RANLIB])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^RANLIB$])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([LT_OBJDIR])
|
||||
m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LT_OBJDIR$])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
@%:@undef LT_OBJDIR])
|
||||
m4trace:configure.ac:16: -1- LT_SUPPORTED_TAG([CC])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^MANIFEST_TOOL$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([DSYMUTIL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([DSYMUTIL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^DSYMUTIL$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([NMEDIT])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([NMEDIT])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^NMEDIT$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([LIPO])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([LIPO])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^LIPO$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([OTOOL])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([OTOOL])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^OTOOL$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([OTOOL64])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([OTOOL64])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^OTOOL64$])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
@%:@undef HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.ac:16: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
@%:@undef HAVE_SYS_TYPES_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
@%:@undef HAVE_SYS_STAT_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
|
||||
@%:@undef HAVE_MEMORY_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([CCDEPMODE])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^CCDEPMODE$])
|
||||
m4trace:configure.ac:22: -1- AM_CONDITIONAL([am__fastdepCC], [
|
||||
test "x$enable_dependency_tracking" != xno \
|
||||
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
|
||||
m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
|
||||
m4trace:configure.ac:22: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
|
||||
m4trace:configure.ac:24: -1- AC_CONFIG_HEADERS([config.h])
|
||||
m4trace:configure.ac:25: -1- AC_CONFIG_FILES([Makefile mbus/Makefile test/Makefile bin/Makefile libmbus.pc])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.ac:26: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:26: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.ac:26: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:26: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([INSTALL])
|
||||
m4trace:configure.ac:26: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:26: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
24
bin/Makefile-static
Normal file
24
bin/Makefile-static
Normal file
@ -0,0 +1,24 @@
|
||||
#
|
||||
# Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
CFLAGS=-Wall -g -I..
|
||||
LDFLAGS=-L.. -lm -lmbus
|
||||
|
||||
all: mbus-tcp-scan mbus-tcp-request-data
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
mbus-tcp-scan: mbus-tcp-scan.o mbus-tcp.o
|
||||
gcc -o $@ $^ $(LDFLAGS)
|
||||
|
||||
mbus-tcp-request-data: mbus-tcp-request-data.o mbus-tcp.o
|
||||
gcc -o $@ $^ $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
rm -rf mbus-tcp-request-data mbus-tcp-scan *.o *~
|
54
bin/Makefile.am
Normal file
54
bin/Makefile.am
Normal file
@ -0,0 +1,54 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/src
|
||||
|
||||
noinst_HEADERS =
|
||||
bin_PROGRAMS = mbus-tcp-scan mbus-tcp-request-data \
|
||||
mbus-tcp-select-secondary mbus-tcp-scan-secondary \
|
||||
mbus-serial-scan mbus-serial-request-data \
|
||||
mbus-serial-select-secondary mbus-serial-scan-secondary
|
||||
|
||||
# tcp
|
||||
mbus_tcp_scan_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_scan_LDADD = -lmbus
|
||||
mbus_tcp_scan_SOURCES = mbus-tcp-scan.c
|
||||
|
||||
mbus_tcp_request_data_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_request_data_LDADD = -lmbus
|
||||
mbus_tcp_request_data_SOURCES = mbus-tcp-request-data.c
|
||||
|
||||
mbus_tcp_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_select_secondary_LDADD = -lmbus
|
||||
mbus_tcp_select_secondary_SOURCES = mbus-tcp-select-secondary.c
|
||||
|
||||
mbus_tcp_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_scan_secondary_LDADD = -lmbus
|
||||
mbus_tcp_scan_secondary_SOURCES = mbus-tcp-scan-secondary.c
|
||||
|
||||
# serial
|
||||
mbus_serial_scan_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_scan_LDADD = -lmbus
|
||||
mbus_serial_scan_SOURCES = mbus-serial-scan.c
|
||||
|
||||
mbus_serial_request_data_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_request_data_LDADD = -lmbus
|
||||
mbus_serial_request_data_SOURCES = mbus-serial-request-data.c
|
||||
|
||||
mbus_serial_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_select_secondary_LDADD = -lmbus
|
||||
mbus_serial_select_secondary_SOURCES = mbus-serial-select-secondary.c
|
||||
|
||||
mbus_serial_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_scan_secondary_LDADD = -lmbus
|
||||
mbus_serial_scan_secondary_SOURCES = mbus-serial-scan-secondary.c
|
||||
|
652
bin/Makefile.in
Normal file
652
bin/Makefile.in
Normal file
@ -0,0 +1,652 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = mbus-tcp-scan$(EXEEXT) mbus-tcp-request-data$(EXEEXT) \
|
||||
mbus-tcp-select-secondary$(EXEEXT) \
|
||||
mbus-tcp-scan-secondary$(EXEEXT) mbus-serial-scan$(EXEEXT) \
|
||||
mbus-serial-request-data$(EXEEXT) \
|
||||
mbus-serial-select-secondary$(EXEEXT) \
|
||||
mbus-serial-scan-secondary$(EXEEXT)
|
||||
subdir = bin
|
||||
DIST_COMMON = $(noinst_HEADERS) $(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 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_mbus_serial_request_data_OBJECTS = \
|
||||
mbus-serial-request-data.$(OBJEXT)
|
||||
mbus_serial_request_data_OBJECTS = \
|
||||
$(am_mbus_serial_request_data_OBJECTS)
|
||||
mbus_serial_request_data_DEPENDENCIES =
|
||||
mbus_serial_request_data_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_serial_request_data_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_serial_scan_OBJECTS = mbus-serial-scan.$(OBJEXT)
|
||||
mbus_serial_scan_OBJECTS = $(am_mbus_serial_scan_OBJECTS)
|
||||
mbus_serial_scan_DEPENDENCIES =
|
||||
mbus_serial_scan_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_serial_scan_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_serial_scan_secondary_OBJECTS = \
|
||||
mbus-serial-scan-secondary.$(OBJEXT)
|
||||
mbus_serial_scan_secondary_OBJECTS = \
|
||||
$(am_mbus_serial_scan_secondary_OBJECTS)
|
||||
mbus_serial_scan_secondary_DEPENDENCIES =
|
||||
mbus_serial_scan_secondary_LINK = $(LIBTOOL) --tag=CC \
|
||||
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(AM_CFLAGS) $(CFLAGS) $(mbus_serial_scan_secondary_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
am_mbus_serial_select_secondary_OBJECTS = \
|
||||
mbus-serial-select-secondary.$(OBJEXT)
|
||||
mbus_serial_select_secondary_OBJECTS = \
|
||||
$(am_mbus_serial_select_secondary_OBJECTS)
|
||||
mbus_serial_select_secondary_DEPENDENCIES =
|
||||
mbus_serial_select_secondary_LINK = $(LIBTOOL) --tag=CC \
|
||||
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(AM_CFLAGS) $(CFLAGS) $(mbus_serial_select_secondary_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
am_mbus_tcp_request_data_OBJECTS = mbus-tcp-request-data.$(OBJEXT)
|
||||
mbus_tcp_request_data_OBJECTS = $(am_mbus_tcp_request_data_OBJECTS)
|
||||
mbus_tcp_request_data_DEPENDENCIES =
|
||||
mbus_tcp_request_data_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_tcp_request_data_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_tcp_scan_OBJECTS = mbus-tcp-scan.$(OBJEXT)
|
||||
mbus_tcp_scan_OBJECTS = $(am_mbus_tcp_scan_OBJECTS)
|
||||
mbus_tcp_scan_DEPENDENCIES =
|
||||
mbus_tcp_scan_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_tcp_scan_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_tcp_scan_secondary_OBJECTS = \
|
||||
mbus-tcp-scan-secondary.$(OBJEXT)
|
||||
mbus_tcp_scan_secondary_OBJECTS = \
|
||||
$(am_mbus_tcp_scan_secondary_OBJECTS)
|
||||
mbus_tcp_scan_secondary_DEPENDENCIES =
|
||||
mbus_tcp_scan_secondary_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_tcp_scan_secondary_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_tcp_select_secondary_OBJECTS = \
|
||||
mbus-tcp-select-secondary.$(OBJEXT)
|
||||
mbus_tcp_select_secondary_OBJECTS = \
|
||||
$(am_mbus_tcp_select_secondary_OBJECTS)
|
||||
mbus_tcp_select_secondary_DEPENDENCIES =
|
||||
mbus_tcp_select_secondary_LINK = $(LIBTOOL) --tag=CC \
|
||||
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||
$(AM_CFLAGS) $(CFLAGS) $(mbus_tcp_select_secondary_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
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)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(mbus_serial_request_data_SOURCES) \
|
||||
$(mbus_serial_scan_SOURCES) \
|
||||
$(mbus_serial_scan_secondary_SOURCES) \
|
||||
$(mbus_serial_select_secondary_SOURCES) \
|
||||
$(mbus_tcp_request_data_SOURCES) $(mbus_tcp_scan_SOURCES) \
|
||||
$(mbus_tcp_scan_secondary_SOURCES) \
|
||||
$(mbus_tcp_select_secondary_SOURCES)
|
||||
DIST_SOURCES = $(mbus_serial_request_data_SOURCES) \
|
||||
$(mbus_serial_scan_SOURCES) \
|
||||
$(mbus_serial_scan_secondary_SOURCES) \
|
||||
$(mbus_serial_select_secondary_SOURCES) \
|
||||
$(mbus_tcp_request_data_SOURCES) $(mbus_tcp_scan_SOURCES) \
|
||||
$(mbus_tcp_scan_secondary_SOURCES) \
|
||||
$(mbus_tcp_select_secondary_SOURCES)
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/src
|
||||
noinst_HEADERS =
|
||||
|
||||
# tcp
|
||||
mbus_tcp_scan_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_scan_LDADD = -lmbus
|
||||
mbus_tcp_scan_SOURCES = mbus-tcp-scan.c
|
||||
mbus_tcp_request_data_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_request_data_LDADD = -lmbus
|
||||
mbus_tcp_request_data_SOURCES = mbus-tcp-request-data.c
|
||||
mbus_tcp_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_select_secondary_LDADD = -lmbus
|
||||
mbus_tcp_select_secondary_SOURCES = mbus-tcp-select-secondary.c
|
||||
mbus_tcp_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_tcp_scan_secondary_LDADD = -lmbus
|
||||
mbus_tcp_scan_secondary_SOURCES = mbus-tcp-scan-secondary.c
|
||||
|
||||
# serial
|
||||
mbus_serial_scan_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_scan_LDADD = -lmbus
|
||||
mbus_serial_scan_SOURCES = mbus-serial-scan.c
|
||||
mbus_serial_request_data_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_request_data_LDADD = -lmbus
|
||||
mbus_serial_request_data_SOURCES = mbus-serial-request-data.c
|
||||
mbus_serial_select_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_select_secondary_LDADD = -lmbus
|
||||
mbus_serial_select_secondary_SOURCES = mbus-serial-select-secondary.c
|
||||
mbus_serial_scan_secondary_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_serial_scan_secondary_LDADD = -lmbus
|
||||
mbus_serial_scan_secondary_SOURCES = mbus-serial-scan-secondary.c
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bin/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign bin/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);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
mbus-serial-request-data$(EXEEXT): $(mbus_serial_request_data_OBJECTS) $(mbus_serial_request_data_DEPENDENCIES)
|
||||
@rm -f mbus-serial-request-data$(EXEEXT)
|
||||
$(mbus_serial_request_data_LINK) $(mbus_serial_request_data_OBJECTS) $(mbus_serial_request_data_LDADD) $(LIBS)
|
||||
mbus-serial-scan$(EXEEXT): $(mbus_serial_scan_OBJECTS) $(mbus_serial_scan_DEPENDENCIES)
|
||||
@rm -f mbus-serial-scan$(EXEEXT)
|
||||
$(mbus_serial_scan_LINK) $(mbus_serial_scan_OBJECTS) $(mbus_serial_scan_LDADD) $(LIBS)
|
||||
mbus-serial-scan-secondary$(EXEEXT): $(mbus_serial_scan_secondary_OBJECTS) $(mbus_serial_scan_secondary_DEPENDENCIES)
|
||||
@rm -f mbus-serial-scan-secondary$(EXEEXT)
|
||||
$(mbus_serial_scan_secondary_LINK) $(mbus_serial_scan_secondary_OBJECTS) $(mbus_serial_scan_secondary_LDADD) $(LIBS)
|
||||
mbus-serial-select-secondary$(EXEEXT): $(mbus_serial_select_secondary_OBJECTS) $(mbus_serial_select_secondary_DEPENDENCIES)
|
||||
@rm -f mbus-serial-select-secondary$(EXEEXT)
|
||||
$(mbus_serial_select_secondary_LINK) $(mbus_serial_select_secondary_OBJECTS) $(mbus_serial_select_secondary_LDADD) $(LIBS)
|
||||
mbus-tcp-request-data$(EXEEXT): $(mbus_tcp_request_data_OBJECTS) $(mbus_tcp_request_data_DEPENDENCIES)
|
||||
@rm -f mbus-tcp-request-data$(EXEEXT)
|
||||
$(mbus_tcp_request_data_LINK) $(mbus_tcp_request_data_OBJECTS) $(mbus_tcp_request_data_LDADD) $(LIBS)
|
||||
mbus-tcp-scan$(EXEEXT): $(mbus_tcp_scan_OBJECTS) $(mbus_tcp_scan_DEPENDENCIES)
|
||||
@rm -f mbus-tcp-scan$(EXEEXT)
|
||||
$(mbus_tcp_scan_LINK) $(mbus_tcp_scan_OBJECTS) $(mbus_tcp_scan_LDADD) $(LIBS)
|
||||
mbus-tcp-scan-secondary$(EXEEXT): $(mbus_tcp_scan_secondary_OBJECTS) $(mbus_tcp_scan_secondary_DEPENDENCIES)
|
||||
@rm -f mbus-tcp-scan-secondary$(EXEEXT)
|
||||
$(mbus_tcp_scan_secondary_LINK) $(mbus_tcp_scan_secondary_OBJECTS) $(mbus_tcp_scan_secondary_LDADD) $(LIBS)
|
||||
mbus-tcp-select-secondary$(EXEEXT): $(mbus_tcp_select_secondary_OBJECTS) $(mbus_tcp_select_secondary_DEPENDENCIES)
|
||||
@rm -f mbus-tcp-select-secondary$(EXEEXT)
|
||||
$(mbus_tcp_select_secondary_LINK) $(mbus_tcp_select_secondary_OBJECTS) $(mbus_tcp_select_secondary_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-serial-request-data.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-serial-scan-secondary.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-serial-scan.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-serial-select-secondary.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-tcp-request-data.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-tcp-scan-secondary.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-tcp-scan.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-tcp-select-secondary.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _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
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
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; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$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; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-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
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-binPROGRAMS
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
|
||||
clean-generic 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-binPROGRAMS 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-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-binPROGRAMS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
150
bin/mbus-serial-request-data.c
Normal file
150
bin/mbus-serial-request-data.c
Normal file
@ -0,0 +1,150 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
static int debug = 0;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Scan for devices using secondary addressing.
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_frame reply;
|
||||
mbus_frame_data reply_data;
|
||||
mbus_handle *handle = NULL;
|
||||
|
||||
char *device, *addr_str, matching_addr[16];
|
||||
int address, baudrate = 9600;
|
||||
|
||||
if (argc == 3)
|
||||
{
|
||||
device = argv[1];
|
||||
addr_str = argv[2];
|
||||
}
|
||||
else if (argc == 4 && strcmp(argv[1], "-d") == 0)
|
||||
{
|
||||
device = argv[2];
|
||||
addr_str = argv[3];
|
||||
debug = 1;
|
||||
}
|
||||
else if (argc == 5 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[2]);
|
||||
device = argv[3];
|
||||
addr_str = argv[4];
|
||||
}
|
||||
else if (argc == 6 && strcmp(argv[1], "-d") == 0 && strcmp(argv[2], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[3]);
|
||||
device = argv[4];
|
||||
addr_str = argv[5];
|
||||
debug = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s [-d] [-b BAUDRATE] device mbus-address\n", argv[0]);
|
||||
fprintf(stderr, " optional flag -d for debug printout\n");
|
||||
fprintf(stderr, " optional flag -b for selecting baudrate\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_serial(device)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1)
|
||||
{
|
||||
printf("Failed to set baud rate.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if (strlen(addr_str) == 16)
|
||||
{
|
||||
// secondary addressing
|
||||
|
||||
int probe_ret;
|
||||
|
||||
probe_ret = mbus_probe_secondary_address(handle, addr_str, matching_addr);
|
||||
|
||||
if (probe_ret == MBUS_PROBE_COLLISION)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The address mask [%s] matches more than one device.\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
else if (probe_ret == MBUS_PROBE_NOTHING)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The selected secondary address does not match any device [%s].\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
else if (probe_ret == MBUS_PROBE_ERROR)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: Failed to probe secondary address [%s].\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
// else MBUS_PROBE_SINGLE
|
||||
|
||||
if (mbus_send_request_frame(handle, 253) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to send M-Bus request frame.\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// primary addressing
|
||||
|
||||
address = atoi(addr_str);
|
||||
if (mbus_send_request_frame(handle, address) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to send M-Bus request frame.\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to receive M-Bus response frame.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// parse data and print in XML format
|
||||
//
|
||||
if (debug)
|
||||
{
|
||||
mbus_frame_print(&reply);
|
||||
}
|
||||
mbus_frame_data_parse(&reply, &reply_data);
|
||||
printf("%s", mbus_frame_data_xml(&reply_data));
|
||||
|
||||
// manual free
|
||||
if (reply_data.data_var.record)
|
||||
{
|
||||
mbus_data_record_free(reply_data.data_var.record); // free's up the whole list
|
||||
}
|
||||
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
88
bin/mbus-serial-scan-secondary.c
Normal file
88
bin/mbus-serial-scan-secondary.c
Normal file
@ -0,0 +1,88 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Scan for devices using secondary addressing.
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *device, *addr_mask;
|
||||
int address, baudrate = 9600;
|
||||
mbus_handle *handle = NULL;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
device = argv[1];
|
||||
addr_mask = strdup("FFFFFFFFFFFFFFFF");
|
||||
}
|
||||
else if (argc == 3)
|
||||
{
|
||||
device = argv[1];
|
||||
addr_mask = strdup(argv[2]);
|
||||
}
|
||||
else if (argc == 4 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[2]);
|
||||
device = argv[3];
|
||||
addr_mask = strdup("FFFFFFFFFFFFFFFF");
|
||||
}
|
||||
else if (argc == 5 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[2]);
|
||||
device = argv[3];
|
||||
addr_mask = strdup(argv[4]);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s [-b BAUDRATE] device [address-mask]\n", argv[0]);
|
||||
fprintf(stderr, "\trestrict the search by supplying an optional address mask on the form\n");
|
||||
fprintf(stderr, "\t'FFFFFFFFFFFFFFFF' where F is a wildcard character\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strlen(addr_mask) != 16)
|
||||
{
|
||||
fprintf(stderr, "Misformatted secondary address mask. Must be 16 character HEX number.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_serial(device)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to setup connection to M-bus gateway: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1)
|
||||
{
|
||||
printf("Failed to set baud rate.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
mbus_scan_2nd_address_range(handle, 0, addr_mask);
|
||||
|
||||
mbus_disconnect(handle);
|
||||
|
||||
//printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count);
|
||||
|
||||
free(addr_mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
84
bin/mbus-serial-scan.c
Normal file
84
bin/mbus-serial-scan.c
Normal file
@ -0,0 +1,84 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Primary addressing scanning of mbus devices.
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_handle *handle;
|
||||
char *device;
|
||||
int address, baudrate = 9600;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
device = argv[1];
|
||||
}
|
||||
else if (argc == 4 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[2]);
|
||||
device = argv[3];
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s [-b BAUDRATE] device\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_serial(device)) == NULL)
|
||||
{
|
||||
printf("Failed to setup connection to M-bus gateway\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1)
|
||||
{
|
||||
printf("Failed to set baud rate.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
for (address = 0; address < 254; address++)
|
||||
{
|
||||
mbus_frame reply;
|
||||
|
||||
memset((void *)&reply, 0, sizeof(mbus_frame));
|
||||
|
||||
if (mbus_send_ping_frame(handle, address) == -1)
|
||||
{
|
||||
printf("Scan failed. Could not send ping frame: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
printf("Found a M-Bus device at address %d\n", address);
|
||||
}
|
||||
}
|
||||
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
117
bin/mbus-serial-select-secondary.c
Normal file
117
bin/mbus-serial-select-secondary.c
Normal file
@ -0,0 +1,117 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_handle *handle;
|
||||
mbus_frame reply;
|
||||
char *device, *addr;
|
||||
int address, ret, baudrate = 9600;
|
||||
|
||||
if (argc == 3)
|
||||
{
|
||||
device = argv[1];
|
||||
addr = strdup(argv[2]);
|
||||
}
|
||||
else if (argc == 5 && strcmp(argv[1], "-b") == 0)
|
||||
{
|
||||
baudrate = atoi(argv[2]);
|
||||
device = argv[3];
|
||||
addr = strdup(argv[4]);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s device secondary-mbus-address\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strlen(addr) != 16)
|
||||
{
|
||||
printf("Misformatted secondary address. Must be 16 character HEX number.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_serial(device)) == NULL)
|
||||
{
|
||||
printf("Failed to setup connection to M-bus device: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_serial_set_baudrate(handle->m_serial_handle, baudrate) == -1)
|
||||
{
|
||||
printf("Failed to set baud rate.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_send_select_frame(handle, addr) == -1)
|
||||
{
|
||||
printf("Failed to send selection frame: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = mbus_recv_frame(handle, &reply);
|
||||
|
||||
if (ret == -1)
|
||||
{
|
||||
printf("No reply from device with secondary address %s: %s\n", argv[2], mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ret == -2)
|
||||
{
|
||||
printf("Invalid reply from %s: The address address probably match more than one device: %s\n", argv[2], mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
if (mbus_send_request_frame(handle, 253) == -1)
|
||||
{
|
||||
printf("Failed to send request to selected secondary device: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
printf("Failed to recieve reply from selected secondary device: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) != MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
printf("Recieved a reply from secondarily addressed device: Searched for [%s] and found [%s].\n",
|
||||
argv[2], mbus_frame_get_secondary_address(&reply));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Unknown reply:\n");
|
||||
mbus_frame_print(&reply);
|
||||
}
|
||||
|
||||
free(addr);
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
132
bin/mbus-tcp-request-data.c
Normal file
132
bin/mbus-tcp-request-data.c
Normal file
@ -0,0 +1,132 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
static int debug = 0;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_frame reply;
|
||||
mbus_frame_data reply_data;
|
||||
mbus_handle *handle = NULL;
|
||||
|
||||
char *host, *addr_str, matching_addr[16];
|
||||
int port, address;
|
||||
|
||||
if (argc == 4)
|
||||
{
|
||||
host = argv[1];
|
||||
port = atoi(argv[2]);
|
||||
addr_str = argv[3];
|
||||
debug = 0;
|
||||
}
|
||||
else if (argc == 5 && strcmp(argv[1], "-d") == 0)
|
||||
{
|
||||
host = argv[2];
|
||||
port = atoi(argv[3]);
|
||||
addr_str = argv[4];
|
||||
debug = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "usage: %s [-d] host port mbus-address\n", argv[0]);
|
||||
fprintf(stderr, " optional flag -d for debug printout\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_tcp(host, port)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to setup connection to M-bus gateway\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (strlen(addr_str) == 16)
|
||||
{
|
||||
// secondary addressing
|
||||
|
||||
int probe_ret;
|
||||
|
||||
probe_ret = mbus_probe_secondary_address(handle, addr_str, matching_addr);
|
||||
|
||||
if (probe_ret == MBUS_PROBE_COLLISION)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The address mask [%s] matches more than one device.\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
else if (probe_ret == MBUS_PROBE_NOTHING)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: The selected secondary address does not match any device [%s].\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
else if (probe_ret == MBUS_PROBE_ERROR)
|
||||
{
|
||||
fprintf(stderr, "%s: Error: Failed to probe secondary address [%s].\n", __PRETTY_FUNCTION__, addr_str);
|
||||
return -1;
|
||||
}
|
||||
// else MBUS_PROBE_SINGLE
|
||||
|
||||
if (mbus_send_request_frame(handle, 253) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to send M-Bus request frame.\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// primary addressing
|
||||
|
||||
address = atoi(addr_str);
|
||||
if (mbus_send_request_frame(handle, address) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to send M-Bus request frame.\n");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
fprintf(stderr, "Failed to receive M-Bus response frame.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// parse data and print in XML format
|
||||
//
|
||||
if (debug)
|
||||
{
|
||||
mbus_frame_print(&reply);
|
||||
}
|
||||
mbus_frame_data_parse(&reply, &reply_data);
|
||||
printf("%s", mbus_frame_data_xml(&reply_data));
|
||||
|
||||
// manual free
|
||||
if (reply_data.data_var.record)
|
||||
{
|
||||
mbus_data_record_free(reply_data.data_var.record); // free's up the whole list
|
||||
}
|
||||
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
73
bin/mbus-tcp-scan-secondary.c
Normal file
73
bin/mbus-tcp-scan-secondary.c
Normal file
@ -0,0 +1,73 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
static mbus_handle *handle = NULL;
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *host, *addr_mask;
|
||||
int port, address;
|
||||
|
||||
if (argc != 4 && argc != 3)
|
||||
{
|
||||
fprintf(stderr, "usage: %s host port [address-mask]\n", argv[0]);
|
||||
fprintf(stderr, "\trestrict the search by supplying an optional address mask on the form\n");
|
||||
fprintf(stderr, "\t'FFFFFFFFFFFFFFFF' where F is a wildcard character\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
host = argv[1];
|
||||
port = atoi(argv[2]);
|
||||
if (argc == 4)
|
||||
{
|
||||
addr_mask = strdup(argv[3]);
|
||||
}
|
||||
else
|
||||
{
|
||||
addr_mask = strdup("FFFFFFFFFFFFFFFF");
|
||||
}
|
||||
|
||||
if (strlen(addr_mask) != 16)
|
||||
{
|
||||
fprintf(stderr, "Misformatted secondary address mask. Must be 16 character HEX number.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_tcp(host, port)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "Failed to setup connection to M-bus gateway: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
mbus_scan_2nd_address_range(handle, 0, addr_mask);
|
||||
|
||||
mbus_disconnect(handle);
|
||||
|
||||
//printf("Summary: Tried %ld address masks and found %d devices.\n", probe_count, match_count);
|
||||
|
||||
free(addr_mask);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
70
bin/mbus-tcp-scan.c
Normal file
70
bin/mbus-tcp-scan.c
Normal file
@ -0,0 +1,70 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_handle *handle;
|
||||
char *host;
|
||||
int port, address;
|
||||
|
||||
if (argc != 3)
|
||||
{
|
||||
printf("usage: %s host port\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
host = argv[1];
|
||||
port = atoi(argv[2]);
|
||||
|
||||
if ((handle = mbus_connect_tcp(host, port)) == NULL)
|
||||
{
|
||||
printf("Scan failed: Could not setup connection to M-bus gateway: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (address = 0; address < 254; address++)
|
||||
{
|
||||
mbus_frame reply;
|
||||
|
||||
if (mbus_send_ping_frame(handle, address) == -1)
|
||||
{
|
||||
printf("Scan failed. Could not send ping frame: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
printf("Found a M-Bus device at address %d\n", address);
|
||||
}
|
||||
}
|
||||
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
104
bin/mbus-tcp-select-secondary.c
Normal file
104
bin/mbus-tcp-select-secondary.c
Normal file
@ -0,0 +1,104 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
mbus_handle *handle;
|
||||
mbus_frame reply;
|
||||
char *host, *addr;
|
||||
int port, address, ret;
|
||||
|
||||
if (argc != 4)
|
||||
{
|
||||
printf("usage: %s host port secondary-mbus-address\n", argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
host = argv[1];
|
||||
port = atoi(argv[2]);
|
||||
addr = strdup(argv[3]);
|
||||
|
||||
if (strlen(argv[3]) != 16)
|
||||
{
|
||||
printf("Misformatted secondary address. Must be 16 character HEX number.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((handle = mbus_connect_tcp(host, port)) == NULL)
|
||||
{
|
||||
printf("Failed to setup connection to M-bus gateway: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_send_select_frame(handle, addr) == -1)
|
||||
{
|
||||
printf("Failed to send selection frame: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = mbus_recv_frame(handle, &reply);
|
||||
|
||||
if (ret == -1)
|
||||
{
|
||||
printf("No reply from device with secondary address %s: %s\n", argv[3], mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (ret == -2)
|
||||
{
|
||||
printf("Invalid reply from %s: The address address probably match more than one device: %s\n", argv[3], mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) == MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
if (mbus_send_request_frame(handle, 253) == -1)
|
||||
{
|
||||
printf("Failed to send request to selected secondary device: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_recv_frame(handle, &reply) == -1)
|
||||
{
|
||||
printf("Failed to recieve reply from selected secondary device: %s\n", mbus_error_str());
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mbus_frame_type(&reply) != MBUS_FRAME_TYPE_ACK)
|
||||
{
|
||||
printf("Recieved a reply from secondarily addressed device: Searched for [%s] and found [%s].\n",
|
||||
argv[3], mbus_frame_get_secondary_address(&reply));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Unknown reply:\n");
|
||||
mbus_frame_print(&reply);
|
||||
}
|
||||
|
||||
free(addr);
|
||||
mbus_disconnect(handle);
|
||||
return 0;
|
||||
}
|
||||
|
134
bin/mbus_serial_scan.c
Normal file
134
bin/mbus_serial_scan.c
Normal file
@ -0,0 +1,134 @@
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include "mbus-protocol.h"
|
||||
|
||||
__attribute__((noreturn)) static void
|
||||
usage(void)
|
||||
{
|
||||
extern char *__progname;
|
||||
|
||||
fprintf(stderr, "%s device|file\n", __progname);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
void parse_file(const char *);
|
||||
void scan_device(const char *);
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
struct stat sb;
|
||||
|
||||
if (argc != 2)
|
||||
usage();
|
||||
|
||||
bzero(&sb, sizeof(sb));
|
||||
if(stat(argv[1], &sb))
|
||||
err(-1, "stat on '%s' failed", argv[1]);
|
||||
if(S_ISREG(sb.st_mode))
|
||||
parse_file(argv[1]);
|
||||
else if(S_ISBLK(sb.st_mode))
|
||||
scan_device(argv[1]);
|
||||
else
|
||||
usage();
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
void
|
||||
parse_file(const char *path)
|
||||
{
|
||||
int fd, len;
|
||||
u_char buf[256];
|
||||
mbus_frame reply;
|
||||
mbus_frame_data frame_data;
|
||||
|
||||
bzero(buf, sizeof(buf));
|
||||
if((fd = open(path, O_RDONLY, 0)) == -1)
|
||||
err(-1, "open '%s'", path);
|
||||
|
||||
len = read(fd, buf, sizeof(buf));
|
||||
close(fd);
|
||||
|
||||
bzero(&reply, sizeof(reply));
|
||||
bzero(&frame_data, sizeof(frame_data));
|
||||
mbus_parse(&reply, buf, len);
|
||||
mbus_frame_data_parse(&reply, &frame_data);
|
||||
mbus_frame_print(&reply);
|
||||
mbus_frame_data_print_xml(&frame_data);
|
||||
}
|
||||
|
||||
void
|
||||
scan_device(const char *path)
|
||||
{
|
||||
int fd, len;
|
||||
/* int fd2;*/
|
||||
ssize_t i, rc;
|
||||
u_char buf[256];
|
||||
mbus_frame *frame, *reply;
|
||||
mbus_frame_data frame_data;
|
||||
struct termios tio;
|
||||
|
||||
if((fd = open(path, O_RDWR | O_NOCTTY | O_NONBLOCK, 0)) == -1)
|
||||
err(-1, "failed to open device %s", path);
|
||||
|
||||
bzero(buf, sizeof(buf));
|
||||
tcgetattr(fd, &tio);
|
||||
cfsetispeed(&tio, B2400);
|
||||
cfsetospeed(&tio, B2400);
|
||||
cfmakeraw(&tio);
|
||||
tio.c_cflag |= PARENB;
|
||||
tcsetattr(fd, TCSANOW, &tio);
|
||||
|
||||
if((rc = read(fd, buf, sizeof(buf))) > 0) {
|
||||
for(i = 0; i < rc; i++)
|
||||
printf(":%.2X ", buf[i]);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
frame = mbus_frame_new(MBUS_FRAME_TYPE_SHORT);
|
||||
reply = mbus_frame_new(MBUS_FRAME_TYPE_SHORT);
|
||||
frame->control = MBUS_CONTROL_MASK_REQ_UD2 | MBUS_CONTROL_MASK_DIR_M2S;
|
||||
frame->address = 0;
|
||||
while(frame->address <= 0) {
|
||||
frame->address = MBUS_ADDRESS_BROADCAST_REPLY;
|
||||
mbus_frame_print(frame);
|
||||
|
||||
if((len = mbus_frame_pack(frame, buf, sizeof(buf))) > 0) {
|
||||
if((rc = write(fd, buf, len)) != len)
|
||||
warn("writing %zd", rc);
|
||||
|
||||
usleep(1000000);
|
||||
len = 0;
|
||||
while((rc = read(fd, buf+len, sizeof(buf)-len)) > 0) {
|
||||
len += rc;
|
||||
usleep(1000000);
|
||||
}
|
||||
|
||||
/* printf("%d\n", fd2 = open("output.bin", O_WRONLY | O_CREAT | O_TRUNC, 0));*/
|
||||
/* write(fd2, buf, len);*/
|
||||
/* printf("%d", len);*/
|
||||
/* close(fd2);*/
|
||||
|
||||
mbus_parse(reply, buf, len);
|
||||
mbus_frame_data_parse(reply, &frame_data);
|
||||
mbus_frame_print(reply);
|
||||
mbus_frame_data_print_xml(&frame_data);
|
||||
}
|
||||
|
||||
frame->address++;
|
||||
}
|
||||
|
||||
mbus_frame_free(reply);
|
||||
mbus_frame_free(frame);
|
||||
close(fd);
|
||||
}
|
208
bin/mbus_slave_init.c
Normal file
208
bin/mbus_slave_init.c
Normal file
@ -0,0 +1,208 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <mbus.h>
|
||||
|
||||
static gboolean server_io(GIOChannel *gio, GIOCondition condition, gpointer data);
|
||||
static GIOChannel *gio_server;
|
||||
#define PACKET_BUFF_SIZE 128
|
||||
|
||||
static int addr = 0x01;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// send a data request packet to from master to slave
|
||||
//------------------------------------------------------------------------------
|
||||
static gboolean
|
||||
send_packet_timeout(gpointer data)
|
||||
{
|
||||
static gchar *func_name = "send_packet_timer";
|
||||
u_char buff[256];
|
||||
int len, ret;
|
||||
|
||||
mbus_frame *frame;
|
||||
|
||||
frame = mbus_frame_new(MBUS_FRAME_TYPE_SHORT);
|
||||
|
||||
frame->control = MBUS_CONTROL_MASK_SND_NKE | MBUS_CONTROL_MASK_DIR_M2S; // data request from master to slave
|
||||
frame->address = addr; // address
|
||||
|
||||
//if ((ret = mbus_frame_print(frame)) < 0)
|
||||
//{
|
||||
// printf("%s: mbus_frame_print -> %d\n", __PRETTY_FUNCTION__, ret);
|
||||
// return -1;
|
||||
//}
|
||||
|
||||
if ((len = mbus_frame_pack(frame, buff, sizeof(buff))) == -1)
|
||||
{
|
||||
printf("%s: mbus_frame_pack -> %d\n", __PRETTY_FUNCTION__, ret);
|
||||
mbus_frame_free(frame);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (fs_net_send(gio_server, buff, len) < len)
|
||||
{
|
||||
g_message("%s: failed to write data to server", func_name);
|
||||
}
|
||||
|
||||
mbus_frame_free(frame);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// client_io:
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
static gboolean
|
||||
server_io(GIOChannel *gio, GIOCondition condition, gpointer data)
|
||||
{
|
||||
static gchar *func_name = "server_io";
|
||||
gchar buff[PACKET_BUFF_SIZE];
|
||||
gint len, len_tot = 0;
|
||||
int fd;
|
||||
FsNetBuffer *nbdata;
|
||||
|
||||
bzero((void *)buff, sizeof(buff));
|
||||
|
||||
mbus_frame *frame;
|
||||
mbus_frame_data frame_data;
|
||||
|
||||
//
|
||||
// init
|
||||
//
|
||||
|
||||
if ((fd = g_io_channel_unix_get_fd(gio)) < 0)
|
||||
{
|
||||
g_warning("%s: Failed to aquire socket fd.", func_name);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (condition & (G_IO_HUP|G_IO_NVAL|G_IO_ERR))
|
||||
{
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ((nbdata = fs_net_buffer_get(gio)) == NULL)
|
||||
{
|
||||
g_warning("%s: Serious error, couldn't retrieve data buffer for GIO Channel.", func_name);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// start reading data
|
||||
//
|
||||
frame = mbus_frame_new(MBUS_FRAME_TYPE_ANY);
|
||||
len_tot = 1;
|
||||
|
||||
while (len > 0)
|
||||
{
|
||||
if ((len = fs_net_read_data_nonblocking(gio, nbdata, len_tot)) < 0)
|
||||
{
|
||||
if (len == -2 && nbdata->offset == 0)
|
||||
{
|
||||
// Return value -2 is a special return value that we use to indicate
|
||||
// that the read operation was interrupted due to unavailability of
|
||||
// data (so we got an try-again error, preventing a blocking read).
|
||||
//
|
||||
// Restart the read operation later.
|
||||
mbus_frame_free(frame);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (len == -1)
|
||||
{
|
||||
fs_net_buffer_free(gio);
|
||||
fs_net_socket_close(fd);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
nbdata->offset = len_tot; // start next read at the correct offset
|
||||
len = mbus_parse(frame, nbdata->buff, len_tot);
|
||||
len_tot += len;
|
||||
}
|
||||
|
||||
if (len == -1)
|
||||
{
|
||||
mbus_frame_free(frame);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//
|
||||
// parse data and print in XML format
|
||||
//
|
||||
mbus_frame_data_parse(frame, &frame_data);
|
||||
printf("%s", mbus_frame_data_xml(&frame_data));
|
||||
|
||||
|
||||
//
|
||||
// Free and exit
|
||||
//
|
||||
|
||||
mbus_frame_free(frame);
|
||||
exit(0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Execution starts here:
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
static gchar *func_name = "mbus_test1", *host;
|
||||
int port;
|
||||
|
||||
GMainLoop *gloop;
|
||||
|
||||
if (argc != 4)
|
||||
{
|
||||
g_message("%s: usage: %s host port mbus-address", func_name, argv[0]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
host = argv[1];
|
||||
port = atoi(argv[2]);
|
||||
addr = atoi(argv[3]);
|
||||
|
||||
if ((gio_server = fs_net_connection_setup(host, port, (void *)server_io, NULL)) == NULL)
|
||||
{
|
||||
g_warning("%s: Failed to setup connection to server.\n", func_name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Register new data buffer for the new GIO Channel.
|
||||
if (fs_net_buffer_new(gio_server) != 0)
|
||||
{
|
||||
g_warning("%s: Failed to allocate GIO channel data buffer.", __PRETTY_FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* setup a timer */
|
||||
g_timeout_add(100, send_packet_timeout, NULL);
|
||||
|
||||
/* Pass over flow control to GLIB */
|
||||
gloop = g_main_loop_new(NULL, FALSE);
|
||||
g_main_loop_run(gloop);
|
||||
|
||||
/* Never reached */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
18
build.sh
Normal file
18
build.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
|
||||
if [ -f Makefile ]; then
|
||||
#
|
||||
# use existing automake files
|
||||
#
|
||||
echo >> /dev/null
|
||||
else
|
||||
#
|
||||
# regenerate automake files
|
||||
#
|
||||
automake --add-missing
|
||||
autoreconf --install
|
||||
./configure
|
||||
fi
|
||||
|
||||
make
|
1517
config.guess
vendored
Executable file
1517
config.guess
vendored
Executable file
File diff suppressed because it is too large
Load Diff
62
config.h.in
Normal file
62
config.h.in
Normal file
@ -0,0 +1,62 @@
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#undef HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#undef HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#undef HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#undef HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#undef PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#undef PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#undef PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#undef PACKAGE_VERSION
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
1760
config.sub
vendored
Executable file
1760
config.sub
vendored
Executable file
File diff suppressed because it is too large
Load Diff
41
configure.ac
Normal file
41
configure.ac
Normal file
@ -0,0 +1,41 @@
|
||||
dnl ----------------------------------------------------------------------------
|
||||
dnl Copyright (C) 2010, Raditex AB
|
||||
dnl All rights reserved.
|
||||
dnl
|
||||
dnl FreeSCADA
|
||||
dnl http://www.FreeSCADA.com
|
||||
dnl freescada@freescada.com
|
||||
dnl
|
||||
dnl ----------------------------------------------------------------------------
|
||||
|
||||
AC_INIT([mbus], [0.7.0], [info@rscada.se], [mbus], [http://www.freescada.com/libmbus/])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
LDFLAGS="$LDFLAGS -version-info 0:7:0"
|
||||
|
||||
dnl ----------------------
|
||||
dnl
|
||||
AC_PROG_CC
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([Makefile mbus/Makefile test/Makefile bin/Makefile libmbus.pc])
|
||||
AC_OUTPUT
|
||||
|
||||
|
||||
echo \
|
||||
"----------------------------------------------------------
|
||||
Configuration:
|
||||
|
||||
Source location: ${srcdir}
|
||||
Compile: ${CC}
|
||||
Compiler flags: ${CFLAGS}
|
||||
Linker flags: ${LDFLAGS}
|
||||
Host system type: ${host}
|
||||
Install path: ${prefix}
|
||||
|
||||
See config.h for further configuration.
|
||||
----------------------------------------------------------"
|
1
depcomp
Symbolic link
1
depcomp
Symbolic link
@ -0,0 +1 @@
|
||||
/usr/share/automake-1.11/depcomp
|
1630
doxygen.cfg
Normal file
1630
doxygen.cfg
Normal file
File diff suppressed because it is too large
Load Diff
BIN
hardware/MBus_USB.pdf
Normal file
BIN
hardware/MBus_USB.pdf
Normal file
Binary file not shown.
24
hardware/MBus_USB.txt
Normal file
24
hardware/MBus_USB.txt
Normal file
@ -0,0 +1,24 @@
|
||||
The convertor is very simple - there are three main parts:
|
||||
- MBus level converter
|
||||
- power Voltage converter
|
||||
- USB serial converter
|
||||
|
||||
Voltage converter - "catalogue" use of MC34063 in step-up configuration set for about 34V output voltage and few tens of mA. You can use any other IC/setup which would do the job. Note that if you use other voltage output than 34V (note tha MBus limits) you need to adjust the voltage divider (see below) or use 12V Zener diode instead of R9.
|
||||
|
||||
MBus level converter - it is based on the original design from Uni Paderborn (http://www.m-bus.com/files/minimaster.tif or http://www.m-bus.de/pw1.shtml). It was just "inverted" to use common ground and low voltage IO signals. Also the 12V output voltage drop is done by simple divider (R9/R8) which is OK here (stable voltage, current is amplified).
|
||||
|
||||
Basically no part of the convertor is critical - except of the 12V diff (see above) and current sensing R12.
|
||||
|
||||
|
||||
|
||||
The USB serial convertor is not covered here as it does not make sense to make one. Get a USB serial cable - ideal one is an old phone data cable as these are without the RS232 level convertor (i.e. exactly what we want).
|
||||
|
||||
One sidenote explanation. Typical USB RS232 cable contains two main chips: USB to TTL/CMOS serial converter (this is the "smart" one - e.g. variants of FT232 or PL2303) and TTL/CMOS to RS232 voltage converter (variants of MAX232). We need just the first part as we have our own voltage converter - here CMOS/TTL to MBus instead.
|
||||
|
||||
The bottom line is - get either a cable which does not have the RS232 converter or a cable which can be easily opened/dissected and the converter bypassed.
|
||||
|
||||
|
||||
Finally a small disclaimer - this is for educational purposes, there is no warranty of any sort.
|
||||
From technical perspective this works only for few slaves as it is only a simple converter and the power is very limited as well.
|
||||
|
||||
Contributed by Tomas Menzl.
|
520
install-sh
Executable file
520
install-sh
Executable file
@ -0,0 +1,520 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
# following copyright and license.
|
||||
#
|
||||
# Copyright (C) 1994 X Consortium
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to
|
||||
# deal in the Software without restriction, including without limitation the
|
||||
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
# sell copies of the Software, and to permit persons to whom the Software is
|
||||
# furnished to do so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in
|
||||
# all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
# Except as contained in this notice, the name of the X Consortium shall not
|
||||
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||
# ings in this Software without prior written authorization from the X Consor-
|
||||
# tium.
|
||||
#
|
||||
#
|
||||
# FSF changes to this file are in the public domain.
|
||||
#
|
||||
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||
# `make' implicit rules from creating a file called install from it
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chgrpcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
|
||||
In the 1st form, copy SRCFILE to DSTFILE.
|
||||
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||
In the 4th, create DIRECTORIES.
|
||||
|
||||
Options:
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-d create directories instead of installing files.
|
||||
-g GROUP $chgrpprog installed files to GROUP.
|
||||
-m MODE $chmodprog installed files to MODE.
|
||||
-o USER $chownprog installed files to USER.
|
||||
-s $stripprog installed files.
|
||||
-t DIRECTORY install into DIRECTORY.
|
||||
-T report an error if DSTFILE is a directory.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) ;;
|
||||
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--version) echo "$0 $scriptversion"; exit $?;;
|
||||
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
# It's OK to call `install-sh -d' without argument.
|
||||
# This can happen when creating conditional directories.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
else
|
||||
|
||||
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||
# might cause directories to be created, which would be especially bad
|
||||
# if $src (and thus $dsttmp) contains '*'.
|
||||
if test ! -f "$src" && test ! -d "$src"; then
|
||||
echo "$0: $src does not exist." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# If destination is a directory, append the input filename; won't work
|
||||
# if double slashes aren't ignored.
|
||||
if test -d "$dst"; then
|
||||
if test -n "$no_target_directory"; then
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
shift
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
rmtmp=$dstdir/_rm.$$_
|
||||
|
||||
# Trap to clean up those temp files at exit.
|
||||
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||
|
||||
# Copy the file name to the temp name.
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
# If any of these fail, we abort the whole thing. If we want to
|
||||
# ignore errors from any of these, just make sure not to ignore
|
||||
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||
#
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
|
||||
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
|
||||
|
||||
# The rename failed, perhaps because mv can't rename something else
|
||||
# to itself, or perhaps because mv is so ancient that it does not
|
||||
# support -f.
|
||||
{
|
||||
# Now remove or move aside any old file at destination location.
|
||||
# We try this two ways since rm can't unlink itself on some
|
||||
# systems and the destination file might be busy for other
|
||||
# reasons. In this case, the final cleanup might fail but the new
|
||||
# file should still install successfully.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
12
libmbus.pc
Normal file
12
libmbus.pc
Normal file
@ -0,0 +1,12 @@
|
||||
prefix=/usr/local
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: libmbus
|
||||
Description: Open source M-bus (Meter-Bus) library.
|
||||
Requires:
|
||||
Version: 0.6.1
|
||||
URL: http://www.freescada.com/libmbus/
|
||||
Libs: -L${libdir} -lmbus
|
||||
Cflags: -I${includedir}
|
12
libmbus.pc.in
Normal file
12
libmbus.pc.in
Normal file
@ -0,0 +1,12 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
includedir=@includedir@
|
||||
|
||||
Name: libmbus
|
||||
Description: Open source M-bus (Meter-Bus) library.
|
||||
Requires:
|
||||
Version: @PACKAGE_VERSION@
|
||||
URL: http://www.freescada.com/libmbus/
|
||||
Libs: -L${libdir} -lmbus
|
||||
Cflags: -I${includedir}
|
7851
m4/libtool.m4
vendored
Normal file
7851
m4/libtool.m4
vendored
Normal file
File diff suppressed because it is too large
Load Diff
369
m4/ltoptions.m4
vendored
Normal file
369
m4/ltoptions.m4
vendored
Normal file
@ -0,0 +1,369 @@
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2008, 2009 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 7 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_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_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],
|
||||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
||||
[pic_mode="$withval"],
|
||||
[pic_mode=default])
|
||||
|
||||
test -z "$pic_mode" && 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])])
|
123
m4/ltsugar.m4
vendored
Normal file
123
m4/ltsugar.m4
vendored
Normal file
@ -0,0 +1,123 @@
|
||||
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2008 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
23
m4/ltversion.m4
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
# ltversion.m4 -- version numbers -*- Autoconf -*-
|
||||
#
|
||||
# Copyright (C) 2004 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 3293 ltversion.m4
|
||||
# This file is part of GNU Libtool
|
||||
|
||||
m4_define([LT_PACKAGE_VERSION], [2.4])
|
||||
m4_define([LT_PACKAGE_REVISION], [1.3293])
|
||||
|
||||
AC_DEFUN([LTVERSION_VERSION],
|
||||
[macro_version='2.4'
|
||||
macro_revision='1.3293'
|
||||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
||||
_LT_DECL(, macro_revision, 0)
|
||||
])
|
98
m4/lt~obsolete.m4
vendored
Normal file
98
m4/lt~obsolete.m4
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
|
||||
#
|
||||
# Copyright (C) 2004, 2005, 2007, 2009 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])])
|
18
mbus/Makefile.am
Normal file
18
mbus/Makefile.am
Normal file
@ -0,0 +1,18 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
|
||||
|
||||
pkginclude_HEADERS = mbus.h mbus-protocol.h mbus-tcp.h mbus-serial.h mbus-protocol-aux.h
|
||||
lib_LTLIBRARIES = libmbus.la
|
||||
libmbus_la_SOURCES = mbus.c mbus-protocol.c mbus-tcp.c mbus-serial.c mbus-protocol-aux.c
|
||||
|
557
mbus/Makefile.in
Normal file
557
mbus/Makefile.in
Normal file
@ -0,0 +1,557 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
subdir = mbus
|
||||
DIST_COMMON = $(pkginclude_HEADERS) $(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 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"
|
||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||
libmbus_la_LIBADD =
|
||||
am_libmbus_la_OBJECTS = mbus.lo mbus-protocol.lo mbus-tcp.lo \
|
||||
mbus-serial.lo mbus-protocol-aux.lo
|
||||
libmbus_la_OBJECTS = $(am_libmbus_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
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)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(libmbus_la_SOURCES)
|
||||
DIST_SOURCES = $(libmbus_la_SOURCES)
|
||||
HEADERS = $(pkginclude_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
|
||||
pkginclude_HEADERS = mbus.h mbus-protocol.h mbus-tcp.h mbus-serial.h mbus-protocol-aux.h
|
||||
lib_LTLIBRARIES = libmbus.la
|
||||
libmbus_la_SOURCES = mbus.c mbus-protocol.c mbus-tcp.c mbus-serial.c mbus-protocol-aux.c
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign mbus/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign mbus/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);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(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 \
|
||||
list2="$$list2 $$p"; \
|
||||
else :; fi; \
|
||||
done; \
|
||||
test -z "$$list2" || { \
|
||||
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)"; \
|
||||
}
|
||||
|
||||
uninstall-libLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||
for p in $$list; do \
|
||||
$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
|
||||
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
|
||||
done
|
||||
|
||||
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
|
||||
libmbus.la: $(libmbus_la_OBJECTS) $(libmbus_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(libdir) $(libmbus_la_OBJECTS) $(libmbus_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-protocol-aux.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-protocol.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-serial.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus-tcp.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-pkgincludeHEADERS: $(pkginclude_HEADERS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)"
|
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; \
|
||||
done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
|
||||
$(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
|
||||
done
|
||||
|
||||
uninstall-pkgincludeHEADERS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
|
||||
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||
test -n "$$files" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
|
||||
|
||||
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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
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; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$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; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-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
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-pkgincludeHEADERS
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-libLTLIBRARIES
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS
|
||||
|
||||
.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-pkgincludeHEADERS 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 uninstall-pkgincludeHEADERS
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
1529
mbus/mbus-protocol-aux.c
Normal file
1529
mbus/mbus-protocol-aux.c
Normal file
File diff suppressed because it is too large
Load Diff
326
mbus/mbus-protocol-aux.h
Normal file
326
mbus/mbus-protocol-aux.h
Normal file
@ -0,0 +1,326 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson and contributors, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
// Contributors:
|
||||
// Large parts of this file was contributed by Tomas Menzl.
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @file mbus-protocol-aux.h
|
||||
*
|
||||
* @brief Auxiliary functions to the Freescada libmbus library
|
||||
*
|
||||
* The idea is to simplify the basic task of querying MBus slaves and
|
||||
* the data processing.
|
||||
* Typical use might be (in oversimplified "pseudocode"):
|
||||
* \verbatim
|
||||
* mbus_handle = mbus_connect_serial(device);
|
||||
* or
|
||||
* mbus_handle = mbus_connect_tcp(host, port);
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* mbus_read_slave(mbus_handle, addresses, &reply);
|
||||
* mbus_frame_data_parse(reply, &frameData);
|
||||
* // check the header / record type (fixed/variable)
|
||||
*
|
||||
* // for fixed use mbus_data_fixed_medium and 2x mbus_parse_fixed_record
|
||||
* mbus_data_fixed_medium
|
||||
* mbusRecord = mbus_parse_fixed_record() // first record
|
||||
* // process mbusRecord
|
||||
* mbusRecord = mbus_parse_fixed_record() // second record
|
||||
* // process mbusRecord
|
||||
*
|
||||
* // for variable use mbus_parse_variable_record
|
||||
* for each record
|
||||
* mbusRecord = mbus_parse_variable_record(record)
|
||||
* // process mbusRecord
|
||||
*
|
||||
* ...
|
||||
*
|
||||
* mbus_disconnect(mbus_handle);
|
||||
* \endverbatim
|
||||
*
|
||||
* Note that the quantity values are partially "normalized". For example energy
|
||||
* is in Wh even when originally used "decimal" prefixes like MWh. This seems to
|
||||
* be sensible as it make easier any processing of a dataset with huge
|
||||
* fluctuation (no need to lookup/convert the prefixes). Also the potential
|
||||
* conversion to desired units is pretty easy.
|
||||
*
|
||||
* On the other hand we acknowledge that use of certain units are expected so we
|
||||
* do not convert all units to Si (i.e. no conversion from J to Wh or Bar to Pa.)
|
||||
*/
|
||||
|
||||
#ifndef __MBUS_PROTOCOL_AUX_H__
|
||||
#define __MBUS_PROTOCOL_AUX_H__
|
||||
|
||||
#include <mbus/mbus.h>
|
||||
#include <mbus/mbus-protocol.h>
|
||||
#include <mbus/mbus-serial.h>
|
||||
#include <mbus/mbus-tcp.h>
|
||||
|
||||
#define MBUS_PROBE_NOTHING 0
|
||||
#define MBUS_PROBE_SINGLE 1
|
||||
#define MBUS_PROBE_COLLISION 2
|
||||
#define MBUS_PROBE_ERROR -1
|
||||
|
||||
|
||||
/**
|
||||
* Unified MBus handle type encapsulating either Serial or TCP gateway.
|
||||
*/
|
||||
typedef struct _mbus_handle {
|
||||
char is_serial; /**< _handle type (non zero for serial) */
|
||||
union {
|
||||
mbus_tcp_handle * m_tcp_handle; /**< TCP gateway handle */
|
||||
mbus_serial_handle * m_serial_handle; /**< Serial gateway handle */
|
||||
};
|
||||
} mbus_handle;
|
||||
|
||||
|
||||
/**
|
||||
* MBus slave address type (primary/secodary address)
|
||||
*/
|
||||
typedef struct _mbus_address {
|
||||
char is_primary; /**< Address type (non zero for primary) */
|
||||
union {
|
||||
int primary; /**< Primary address (for slaves shall be from 1 to 250) */
|
||||
char * secondary; /**< Secondary address (shall be 16 digits) */
|
||||
};
|
||||
} mbus_address;
|
||||
|
||||
|
||||
/**
|
||||
* _string type
|
||||
*
|
||||
* In general support binary strings (octet string, non zero terminated)
|
||||
* but so far almost all strings are zero terminated ("texts").
|
||||
*/
|
||||
typedef struct _mbus_string {
|
||||
char * value; /**< Buffer */
|
||||
int size; /**< _size */
|
||||
} mbus_string;
|
||||
|
||||
|
||||
/**
|
||||
* Quantity value type union
|
||||
*/
|
||||
typedef union _mbus_value {
|
||||
double real_val; /**< Numerical */
|
||||
mbus_string str_val; /**< Text/binary */
|
||||
} mbus_value;
|
||||
|
||||
|
||||
/**
|
||||
* Single measured quantity record type
|
||||
*/
|
||||
typedef struct _mbus_record {
|
||||
mbus_value value; /**< Quantity value */
|
||||
char is_numeric; /**< Quantity value type (nonzero is numeric) */
|
||||
char *unit; /**< Quantity unit (e.g. Wh) */
|
||||
char *function_medium; /**< Quantity medium or function (e.g. Electricity) */
|
||||
char *quantity; /**< Quantity type (e.g. Energy) */
|
||||
} mbus_record;
|
||||
|
||||
|
||||
/**
|
||||
* Connects to serial gateway and initializes MBus handle
|
||||
*
|
||||
* @param device Serial device (like /dev/ttyUSB0 or /dev/ttyS0)
|
||||
*
|
||||
* @return Initialized "unified" handler when successful, NULL otherwise;
|
||||
*/
|
||||
mbus_handle * mbus_connect_serial(const char * device);
|
||||
|
||||
/**
|
||||
* Connects to TCP gateway and initializes MBus handle
|
||||
*
|
||||
* @param host Gateway host
|
||||
* @param port Gateway port
|
||||
*
|
||||
* @return Initialized "unified" handler when successful, NULL otherwise;
|
||||
*/
|
||||
mbus_handle * mbus_connect_tcp(const char *host, int port);
|
||||
|
||||
/**
|
||||
* Disconnects the "unified" handle.
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_disconnect(mbus_handle * handle);
|
||||
|
||||
/**
|
||||
* Receives a frame using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param frame Received frame
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_recv_frame(mbus_handle * handle, mbus_frame *frame);
|
||||
|
||||
/**
|
||||
* Sends frame using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param frame Frame to send
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_send_frame(mbus_handle * handle, mbus_frame *frame);
|
||||
|
||||
/**
|
||||
* Sends secodary address selection frame using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param secondary_addr_str Secondary address
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_send_select_frame(mbus_handle * handle, const char *secondary_addr_str);
|
||||
|
||||
/**
|
||||
* Sends request frame to given slave using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param address Address (0-255)
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_send_data_request_frame(mbus_handle * handle, int address);
|
||||
|
||||
/**
|
||||
* Probe/address slave by secondary address using "unified" handle
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param mask Address/mask to probe
|
||||
* @param matching_addr Matched address (the buffer has tobe at least 16 bytes)
|
||||
*
|
||||
* @return See MBUS_PROBE_* constants
|
||||
*/
|
||||
int mbus_probe_secondary_address(mbus_handle * handle, const char *mask, char *matching_addr);
|
||||
|
||||
/**
|
||||
* Read data from given slave using "unified" handle and address types
|
||||
*
|
||||
* @param handle Initialized handle
|
||||
* @param address Address of the slave
|
||||
* @param reply Reply from the slave
|
||||
*
|
||||
* @return Zero when successful.
|
||||
*/
|
||||
int mbus_read_slave(mbus_handle *handle, mbus_address *address, mbus_frame *reply);
|
||||
|
||||
|
||||
/**
|
||||
* Allocate new data record. Use #mbus_record_free when finished.
|
||||
*
|
||||
* @return pointer to the new record, NULL when failed
|
||||
*/
|
||||
mbus_record * mbus_record_new();
|
||||
|
||||
/**
|
||||
* Destructor for mbus_record
|
||||
*
|
||||
* @param rec record to be freed
|
||||
*/
|
||||
void mbus_record_free(mbus_record *rec);
|
||||
|
||||
|
||||
/**
|
||||
* Create/parse single counter from the fixed data structure
|
||||
*
|
||||
* @param statusByte status byte
|
||||
* @param medium_unit_byte medium/unit byte
|
||||
* @param data pointer to the data counter (4 bytes)
|
||||
*
|
||||
* @return Newly allocated record if succesful, NULL otherwise. Later on need to use #mbus_record_free
|
||||
*/
|
||||
mbus_record *mbus_parse_fixed_record(char statusByte, char medium_unit_byte, u_char *data);
|
||||
|
||||
|
||||
/**
|
||||
* Create/parse single counter from the variable data structure record
|
||||
*
|
||||
* @param data record data to be parsed
|
||||
*
|
||||
* @return Newly allocated record if succesful, NULL otherwise. Later on need to use #mbus_record_free
|
||||
*/
|
||||
mbus_record * mbus_parse_variable_record(mbus_data_record *record);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get normalized counter value for a fixed counter
|
||||
*
|
||||
* Get "normalized" value and unit of the counter
|
||||
*
|
||||
* @param medium_unit_byte medium/unit byte of the fixed counter
|
||||
* @param medium_value raw counter value
|
||||
* @param unit_out units of the counter - use free when done
|
||||
* @param value_out resulting counter value
|
||||
* @param quantity_out parsed quantity, when done use "free"
|
||||
*
|
||||
* @return zero when OK
|
||||
*/
|
||||
int mbus_data_fixed_normalize(int medium_unit_byte, long medium_value, char **unit_out, double *value_out, char **quantity_out);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Decode value of a variable data structure
|
||||
*
|
||||
* @param record record to be decoded
|
||||
* @param value_out_real numerical counter value output (when numerical)
|
||||
* @param value_out_str string counter value output (when string, NULL otherwise), when finished use "free *value_out_str"
|
||||
* @param value_out_str_size string counter value size
|
||||
*
|
||||
* @return zero when OK
|
||||
*/
|
||||
int mbus_data_variable_value_decode(mbus_record *record, double *value_out_real, char **value_out_str, int *value_out_str_size);
|
||||
|
||||
/**
|
||||
* Decode units and normalize value using VIF/VIFE (used internally by mbus_vib_unit_normalize)
|
||||
*
|
||||
* @param vif VIF (including standard extensions)
|
||||
* @param value already parsed "raw" numerical value
|
||||
* @param unit_out parsed unit, when done use "free"
|
||||
* @param value_out normalized value
|
||||
* @param quantity_out parsed quantity, when done use "free"
|
||||
*
|
||||
* @return zero when OK
|
||||
*/
|
||||
int mbus_vif_unit_normalize(int vif, double value, char **unit_out, double *value_out, char **quantity_out);
|
||||
|
||||
/**
|
||||
* Decode units and normalize value from VIB
|
||||
*
|
||||
* @param vib mbus value information block of the variable record
|
||||
* @param value already parsed "raw" numerical value
|
||||
* @param unit_out parsed unit, when done use "free"
|
||||
* @param value_out normalized value
|
||||
* @param quantity_out parsed quantity, when done use "free"
|
||||
*
|
||||
* @return zero when OK
|
||||
*/
|
||||
int mbus_vib_unit_normalize(mbus_value_information_block *vib, double value, char **unit_out, double *value_out, char ** quantity_out);
|
||||
|
||||
/**
|
||||
* Iterate over secondary addresses, send a probe package to all addresses matching
|
||||
* the given addresses mask.
|
||||
*
|
||||
* @param pos current address
|
||||
* @param addr_mask address mask to
|
||||
*
|
||||
* @return zero when OK
|
||||
*/
|
||||
int mbus_scan_2nd_address_range(mbus_handle * handle, int pos, char *addr_mask);
|
||||
|
||||
#endif // __MBUS_PROTOCOL_AUX_H__
|
3032
mbus/mbus-protocol.c
Normal file
3032
mbus/mbus-protocol.c
Normal file
File diff suppressed because it is too large
Load Diff
534
mbus/mbus-protocol.h
Normal file
534
mbus/mbus-protocol.h
Normal file
@ -0,0 +1,534 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010-2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @file mbus-protocol.h
|
||||
*
|
||||
* @brief Functions and data structures for M-Bus protocol parsing.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MBUS_PROTOCOL_H_
|
||||
#define _MBUS_PROTOCOL_H_
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <time.h>
|
||||
|
||||
//
|
||||
// Packet formats:
|
||||
//
|
||||
// ACK: size = 1 byte
|
||||
//
|
||||
// byte1: ack = 0xE5
|
||||
//
|
||||
// SHORT: size = 5 byte
|
||||
//
|
||||
// byte1: start = 0x10
|
||||
// byte2: control = ...
|
||||
// byte3: address = ...
|
||||
// byte4: chksum = ...
|
||||
// byte5: stop = 0x16
|
||||
//
|
||||
// CONTROL: size = 9 byte
|
||||
//
|
||||
// byte1: start1 = 0x68
|
||||
// byte2: length1 = ...
|
||||
// byte3: length2 = ...
|
||||
// byte4: start2 = 0x68
|
||||
// byte5: control = ...
|
||||
// byte6: address = ...
|
||||
// byte7: ctl.info= ...
|
||||
// byte8: chksum = ...
|
||||
// byte9: stop = 0x16
|
||||
//
|
||||
// LONG: size = N >= 9 byte
|
||||
//
|
||||
// byte1: start1 = 0x68
|
||||
// byte2: length1 = ...
|
||||
// byte3: length2 = ...
|
||||
// byte4: start2 = 0x68
|
||||
// byte5: control = ...
|
||||
// byte6: address = ...
|
||||
// byte7: ctl.info= ...
|
||||
// byte8: data = ...
|
||||
// ... = ...
|
||||
// byteN-1: chksum = ...
|
||||
// byteN: stop = 0x16
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
typedef struct _mbus_frame {
|
||||
|
||||
u_char start1;
|
||||
u_char length1;
|
||||
u_char length2;
|
||||
u_char start2;
|
||||
u_char control;
|
||||
u_char address;
|
||||
u_char control_information;
|
||||
// variable data field
|
||||
u_char checksum;
|
||||
u_char stop;
|
||||
|
||||
u_char data[252];
|
||||
size_t data_size;
|
||||
|
||||
int type;
|
||||
|
||||
//mbus_frame_data frame_data;
|
||||
|
||||
} mbus_frame;
|
||||
|
||||
typedef struct _mbus_slave_data {
|
||||
|
||||
int state_fcb;
|
||||
int state_acd;
|
||||
|
||||
} mbus_slave_data;
|
||||
|
||||
#define NITEMS(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// MBUS FRAME DATA FORMATS
|
||||
//
|
||||
|
||||
// DATA RECORDS
|
||||
#define MBUS_DIB_DIF_EXTENSION_BIT 0x80
|
||||
#define MBUS_DIB_VIF_EXTENSION_BIT 0x80
|
||||
|
||||
typedef struct _mbus_data_information_block {
|
||||
|
||||
u_char dif;
|
||||
u_char dife[10];
|
||||
size_t ndife;
|
||||
|
||||
} mbus_data_information_block;
|
||||
|
||||
typedef struct _mbus_value_information_block {
|
||||
|
||||
u_char vif;
|
||||
u_char vife[10];
|
||||
size_t nvife;
|
||||
|
||||
u_char custom_vif[128];
|
||||
|
||||
} mbus_value_information_block;
|
||||
|
||||
typedef struct _mbus_data_record_header {
|
||||
|
||||
mbus_data_information_block dib;
|
||||
mbus_value_information_block vib;
|
||||
|
||||
} mbus_data_record_header;
|
||||
|
||||
typedef struct _mbus_data_record {
|
||||
|
||||
mbus_data_record_header drh;
|
||||
|
||||
u_char data[234];
|
||||
size_t data_len;
|
||||
|
||||
void *next;
|
||||
|
||||
} mbus_data_record;
|
||||
|
||||
//
|
||||
// HEADER FOR VARIABLE LENGTH DATA FORMAT
|
||||
//
|
||||
typedef struct _mbus_data_variable_header {
|
||||
|
||||
//Ident.Nr. Manufr. Version Medium Access No. Status Signature
|
||||
//4 Byte 2 Byte 1 Byte 1 Byte 1 Byte 1 Byte 2 Byte
|
||||
|
||||
// ex
|
||||
// 88 63 80 09 82 4D 02 04 15 00 00 00
|
||||
|
||||
u_char id_bcd[4]; // 88 63 80 09
|
||||
u_char manufacturer[2]; // 82 4D
|
||||
u_char version; // 02
|
||||
u_char medium; // 04
|
||||
u_char access_no; // 15
|
||||
u_char status; // 00
|
||||
u_char signature[2]; // 00 00
|
||||
|
||||
} mbus_data_variable_header;
|
||||
|
||||
//
|
||||
// VARIABLE LENGTH DATA FORMAT
|
||||
//
|
||||
typedef struct _mbus_data_variable {
|
||||
|
||||
mbus_data_variable_header header;
|
||||
|
||||
mbus_data_record *record; // XXX: this max num must be dynamic
|
||||
size_t nrecords;
|
||||
|
||||
u_char *data;
|
||||
size_t data_len;
|
||||
|
||||
// are these needed/used?
|
||||
u_char mdh;
|
||||
u_char *mfg_data;
|
||||
size_t mfg_data_len;
|
||||
|
||||
} mbus_data_variable;
|
||||
|
||||
//
|
||||
// FIXED LENGTH DATA FORMAT
|
||||
//
|
||||
typedef struct _mbus_data_fixed {
|
||||
|
||||
// ex
|
||||
// 35 01 00 00 counter 2 = 135 l (historic value)
|
||||
//
|
||||
// e.g.
|
||||
//
|
||||
// 78 56 34 12 identification number = 12345678
|
||||
// 0A transmission counter = 0Ah = 10d
|
||||
// 00 status 00h: counters coded BCD, actual values, no errors
|
||||
// E9 7E Type&Unit: medium water, unit1 = 1l, unit2 = 1l (same, but historic)
|
||||
// 01 00 00 00 counter 1 = 1l (actual value)
|
||||
// 35 01 00 00 counter 2 = 135 l (historic value)
|
||||
|
||||
u_char id_bcd[4];
|
||||
u_char tx_cnt;
|
||||
u_char status;
|
||||
u_char cnt1_type;
|
||||
u_char cnt2_type;
|
||||
u_char cnt1_val[4];
|
||||
u_char cnt2_val[4];
|
||||
|
||||
} mbus_data_fixed;
|
||||
|
||||
//
|
||||
// ABSTRACT DATA FORMAT (either fixed or variable length)
|
||||
//
|
||||
#define MBUS_DATA_TYPE_FIXED 1
|
||||
#define MBUS_DATA_TYPE_VARIABLE 2
|
||||
typedef struct _mbus_frame_data {
|
||||
|
||||
mbus_data_variable data_var;
|
||||
mbus_data_fixed data_fix;
|
||||
|
||||
int type;
|
||||
|
||||
} mbus_frame_data;
|
||||
|
||||
//
|
||||
// HEADER FOR SECONDARY ADDRESSING
|
||||
//
|
||||
typedef struct _mbus_data_secondary_address {
|
||||
|
||||
//Ident.Nr. Manufr. Version Medium
|
||||
//4 Byte 2 Byte 1 Byte 1 Byte
|
||||
|
||||
// ex
|
||||
// 14 49 10 01 10 57 01 06
|
||||
|
||||
u_char id_bcd[4]; // 14 49 10 01
|
||||
u_char manufacturer[2]; // 10 57
|
||||
u_char version; // 01
|
||||
u_char medium; // 06
|
||||
|
||||
} mbus_data_secondary_address;
|
||||
|
||||
|
||||
//
|
||||
// for compatibility with non-gcc compilers:
|
||||
//
|
||||
//#ifndef __PRETTY_FUNCTION__
|
||||
//#define __PRETTY_FUNCTION__ "libmbus"
|
||||
//#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// FRAME types
|
||||
//
|
||||
#define MBUS_FRAME_TYPE_ANY 0x00
|
||||
#define MBUS_FRAME_TYPE_ACK 0x01
|
||||
#define MBUS_FRAME_TYPE_SHORT 0x02
|
||||
#define MBUS_FRAME_TYPE_CONTROL 0x03
|
||||
#define MBUS_FRAME_TYPE_LONG 0x04
|
||||
|
||||
#define MBUS_FRAME_ACK_BASE_SIZE 1
|
||||
#define MBUS_FRAME_SHORT_BASE_SIZE 5
|
||||
#define MBUS_FRAME_CONTROL_BASE_SIZE 9
|
||||
#define MBUS_FRAME_LONG_BASE_SIZE 9
|
||||
|
||||
#define MBUS_FRAME_BASE_SIZE_ACK 1
|
||||
#define MBUS_FRAME_BASE_SIZE_SHORT 5
|
||||
#define MBUS_FRAME_BASE_SIZE_CONTROL 9
|
||||
#define MBUS_FRAME_BASE_SIZE_LONG 9
|
||||
|
||||
#define MBUS_FRAME_FIXED_SIZE_ACK 1
|
||||
#define MBUS_FRAME_FIXED_SIZE_SHORT 5
|
||||
#define MBUS_FRAME_FIXED_SIZE_CONTROL 6
|
||||
#define MBUS_FRAME_FIXED_SIZE_LONG 6
|
||||
|
||||
//
|
||||
// Frame start/stop bits
|
||||
//
|
||||
#define MBUS_FRAME_ACK_START 0xE5
|
||||
#define MBUS_FRAME_SHORT_START 0x10
|
||||
#define MBUS_FRAME_CONTROL_START 0x68
|
||||
#define MBUS_FRAME_LONG_START 0x68
|
||||
#define MBUS_FRAME_STOP 0x16
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
#define MBUS_MAX_PRIMARY_SLAVES 256
|
||||
|
||||
//
|
||||
// Control field
|
||||
//
|
||||
#define MBUS_CONTROL_FIELD_DIRECTION 0x07
|
||||
#define MBUS_CONTROL_FIELD_FCB 0x06
|
||||
#define MBUS_CONTROL_FIELD_ACD 0x06
|
||||
#define MBUS_CONTROL_FIELD_FCV 0x05
|
||||
#define MBUS_CONTROL_FIELD_DFC 0x05
|
||||
#define MBUS_CONTROL_FIELD_F3 0x04
|
||||
#define MBUS_CONTROL_FIELD_F2 0x03
|
||||
#define MBUS_CONTROL_FIELD_F1 0x02
|
||||
#define MBUS_CONTROL_FIELD_F0 0x01
|
||||
|
||||
#define MBUS_CONTROL_MASK_SND_NKE 0x40
|
||||
#define MBUS_CONTROL_MASK_SND_UD 0x53
|
||||
#define MBUS_CONTROL_MASK_REQ_UD2 0x5B
|
||||
#define MBUS_CONTROL_MASK_REQ_UD1 0x5A
|
||||
#define MBUS_CONTROL_MASK_RSP_UD 0x08
|
||||
|
||||
#define MBUS_CONTROL_MASK_FCB 0x20
|
||||
#define MBUS_CONTROL_MASK_FCV 0x10
|
||||
|
||||
#define MBUS_CONTROL_MASK_ACD 0x20
|
||||
#define MBUS_CONTROL_MASK_DFC 0x10
|
||||
|
||||
#define MBUS_CONTROL_MASK_DIR 0x40
|
||||
#define MBUS_CONTROL_MASK_DIR_M2S 0x40
|
||||
#define MBUS_CONTROL_MASK_DIR_S2M 0x00
|
||||
|
||||
//
|
||||
// Address field
|
||||
//
|
||||
#define MBUS_ADDRESS_BROADCAST_REPLY 0xFE
|
||||
#define MBUS_ADDRESS_BROADCAST_NOREPLY 0xFF
|
||||
#define MBUS_ADDRESS_NETWORK_LAYER 0xFD
|
||||
|
||||
//
|
||||
// Control Information field
|
||||
//
|
||||
//Mode 1 Mode 2 Application Definition in
|
||||
// 51h 55h data send EN1434-3
|
||||
// 52h 56h selection of slaves Usergroup July ́93
|
||||
// 50h application reset Usergroup March ́94
|
||||
// 54h synronize action suggestion
|
||||
// B8h set baudrate to 300 baud Usergroup July ́93
|
||||
// B9h set baudrate to 600 baud Usergroup July ́93
|
||||
// BAh set baudrate to 1200 baud Usergroup July ́93
|
||||
// BBh set baudrate to 2400 baud Usergroup July ́93
|
||||
// BCh set baudrate to 4800 baud Usergroup July ́93
|
||||
// BDh set baudrate to 9600 baud Usergroup July ́93
|
||||
// BEh set baudrate to 19200 baud suggestion
|
||||
// BFh set baudrate to 38400 baud suggestion
|
||||
// B1h request readout of complete RAM content Techem suggestion
|
||||
// B2h send user data (not standardized RAM write) Techem suggestion
|
||||
// B3h initialize test calibration mode Usergroup July ́93
|
||||
// B4h EEPROM read Techem suggestion
|
||||
// B6h start software test Techem suggestion
|
||||
// 90h to 97h codes used for hashing longer recommended
|
||||
|
||||
#define MBUS_CONTROL_INFO_DATA_SEND 0x51
|
||||
#define MBUS_CONTROL_INFO_DATA_SEND_MSB 0x55
|
||||
#define MBUS_CONTROL_INFO_SELECT_SLAVE 0x52
|
||||
#define MBUS_CONTROL_INFO_SELECT_SLAVE_MSB 0x56
|
||||
#define MBUS_CONTROL_INFO_APPLICATION_RESET 0x50
|
||||
#define MBUS_CONTROL_INFO_SYNC_ACTION 0x54
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_300 0xB8
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_600 0xB9
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_1200 0xBA
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_2400 0xBB
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_4800 0xBC
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_9600 0xBD
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_19200 0xBE
|
||||
#define MBUS_CONTROL_INFO_SET_BAUDRATE_38400 0xBF
|
||||
#define MBUS_CONTROL_INFO_REQUEST_RAM_READ 0xB1
|
||||
#define MBUS_CONTROL_INFO_SEND_USER_DATA 0xB2
|
||||
#define MBUS_CONTROL_INFO_INIT_TEST_CALIB 0xB3
|
||||
#define MBUS_CONTROL_INFO_EEPROM_READ 0xB4
|
||||
#define MBUS_CONTROL_INFO_SW_TEST_START 0xB6
|
||||
|
||||
#define MBUS_CONTROL_INFO_RESP_FIXED 0x73
|
||||
#define MBUS_CONTROL_INFO_RESP_FIXED_MSB 0x77
|
||||
|
||||
#define MBUS_CONTROL_INFO_RESP_VARIABLE 0x72
|
||||
#define MBUS_CONTROL_INFO_RESP_VARIABLE_MSB 0x76
|
||||
|
||||
//
|
||||
// DATA BITS
|
||||
//
|
||||
#define MBUS_DATA_FIXED_STATUS_FORMAT_MASK 0x80
|
||||
#define MBUS_DATA_FIXED_STATUS_FORMAT_BCD 0x00
|
||||
#define MBUS_DATA_FIXED_STATUS_FORMAT_INT 0x80
|
||||
#define MBUS_DATA_FIXED_STATUS_DATE_MASK 0x40
|
||||
#define MBUS_DATA_FIXED_STATUS_DATE_STORED 0x40
|
||||
#define MBUS_DATA_FIXED_STATUS_DATE_CURRENT 0x00
|
||||
|
||||
|
||||
//
|
||||
// data record fields
|
||||
//
|
||||
#define MBUS_DATA_RECORD_DIF_MASK_INST 0x00
|
||||
#define MBUS_DATA_RECORD_DIF_MASK_MIN 0x10
|
||||
|
||||
#define MBUS_DATA_RECORD_DIF_MASK_TYPE_INT32 0x04
|
||||
#define MBUS_DATA_RECORD_DIF_MASK_STORAGE_NO 0x40
|
||||
#define MBUS_DATA_RECORD_DIF_MASK_EXTENTION 0x80
|
||||
|
||||
|
||||
//
|
||||
// FIXED DATA FLAGS
|
||||
//
|
||||
|
||||
//
|
||||
// VARIABLE DATA FLAGS
|
||||
//
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_OTHER 0x00
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_OIL 0x01
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_ELECTRICITY 0x02
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_GAS 0x03
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_HEAT 0x04
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_STEAM 0x05
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_HOT_WATER 0x06
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_WATER 0x07
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_HEAT_COST 0x08
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COMPR_AIR 0x09
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COOL_OUT 0x0A
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COOL_IN 0x0B
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_BUS 0x0E
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_COLD_WATER 0x16
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_DUAL_WATER 0x17
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_PRESSURE 0x18
|
||||
#define MBUS_VARIABLE_DATA_MEDIUM_ADC 0x19
|
||||
|
||||
|
||||
//
|
||||
// variable length records
|
||||
//
|
||||
mbus_data_record *mbus_data_record_new();
|
||||
void mbus_data_record_free(mbus_data_record *record);
|
||||
void mbus_data_record_append(mbus_data_variable *data, mbus_data_record *record);
|
||||
|
||||
|
||||
// XXX: Add application reset subcodes
|
||||
|
||||
mbus_frame *mbus_frame_new(int frame_type);
|
||||
int mbus_frame_free(mbus_frame *frame);
|
||||
|
||||
mbus_frame_data *mbus_frame_data_new();
|
||||
void mbus_frame_data_free(mbus_frame_data *data);
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
int mbus_frame_calc_checksum(mbus_frame *frame);
|
||||
int mbus_frame_calc_length (mbus_frame *frame);
|
||||
|
||||
//
|
||||
// Parse/Pack to bin
|
||||
//
|
||||
int mbus_parse(mbus_frame *frame, u_char *data, size_t data_size);
|
||||
|
||||
int mbus_data_fixed_parse (mbus_frame *frame, mbus_data_fixed *data);
|
||||
int mbus_data_variable_parse(mbus_frame *frame, mbus_data_variable *data);
|
||||
|
||||
int mbus_frame_data_parse (mbus_frame *frame, mbus_frame_data *data);
|
||||
|
||||
int mbus_frame_pack(mbus_frame *frame, u_char *data, size_t data_size);
|
||||
|
||||
int mbus_frame_verify(mbus_frame *frame);
|
||||
|
||||
int mbus_frame_internal_pack(mbus_frame *frame, mbus_frame_data *frame_data);
|
||||
|
||||
//
|
||||
// data parsing
|
||||
//
|
||||
const char *mbus_data_record_function(mbus_data_record *record);
|
||||
const char *mbus_data_fixed_function(int status);
|
||||
|
||||
//
|
||||
// M-Bus frame data struct access/write functions
|
||||
//
|
||||
int mbus_frame_type(mbus_frame *frame);
|
||||
|
||||
//
|
||||
// Slave status data register.
|
||||
//
|
||||
mbus_slave_data *mbus_slave_data_get(size_t i);
|
||||
|
||||
//
|
||||
// XML generating functions
|
||||
//
|
||||
void mbus_str_xml_encode(u_char *dst, const u_char *src, size_t max_len);
|
||||
char *mbus_data_xml(mbus_frame_data *data);
|
||||
char *mbus_data_variable_xml(mbus_data_variable *data);
|
||||
char *mbus_data_fixed_xml(mbus_data_fixed *data);
|
||||
char *mbus_frame_data_xml(mbus_frame_data *data);
|
||||
|
||||
char *mbus_data_variable_header_xml(mbus_data_variable_header *header);
|
||||
|
||||
|
||||
//
|
||||
// Debug/dump
|
||||
//
|
||||
int mbus_frame_print(mbus_frame *frame);
|
||||
int mbus_frame_data_print(mbus_frame_data *data);
|
||||
int mbus_data_fixed_print(mbus_data_fixed *data);
|
||||
int mbus_data_variable_header_print(mbus_data_variable_header *header);
|
||||
int mbus_data_variable_print(mbus_data_variable *data);
|
||||
|
||||
char *mbus_error_str();
|
||||
void mbus_error_str_set(char *message);
|
||||
void mbus_error_reset();
|
||||
|
||||
//
|
||||
// data encode/decode functions
|
||||
//
|
||||
int mbus_data_manufacturer_encode(u_char *m_data, u_char *m_code);
|
||||
const char *mbus_decode_manufacturer(u_char byte1, u_char byte2);
|
||||
|
||||
int mbus_data_bcd_encode(u_char *bcd_data, size_t bcd_data_size, int value);
|
||||
int mbus_data_int_encode(u_char *int_data, size_t int_data_size, int value);
|
||||
|
||||
long mbus_data_bcd_decode(u_char *bcd_data, size_t bcd_data_size);
|
||||
int mbus_data_int_decode(u_char *int_data, size_t int_data_size);
|
||||
long mbus_data_long_decode(u_char *int_data, size_t int_data_size);
|
||||
|
||||
void mbus_data_tm_decode(struct tm *t, u_char *t_data, size_t t_data_size);
|
||||
|
||||
void mbus_data_str_decode(u_char *dst, const u_char *src, size_t len);
|
||||
|
||||
const char *mbus_data_fixed_medium(mbus_data_fixed *data);
|
||||
const char *mbus_data_fixed_unit(int medium_unit_byte);
|
||||
const char *mbus_data_variable_medium_lookup(u_char medium);
|
||||
const char *mbus_unit_prefix(int exp);
|
||||
|
||||
|
||||
const char *mbus_vib_unit_lookup(mbus_value_information_block *vib);
|
||||
const char *mbus_vif_unit_lookup(u_char vif);
|
||||
|
||||
u_char mbus_dif_datalength_lookup(u_char dif);
|
||||
|
||||
char *mbus_frame_get_secondary_address(mbus_frame *frame);
|
||||
int mbus_frame_select_secondary_pack(mbus_frame *frame, char *address);
|
||||
|
||||
#endif /* _MBUS_PROTOCOL_H_ */
|
||||
|
229
mbus/mbus-serial.c
Normal file
229
mbus/mbus-serial.c
Normal file
@ -0,0 +1,229 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include <termios.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <mbus/mbus.h>
|
||||
#include <mbus/mbus-serial.h>
|
||||
|
||||
#define PACKET_BUFF_SIZE 2048
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// Set up a serial connection handle.
|
||||
//------------------------------------------------------------------------------
|
||||
mbus_serial_handle *
|
||||
mbus_serial_connect(char *device)
|
||||
{
|
||||
mbus_serial_handle *handle;
|
||||
|
||||
if (device == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((handle = (mbus_serial_handle *)malloc(sizeof(mbus_serial_handle))) == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to allocate memory for handle\n", __PRETTY_FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
handle->device = device; // strdup?
|
||||
|
||||
//
|
||||
// create the SERIAL connection
|
||||
//
|
||||
|
||||
// Use blocking read and handle it by serial port VMIN/VTIME setting
|
||||
if ((handle->fd = open(handle->device, O_RDWR | O_NOCTTY)) < 0)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to open tty.", __PRETTY_FUNCTION__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bzero(&(handle->t), sizeof(handle->t));
|
||||
handle->t.c_cflag |= (CS8|CREAD|CLOCAL);
|
||||
handle->t.c_cflag |= PARENB;
|
||||
|
||||
// No received data still OK
|
||||
handle->t.c_cc[VMIN] = 0;
|
||||
|
||||
// Wait at most 0.2 sec.Note that it starts after first received byte!!
|
||||
// I.e. if CMIN>0 and there are no data we would still wait forever...
|
||||
//
|
||||
// The specification mentions link layer response timeout this way:
|
||||
// The time structure of various link layer communication types is described in EN60870-5-1. The answer time
|
||||
// between the end of a master send telegram and the beginning of the response telegram of the slave shall be
|
||||
// between 11 bit times and (330 bit times + 50ms).
|
||||
//
|
||||
// For 2400Bd this means (330 + 11) / 2400 + 0.05 = 188.75 ms (added 11 bit periods to receive first byte).
|
||||
// I.e. timeout of 0.2s seems appropriate for 2400Bd.
|
||||
|
||||
handle->t.c_cc[VTIME] = 2;
|
||||
|
||||
cfsetispeed(&(handle->t), B2400);
|
||||
cfsetospeed(&(handle->t), B2400);
|
||||
|
||||
#ifdef MBUS_SERIAL_DEBUG
|
||||
printf("%s: t.c_cflag = %x\n", __PRETTY_FUNCTION__, handle->t.c_cflag);
|
||||
printf("%s: t.c_oflag = %x\n", __PRETTY_FUNCTION__, handle->t.c_oflag);
|
||||
printf("%s: t.c_iflag = %x\n", __PRETTY_FUNCTION__, handle->t.c_iflag);
|
||||
printf("%s: t.c_lflag = %x\n", __PRETTY_FUNCTION__, handle->t.c_lflag);
|
||||
#endif
|
||||
|
||||
tcsetattr(handle->fd, TCSANOW, &(handle->t));
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_serial_set_baudrate(mbus_serial_handle *handle, int baudrate)
|
||||
{
|
||||
if (handle == NULL)
|
||||
return -1;
|
||||
|
||||
switch (baudrate)
|
||||
{
|
||||
case 300:
|
||||
cfsetispeed(&(handle->t), B300);
|
||||
cfsetospeed(&(handle->t), B300);
|
||||
return 0;
|
||||
|
||||
case 1200:
|
||||
cfsetispeed(&(handle->t), B1200);
|
||||
cfsetospeed(&(handle->t), B1200);
|
||||
return 0;
|
||||
|
||||
case 2400:
|
||||
cfsetispeed(&(handle->t), B2400);
|
||||
cfsetospeed(&(handle->t), B2400);
|
||||
return 0;
|
||||
|
||||
case 9600:
|
||||
cfsetispeed(&(handle->t), B9600);
|
||||
cfsetospeed(&(handle->t), B9600);
|
||||
return 0;
|
||||
|
||||
default:
|
||||
return -1; // unsupported baudrate
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_serial_disconnect(mbus_serial_handle *handle)
|
||||
{
|
||||
if (handle == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(handle->fd);
|
||||
|
||||
free(handle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_serial_send_frame(mbus_serial_handle *handle, mbus_frame *frame)
|
||||
{
|
||||
u_char buff[PACKET_BUFF_SIZE];
|
||||
int len, ret;
|
||||
|
||||
if (handle == NULL || frame == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((len = mbus_frame_pack(frame, buff, sizeof(buff))) == -1)
|
||||
{
|
||||
fprintf(stderr, "%s: mbus_frame_pack failed\n", __PRETTY_FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((ret = write(handle->fd, buff, len)) != len)
|
||||
{
|
||||
fprintf(stderr, "%s: Failed to write frame to socket (ret = %d: %s)\n", __PRETTY_FUNCTION__, ret, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_serial_recv_frame(mbus_serial_handle *handle, mbus_frame *frame)
|
||||
{
|
||||
char buff[PACKET_BUFF_SIZE];
|
||||
int len, remaining, nread;
|
||||
|
||||
bzero((void *)buff, sizeof(buff));
|
||||
|
||||
//
|
||||
// read data until a packet is received
|
||||
//
|
||||
remaining = 1; // start by reading 1 byte
|
||||
len = 0;
|
||||
|
||||
do {
|
||||
//printf("%s: Attempt to read %d bytes [len = %d]\n", __PRETTY_FUNCTION__, remaining, len);
|
||||
|
||||
if ((nread = read(handle->fd, &buff[len], remaining)) == -1)
|
||||
{
|
||||
// fprintf(stderr, "%s: aborting recv frame (remaining = %d, len = %d, nread = %d)\n",
|
||||
// __PRETTY_FUNCTION__, remaining, len, nread);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// printf("%s: Got %d byte [remaining %d, len %d]\n", __PRETTY_FUNCTION__, nread, remaining, len);
|
||||
|
||||
len += nread;
|
||||
|
||||
} while ((remaining = mbus_parse(frame, buff, len)) > 0);
|
||||
|
||||
if(remaining < 0)
|
||||
{
|
||||
// Would be OK when e.g. scanning the bus, otherwise it is a failure.
|
||||
// printf("%s: M-Bus layer failed to receive complete data.\n", __PRETTY_FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (len == -1)
|
||||
{
|
||||
fprintf(stderr, "%s: M-Bus layer failed to parse data.\n", __PRETTY_FUNCTION__);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
42
mbus/mbus-serial.h
Normal file
42
mbus/mbus-serial.h
Normal file
@ -0,0 +1,42 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @file mbus-serial.h
|
||||
*
|
||||
* @brief Functions and data structures for sending M-Bus data via RS232.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MBUS_SERIAL_H
|
||||
#define MBUS_SERIAL_H
|
||||
|
||||
#include <termios.h>
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
typedef struct _mbus_serial_handle {
|
||||
|
||||
char *device;
|
||||
|
||||
int fd;
|
||||
struct termios t;
|
||||
|
||||
} mbus_serial_handle;
|
||||
|
||||
|
||||
mbus_serial_handle *mbus_serial_connect(char *device);
|
||||
int mbus_serial_disconnect(mbus_serial_handle *handle);
|
||||
int mbus_serial_send_frame(mbus_serial_handle *handle, mbus_frame *frame);
|
||||
int mbus_serial_recv_frame(mbus_serial_handle *handle, mbus_frame *frame);
|
||||
int mbus_serial_set_baudrate(mbus_serial_handle *handle, int baudrate);
|
||||
#endif /* MBUS_SERIAL_H */
|
||||
|
||||
|
||||
|
195
mbus/mbus-tcp.c
Normal file
195
mbus/mbus-tcp.c
Normal file
@ -0,0 +1,195 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <strings.h>
|
||||
|
||||
#include <mbus/mbus.h>
|
||||
#include <mbus/mbus-tcp.h>
|
||||
|
||||
#define PACKET_BUFF_SIZE 2048
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
/// Setup a TCP/IP handle.
|
||||
//------------------------------------------------------------------------------
|
||||
mbus_tcp_handle *
|
||||
mbus_tcp_connect(char *host, int port)
|
||||
{
|
||||
mbus_tcp_handle *handle;
|
||||
|
||||
struct hostent *host_addr;
|
||||
struct sockaddr_in s;
|
||||
struct timeval time_out;
|
||||
|
||||
if (host == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((handle = (mbus_tcp_handle *)malloc(sizeof(mbus_tcp_handle))) == NULL)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: failed to allocate memory for handle\n", __PRETTY_FUNCTION__);
|
||||
mbus_error_str_set(error_str);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
handle->host = host; // strdup ?
|
||||
handle->port = port;
|
||||
|
||||
//
|
||||
// create the TCP connection
|
||||
//
|
||||
if ((handle->sock = socket(AF_INET,SOCK_STREAM, 0)) < 0)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: failed to setup a socket.", __PRETTY_FUNCTION__);
|
||||
mbus_error_str_set(error_str);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
s.sin_family = AF_INET;
|
||||
s.sin_port = htons(port);
|
||||
|
||||
/* resolve hostname */
|
||||
if ((host_addr = gethostbyname(host)) == NULL)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: unknown host: %s", __PRETTY_FUNCTION__, host);
|
||||
mbus_error_str_set(error_str);
|
||||
free(handle);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bcopy((void *)(host_addr->h_addr), (void *)(&s.sin_addr), host_addr->h_length);
|
||||
|
||||
if (connect(handle->sock, (struct sockaddr *)&s, sizeof(s)) < 0)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: Failed to establish connection to %s:%d", __PRETTY_FUNCTION__, host, port);
|
||||
mbus_error_str_set(error_str);
|
||||
free(handle);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Set a timeout
|
||||
time_out.tv_sec = 2; //seconds
|
||||
time_out.tv_usec = 0;
|
||||
setsockopt(handle->sock, SOL_SOCKET, SO_SNDTIMEO, &time_out, sizeof(time_out));
|
||||
setsockopt(handle->sock, SOL_SOCKET, SO_RCVTIMEO, &time_out, sizeof(time_out));
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_tcp_disconnect(mbus_tcp_handle *handle)
|
||||
{
|
||||
if (handle == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
close(handle->sock);
|
||||
|
||||
free(handle);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_tcp_send_frame(mbus_tcp_handle *handle, mbus_frame *frame)
|
||||
{
|
||||
u_char buff[PACKET_BUFF_SIZE];
|
||||
int len, ret;
|
||||
|
||||
if (handle == NULL || frame == NULL)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((len = mbus_frame_pack(frame, buff, sizeof(buff))) == -1)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: mbus_frame_pack failed\n", __PRETTY_FUNCTION__);
|
||||
mbus_error_str_set(error_str);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((ret = write(handle->sock, buff, len)) != len)
|
||||
{
|
||||
char error_str[128];
|
||||
snprintf(error_str, sizeof(error_str), "%s: Failed to write frame to socket (ret = %d)\n", __PRETTY_FUNCTION__, ret);
|
||||
mbus_error_str_set(error_str);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
mbus_tcp_recv_frame(mbus_tcp_handle *handle, mbus_frame *frame)
|
||||
{
|
||||
char buff[PACKET_BUFF_SIZE];
|
||||
int len, remaining, nread;
|
||||
|
||||
bzero((void *)buff, sizeof(buff));
|
||||
|
||||
//
|
||||
// read data until a packet is received
|
||||
//
|
||||
remaining = 1; // start by reading 1 byte
|
||||
len = 0;
|
||||
|
||||
do {
|
||||
//printf("%s: Attempt to read %d bytes [len = %d]", __PRETTY_FUNCTION__, remaining, len);
|
||||
|
||||
if ((nread = read(handle->sock, &buff[len], remaining)) == -1)
|
||||
{
|
||||
mbus_error_str_set("M-Bus tcp transport layer failed to read data.");
|
||||
//fprintf(stderr, "%s: aborting recv frame (remaining = %d, len = %d, nread = %d)",
|
||||
// __PRETTY_FUNCTION__, remaining, len, nread);
|
||||
return -1;
|
||||
}
|
||||
|
||||
//printf("%s: Got %d byte [remaining %d, len %d]", __PRETTY_FUNCTION__, nread, remaining, len);
|
||||
|
||||
len += nread;
|
||||
|
||||
} while ((remaining = mbus_parse(frame, buff, len)) > 0);
|
||||
|
||||
if (remaining < 0)
|
||||
{
|
||||
mbus_error_str_set("M-Bus layer failed to parse data.");
|
||||
return -2;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
41
mbus/mbus-tcp.h
Normal file
41
mbus/mbus-tcp.h
Normal file
@ -0,0 +1,41 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2011, Robert Johansson, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @file mbus-tcp.h
|
||||
*
|
||||
* @brief Functions and data structures for sending M-Bus data via TCP.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef MBUS_TCP_H
|
||||
#define MBUS_TCP_H
|
||||
|
||||
#include <mbus/mbus.h>
|
||||
|
||||
typedef struct _mbus_tcp_handle {
|
||||
|
||||
char *host;
|
||||
|
||||
int port;
|
||||
int sock;
|
||||
|
||||
} mbus_tcp_handle;
|
||||
|
||||
|
||||
mbus_tcp_handle *mbus_tcp_connect(char *host, int port);
|
||||
int mbus_tcp_disconnect(mbus_tcp_handle *handle);
|
||||
int mbus_tcp_send_frame(mbus_tcp_handle *handle, mbus_frame *frame);
|
||||
int mbus_tcp_recv_frame(mbus_tcp_handle *handle, mbus_frame *frame);
|
||||
|
||||
#endif /* MBUS_TCP_H */
|
||||
|
||||
|
||||
|
17
mbus/mbus.c
Normal file
17
mbus/mbus.c
Normal file
@ -0,0 +1,17 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <mbus/mbus-protocol.h>
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
int mbus_init() {return 0;}
|
||||
|
46
mbus/mbus.h
Normal file
46
mbus/mbus.h
Normal file
@ -0,0 +1,46 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* @file mbus.h
|
||||
*
|
||||
* @brief Main include file for the Freescada libmbus library.
|
||||
*
|
||||
* Include this file to access the libmbus API:
|
||||
\verbatim
|
||||
#include <mbus/mbus.h>
|
||||
\endverbatim
|
||||
*
|
||||
*/
|
||||
|
||||
/*! \mainpage libmbus
|
||||
*
|
||||
* These pages contain automatically generated documentation for the libmbus
|
||||
* API. For examples on how to use the libmbus library, see the applications
|
||||
* in the bin directory in the source code distribution.
|
||||
*
|
||||
* For more information, see http://www.freescada.com/libmbus
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _MBUS_H_
|
||||
#define _MBUS_H_
|
||||
|
||||
#include <mbus/mbus-protocol.h>
|
||||
#include <mbus/mbus-protocol-aux.h>
|
||||
#include <mbus/mbus-tcp.h>
|
||||
#include <mbus/mbus-serial.h>
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
int mbus_init();
|
||||
|
||||
#endif /* _MBUS_H_ */
|
376
missing
Executable file
376
missing
Executable file
@ -0,0 +1,376 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2, or (at your option)
|
||||
# any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
if test $# -eq 0; then
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
if test -f configure.ac; then
|
||||
configure_ac=configure.ac
|
||||
else
|
||||
configure_ac=configure.in
|
||||
fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
shift
|
||||
"$@" && exit 0
|
||||
# Exit code 63 means version mismatch. This often happens
|
||||
# when the user try to use an ancient version of a tool on
|
||||
# a file that requires a minimum version. In this case we
|
||||
# we should proceed has if the program had been absent, or
|
||||
# if --run hadn't been passed.
|
||||
if test $? = 63; then
|
||||
run=:
|
||||
msg="probably too old"
|
||||
fi
|
||||
;;
|
||||
|
||||
-h|--h|--he|--hel|--help)
|
||||
echo "\
|
||||
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
||||
|
||||
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
|
||||
error status if there is no known handling for PROGRAM.
|
||||
|
||||
Options:
|
||||
-h, --help display this help and exit
|
||||
-v, --version output version information and exit
|
||||
--run try to run the given command, and emulate it if it fails
|
||||
|
||||
Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
help2man touch the output file
|
||||
lex create \`lex.yy.c', if possible, from existing .c
|
||||
makeinfo touch the output file
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
||||
echo "missing $scriptversion (GNU Automake)"
|
||||
exit $?
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo 1>&2 "$0: Unknown \`$1' option"
|
||||
echo 1>&2 "Try \`$0 --help' for more information"
|
||||
exit 1
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# Now exit if we have it, but it failed. Also exit now if we
|
||||
# don't have it and --version was passed (most likely to detect
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
|
||||
# We have it, but it failed.
|
||||
exit 1
|
||||
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
|
||||
# Could not run --version or --help. This is probably someone
|
||||
# running `$TOOL --version' or `$TOOL --help' to check whether
|
||||
# $TOOL exists and not knowing $TOOL uses missing.
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
|
||||
to install the \`Automake' and \`Perl' packages. Grab them from
|
||||
any GNU archive site."
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
|
||||
archive site."
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
to install the \`Autoconf' and \`GNU m4' packages. Grab them
|
||||
from any GNU archive site."
|
||||
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
esac
|
||||
done
|
||||
touch $touch_files
|
||||
;;
|
||||
|
||||
automake*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
|
||||
You might want to install the \`Automake' and \`Perl' packages.
|
||||
Grab them from any GNU archive site."
|
||||
find . -type f -name Makefile.am -print |
|
||||
sed 's/\.am$/.in/' |
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo "#! /bin/sh"
|
||||
echo "# Created by GNU Automake missing as a replacement of"
|
||||
echo "# $ $@"
|
||||
echo "exit 0"
|
||||
chmod +x $file
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' $msg. You should only need it if
|
||||
you modified a \`.y' file. You may need the \`Bison' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.l' file. You may need the \`Flex' package
|
||||
in order for those modifications to take effect. You can get
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a dependency of a manual page. You may need the
|
||||
\`Help2man' package in order for those modifications to take
|
||||
effect. You can get \`Help2man' from any GNU archive site."
|
||||
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
indirectly affecting the aspect of the manual. The spurious
|
||||
call might also be the consequence of using a buggy \`make' (AIX,
|
||||
DU, IRIX). You might want to install the \`Texinfo' package or
|
||||
the \`GNU make' package. Grab either from any GNU archive site."
|
||||
# The file to touch is that specified with -o ...
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '
|
||||
/^@setfilename/{
|
||||
s/.* \([^ ]*\) *$/\1/
|
||||
p
|
||||
q
|
||||
}' $infile`
|
||||
# ... or it is derived from the source name (dir/f.texi becomes f.info)
|
||||
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
|
||||
fi
|
||||
# If the file does not exist, the user really needs makeinfo;
|
||||
# let's fail without touching anything.
|
||||
test -f $file || exit 1
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
# Look for gnutar/gtar before invocation to avoid ugly error
|
||||
# messages.
|
||||
if (gnutar --version > /dev/null 2>&1); then
|
||||
gnutar "$@" && exit 0
|
||||
fi
|
||||
if (gtar --version > /dev/null 2>&1); then
|
||||
gtar "$@" && exit 0
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
echo 1>&2 "\
|
||||
WARNING: I can't seem to be able to run \`tar' with the given arguments.
|
||||
You may want to install GNU tar or Free paxutils, or check the
|
||||
command line arguments."
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, and is $msg.
|
||||
You might have modified some files without having the
|
||||
proper tools for further handling them. Check the \`README' file,
|
||||
it often tells you about the needed prerequisites for installing
|
||||
this package. You may also peek at any GNU archive site, in case
|
||||
some other package would contain this missing \`$1' program."
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
# Local variables:
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
36
release_notes.txt
Normal file
36
release_notes.txt
Normal file
@ -0,0 +1,36 @@
|
||||
Release notes for libmbus
|
||||
|
||||
Version 0.7.0 (2012-02-07):
|
||||
------------------
|
||||
|
||||
Added support for variable-length VIF ASCII encoding. Added support for setting baud rates as command-line argument for the serial communication utilities. Thanks to Stefan Wahren for bug fixes and improvements.
|
||||
|
||||
Version 0.6.0 (2011-11-06):
|
||||
---------------------------
|
||||
|
||||
Added support for decoding of more DIF and VIF types. Thanks to Pelle van der Heide for patches for imporoved support for ABB mbus devices. Several bug fixes, many of which provided by Tomas Menzl. Added a new auxillary API for simplifying development of custom mbus applications, and which contains a unified API for TCP and serial MBUS communication. Many thanks to Tomas Menzl for major contributions.
|
||||
|
||||
Version 0.5.0 (2011-08-06):
|
||||
---------------------------
|
||||
|
||||
Added serial transport layer. Removed unnecessary GLib dependency. Added support for secondary address selection and probing. Many thanks to Uwe Grohnwaldt for assisting with a test environment for devices using secondary addressing.
|
||||
|
||||
Version 0.4.0 (2011-03-21):
|
||||
---------------------------
|
||||
|
||||
Added unit tests. Some minor backwards-incompatible API changes (related to generation of XML represenation). Support for dynamic number of records in variable-length data frames. Support for more medium and unit types. This release also includes several patches from Markus Bergkvist.
|
||||
|
||||
Version 0.3.0 (2010-11-23):
|
||||
---------------------------
|
||||
|
||||
Added support for CUSTOMER_LOCATION VIF type, activated slave_data status register. Also applied several patches from Markus Bergkvist that improved the API.
|
||||
|
||||
Version 0.2.0 (2010-08-07):
|
||||
---------------------------
|
||||
|
||||
Expanded M-Bus support. Now using autotools.
|
||||
|
||||
Version 0.1.0 (2010-04-15):
|
||||
---------------------------
|
||||
|
||||
Initial release FreeSCADAs Meter-Bus library: libmbus, has been published under an open source license.
|
29
test/Makefile.am
Normal file
29
test/Makefile.am
Normal file
@ -0,0 +1,29 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/mbus
|
||||
|
||||
noinst_HEADERS =
|
||||
noinst_PROGRAMS = mbus_unit_test1 mbus_parse mbus_parse_hex
|
||||
|
||||
mbus_unit_test1_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_unit_test1_LDADD = -lmbus -lcunit -lncurses
|
||||
mbus_unit_test1_SOURCES = mbus_unit_test1.c
|
||||
|
||||
mbus_parse_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_parse_LDADD = -lmbus
|
||||
mbus_parse_SOURCES = mbus_parse.c
|
||||
|
||||
mbus_parse_hex_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_parse_hex_LDADD = -lmbus
|
||||
mbus_parse_hex_SOURCES = mbus_parse_hex.c
|
||||
|
518
test/Makefile.in
Normal file
518
test/Makefile.in
Normal file
@ -0,0 +1,518 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
noinst_PROGRAMS = mbus_unit_test1$(EXEEXT) mbus_parse$(EXEEXT) \
|
||||
mbus_parse_hex$(EXEEXT)
|
||||
subdir = test
|
||||
DIST_COMMON = $(noinst_HEADERS) $(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 \
|
||||
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
|
||||
$(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
PROGRAMS = $(noinst_PROGRAMS)
|
||||
am_mbus_parse_OBJECTS = mbus_parse.$(OBJEXT)
|
||||
mbus_parse_OBJECTS = $(am_mbus_parse_OBJECTS)
|
||||
mbus_parse_DEPENDENCIES =
|
||||
mbus_parse_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_parse_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_parse_hex_OBJECTS = mbus_parse_hex.$(OBJEXT)
|
||||
mbus_parse_hex_OBJECTS = $(am_mbus_parse_hex_OBJECTS)
|
||||
mbus_parse_hex_DEPENDENCIES =
|
||||
mbus_parse_hex_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_parse_hex_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_mbus_unit_test1_OBJECTS = mbus_unit_test1.$(OBJEXT)
|
||||
mbus_unit_test1_OBJECTS = $(am_mbus_unit_test1_OBJECTS)
|
||||
mbus_unit_test1_DEPENDENCIES =
|
||||
mbus_unit_test1_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(mbus_unit_test1_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
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)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(mbus_parse_SOURCES) $(mbus_parse_hex_SOURCES) \
|
||||
$(mbus_unit_test1_SOURCES)
|
||||
DIST_SOURCES = $(mbus_parse_SOURCES) $(mbus_parse_hex_SOURCES) \
|
||||
$(mbus_unit_test1_SOURCES)
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Copyright (C) 2010, Raditex AB
|
||||
# All rights reserved.
|
||||
#
|
||||
# FreeSCADA
|
||||
# http://www.FreeSCADA.com
|
||||
# freescada@freescada.com
|
||||
#
|
||||
# ------------------------------------------------------------------------------
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
builddir = @builddir@
|
||||
datadir = @datadir@
|
||||
datarootdir = @datarootdir@
|
||||
docdir = @docdir@
|
||||
dvidir = @dvidir@
|
||||
exec_prefix = @exec_prefix@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
htmldir = @htmldir@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localedir = @localedir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
oldincludedir = @oldincludedir@
|
||||
pdfdir = @pdfdir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) -I$(top_srcdir)/mbus
|
||||
noinst_HEADERS =
|
||||
mbus_unit_test1_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_unit_test1_LDADD = -lmbus -lcunit -lncurses
|
||||
mbus_unit_test1_SOURCES = mbus_unit_test1.c
|
||||
mbus_parse_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_parse_LDADD = -lmbus
|
||||
mbus_parse_SOURCES = mbus_parse.c
|
||||
mbus_parse_hex_LDFLAGS = -L$(top_builddir)/mbus
|
||||
mbus_parse_hex_LDADD = -lmbus
|
||||
mbus_parse_hex_SOURCES = mbus_parse_hex.c
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign test/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);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstPROGRAMS:
|
||||
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
mbus_parse$(EXEEXT): $(mbus_parse_OBJECTS) $(mbus_parse_DEPENDENCIES)
|
||||
@rm -f mbus_parse$(EXEEXT)
|
||||
$(mbus_parse_LINK) $(mbus_parse_OBJECTS) $(mbus_parse_LDADD) $(LIBS)
|
||||
mbus_parse_hex$(EXEEXT): $(mbus_parse_hex_OBJECTS) $(mbus_parse_hex_DEPENDENCIES)
|
||||
@rm -f mbus_parse_hex$(EXEEXT)
|
||||
$(mbus_parse_hex_LINK) $(mbus_parse_hex_OBJECTS) $(mbus_parse_hex_LDADD) $(LIBS)
|
||||
mbus_unit_test1$(EXEEXT): $(mbus_unit_test1_OBJECTS) $(mbus_unit_test1_DEPENDENCIES)
|
||||
@rm -f mbus_unit_test1$(EXEEXT)
|
||||
$(mbus_unit_test1_LINK) $(mbus_unit_test1_OBJECTS) $(mbus_unit_test1_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_parse.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_parse_hex.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbus_unit_test1.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _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
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
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; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$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; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
dist_files=`for file in $$list; do echo $$file; done | \
|
||||
sed -e "s|^$$srcdirstrip/||;t" \
|
||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||
case $$dist_files in \
|
||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||
sort -u` ;; \
|
||||
esac; \
|
||||
for file in $$dist_files; do \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(HEADERS)
|
||||
installdirs:
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-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
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am:
|
||||
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-noinstPROGRAMS 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-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
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
57
test/mbus_parse.c
Normal file
57
test/mbus_parse.c
Normal file
@ -0,0 +1,57 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <mbus/mbus-protocol.h>
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int fd, len;
|
||||
u_char buf[1024];
|
||||
mbus_frame reply;
|
||||
mbus_frame_data frame_data;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
fprintf(stderr, "%s binary-file\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((fd = open(argv[1], O_RDONLY, 0)) == -1)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to open '%s'", argv[0], argv[1]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
bzero(buf, sizeof(buf));
|
||||
len = read(fd, buf, sizeof(buf));
|
||||
|
||||
close(fd);
|
||||
|
||||
bzero(&reply, sizeof(reply));
|
||||
bzero(&frame_data, sizeof(frame_data));
|
||||
mbus_parse(&reply, buf, len);
|
||||
mbus_frame_data_parse(&reply, &frame_data);
|
||||
mbus_frame_print(&reply);
|
||||
printf("%s", mbus_frame_data_xml(&frame_data));
|
||||
}
|
||||
|
||||
|
74
test/mbus_parse_hex.c
Normal file
74
test/mbus_parse_hex.c
Normal file
@ -0,0 +1,74 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <err.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdio.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <mbus/mbus-protocol.h>
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int fd, len, i;
|
||||
u_char raw_buff[4096], buff[4096], *ptr, *endptr;
|
||||
mbus_frame reply;
|
||||
mbus_frame_data frame_data;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
fprintf(stderr, "%s binary-file\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ((fd = open(argv[1], O_RDONLY, 0)) == -1)
|
||||
{
|
||||
fprintf(stderr, "%s: failed to open '%s'", argv[0], argv[1]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
bzero(raw_buff, sizeof(raw_buff));
|
||||
len = read(fd, raw_buff, sizeof(raw_buff));
|
||||
close(fd);
|
||||
|
||||
i = 0;
|
||||
ptr = 0;
|
||||
endptr = raw_buff;
|
||||
while (i < sizeof(buff)-1)
|
||||
{
|
||||
ptr = endptr;
|
||||
buff[i] = (u_char)strtol(ptr, (char **)&endptr, 16);
|
||||
|
||||
// abort at non hex value
|
||||
if (ptr == endptr)
|
||||
break;
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
bzero(&reply, sizeof(reply));
|
||||
bzero(&frame_data, sizeof(frame_data));
|
||||
|
||||
mbus_parse(&reply, buff, i);
|
||||
|
||||
mbus_frame_data_parse(&reply, &frame_data);
|
||||
//mbus_frame_print(&reply);
|
||||
//mbus_frame_data_print(&frame_data);
|
||||
printf("%s", mbus_frame_data_xml(&frame_data));
|
||||
}
|
||||
|
||||
|
182
test/mbus_unit_test1.c
Normal file
182
test/mbus_unit_test1.c
Normal file
@ -0,0 +1,182 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// Copyright (C) 2010, Raditex AB
|
||||
// All rights reserved.
|
||||
//
|
||||
// FreeSCADA
|
||||
// http://www.FreeSCADA.com
|
||||
// freescada@freescada.com
|
||||
//
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "CUnit/Basic.h"
|
||||
|
||||
#include <mbus/mbus-protocol.h>
|
||||
|
||||
static char *test_frame_table[][2] = {
|
||||
// {"test-frames/frame1.hex", "test-frames/frame1.xml"},
|
||||
{"test-frames/frame2.hex", "test-frames/frame2.xml"},
|
||||
{"test-frames/kamstrup_multical_601.hex", "test-frames/kamstrup_multical_601.xml"},
|
||||
{"test-frames/manual_frame2.hex", "test-frames/manual_frame2.xml"},
|
||||
{"test-frames/manual_frame3.hex", "test-frames/manual_frame3.xml"},
|
||||
{"test-frames/manual_frame7.hex", "test-frames/manual_frame7.xml"},
|
||||
{"test-frames/svm_f22_telegram1.hex", "test-frames/svm_f22_telegram1.xml"},
|
||||
{"test-frames/electricity-meter-1.hex", "test-frames/electricity-meter-1.xml"},
|
||||
{"test-frames/electricity-meter-2.hex", "test-frames/electricity-meter-2.xml"},
|
||||
};
|
||||
static int no_test_frames = 6;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
char *read_file(char *filename)
|
||||
{
|
||||
FILE *f;
|
||||
size_t size, size2;
|
||||
char *file_content;
|
||||
|
||||
|
||||
if ((f = fopen(filename, "r")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s: Failed to open file %s.\n", __PRETTY_FUNCTION__, filename);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
fseek(f, 0, SEEK_END);
|
||||
size = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
|
||||
if ((file_content = (char *)malloc(size+1)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "%s: Failed to allocate memory of size %d.\n", __PRETTY_FUNCTION__, size);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((size2 = fread(file_content, 1, size, f)) != size)
|
||||
{
|
||||
fprintf(stderr, "%s: Failed to read file content (%s, %d:%d).\n", __PRETTY_FUNCTION__, filename, size, size2);
|
||||
free(file_content);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
file_content[size] = 0;
|
||||
fclose(f);
|
||||
return file_content;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
int
|
||||
hex_to_bin(char *buff, size_t buff_size, char *hex_buff)
|
||||
{
|
||||
char *ptr, *endptr;
|
||||
int i;
|
||||
|
||||
i = 0;
|
||||
ptr = 0;
|
||||
endptr = hex_buff;
|
||||
while ((ptr != endptr) && i < buff_size-1)
|
||||
{
|
||||
ptr = endptr;
|
||||
buff[i++] = (u_char)strtol(ptr, (char **)&endptr, 16);
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
int init_suite(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
int clean_suite(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------------
|
||||
void test_frames(void)
|
||||
{
|
||||
int i, len;
|
||||
|
||||
for (i = 0; i < no_test_frames; i++)
|
||||
{
|
||||
mbus_frame frame;
|
||||
mbus_frame_data frame_data;
|
||||
|
||||
char *hex, bin[2048], *xml_ref, *xml = NULL;
|
||||
|
||||
hex = read_file(test_frame_table[i][0]);
|
||||
xml_ref = read_file(test_frame_table[i][1]);
|
||||
|
||||
len = hex_to_bin(bin, sizeof(bin), hex);
|
||||
|
||||
mbus_parse(&frame, bin, len);
|
||||
|
||||
mbus_frame_data_parse(&frame, &frame_data);
|
||||
|
||||
xml = mbus_frame_data_xml(&frame_data);
|
||||
|
||||
//printf("xml = %s\n", xml);
|
||||
//printf("xml_ref = %s\n", xml_ref);
|
||||
|
||||
CU_ASSERT(xml != NULL);
|
||||
|
||||
if (xml)
|
||||
{
|
||||
int res = strcmp(xml, xml_ref);
|
||||
CU_ASSERT(res == 0);
|
||||
if (res != NULL)
|
||||
{
|
||||
printf("Unit test failed for %s\n", test_frame_table[i][0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (hex) free(hex);
|
||||
if (xml_ref) free(xml_ref);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// setup and run the tests
|
||||
//------------------------------------------------------------------------------
|
||||
int main()
|
||||
{
|
||||
CU_pSuite pSuite = NULL;
|
||||
|
||||
if (CUE_SUCCESS != CU_initialize_registry())
|
||||
{
|
||||
return CU_get_error();
|
||||
}
|
||||
|
||||
if ((pSuite = CU_add_suite("MBUS frame parse test suite", init_suite, clean_suite)) == NULL)
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return CU_get_error();
|
||||
}
|
||||
|
||||
if (NULL == CU_add_test(pSuite, "test_frames", test_frames))
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return CU_get_error();
|
||||
}
|
||||
|
||||
CU_basic_set_mode(CU_BRM_VERBOSE);
|
||||
CU_basic_run_tests();
|
||||
CU_cleanup_registry();
|
||||
return CU_get_error();
|
||||
}
|
||||
|
||||
|
||||
|
1
test/test-frames/electricity-meter-1.hex
Normal file
1
test/test-frames/electricity-meter-1.hex
Normal file
@ -0,0 +1 @@
|
||||
68 92 92 68 08 01 72 3E 02 00 05 43 4C 12 02 13 00 00 00 8C 10 04 52 12 00 00 8C 11 04 52 12 00 00 8C 20 04 33 44 77 01 8C 21 04 33 44 77 01 02 FD C9 FF 01 ED 00 02 FD DB FF 01 20 00 02 AC FF 01 4F 00 82 40 AC FF 01 EE FF 02 FD C9 FF 02 E7 00 02 FD DB FF 02 23 00 02 AC FF 02 51 00 82 40 AC FF 02 F1 FF 02 FD C9 FF 03 E4 00 02 FD DB FF 03 45 00 02 AC FF 03 A0 00 82 40 AC FF 03 E0 FF 02 FF 68 00 00 02 AC FF 00 40 01 82 40 AC FF 00 BF FF 01 FF 13 04 D9 16
|
133
test/test-frames/electricity-meter-1.xml
Normal file
133
test/test-frames/electricity-meter-1.xml
Normal file
@ -0,0 +1,133 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>5000244</Id>
|
||||
<Manufacturer>SBC</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>19</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>1252</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>1252</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>1774433</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>1774433</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>237</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>32</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>79</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>65518</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>231</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>35</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>81</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>65521</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>228</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>69</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>160</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>65504</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Manufacturer specific</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>320</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>65471</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Manufacturer specific</Unit>
|
||||
<Value>4</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/electricity-meter-2.hex
Normal file
1
test/test-frames/electricity-meter-2.hex
Normal file
@ -0,0 +1 @@
|
||||
68 92 92 68 08 02 72 E5 02 00 05 00 00 12 02 25 00 00 00 8C 10 04 54 02 00 00 8C 11 04 54 02 00 00 8C 20 04 28 41 44 00 8C 21 04 28 41 44 00 02 FD C9 FF 01 E9 00 02 FD DB FF 01 01 00 02 AC FF 01 00 00 82 40 AC FF 01 00 00 02 FD C9 FF 02 EA 00 02 FD DB FF 02 00 00 02 AC FF 02 00 00 82 40 AC FF 02 00 00 02 FD C9 FF 03 EB 00 02 FD DB FF 03 01 00 02 AC FF 03 00 00 82 40 AC FF 03 00 00 02 FF 68 00 00 02 AC FF 00 00 00 82 40 AC FF 00 00 00 01 FF 13 04 E9 16
|
133
test/test-frames/electricity-meter-2.xml
Normal file
133
test/test-frames/electricity-meter-2.xml
Normal file
@ -0,0 +1,133 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>5000345</Id>
|
||||
<Manufacturer>@@@</Manufacturer>
|
||||
<Version>18</Version>
|
||||
<Medium>Electricity</Medium>
|
||||
<AccessNumber>37</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>254</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>254</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>444128</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>444128</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>233</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>1</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>234</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit> V</Unit>
|
||||
<Value>235</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>1e-1 A</Unit>
|
||||
<Value>1</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Manufacturer specific</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Manufacturer specific</Unit>
|
||||
<Value>4</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/frame1.hex
Normal file
1
test/test-frames/frame1.hex
Normal file
@ -0,0 +1 @@
|
||||
68 54 54 68 08 00 72 58 09 06 10 65 32 16 0E 7B 00 00 00 0F 5F 42 01 11 FF FF FF FF 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E6 16
|
17
test/test-frames/frame1.xml
Normal file
17
test/test-frames/frame1.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>10060958</Id>
|
||||
<Manufacturer>LSE</Manufacturer>
|
||||
<Version>22</Version>
|
||||
<Medium>Bus/System</Medium>
|
||||
<AccessNumber>123</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Manufacturer specific</Function>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/frame2.hex
Normal file
1
test/test-frames/frame2.hex
Normal file
@ -0,0 +1 @@
|
||||
68 1F 1F 68 08 02 72 78 56 34 12 24 40 01 07 55 00 00 00 03 13 15 31 00 DA 02 3B 13 01 8B 60 04 37 18 02 18 16
|
31
test/test-frames/frame2.xml
Normal file
31
test/test-frames/frame2.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (m m^3)</Unit>
|
||||
<Value>12565</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>113</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>21837</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/kamstrup_multical_601.hex
Normal file
1
test/test-frames/kamstrup_multical_601.hex
Normal file
@ -0,0 +1 @@
|
||||
68 F7 F7 68 08 11 72 17 58 85 06 2D 2C 08 04 04 00 00 00 0C 78 17 58 85 06 04 06 E7 91 00 00 04 14 2C DB 00 00 04 22 D9 03 00 00 04 59 B9 27 00 00 04 5D 08 12 00 00 04 61 B1 15 00 00 04 2D 5B 01 00 00 14 2D C0 01 00 00 04 3B 1F 02 00 00 14 3B 74 02 00 00 84 10 06 00 00 00 00 84 20 06 00 00 00 00 84 40 14 00 00 00 00 84 80 40 14 00 00 00 00 84 C0 40 06 00 00 00 00 04 6D 1A 2F 65 11 44 06 51 82 00 00 44 14 B2 C3 00 00 54 2D 26 02 00 00 54 3B 03 04 00 00 C4 10 06 00 00 00 00 C4 20 06 00 00 00 00 C4 40 14 00 00 00 00 C4 80 40 14 00 00 00 00 C4 C0 40 06 00 00 00 00 42 6C 5F 1C 0F 00 00 00 00 E7 E4 00 00 63 66 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B C9 A5 02 34 53 00 00 E0 B2 03 00 89 9C 68 00 00 00 00 00 01 00 01 07 07 09 01 03 00 00 00 00 00 98 16
|
179
test/test-frames/kamstrup_multical_601.xml
Normal file
179
test/test-frames/kamstrup_multical_601.xml
Normal file
@ -0,0 +1,179 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>6855817</Id>
|
||||
<Manufacturer>KAM</Manufacturer>
|
||||
<Version>8</Version>
|
||||
<Medium>Heat</Medium>
|
||||
<AccessNumber>4</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Fabrication number</Unit>
|
||||
<Value>6855817</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>37351</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>56108</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>On time (hours)</Unit>
|
||||
<Value>985</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Flow temperature (1e-2 deg C)</Unit>
|
||||
<Value>10169</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Return temperature (1e-2 deg C)</Unit>
|
||||
<Value>4616</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Temperature Difference (1e-2 deg C)</Unit>
|
||||
<Value>5553</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (100 W)</Unit>
|
||||
<Value>347</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Power (100 W)</Unit>
|
||||
<Value>448</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>543</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>628</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="14">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="15">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="16">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Time Point (time & date)</Unit>
|
||||
<Value>2011-01-05T15:26:00</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="17">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>33361</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="18">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>50098</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="19">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Power (100 W)</Unit>
|
||||
<Value>550</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="20">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>1027</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="21">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="22">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="23">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="24">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (1e-2 m^3)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="25">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="26">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Time Point (date)</Unit>
|
||||
<Value>2010-12-31</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="27">
|
||||
<Function>Manufacturer specific</Function>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/manual_frame2.hex
Normal file
1
test/test-frames/manual_frame2.hex
Normal file
@ -0,0 +1 @@
|
||||
68 13 13 68 08 05 73 78 56 34 12 0A 00 E9 7E 01 00 00 00 35 01 00 00 3C 16
|
22
test/test-frames/manual_frame2.xml
Normal file
22
test/test-frames/manual_frame2.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>10</AccessNumber>
|
||||
<Status>00</Status>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Actual value</Function>
|
||||
<Unit>l</Unit>
|
||||
<Value>1</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Actual value</Function>
|
||||
<Unit>reserved but historic</Unit>
|
||||
<Value>135</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/manual_frame3.hex
Normal file
1
test/test-frames/manual_frame3.hex
Normal file
@ -0,0 +1 @@
|
||||
68 1F 1F 68 08 02 72 78 56 34 12 24 40 01 07 55 00 00 00 03 13 15 31 00 DA 02 3B 13 01 8B 60 04 37 18 02 18 16
|
31
test/test-frames/manual_frame3.xml
Normal file
31
test/test-frames/manual_frame3.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>85</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (m m^3)</Unit>
|
||||
<Value>12565</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Maximum value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>113</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (10 Wh)</Unit>
|
||||
<Value>21837</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/manual_frame7.hex
Normal file
1
test/test-frames/manual_frame7.hex
Normal file
@ -0,0 +1 @@
|
||||
68 15 15 68 08 02 72 78 56 34 12 24 40 01 07 13 00 00 00 0C 78 04 03 02 01 9D 16
|
19
test/test-frames/manual_frame7.xml
Normal file
19
test/test-frames/manual_frame7.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>12345678</Id>
|
||||
<Manufacturer>PAD</Manufacturer>
|
||||
<Version>1</Version>
|
||||
<Medium>Water</Medium>
|
||||
<AccessNumber>19</AccessNumber>
|
||||
<Status>00</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Fabrication number</Unit>
|
||||
<Value>1020304</Value>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/test-frames/svm_f22_telegram1.hex
Normal file
1
test/test-frames/svm_f22_telegram1.hex
Normal file
@ -0,0 +1 @@
|
||||
68 5C 5C 68 08 01 72 89 60 00 01 CD 4E 09 0C 94 70 00 00 04 06 6E 6D 00 00 04 13 45 C6 09 00 84 40 13 45 C6 09 00 02 5B F3 00 02 5F F3 00 02 62 00 00 04 22 E2 18 00 00 04 26 DB 18 00 00 04 3B 00 00 00 00 04 2C 00 00 00 00 04 6D 0C 15 A8 22 84 40 6E 00 00 00 00 84 80 40 6E 00 00 00 00 1F A7 16
|
95
test/test-frames/svm_f22_telegram1.xml
Normal file
95
test/test-frames/svm_f22_telegram1.xml
Normal file
@ -0,0 +1,95 @@
|
||||
<MBusData>
|
||||
|
||||
<SlaveInformation>
|
||||
<Id>1006089</Id>
|
||||
<Manufacturer>SVM</Manufacturer>
|
||||
<Version>9</Version>
|
||||
<Medium>Heat (Volume measured at flow temperature: inlet)</Medium>
|
||||
<AccessNumber>148</AccessNumber>
|
||||
<Status>70</Status>
|
||||
<Signature>0000</Signature>
|
||||
</SlaveInformation>
|
||||
|
||||
<DataRecord id="0">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Energy (kWh)</Unit>
|
||||
<Value>28014</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="1">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (m m^3)</Unit>
|
||||
<Value>640581</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="2">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume (m m^3)</Unit>
|
||||
<Value>640581</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="3">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Flow temperature (deg C)</Unit>
|
||||
<Value>243</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="4">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Return temperature (deg C)</Unit>
|
||||
<Value>243</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="5">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Temperature Difference (1e-1 deg C)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="6">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>On time (hours)</Unit>
|
||||
<Value>6370</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="7">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Operating time (hours)</Unit>
|
||||
<Value>6363</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="8">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Volume flow (m m^3/h)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="9">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Power (10 W)</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="10">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Time Point (time & date)</Unit>
|
||||
<Value>2021-02-08T21:12:00</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="11">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Units for H.C.A.</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="12">
|
||||
<Function>Instantaneous value</Function>
|
||||
<Unit>Units for H.C.A.</Unit>
|
||||
<Value>0</Value>
|
||||
</DataRecord>
|
||||
|
||||
<DataRecord id="13">
|
||||
<Function>Manufacturer specific</Function>
|
||||
</DataRecord>
|
||||
|
||||
</MBusData>
|
1
test/unsupported-frames/manual_frame1.hex
Normal file
1
test/unsupported-frames/manual_frame1.hex
Normal file
@ -0,0 +1 @@
|
||||
D 04 04 68 53 FE 50 10 B1 16
|
1
test/unsupported-frames/manual_frame4.hex
Normal file
1
test/unsupported-frames/manual_frame4.hex
Normal file
@ -0,0 +1 @@
|
||||
68 06 06 68 53 FE 51 01 7A 08 25 16
|
1
test/unsupported-frames/manual_frame5.hex
Normal file
1
test/unsupported-frames/manual_frame5.hex
Normal file
@ -0,0 +1 @@
|
||||
68 0D 0D 68 53 FE 51 07 79 04 03 02 01 24 40 01 04 95 16
|
1
test/unsupported-frames/manual_frame6.hex
Normal file
1
test/unsupported-frames/manual_frame6.hex
Normal file
@ -0,0 +1 @@
|
||||
68 0F 0F 68 53 FE 51 0C 79 78 56 34 12 0C 06 07 01 00 00 55 16
|
1
test/unsupported-frames/rvd235.hex
Normal file
1
test/unsupported-frames/rvd235.hex
Normal file
@ -0,0 +1 @@
|
||||
68 96 96 68 08 00 72 04 11 29 00 7A 32 29 20 0C 28 00 00 0C 78 20 71 04 00 06 FD 0C FC 03 6D 00 2D 00 0D FD 0B 06 35 33 32 44 56 52 81 30 FD 7C 01 81 20 FD 7C 00 01 FD 7C 00 0F 02 78 04 00 02 7A 04 00 32 00 1E 09 32 08 00 00 34 10 00 00 00 00 31 18 00 34 18 FF FF FF FF 71 18 00 74 18 FF FF FF FF B1 01 18 00 B4 01 18 FF FF FF FF F1 01 18 00 F4 01 18 FF FF FF FF B1 02 18 00 B4 02 18 FF FF FF FF F1 02 18 00 31 28 00 34 28 FF FF FF FF 71 28 00 01 01 00 01 09 00 24 16
|
1
test/unsupported-frames/siemens_rvd235.hex
Normal file
1
test/unsupported-frames/siemens_rvd235.hex
Normal file
@ -0,0 +1 @@
|
||||
68 96 96 68 08 00 72 04 11 29 00 7A 32 29 20 0C 28 00 00 0C 78 20 71 04 00 06 FD 0C FC 03 6D 00 2D 00 0D FD 0B 06 35 33 32 44 56 52 81 30 FD 7C 01 81 20 FD 7C 00 01 FD 7C 00 0F 02 78 04 00 02 7A 04 00 32 00 1E 09 32 08 00 00 34 10 00 00 00 00 31 18 00 34 18 FF FF FF FF 71 18 00 74 18 FF FF FF FF B1 01 18 00 B4 01 18 FF FF FF FF F1 01 18 00 F4 01 18 FF FF FF FF B1 02 18 00 B4 02 18 FF FF FF FF F1 02 18 00 31 28 00 34 28 FF FF FF FF 71 28 00 01 01 00 01 09 00 24 16
|
1
test/unsupported-frames/svm_f22_telegram2.hex
Normal file
1
test/unsupported-frames/svm_f22_telegram2.hex
Normal file
@ -0,0 +1 @@
|
||||
68 DE DE 68 08 01 72 89 60 00 01 CD 4E 09 04 18 70 00 00 1F 45 00 3C 01 7F B0 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C5 00 84 11 98 A1 01 00 C9 18 00 00 00 00 00 01 58 04 87 24 81 01 5B 00 00 48 18 00 63 60 7D 7F 3E 5F 60 01 00 0A 01 02 99 00 00 0E 50 C3 00 00 7F 7F 80 01 0A 00 00 FF 02 00 02 18 00 00 00 00 28 10 36 20 06 02 BE 23 BF 23 0A 0B 10 28 10 36 20 06 02 BE 23 BF 23 0A 0B 10 28 10 36 00 00 00 00 00 93 92 C9 00 10 00 00 02 89 60 00 01 FF FF FF FF FF FF FF FF 08 06 08 13 08 5A 08 5E 08 62 08 3D 00 00 00 00 00 00 00 10 01 00 0D 01 45 00 46 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 0A 02 25 6E 02 6E 6D 00 00 F6 16
|
Loading…
x
Reference in New Issue
Block a user