mirror of
https://github.com/HEYAHONG/cc-tool.git
synced 2025-05-08 19:51:05 +08:00
更新m4文件,使其能在boot1.65.1下编译
This commit is contained in:
parent
f33dfca410
commit
6d19cec94b
21
ChangeLog
21
ChangeLog
@ -19,3 +19,24 @@
|
||||
* fixed wrong CC111x identification
|
||||
* added reference in linux man pages format
|
||||
|
||||
09/26/2012 version 0.20
|
||||
* added CC2541 target signature
|
||||
* fixed mac addresses reading for CC254x and CC253x units
|
||||
* added options --write-mac-address and --preserve-mac-address
|
||||
* fixed lock bit writing
|
||||
* fixed mac address byte order
|
||||
|
||||
10/26/2012 version 0.22
|
||||
* added support for SmartRF04EB V1.1 programmer board (experemental)
|
||||
* added command line option --flash-size
|
||||
* fixed mac address writing for CC243x
|
||||
|
||||
11/24/2012 version 0.24
|
||||
* updated autoconf scripts to support Mac OS
|
||||
* lock type for --lock option now may be specifed by string like like debug, boot etc
|
||||
* added support for CC2543, CC2544, CC2545 targets (experemental)
|
||||
* bug fixing
|
||||
|
||||
03/01/1013 version 0.26
|
||||
* fixed bug with -d option
|
||||
* handle programmer devices those have no iProduct string descriptor
|
||||
|
32
Makefile.am
32
Makefile.am
@ -1,3 +1,33 @@
|
||||
SUBDIRS = src
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
man_MANS = man/cc-tool.1
|
||||
|
||||
AM_CPPFLAGS = $(LIBUSB_CFLAGS) $(BOOST_CPPFLAGS) -O3 -Isrc/programmer -Isrc/common -Isrc/usb -Isrc -Isrc/application
|
||||
AM_LDFLAGS = \
|
||||
$(BOOST_FILESYSTEM_LDFLAGS) \
|
||||
$(BOOST_REGEX_LDFLAGS) \
|
||||
$(BOOST_SYSTEM_LDFLAGS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LDFLAGS)
|
||||
|
||||
# $(BOOST_THREADS_LDFLAGS)
|
||||
|
||||
LDADD = $(LIBUSB_LIBS)
|
||||
|
||||
LIBS = -s \
|
||||
$(BOOST_FILESYSTEM_LIBS) \
|
||||
$(BOOST_REGEX_LIBS) \
|
||||
$(BOOST_SYSTEM_LIBS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LIBS)
|
||||
|
||||
# $(BOOST_THREADS_LIBS)
|
||||
|
||||
bin_PROGRAMS=cc-tool
|
||||
cc_tool_SOURCES=src/main.cpp src/application/cc_flasher.cpp src/application/cc_base.cpp \
|
||||
src/common/log.cpp src/common/common.cpp src/common/timer.cpp \
|
||||
src/usb/usb_device.cpp \
|
||||
src/data/binary_file.cpp src/data/data_section.cpp src/data/data_section_store.cpp \
|
||||
src/data/file.cpp src/data/hex_file.cpp src/data/read_target.cpp \
|
||||
src/data/progress_watcher.cpp \
|
||||
src/programmer/cc_253x_254x.cpp src/programmer/cc_251x_111x.cpp \
|
||||
src/programmer/cc_243x.cpp src/programmer/cc_programmer.cpp \
|
||||
src/programmer/cc_unit_driver.cpp src/programmer/cc_unit_info.cpp
|
||||
|
||||
|
596
Makefile.in
596
Makefile.in
@ -1,9 +1,9 @@
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.6 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.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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.
|
||||
@ -14,7 +14,25 @@
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
VPATH = @srcdir@
|
||||
am__make_dryrun = \
|
||||
{ \
|
||||
am__dry=no; \
|
||||
case $$MAKEFLAGS in \
|
||||
*\\[\ \ ]*) \
|
||||
echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
|
||||
| grep '^AM OK$$' >/dev/null || am__dry=yes;; \
|
||||
*) \
|
||||
for am__flg in $$MAKEFLAGS; do \
|
||||
case $$am__flg in \
|
||||
*=*|--*) ;; \
|
||||
*n*) am__dry=yes; break;; \
|
||||
esac; \
|
||||
done;; \
|
||||
esac; \
|
||||
test $$am__dry = yes; \
|
||||
}
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
@ -33,11 +51,12 @@ PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
bin_PROGRAMS = cc-tool$(EXEEXT)
|
||||
subdir = .
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
|
||||
ChangeLog INSTALL NEWS config.guess config.sub depcomp \
|
||||
install-sh ltmain.sh missing
|
||||
ChangeLog NEWS config.guess config.sub install-sh ltmain.sh \
|
||||
missing
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \
|
||||
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||
@ -50,15 +69,63 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_CLEAN_FILES =
|
||||
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__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am__dirstamp = $(am__leading_dot)dirstamp
|
||||
am_cc_tool_OBJECTS = src/main.$(OBJEXT) \
|
||||
src/application/cc_flasher.$(OBJEXT) \
|
||||
src/application/cc_base.$(OBJEXT) src/common/log.$(OBJEXT) \
|
||||
src/common/common.$(OBJEXT) src/common/timer.$(OBJEXT) \
|
||||
src/usb/usb_device.$(OBJEXT) src/data/binary_file.$(OBJEXT) \
|
||||
src/data/data_section.$(OBJEXT) \
|
||||
src/data/data_section_store.$(OBJEXT) src/data/file.$(OBJEXT) \
|
||||
src/data/hex_file.$(OBJEXT) src/data/read_target.$(OBJEXT) \
|
||||
src/data/progress_watcher.$(OBJEXT) \
|
||||
src/programmer/cc_253x_254x.$(OBJEXT) \
|
||||
src/programmer/cc_251x_111x.$(OBJEXT) \
|
||||
src/programmer/cc_243x.$(OBJEXT) \
|
||||
src/programmer/cc_programmer.$(OBJEXT) \
|
||||
src/programmer/cc_unit_driver.$(OBJEXT) \
|
||||
src/programmer/cc_unit_info.$(OBJEXT)
|
||||
cc_tool_OBJECTS = $(am_cc_tool_OBJECTS)
|
||||
cc_tool_LDADD = $(LDADD)
|
||||
am__DEPENDENCIES_1 =
|
||||
cc_tool_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||
am__v_lt_0 = --silent
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
AM_V_CXX = $(am__v_CXX_@AM_V@)
|
||||
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
|
||||
am__v_CXX_0 = @echo " CXX " $@;
|
||||
AM_V_at = $(am__v_at_@AM_V@)
|
||||
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||
am__v_at_0 = @
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
|
||||
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
|
||||
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
|
||||
am__v_CXXLD_0 = @echo " CXXLD " $@;
|
||||
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||
am__v_GEN_0 = @echo " GEN " $@;
|
||||
SOURCES = $(cc_tool_SOURCES)
|
||||
DIST_SOURCES = $(cc_tool_SOURCES)
|
||||
am__can_run_installinfo = \
|
||||
case $$AM_UPDATE_INFO_DIR in \
|
||||
n|no|NO) false;; \
|
||||
*) (install-info --version) >/dev/null 2>&1;; \
|
||||
esac
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
@ -80,56 +147,35 @@ am__nobase_list = $(am__nobase_strip_setup); \
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
am__uninstall_files_from_dir = { \
|
||||
test -z "$$files" \
|
||||
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||
}
|
||||
man1dir = $(mandir)/man1
|
||||
am__installdirs = "$(DESTDIR)$(man1dir)"
|
||||
NROFF = nroff
|
||||
MANS = $(man_MANS)
|
||||
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"
|
||||
if test -d "$(distdir)"; then \
|
||||
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -rf "$(distdir)" \
|
||||
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
||||
else :; fi
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@ -150,24 +196,17 @@ BOOST_ROOT = @BOOST_ROOT@
|
||||
BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
|
||||
BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
|
||||
BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
|
||||
BOOST_THREAD_LDFLAGS = @BOOST_THREAD_LDFLAGS@
|
||||
BOOST_THREAD_LDPATH = @BOOST_THREAD_LDPATH@
|
||||
BOOST_THREAD_LIBS = @BOOST_THREAD_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEPS_CFLAGS = @DEPS_CFLAGS@
|
||||
DEPS_LIBS = @DEPS_LIBS@
|
||||
DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
@ -185,12 +224,20 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBS = -s \
|
||||
$(BOOST_FILESYSTEM_LIBS) \
|
||||
$(BOOST_REGEX_LIBS) \
|
||||
$(BOOST_SYSTEM_LIBS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LIBS)
|
||||
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBUSB_CFLAGS = @LIBUSB_CFLAGS@
|
||||
LIBUSB_LIBS = @LIBUSB_LIBS@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
@ -219,12 +266,11 @@ 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_CXX = @ac_ct_CXX@
|
||||
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@
|
||||
@ -267,27 +313,47 @@ target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUBDIRS = src
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
man_MANS = man/cc-tool.1
|
||||
all: all-recursive
|
||||
AM_CPPFLAGS = $(LIBUSB_CFLAGS) $(BOOST_CPPFLAGS) -O3 -Isrc/programmer -Isrc/common -Isrc/usb -Isrc -Isrc/application
|
||||
AM_LDFLAGS = \
|
||||
$(BOOST_FILESYSTEM_LDFLAGS) \
|
||||
$(BOOST_REGEX_LDFLAGS) \
|
||||
$(BOOST_SYSTEM_LDFLAGS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LDFLAGS)
|
||||
|
||||
|
||||
# $(BOOST_THREADS_LDFLAGS)
|
||||
LDADD = $(LIBUSB_LIBS)
|
||||
cc_tool_SOURCES = src/main.cpp src/application/cc_flasher.cpp src/application/cc_base.cpp \
|
||||
src/common/log.cpp src/common/common.cpp src/common/timer.cpp \
|
||||
src/usb/usb_device.cpp \
|
||||
src/data/binary_file.cpp src/data/data_section.cpp src/data/data_section_store.cpp \
|
||||
src/data/file.cpp src/data/hex_file.cpp src/data/read_target.cpp \
|
||||
src/data/progress_watcher.cpp \
|
||||
src/programmer/cc_253x_254x.cpp src/programmer/cc_251x_111x.cpp \
|
||||
src/programmer/cc_243x.cpp src/programmer/cc_programmer.cpp \
|
||||
src/programmer/cc_unit_driver.cpp src/programmer/cc_unit_info.cpp
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
am--refresh:
|
||||
.SUFFIXES: .cpp .lo .o .obj
|
||||
am--refresh: Makefile
|
||||
@:
|
||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu Makefile
|
||||
$(AUTOMAKE) --foreign --ignore-deps Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -307,6 +373,130 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
if test -n "$$list"; then \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||
fi; \
|
||||
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
|
||||
src/$(am__dirstamp):
|
||||
@$(MKDIR_P) src
|
||||
@: > src/$(am__dirstamp)
|
||||
src/main.$(OBJEXT): src/$(am__dirstamp)
|
||||
src/application/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/application
|
||||
@: > src/application/$(am__dirstamp)
|
||||
src/application/cc_flasher.$(OBJEXT): src/application/$(am__dirstamp)
|
||||
src/application/cc_base.$(OBJEXT): src/application/$(am__dirstamp)
|
||||
src/common/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/common
|
||||
@: > src/common/$(am__dirstamp)
|
||||
src/common/log.$(OBJEXT): src/common/$(am__dirstamp)
|
||||
src/common/common.$(OBJEXT): src/common/$(am__dirstamp)
|
||||
src/common/timer.$(OBJEXT): src/common/$(am__dirstamp)
|
||||
src/usb/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/usb
|
||||
@: > src/usb/$(am__dirstamp)
|
||||
src/usb/usb_device.$(OBJEXT): src/usb/$(am__dirstamp)
|
||||
src/data/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/data
|
||||
@: > src/data/$(am__dirstamp)
|
||||
src/data/binary_file.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/data_section.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/data_section_store.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/file.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/hex_file.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/read_target.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/data/progress_watcher.$(OBJEXT): src/data/$(am__dirstamp)
|
||||
src/programmer/$(am__dirstamp):
|
||||
@$(MKDIR_P) src/programmer
|
||||
@: > src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_253x_254x.$(OBJEXT): src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_251x_111x.$(OBJEXT): src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_243x.$(OBJEXT): src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_programmer.$(OBJEXT): \
|
||||
src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_unit_driver.$(OBJEXT): \
|
||||
src/programmer/$(am__dirstamp)
|
||||
src/programmer/cc_unit_info.$(OBJEXT): src/programmer/$(am__dirstamp)
|
||||
cc-tool$(EXEEXT): $(cc_tool_OBJECTS) $(cc_tool_DEPENDENCIES) $(EXTRA_cc_tool_DEPENDENCIES)
|
||||
@rm -f cc-tool$(EXEEXT)
|
||||
$(AM_V_CXXLD)$(CXXLINK) $(cc_tool_OBJECTS) $(cc_tool_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
-rm -f src/application/cc_base.$(OBJEXT)
|
||||
-rm -f src/application/cc_flasher.$(OBJEXT)
|
||||
-rm -f src/common/common.$(OBJEXT)
|
||||
-rm -f src/common/log.$(OBJEXT)
|
||||
-rm -f src/common/timer.$(OBJEXT)
|
||||
-rm -f src/data/binary_file.$(OBJEXT)
|
||||
-rm -f src/data/data_section.$(OBJEXT)
|
||||
-rm -f src/data/data_section_store.$(OBJEXT)
|
||||
-rm -f src/data/file.$(OBJEXT)
|
||||
-rm -f src/data/hex_file.$(OBJEXT)
|
||||
-rm -f src/data/progress_watcher.$(OBJEXT)
|
||||
-rm -f src/data/read_target.$(OBJEXT)
|
||||
-rm -f src/main.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_243x.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_251x_111x.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_253x_254x.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_programmer.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_unit_driver.$(OBJEXT)
|
||||
-rm -f src/programmer/cc_unit_info.$(OBJEXT)
|
||||
-rm -f src/usb/usb_device.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
.cpp.o:
|
||||
$(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
$(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.cpp.lo:
|
||||
$(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@ -318,11 +508,18 @@ distclean-libtool:
|
||||
-rm -f libtool config.lt
|
||||
install-man1: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
@list1=''; \
|
||||
list2='$(man_MANS)'; \
|
||||
test -n "$(man1dir)" \
|
||||
&& test -n "`echo $$list1$$list2`" \
|
||||
|| exit 0; \
|
||||
echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
|
||||
$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
|
||||
{ for i in $$list1; do echo "$$i"; done; \
|
||||
if test -n "$$list2"; then \
|
||||
for i in $$list2; do echo "$$i"; done \
|
||||
| sed -n '/\.1[a-z]*$$/p'; \
|
||||
fi; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
@ -351,79 +548,7 @@ uninstall-man1:
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man1dir)" && 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
|
||||
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
@ -435,23 +560,10 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
TAGS: $(HEADERS) $(SOURCES) $(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) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
@ -470,7 +582,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
@ -535,34 +647,6 @@ distdir: $(DISTFILES)
|
||||
|| 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 \
|
||||
@ -575,7 +659,11 @@ dist-gzip: distdir
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
@ -583,7 +671,7 @@ dist-lzma: distdir
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
@ -614,6 +702,8 @@ distcheck: dist
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.lz*) \
|
||||
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
@ -623,7 +713,7 @@ distcheck: dist
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
chmod -R a-w $(distdir); chmod a+w $(distdir)
|
||||
chmod -R a-w $(distdir); chmod u+w $(distdir)
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
@ -633,6 +723,7 @@ distcheck: dist
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
|
||||
@ -661,8 +752,16 @@ distcheck: dist
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
@test -n '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: trying to run $@ with an empty' \
|
||||
'$$(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
||||
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
||||
exit 1; \
|
||||
}; \
|
||||
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
echo " (check DESTDIR support)"; \
|
||||
@ -679,27 +778,31 @@ distcleancheck: distclean
|
||||
$(distcleancheck_listfiles) ; \
|
||||
exit 1; } >&2
|
||||
check-am: all-am
|
||||
check: check-recursive
|
||||
all-am: Makefile $(MANS)
|
||||
installdirs: installdirs-recursive
|
||||
installdirs-am:
|
||||
for dir in "$(DESTDIR)$(man1dir)"; do \
|
||||
check: check-am
|
||||
all-am: Makefile $(PROGRAMS) $(MANS)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"; 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: 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-recursive
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
if test -z '$(STRIP)'; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
install; \
|
||||
else \
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||
fi
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
@ -707,101 +810,108 @@ 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)
|
||||
-rm -f src/$(am__dirstamp)
|
||||
-rm -f src/application/$(am__dirstamp)
|
||||
-rm -f src/common/$(am__dirstamp)
|
||||
-rm -f src/data/$(am__dirstamp)
|
||||
-rm -f src/programmer/$(am__dirstamp)
|
||||
-rm -f src/usb/$(am__dirstamp)
|
||||
|
||||
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: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-recursive
|
||||
distclean: distclean-am
|
||||
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic distclean-libtool \
|
||||
distclean-tags
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-recursive
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-man
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
install-exec-am: install-binPROGRAMS
|
||||
|
||||
install-html: install-html-recursive
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man: install-man1
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-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: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-recursive
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-recursive
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-man
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-man
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
|
||||
install-am install-strip tags-recursive
|
||||
.MAKE: install-am install-strip
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am am--refresh check check-am clean clean-generic \
|
||||
clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
|
||||
dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
|
||||
distcheck distclean distclean-generic distclean-libtool \
|
||||
.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
|
||||
clean-binPROGRAMS clean-generic clean-libtool ctags dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-lzip dist-lzma dist-shar \
|
||||
dist-tarZ dist-xz dist-zip distcheck distclean \
|
||||
distclean-compile distclean-generic 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-man1 \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-man uninstall-man1
|
||||
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-man1 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 uninstall-man \
|
||||
uninstall-man1
|
||||
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
|
16
README
16
README
@ -1,12 +1,13 @@
|
||||
#### cc-tool version 0.18
|
||||
#### cc-tool version 0.26
|
||||
cc-tool provides support for Texas Instruments CC Debugger
|
||||
|
||||
#### Project home:
|
||||
http://sourceforge.net/projects/cctool/
|
||||
|
||||
#### Building from source, dependencies:
|
||||
Ubuntu 11.10: libusb-1.0, libboost-all-dev,
|
||||
Fedora 13-16: boost-devel, libusb1-devel
|
||||
Ubuntu: libusb-1.0, libboost-all-dev,
|
||||
Fedora: boost-devel, libusb1-devel
|
||||
Mac OS 10.6.7, from ports: libusb boost pkgconfig
|
||||
|
||||
#### User guide:
|
||||
man cc-tool
|
||||
@ -16,6 +17,9 @@ File udev/90-cc-debugger.rules cotains udev rules changing permissions
|
||||
for TI CC Debugger device and TI evolution boards so they can be used
|
||||
from non-privileged accounts. Copy it to /etc/udev/rules.d
|
||||
|
||||
#### Bug reports:
|
||||
If you found a bug try to reproduce it added command line option --log and
|
||||
send the log file along with problem description to george-u@yandex.com
|
||||
#### Support:
|
||||
Send bug/build problem reports, new feature or new chip support suggestions
|
||||
to george-u@yandex.com
|
||||
|
||||
If you found a bug try to reproduce it with command line option --log and
|
||||
send the log file along with problem description
|
||||
|
431
aclocal.m4
vendored
431
aclocal.m4
vendored
@ -1,7 +1,8 @@
|
||||
# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
|
||||
# generated automatically by aclocal 1.11.6 -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
|
||||
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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.
|
||||
@ -13,8 +14,8 @@
|
||||
|
||||
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.66],,
|
||||
[m4_warning([this file was generated for autoconf 2.66.
|
||||
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'.])])
|
||||
@ -177,12 +178,15 @@ else
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
||||
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 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 1
|
||||
|
||||
# AM_AUTOMAKE_VERSION(VERSION)
|
||||
# ----------------------------
|
||||
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||
@ -192,7 +196,7 @@ 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], [],
|
||||
m4_if([$1], [1.11.6], [],
|
||||
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||
])
|
||||
|
||||
@ -208,19 +212,21 @@ m4_define([_AM_AUTOCONF_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
|
||||
[AM_AUTOMAKE_VERSION([1.11.6])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.
|
||||
# Copyright (C) 2001, 2003, 2005, 2011 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 1
|
||||
|
||||
# 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/../..'.
|
||||
@ -302,268 +308,6 @@ AC_CONFIG_COMMANDS_PRE(
|
||||
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,
|
||||
@ -703,12 +447,15 @@ for _am_header in $config_headers :; do
|
||||
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.
|
||||
# Copyright (C) 2001, 2003, 2005, 2008, 2011 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 1
|
||||
|
||||
# AM_PROG_INSTALL_SH
|
||||
# ------------------
|
||||
# Define $install_sh.
|
||||
@ -745,58 +492,6 @@ 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
|
||||
@ -840,12 +535,15 @@ else
|
||||
fi
|
||||
])
|
||||
|
||||
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2003, 2004, 2005, 2006, 2011 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 1
|
||||
|
||||
# AM_PROG_MKDIR_P
|
||||
# ---------------
|
||||
# Check for `mkdir -p'.
|
||||
@ -868,13 +566,14 @@ esac
|
||||
|
||||
# Helper functions for option handling. -*- Autoconf -*-
|
||||
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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
|
||||
# serial 5
|
||||
|
||||
# _AM_MANGLE_OPTION(NAME)
|
||||
# -----------------------
|
||||
@ -882,13 +581,13 @@ 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)])])
|
||||
@ -964,12 +663,71 @@ Check your system clock])
|
||||
fi
|
||||
AC_MSG_RESULT(yes)])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2009, 2011 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_SILENT_RULES([DEFAULT])
|
||||
# --------------------------
|
||||
# Enable less verbose build rules; with the default set to DEFAULT
|
||||
# (`yes' being less verbose, `no' or empty being verbose).
|
||||
AC_DEFUN([AM_SILENT_RULES],
|
||||
[AC_ARG_ENABLE([silent-rules],
|
||||
[ --enable-silent-rules less verbose build output (undo: `make V=1')
|
||||
--disable-silent-rules verbose build output (undo: `make V=0')])
|
||||
case $enable_silent_rules in
|
||||
yes) AM_DEFAULT_VERBOSITY=0;;
|
||||
no) AM_DEFAULT_VERBOSITY=1;;
|
||||
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
|
||||
esac
|
||||
dnl
|
||||
dnl A few `make' implementations (e.g., NonStop OS and NextStep)
|
||||
dnl do not support nested variable expansions.
|
||||
dnl See automake bug#9928 and bug#10237.
|
||||
am_make=${MAKE-make}
|
||||
AC_CACHE_CHECK([whether $am_make supports nested variables],
|
||||
[am_cv_make_support_nested_variables],
|
||||
[if AS_ECHO([['TRUE=$(BAR$(V))
|
||||
BAR0=false
|
||||
BAR1=true
|
||||
V=1
|
||||
am__doit:
|
||||
@$(TRUE)
|
||||
.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
|
||||
am_cv_make_support_nested_variables=yes
|
||||
else
|
||||
am_cv_make_support_nested_variables=no
|
||||
fi])
|
||||
if test $am_cv_make_support_nested_variables = yes; then
|
||||
dnl Using `$V' instead of `$(V)' breaks IRIX make.
|
||||
AM_V='$(V)'
|
||||
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
|
||||
else
|
||||
AM_V=$AM_DEFAULT_VERBOSITY
|
||||
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
|
||||
fi
|
||||
AC_SUBST([AM_V])dnl
|
||||
AM_SUBST_NOTMAKE([AM_V])dnl
|
||||
AC_SUBST([AM_DEFAULT_V])dnl
|
||||
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
|
||||
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
|
||||
AM_BACKSLASH='\'
|
||||
AC_SUBST([AM_BACKSLASH])dnl
|
||||
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||
])
|
||||
|
||||
# Copyright (C) 2001, 2003, 2005, 2011 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 1
|
||||
|
||||
# AM_PROG_INSTALL_STRIP
|
||||
# ---------------------
|
||||
# One issue with vendor `install' (even GNU) is that you can't
|
||||
@ -992,13 +750,13 @@ fi
|
||||
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
|
||||
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2006, 2008, 2010 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
|
||||
# serial 3
|
||||
|
||||
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||
# ---------------------------
|
||||
@ -1007,13 +765,13 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||
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.
|
||||
# Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc.
|
||||
#
|
||||
# This file is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
@ -1035,10 +793,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||
# 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])
|
||||
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
||||
# in the wild :-( We should find a proper way to deprecate it ...
|
||||
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
m4_if([$1], [v7],
|
||||
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
|
||||
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
||||
[m4_case([$1], [ustar],, [pax],,
|
||||
[m4_fatal([Unknown tar format])])
|
||||
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||
|
19462
autom4te.cache/output.0
Normal file
19462
autom4te.cache/output.0
Normal file
File diff suppressed because it is too large
Load Diff
81
autom4te.cache/requests
Normal file
81
autom4te.cache/requests
Normal file
@ -0,0 +1,81 @@
|
||||
# This file was generated by Autom4te Sun Aug 20 23:09:08 UTC 2017.
|
||||
# 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',
|
||||
'aclocal.m4',
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'include' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'sinclude' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'm4_include' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_PROG_LIBTOOL' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'm4_pattern_forbid' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
673
autom4te.cache/traces.0
Normal file
673
autom4te.cache/traces.0
Normal file
@ -0,0 +1,673 @@
|
||||
m4trace:aclocal.m4:869: -1- m4_include([m4/boost.m4])
|
||||
m4trace:m4/boost.m4:48: -1- m4_pattern_forbid([^_?(BOOST|Boost)_])
|
||||
m4trace:aclocal.m4:870: -1- m4_include([m4/libtool.m4])
|
||||
m4trace:aclocal.m4:871: -1- m4_include([m4/ltoptions.m4])
|
||||
m4trace:aclocal.m4:872: -1- m4_include([m4/ltsugar.m4])
|
||||
m4trace:aclocal.m4:873: -1- m4_include([m4/ltversion.m4])
|
||||
m4trace:aclocal.m4:874: -1- m4_include([m4/lt~obsolete.m4])
|
||||
m4trace:configure.ac:4: -1- AC_INIT([cc-tool], [0.26], [george-u@yandex.com])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^AS_FLAGS$])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?m4_])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([^dnl$])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_forbid([^_?AS_])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([SHELL])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([SHELL])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^SHELL$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PATH_SEPARATOR$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_NAME])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_STRING])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([PACKAGE_URL])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([exec_prefix], [NONE])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([exec_prefix])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^exec_prefix$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([prefix], [NONE])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([prefix])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^prefix$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([program_transform_name], [s,x,x,])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([program_transform_name])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^program_transform_name$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([bindir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^bindir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sbindir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^sbindir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([libexecdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^libexecdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([datarootdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^datarootdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([datadir], ['${datarootdir}'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([datadir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^datadir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sysconfdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^sysconfdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([sharedstatedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^sharedstatedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([localstatedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^localstatedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([runstatedir], ['${localstatedir}/run'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([runstatedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^runstatedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([includedir], ['${prefix}/include'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([includedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^includedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([oldincludedir], ['/usr/include'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([oldincludedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^oldincludedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
|
||||
['${datarootdir}/doc/${PACKAGE_TARNAME}'],
|
||||
['${datarootdir}/doc/${PACKAGE}'])])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([docdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^docdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([infodir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^infodir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([htmldir], ['${docdir}'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([htmldir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^htmldir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([dvidir], ['${docdir}'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([dvidir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^dvidir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([pdfdir], ['${docdir}'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([pdfdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^pdfdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([psdir], ['${docdir}'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([psdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^psdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([libdir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^libdir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([localedir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^localedir$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([mandir])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^mandir$])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_NAME$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
|
||||
@%:@undef PACKAGE_NAME])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
|
||||
@%:@undef PACKAGE_TARNAME])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_VERSION$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
|
||||
@%:@undef PACKAGE_VERSION])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_STRING$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
|
||||
@%:@undef PACKAGE_STRING])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
|
||||
@%:@undef PACKAGE_BUGREPORT])
|
||||
m4trace:configure.ac:4: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^PACKAGE_URL$])
|
||||
m4trace:configure.ac:4: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
|
||||
@%:@undef PACKAGE_URL])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([DEFS])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([DEFS])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^DEFS$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([ECHO_C])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_C])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_C$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([ECHO_N])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_N])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_N$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([ECHO_T])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([ECHO_T])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^ECHO_T$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([build_alias])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([build_alias])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^build_alias$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([host_alias])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([host_alias])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^host_alias$])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST([target_alias])
|
||||
m4trace:configure.ac:4: -1- AC_SUBST_TRACE([target_alias])
|
||||
m4trace:configure.ac:4: -1- m4_pattern_allow([^target_alias$])
|
||||
m4trace:configure.ac:5: -1- AM_INIT_AUTOMAKE([no-dependencies foreign subdir-objects])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
|
||||
m4trace:configure.ac:5: -1- AM_AUTOMAKE_VERSION([1.11.6])
|
||||
m4trace:configure.ac:5: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([INSTALL_DATA])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([INSTALL_DATA])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^INSTALL_DATA$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([am__isrc])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^am__isrc$])
|
||||
m4trace:configure.ac:5: -1- _AM_SUBST_NOTMAKE([am__isrc])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([CYGPATH_W])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([CYGPATH_W])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^CYGPATH_W$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([PACKAGE])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([VERSION])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^PACKAGE$])
|
||||
m4trace:configure.ac:5: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
|
||||
@%:@undef PACKAGE])
|
||||
m4trace:configure.ac:5: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^VERSION$])
|
||||
m4trace:configure.ac:5: -1- AH_OUTPUT([VERSION], [/* Version number of package */
|
||||
@%:@undef VERSION])
|
||||
m4trace:configure.ac:5: -1- AC_REQUIRE_AUX_FILE([missing])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([ACLOCAL])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([ACLOCAL])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^ACLOCAL$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([AUTOCONF])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([AUTOCONF])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AUTOCONF$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([AUTOMAKE])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([AUTOMAKE])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AUTOMAKE$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([AUTOHEADER])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([AUTOHEADER])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AUTOHEADER$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([MAKEINFO])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([MAKEINFO])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^MAKEINFO$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([install_sh])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([install_sh])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^install_sh$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
|
||||
m4trace:configure.ac:5: -1- AM_PROG_MKDIR_P
|
||||
m4trace:configure.ac:5: -1- AC_REQUIRE_AUX_FILE([install-sh])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([MKDIR_P])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^MKDIR_P$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([mkdir_p])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^mkdir_p$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([AWK])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([AWK])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AWK$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([SET_MAKE])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([SET_MAKE])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^SET_MAKE$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([am__leading_dot])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([am__leading_dot])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^am__leading_dot$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([AMTAR])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^AMTAR$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([am__tar])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([am__tar])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^am__tar$])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST([am__untar])
|
||||
m4trace:configure.ac:5: -1- AC_SUBST_TRACE([am__untar])
|
||||
m4trace:configure.ac:5: -1- m4_pattern_allow([^am__untar$])
|
||||
m4trace:configure.ac:6: -1- AM_SILENT_RULES([yes])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST([AM_V])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST_TRACE([AM_V])
|
||||
m4trace:configure.ac:6: -1- m4_pattern_allow([^AM_V$])
|
||||
m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([AM_V])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST_TRACE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:6: -1- m4_pattern_allow([^AM_DEFAULT_V$])
|
||||
m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
|
||||
m4trace:configure.ac:6: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST([AM_BACKSLASH])
|
||||
m4trace:configure.ac:6: -1- AC_SUBST_TRACE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:6: -1- m4_pattern_allow([^AM_BACKSLASH$])
|
||||
m4trace:configure.ac:6: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
|
||||
m4trace:configure.ac:8: -1- AC_PROG_LIBTOOL
|
||||
m4trace:configure.ac:8: -1- _m4_warn([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete.
|
||||
You should run autoupdate.], [m4/libtool.m4:107: AC_PROG_LIBTOOL is expanded from...
|
||||
configure.ac:8: the top level])
|
||||
m4trace:configure.ac:8: -1- LT_INIT
|
||||
m4trace:configure.ac:8: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])
|
||||
m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LIBTOOL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LIBTOOL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LIBTOOL$])
|
||||
m4trace:configure.ac:8: -1- AC_CANONICAL_HOST
|
||||
m4trace:configure.ac:8: -1- AC_CANONICAL_BUILD
|
||||
m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([config.sub])
|
||||
m4trace:configure.ac:8: -1- AC_REQUIRE_AUX_FILE([config.guess])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([build], [$ac_cv_build])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^build$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([build_cpu], [$[1]])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_cpu])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^build_cpu$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([build_vendor], [$[2]])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_vendor])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^build_vendor$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([build_os])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([build_os])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^build_os$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([host], [$ac_cv_host])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^host$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([host_cpu], [$[1]])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_cpu])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^host_cpu$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([host_vendor], [$[2]])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_vendor])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^host_vendor$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([host_os])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([host_os])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^host_os$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CFLAGS])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CFLAGS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CFLAGS$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([ac_ct_CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([ac_ct_CC])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^ac_ct_CC$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([EXEEXT])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^EXEEXT$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([OBJEXT])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^OBJEXT$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([SED])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([SED])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^SED$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([EGREP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([EGREP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^EGREP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([FGREP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([FGREP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^FGREP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([GREP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([GREP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^GREP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^ac_ct_DUMPBIN$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([DUMPBIN])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^DUMPBIN$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([NM])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([NM])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^NM$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LN_S], [$as_ln_s])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LN_S])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LN_S$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([OBJDUMP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([OBJDUMP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^OBJDUMP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([DLLTOOL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([DLLTOOL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^DLLTOOL$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([AR])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([AR])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^AR$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([ac_ct_AR])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([ac_ct_AR])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^ac_ct_AR$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([STRIP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([STRIP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^STRIP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([RANLIB])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([RANLIB])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^RANLIB$])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([LT_OBJDIR])
|
||||
m4trace:configure.ac:8: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LT_OBJDIR$])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
@%:@undef LT_OBJDIR])
|
||||
m4trace:configure.ac:8: -1- LT_SUPPORTED_TAG([CC])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([MANIFEST_TOOL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^MANIFEST_TOOL$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([DSYMUTIL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([DSYMUTIL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^DSYMUTIL$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([NMEDIT])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([NMEDIT])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^NMEDIT$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([LIPO])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([LIPO])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^LIPO$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([OTOOL])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([OTOOL])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^OTOOL$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([OTOOL64])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([OTOOL64])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^OTOOL64$])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
@%:@undef HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST([CPP])
|
||||
m4trace:configure.ac:8: -1- AC_SUBST_TRACE([CPP])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^CPP$])
|
||||
m4trace:configure.ac:8: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^STDC_HEADERS$])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
|
||||
@%:@undef STDC_HEADERS])
|
||||
m4trace:configure.ac:8: -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:8: -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:8: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
@%:@undef HAVE_STDLIB_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
|
||||
@%:@undef HAVE_STRING_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
|
||||
@%:@undef HAVE_MEMORY_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
|
||||
@%:@undef HAVE_STRINGS_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
@%:@undef HAVE_INTTYPES_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
|
||||
@%:@undef HAVE_STDINT_H])
|
||||
m4trace:configure.ac:8: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
|
||||
@%:@undef HAVE_UNISTD_H])
|
||||
m4trace:configure.ac:8: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H])
|
||||
m4trace:configure.ac:8: -1- m4_pattern_allow([^HAVE_DLFCN_H$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CXXFLAGS])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CXXFLAGS])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CXXFLAGS$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([LDFLAGS])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([LDFLAGS])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^LDFLAGS$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([LIBS])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([LIBS])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^LIBS$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CXX])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CXX])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CXX$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([ac_ct_CXX])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([ac_ct_CXX])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^ac_ct_CXX$])
|
||||
m4trace:configure.ac:9: -1- LT_SUPPORTED_TAG([CXX])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CPPFLAGS])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CPPFLAGS])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CPPFLAGS$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([CXXCPP])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([CXXCPP])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^CXXCPP$])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST([LD])
|
||||
m4trace:configure.ac:9: -1- AC_SUBST_TRACE([LD])
|
||||
m4trace:configure.ac:9: -1- m4_pattern_allow([^LD$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([BOOST_ROOT])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([BOOST_ROOT])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^BOOST_ROOT$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([DISTCHECK_CONFIGURE_FLAGS], ["$DISTCHECK_CONFIGURE_FLAGS '--with-boost=$with_boost'"])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([DISTCHECK_CONFIGURE_FLAGS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^DISTCHECK_CONFIGURE_FLAGS$])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^BOOST_VERSION$])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST([BOOST_CPPFLAGS], ["-I$boost_cv_inc_path"])
|
||||
m4trace:configure.ac:11: -1- AC_SUBST_TRACE([BOOST_CPPFLAGS])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^BOOST_CPPFLAGS$])
|
||||
m4trace:configure.ac:11: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^HAVE_BOOST$])
|
||||
m4trace:configure.ac:11: -1- AH_OUTPUT([HAVE_BOOST], [/* Defined if the requested minimum BOOST version is satisfied */
|
||||
@%:@undef HAVE_BOOST])
|
||||
m4trace:configure.ac:11: -1- m4_pattern_allow([^BOOST_LIB_VERSION$])
|
||||
m4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_PROGRAM_OPTIONS_HPP])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^HAVE_BOOST_PROGRAM_OPTIONS_HPP$])
|
||||
m4trace:configure.ac:12: -1- AH_OUTPUT([HAVE_BOOST_PROGRAM_OPTIONS_HPP], [/* Define to 1 if you have <boost/program_options.hpp> */
|
||||
@%:@undef HAVE_BOOST_PROGRAM_OPTIONS_HPP])
|
||||
m4trace:configure.ac:12: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_PROGRAM_OPTIONS])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^HAVE_BOOST_PROGRAM_OPTIONS$])
|
||||
m4trace:configure.ac:12: -1- AH_OUTPUT([HAVE_BOOST_PROGRAM_OPTIONS], [/* Defined if the Boost program_options library is available */
|
||||
@%:@undef HAVE_BOOST_PROGRAM_OPTIONS])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([BOOST_PROGRAM_OPTIONS_LDFLAGS], [$Boost_lib_LDFLAGS])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([BOOST_PROGRAM_OPTIONS_LDFLAGS])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^BOOST_PROGRAM_OPTIONS_LDFLAGS$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([BOOST_PROGRAM_OPTIONS_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([BOOST_PROGRAM_OPTIONS_LDPATH])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^BOOST_PROGRAM_OPTIONS_LDPATH$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([BOOST_LDPATH])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^BOOST_LDPATH$])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST([BOOST_PROGRAM_OPTIONS_LIBS], [$Boost_lib_LIBS])
|
||||
m4trace:configure.ac:12: -1- AC_SUBST_TRACE([BOOST_PROGRAM_OPTIONS_LIBS])
|
||||
m4trace:configure.ac:12: -1- m4_pattern_allow([^BOOST_PROGRAM_OPTIONS_LIBS$])
|
||||
m4trace:configure.ac:13: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SYSTEM_ERROR_CODE_HPP])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^HAVE_BOOST_SYSTEM_ERROR_CODE_HPP$])
|
||||
m4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_BOOST_SYSTEM_ERROR_CODE_HPP], [/* Define to 1 if you have <boost/system/error_code.hpp> */
|
||||
@%:@undef HAVE_BOOST_SYSTEM_ERROR_CODE_HPP])
|
||||
m4trace:configure.ac:13: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SYSTEM])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^HAVE_BOOST_SYSTEM$])
|
||||
m4trace:configure.ac:13: -1- AH_OUTPUT([HAVE_BOOST_SYSTEM], [/* Defined if the Boost system library is available */
|
||||
@%:@undef HAVE_BOOST_SYSTEM])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST([BOOST_SYSTEM_LDFLAGS], [$Boost_lib_LDFLAGS])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LDFLAGS])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^BOOST_SYSTEM_LDFLAGS$])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST([BOOST_SYSTEM_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LDPATH])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^BOOST_SYSTEM_LDPATH$])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST_TRACE([BOOST_LDPATH])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^BOOST_LDPATH$])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST([BOOST_SYSTEM_LIBS], [$Boost_lib_LIBS])
|
||||
m4trace:configure.ac:13: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LIBS])
|
||||
m4trace:configure.ac:13: -1- m4_pattern_allow([^BOOST_SYSTEM_LIBS$])
|
||||
m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_REGEX_HPP])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^HAVE_BOOST_REGEX_HPP$])
|
||||
m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_BOOST_REGEX_HPP], [/* Define to 1 if you have <boost/regex.hpp> */
|
||||
@%:@undef HAVE_BOOST_REGEX_HPP])
|
||||
m4trace:configure.ac:14: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_REGEX])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^HAVE_BOOST_REGEX$])
|
||||
m4trace:configure.ac:14: -1- AH_OUTPUT([HAVE_BOOST_REGEX], [/* Defined if the Boost regex library is available */
|
||||
@%:@undef HAVE_BOOST_REGEX])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST([BOOST_REGEX_LDFLAGS], [$Boost_lib_LDFLAGS])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST_TRACE([BOOST_REGEX_LDFLAGS])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^BOOST_REGEX_LDFLAGS$])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST([BOOST_REGEX_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST_TRACE([BOOST_REGEX_LDPATH])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^BOOST_REGEX_LDPATH$])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST_TRACE([BOOST_LDPATH])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^BOOST_LDPATH$])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST([BOOST_REGEX_LIBS], [$Boost_lib_LIBS])
|
||||
m4trace:configure.ac:14: -1- AC_SUBST_TRACE([BOOST_REGEX_LIBS])
|
||||
m4trace:configure.ac:14: -1- m4_pattern_allow([^BOOST_REGEX_LIBS$])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SYSTEM_ERROR_CODE_HPP])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^HAVE_BOOST_SYSTEM_ERROR_CODE_HPP$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([HAVE_BOOST_SYSTEM_ERROR_CODE_HPP], [/* Define to 1 if you have <boost/system/error_code.hpp> */
|
||||
@%:@undef HAVE_BOOST_SYSTEM_ERROR_CODE_HPP])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SYSTEM])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^HAVE_BOOST_SYSTEM$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([HAVE_BOOST_SYSTEM], [/* Defined if the Boost system library is available */
|
||||
@%:@undef HAVE_BOOST_SYSTEM])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_SYSTEM_LDFLAGS], [$Boost_lib_LDFLAGS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LDFLAGS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_SYSTEM_LDFLAGS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_SYSTEM_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LDPATH])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_SYSTEM_LDPATH$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_LDPATH])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_LDPATH$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_SYSTEM_LIBS], [$Boost_lib_LIBS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_SYSTEM_LIBS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_SYSTEM_LIBS$])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_SYSTEM_(LIBS|LDFLAGS)$])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_FILESYSTEM_PATH_HPP])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^HAVE_BOOST_FILESYSTEM_PATH_HPP$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([HAVE_BOOST_FILESYSTEM_PATH_HPP], [/* Define to 1 if you have <boost/filesystem/path.hpp> */
|
||||
@%:@undef HAVE_BOOST_FILESYSTEM_PATH_HPP])
|
||||
m4trace:configure.ac:15: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_FILESYSTEM])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^HAVE_BOOST_FILESYSTEM$])
|
||||
m4trace:configure.ac:15: -1- AH_OUTPUT([HAVE_BOOST_FILESYSTEM], [/* Defined if the Boost filesystem library is available */
|
||||
@%:@undef HAVE_BOOST_FILESYSTEM])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_FILESYSTEM_LDFLAGS], [$Boost_lib_LDFLAGS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_FILESYSTEM_LDFLAGS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_FILESYSTEM_LDFLAGS$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_FILESYSTEM_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_FILESYSTEM_LDPATH])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_FILESYSTEM_LDPATH$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_LDPATH], [$Boost_lib_LDPATH])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_LDPATH])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_LDPATH$])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST([BOOST_FILESYSTEM_LIBS], [$Boost_lib_LIBS])
|
||||
m4trace:configure.ac:15: -1- AC_SUBST_TRACE([BOOST_FILESYSTEM_LIBS])
|
||||
m4trace:configure.ac:15: -1- m4_pattern_allow([^BOOST_FILESYSTEM_LIBS$])
|
||||
m4trace:configure.ac:16: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_FOREACH_HPP])
|
||||
m4trace:configure.ac:16: -1- m4_pattern_allow([^HAVE_BOOST_FOREACH_HPP$])
|
||||
m4trace:configure.ac:16: -1- AH_OUTPUT([HAVE_BOOST_FOREACH_HPP], [/* Define to 1 if you have <boost/foreach.hpp> */
|
||||
@%:@undef HAVE_BOOST_FOREACH_HPP])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SCOPED_PTR_HPP])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^HAVE_BOOST_SCOPED_PTR_HPP$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([HAVE_BOOST_SCOPED_PTR_HPP], [/* Define to 1 if you have <boost/scoped_ptr.hpp> */
|
||||
@%:@undef HAVE_BOOST_SCOPED_PTR_HPP])
|
||||
m4trace:configure.ac:17: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SHARED_PTR_HPP])
|
||||
m4trace:configure.ac:17: -1- m4_pattern_allow([^HAVE_BOOST_SHARED_PTR_HPP$])
|
||||
m4trace:configure.ac:17: -1- AH_OUTPUT([HAVE_BOOST_SHARED_PTR_HPP], [/* Define to 1 if you have <boost/shared_ptr.hpp> */
|
||||
@%:@undef HAVE_BOOST_SHARED_PTR_HPP])
|
||||
m4trace:configure.ac:18: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_ALGORITHM_STRING_HPP])
|
||||
m4trace:configure.ac:18: -1- m4_pattern_allow([^HAVE_BOOST_ALGORITHM_STRING_HPP$])
|
||||
m4trace:configure.ac:18: -1- AH_OUTPUT([HAVE_BOOST_ALGORITHM_STRING_HPP], [/* Define to 1 if you have <boost/algorithm/string.hpp> */
|
||||
@%:@undef HAVE_BOOST_ALGORITHM_STRING_HPP])
|
||||
m4trace:configure.ac:19: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_SIGNALS2_HPP])
|
||||
m4trace:configure.ac:19: -1- m4_pattern_allow([^HAVE_BOOST_SIGNALS2_HPP$])
|
||||
m4trace:configure.ac:19: -1- AH_OUTPUT([HAVE_BOOST_SIGNALS2_HPP], [/* Define to 1 if you have <boost/signals2.hpp> */
|
||||
@%:@undef HAVE_BOOST_SIGNALS2_HPP])
|
||||
m4trace:configure.ac:20: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BOOST_CRC_HPP])
|
||||
m4trace:configure.ac:20: -1- m4_pattern_allow([^HAVE_BOOST_CRC_HPP$])
|
||||
m4trace:configure.ac:20: -1- AH_OUTPUT([HAVE_BOOST_CRC_HPP], [/* Define to 1 if you have <boost/crc.hpp> */
|
||||
@%:@undef HAVE_BOOST_CRC_HPP])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG_PATH])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG_PATH$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG_LIBDIR])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([PKG_CONFIG])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PKG_CONFIG])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^PKG_CONFIG$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LIBUSB_CFLAGS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBUSB_CFLAGS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBUSB_CFLAGS$])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST([LIBUSB_LIBS])
|
||||
m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBUSB_LIBS])
|
||||
m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBUSB_LIBS$])
|
||||
m4trace:configure.ac:24: -1- AC_CONFIG_FILES([Makefile])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
|
||||
m4trace:configure.ac:25: -1- m4_pattern_allow([^LIB@&t@OBJS$])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([LTLIBOBJS])
|
||||
m4trace:configure.ac:25: -1- m4_pattern_allow([^LTLIBOBJS$])
|
||||
m4trace:configure.ac:25: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:25: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:25: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
|
||||
m4trace:configure.ac:25: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
|
||||
m4trace:configure.ac:25: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([top_builddir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([top_build_prefix])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([srcdir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([abs_srcdir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([top_srcdir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([abs_top_srcdir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([builddir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([abs_builddir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([abs_top_builddir])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([INSTALL])
|
||||
m4trace:configure.ac:25: -1- AC_SUBST_TRACE([MKDIR_P])
|
||||
m4trace:configure.ac:25: -1- AC_REQUIRE_AUX_FILE([ltmain.sh])
|
259
config.guess
vendored
259
config.guess
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
# 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2009-11-20'
|
||||
timestamp='2012-02-10'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -17,9 +17,7 @@ timestamp='2009-11-20'
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
# 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
|
||||
@ -56,8 +54,9 @@ version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -144,7 +143,7 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
*:NetBSD:*:*)
|
||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
||||
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
||||
# switched to ELF, *-*-netbsd* would select the old
|
||||
# object file format. This provides both forward
|
||||
@ -180,7 +179,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
os=netbsd
|
||||
os=netbsd
|
||||
;;
|
||||
esac
|
||||
# The OS release
|
||||
@ -223,7 +222,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||
;;
|
||||
*5.*)
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||
;;
|
||||
esac
|
||||
# According to Compaq, /usr/sbin/psrinfo has been available on
|
||||
@ -269,7 +268,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
# A Xn.n version is an unreleased experimental baselevel.
|
||||
# 1.2 uses "1.2" for uname -r.
|
||||
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
exit ;;
|
||||
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
|
||||
exitcode=$?
|
||||
trap '' 0
|
||||
exit $exitcode ;;
|
||||
Alpha\ *:Windows_NT*:*)
|
||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||
# Should we change UNAME_MACHINE based on the output of uname instead
|
||||
@ -295,7 +297,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
echo s390-ibm-zvmoe
|
||||
exit ;;
|
||||
*:OS400:*:*)
|
||||
echo powerpc-ibm-os400
|
||||
echo powerpc-ibm-os400
|
||||
exit ;;
|
||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
||||
@ -394,23 +396,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
# MiNT. But MiNT is downward compatible to TOS, so this should
|
||||
# be no problem.
|
||||
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
exit ;;
|
||||
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
echo m68k-atari-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
||||
echo m68k-milan-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-milan-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
||||
echo m68k-hades-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-hades-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
echo m68k-unknown-mint${UNAME_RELEASE}
|
||||
exit ;;
|
||||
m68k:machten:*:*)
|
||||
echo m68k-apple-machten${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -480,8 +482,8 @@ EOF
|
||||
echo m88k-motorola-sysv3
|
||||
exit ;;
|
||||
AViiON:dgux:*:*)
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
# DG/UX returns AViiON for all architectures
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
|
||||
then
|
||||
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
|
||||
@ -494,7 +496,7 @@ EOF
|
||||
else
|
||||
echo i586-dg-dgux${UNAME_RELEASE}
|
||||
fi
|
||||
exit ;;
|
||||
exit ;;
|
||||
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
||||
echo m88k-dolphin-sysv3
|
||||
exit ;;
|
||||
@ -551,7 +553,7 @@ EOF
|
||||
echo rs6000-ibm-aix3.2
|
||||
fi
|
||||
exit ;;
|
||||
*:AIX:*:[456])
|
||||
*:AIX:*:[4567])
|
||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||
IBM_ARCH=rs6000
|
||||
@ -594,52 +596,52 @@ EOF
|
||||
9000/[678][0-9][0-9])
|
||||
if [ -x /usr/bin/getconf ]; then
|
||||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||
532) # CPU_PA_RISC2_0
|
||||
case "${sc_kernel_bits}" in
|
||||
32) HP_ARCH="hppa2.0n" ;;
|
||||
64) HP_ARCH="hppa2.0w" ;;
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||
532) # CPU_PA_RISC2_0
|
||||
case "${sc_kernel_bits}" in
|
||||
32) HP_ARCH="hppa2.0n" ;;
|
||||
64) HP_ARCH="hppa2.0w" ;;
|
||||
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
||||
esac ;;
|
||||
esac
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
if [ "${HP_ARCH}" = "" ]; then
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
|
||||
#define _HPUX_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#define _HPUX_SOURCE
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main ()
|
||||
{
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
long bits = sysconf(_SC_KERNEL_BITS);
|
||||
#endif
|
||||
long cpu = sysconf (_SC_CPU_VERSION);
|
||||
int main ()
|
||||
{
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
long bits = sysconf(_SC_KERNEL_BITS);
|
||||
#endif
|
||||
long cpu = sysconf (_SC_CPU_VERSION);
|
||||
|
||||
switch (cpu)
|
||||
{
|
||||
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
||||
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
||||
case CPU_PA_RISC2_0:
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
switch (bits)
|
||||
{
|
||||
case 64: puts ("hppa2.0w"); break;
|
||||
case 32: puts ("hppa2.0n"); break;
|
||||
default: puts ("hppa2.0"); break;
|
||||
} break;
|
||||
#else /* !defined(_SC_KERNEL_BITS) */
|
||||
puts ("hppa2.0"); break;
|
||||
#endif
|
||||
default: puts ("hppa1.0"); break;
|
||||
}
|
||||
exit (0);
|
||||
}
|
||||
switch (cpu)
|
||||
{
|
||||
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
||||
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
||||
case CPU_PA_RISC2_0:
|
||||
#if defined(_SC_KERNEL_BITS)
|
||||
switch (bits)
|
||||
{
|
||||
case 64: puts ("hppa2.0w"); break;
|
||||
case 32: puts ("hppa2.0n"); break;
|
||||
default: puts ("hppa2.0"); break;
|
||||
} break;
|
||||
#else /* !defined(_SC_KERNEL_BITS) */
|
||||
puts ("hppa2.0"); break;
|
||||
#endif
|
||||
default: puts ("hppa1.0"); break;
|
||||
}
|
||||
exit (0);
|
||||
}
|
||||
EOF
|
||||
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
||||
test -z "$HP_ARCH" && HP_ARCH=hppa
|
||||
@ -730,22 +732,22 @@ EOF
|
||||
exit ;;
|
||||
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||
echo c1-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
||||
if getsysinfo -f scalar_acc
|
||||
then echo c32-convex-bsd
|
||||
else echo c2-convex-bsd
|
||||
fi
|
||||
exit ;;
|
||||
exit ;;
|
||||
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
||||
echo c34-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
||||
echo c38-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||
echo c4-convex-bsd
|
||||
exit ;;
|
||||
exit ;;
|
||||
CRAY*Y-MP:*:*:*)
|
||||
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
@ -769,14 +771,14 @@ EOF
|
||||
exit ;;
|
||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
5000:UNIX_System_V:4.*:*)
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
|
||||
@ -788,13 +790,12 @@ EOF
|
||||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:FreeBSD:*:*)
|
||||
case ${UNAME_MACHINE} in
|
||||
pc98)
|
||||
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||
case ${UNAME_PROCESSOR} in
|
||||
amd64)
|
||||
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
*)
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
esac
|
||||
exit ;;
|
||||
i*:CYGWIN*:*)
|
||||
@ -803,15 +804,18 @@ EOF
|
||||
*:MINGW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-mingw32
|
||||
exit ;;
|
||||
i*:MSYS*:*)
|
||||
echo ${UNAME_MACHINE}-pc-msys
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
# uname -m includes "-pc" on this system.
|
||||
echo ${UNAME_MACHINE}-mingw32
|
||||
exit ;;
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
*:Interix*:*)
|
||||
case ${UNAME_MACHINE} in
|
||||
case ${UNAME_MACHINE} in
|
||||
x86)
|
||||
echo i586-pc-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -857,6 +861,13 @@ EOF
|
||||
i*86:Minix:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-minix
|
||||
exit ;;
|
||||
aarch64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
aarch64_be:Linux:*:*)
|
||||
UNAME_MACHINE=aarch64_be
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
alpha:Linux:*:*)
|
||||
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
|
||||
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||
@ -866,7 +877,7 @@ EOF
|
||||
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
@ -878,20 +889,29 @@ EOF
|
||||
then
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
else
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep -q __ARM_PCS_VFP
|
||||
then
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||
else
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
|
||||
fi
|
||||
fi
|
||||
exit ;;
|
||||
avr32*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
cris:Linux:*:*)
|
||||
echo cris-axis-linux-gnu
|
||||
echo ${UNAME_MACHINE}-axis-linux-gnu
|
||||
exit ;;
|
||||
crisv32:Linux:*:*)
|
||||
echo crisv32-axis-linux-gnu
|
||||
echo ${UNAME_MACHINE}-axis-linux-gnu
|
||||
exit ;;
|
||||
frv:Linux:*:*)
|
||||
echo frv-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
hexagon:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
i*86:Linux:*:*)
|
||||
LIBC=gnu
|
||||
@ -933,7 +953,7 @@ EOF
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
or32:Linux:*:*)
|
||||
echo or32-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
padre:Linux:*:*)
|
||||
echo sparc-unknown-linux-gnu
|
||||
@ -959,7 +979,7 @@ EOF
|
||||
echo ${UNAME_MACHINE}-ibm-linux
|
||||
exit ;;
|
||||
sh64*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
sh*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
@ -967,14 +987,17 @@ EOF
|
||||
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
tile*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
vax:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
||||
exit ;;
|
||||
x86_64:Linux:*:*)
|
||||
echo x86_64-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
xtensa*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
i*86:DYNIX/ptx:4*:*)
|
||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||
@ -983,11 +1006,11 @@ EOF
|
||||
echo i386-sequent-sysv4
|
||||
exit ;;
|
||||
i*86:UNIX_SV:4.2MP:2.*)
|
||||
# Unixware is an offshoot of SVR4, but it has its own version
|
||||
# number series starting with 2...
|
||||
# I am not positive that other SVR4 systems won't match this,
|
||||
# Unixware is an offshoot of SVR4, but it has its own version
|
||||
# number series starting with 2...
|
||||
# I am not positive that other SVR4 systems won't match this,
|
||||
# I just have to hope. -- rms.
|
||||
# Use sysv4.2uw... so that sysv4* matches it.
|
||||
# Use sysv4.2uw... so that sysv4* matches it.
|
||||
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
|
||||
exit ;;
|
||||
i*86:OS/2:*:*)
|
||||
@ -1019,7 +1042,7 @@ EOF
|
||||
fi
|
||||
exit ;;
|
||||
i*86:*:5:[678]*)
|
||||
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||
case `/bin/uname -X | grep "^Machine"` in
|
||||
*486*) UNAME_MACHINE=i486 ;;
|
||||
*Pentium) UNAME_MACHINE=i586 ;;
|
||||
@ -1047,13 +1070,13 @@ EOF
|
||||
exit ;;
|
||||
pc:*:*:*)
|
||||
# Left here for compatibility:
|
||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i586.
|
||||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i586.
|
||||
# Note: whatever this is, it MUST be the same as what config.sub
|
||||
# prints for the "djgpp" host, or else GDB configury will decide that
|
||||
# this is a cross-build.
|
||||
echo i586-pc-msdosdjgpp
|
||||
exit ;;
|
||||
exit ;;
|
||||
Intel:Mach:3*:*)
|
||||
echo i386-pc-mach3
|
||||
exit ;;
|
||||
@ -1088,8 +1111,8 @@ EOF
|
||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
||||
OS_REL='.3'
|
||||
test -r /etc/.relid \
|
||||
@ -1132,10 +1155,10 @@ EOF
|
||||
echo ns32k-sni-sysv
|
||||
fi
|
||||
exit ;;
|
||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
echo i586-unisys-sysv4
|
||||
exit ;;
|
||||
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||
echo i586-unisys-sysv4
|
||||
exit ;;
|
||||
*:UNIX_System_V:4*:FTX*)
|
||||
# From Gerald Hewes <hewes@openmarket.com>.
|
||||
# How about differentiating between stratus architectures? -djm
|
||||
@ -1161,11 +1184,11 @@ EOF
|
||||
exit ;;
|
||||
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
||||
if [ -d /usr/nec ]; then
|
||||
echo mips-nec-sysv${UNAME_RELEASE}
|
||||
echo mips-nec-sysv${UNAME_RELEASE}
|
||||
else
|
||||
echo mips-unknown-sysv${UNAME_RELEASE}
|
||||
echo mips-unknown-sysv${UNAME_RELEASE}
|
||||
fi
|
||||
exit ;;
|
||||
exit ;;
|
||||
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
||||
echo powerpc-be-beos
|
||||
exit ;;
|
||||
@ -1230,6 +1253,9 @@ EOF
|
||||
*:QNX:*:4*)
|
||||
echo i386-pc-qnx
|
||||
exit ;;
|
||||
NEO-?:NONSTOP_KERNEL:*:*)
|
||||
echo neo-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
NSE-?:NONSTOP_KERNEL:*:*)
|
||||
echo nse-tandem-nsk${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1275,13 +1301,13 @@ EOF
|
||||
echo pdp10-unknown-its
|
||||
exit ;;
|
||||
SEI:*:*:SEIUX)
|
||||
echo mips-sei-seiux${UNAME_RELEASE}
|
||||
echo mips-sei-seiux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:DragonFly:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
exit ;;
|
||||
*:*VMS:*:*)
|
||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||
case "${UNAME_MACHINE}" in
|
||||
A*) echo alpha-dec-vms ; exit ;;
|
||||
I*) echo ia64-dec-vms ; exit ;;
|
||||
@ -1299,6 +1325,9 @@ EOF
|
||||
i*86:AROS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-aros
|
||||
exit ;;
|
||||
x86_64:VMkernel:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-esx
|
||||
exit ;;
|
||||
esac
|
||||
|
||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||
@ -1321,11 +1350,11 @@ main ()
|
||||
#include <sys/param.h>
|
||||
printf ("m68k-sony-newsos%s\n",
|
||||
#ifdef NEWSOS4
|
||||
"4"
|
||||
"4"
|
||||
#else
|
||||
""
|
||||
""
|
||||
#endif
|
||||
); exit (0);
|
||||
); exit (0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
204
config.sub
vendored
204
config.sub
vendored
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
|
||||
# 2011, 2012 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2009-11-20'
|
||||
timestamp='2012-02-10'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -21,9 +21,7 @@ timestamp='2009-11-20'
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
# 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
|
||||
@ -75,8 +73,9 @@ Report bugs and patches to <config-patches@gnu.org>."
|
||||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
|
||||
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -123,13 +122,18 @@ esac
|
||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||
case $maybe_os in
|
||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
|
||||
linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
|
||||
knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
kopensolaris*-gnu* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
android-linux)
|
||||
os=-linux-android
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
|
||||
;;
|
||||
*)
|
||||
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
|
||||
if [ $basic_machine != $1 ]
|
||||
@ -156,8 +160,8 @@ case $os in
|
||||
os=
|
||||
basic_machine=$1
|
||||
;;
|
||||
-bluegene*)
|
||||
os=-cnk
|
||||
-bluegene*)
|
||||
os=-cnk
|
||||
;;
|
||||
-sim | -cisco | -oki | -wec | -winbond)
|
||||
os=
|
||||
@ -173,10 +177,10 @@ case $os in
|
||||
os=-chorusos
|
||||
basic_machine=$1
|
||||
;;
|
||||
-chorusrdb)
|
||||
os=-chorusrdb
|
||||
-chorusrdb)
|
||||
os=-chorusrdb
|
||||
basic_machine=$1
|
||||
;;
|
||||
;;
|
||||
-hiux*)
|
||||
os=-hiuxwe2
|
||||
;;
|
||||
@ -245,17 +249,22 @@ case $basic_machine in
|
||||
# Some are omitted here because they have special meanings below.
|
||||
1750a | 580 \
|
||||
| a29k \
|
||||
| aarch64 | aarch64_be \
|
||||
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
|
||||
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
|
||||
| am33_2.0 \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
||||
| be32 | be64 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| epiphany \
|
||||
| fido | fr30 | frv \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| hexagon \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| le32 | le64 \
|
||||
| lm32 \
|
||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||
| maxq | mb | microblaze | mcore | mep | metag \
|
||||
@ -281,29 +290,39 @@ case $basic_machine in
|
||||
| moxie \
|
||||
| mt \
|
||||
| msp430 \
|
||||
| nds32 | nds32le | nds32be \
|
||||
| nios | nios2 \
|
||||
| ns16k | ns32k \
|
||||
| open8 \
|
||||
| or32 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle \
|
||||
| pyramid \
|
||||
| rx \
|
||||
| rl78 | rx \
|
||||
| score \
|
||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||
| spu | strongarm \
|
||||
| tahoe | thumb | tic4x | tic80 | tron \
|
||||
| spu \
|
||||
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
|
||||
| ubicom32 \
|
||||
| v850 | v850e \
|
||||
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
|
||||
| we32k \
|
||||
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||
| x86 | xc16x | xstormy16 | xtensa \
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | picochip)
|
||||
# Motorola 68HC11/12.
|
||||
c54x)
|
||||
basic_machine=tic54x-unknown
|
||||
;;
|
||||
c55x)
|
||||
basic_machine=tic55x-unknown
|
||||
;;
|
||||
c6x)
|
||||
basic_machine=tic6x-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
@ -313,6 +332,21 @@ case $basic_machine in
|
||||
basic_machine=mt-unknown
|
||||
;;
|
||||
|
||||
strongarm | thumb | xscale)
|
||||
basic_machine=arm-unknown
|
||||
;;
|
||||
xgate)
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-none
|
||||
;;
|
||||
xscaleeb)
|
||||
basic_machine=armeb-unknown
|
||||
;;
|
||||
|
||||
xscaleel)
|
||||
basic_machine=armel-unknown
|
||||
;;
|
||||
|
||||
# We use `pc' rather than `unknown'
|
||||
# because (1) that's what they normally are, and
|
||||
# (2) the word "unknown" tends to confuse beginning users.
|
||||
@ -327,21 +361,25 @@ case $basic_machine in
|
||||
# Recognize the basic CPU types with company name.
|
||||
580-* \
|
||||
| a29k-* \
|
||||
| aarch64-* | aarch64_be-* \
|
||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||
| avr-* | avr32-* \
|
||||
| be32-* | be64-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| hexagon-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| le32-* | le64-* \
|
||||
| lm32-* \
|
||||
| m32c-* | m32r-* | m32rle-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
@ -367,25 +405,29 @@ case $basic_machine in
|
||||
| mmix-* \
|
||||
| mt-* \
|
||||
| msp430-* \
|
||||
| nds32-* | nds32le-* | nds32be-* \
|
||||
| nios-* | nios2-* \
|
||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||
| open8-* \
|
||||
| orion-* \
|
||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* | rx-* \
|
||||
| rl78-* | romp-* | rs6000-* | rx-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
|
||||
| tahoe-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
| tile*-* \
|
||||
| tron-* \
|
||||
| ubicom32-* \
|
||||
| v850-* | v850e-* | vax-* \
|
||||
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
|
||||
| vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
| ymp-* \
|
||||
| z8k-* | z80-*)
|
||||
@ -410,7 +452,7 @@ case $basic_machine in
|
||||
basic_machine=a29k-amd
|
||||
os=-udi
|
||||
;;
|
||||
abacus)
|
||||
abacus)
|
||||
basic_machine=abacus-unknown
|
||||
;;
|
||||
adobe68k)
|
||||
@ -480,11 +522,20 @@ case $basic_machine in
|
||||
basic_machine=powerpc-ibm
|
||||
os=-cnk
|
||||
;;
|
||||
c54x-*)
|
||||
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c55x-*)
|
||||
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c6x-*)
|
||||
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
cegcc)
|
||||
cegcc)
|
||||
basic_machine=arm-unknown
|
||||
os=-cegcc
|
||||
;;
|
||||
@ -516,7 +567,7 @@ case $basic_machine in
|
||||
basic_machine=craynv-cray
|
||||
os=-unicosmp
|
||||
;;
|
||||
cr16)
|
||||
cr16 | cr16-*)
|
||||
basic_machine=cr16-unknown
|
||||
os=-elf
|
||||
;;
|
||||
@ -674,7 +725,6 @@ case $basic_machine in
|
||||
i370-ibm* | ibm*)
|
||||
basic_machine=i370-ibm
|
||||
;;
|
||||
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
|
||||
i*86v32)
|
||||
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
|
||||
os=-sysv32
|
||||
@ -732,7 +782,7 @@ case $basic_machine in
|
||||
basic_machine=ns32k-utek
|
||||
os=-sysv
|
||||
;;
|
||||
microblaze)
|
||||
microblaze)
|
||||
basic_machine=microblaze-xilinx
|
||||
;;
|
||||
mingw32)
|
||||
@ -771,10 +821,18 @@ case $basic_machine in
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
msys)
|
||||
basic_machine=i386-pc
|
||||
os=-msys
|
||||
;;
|
||||
mvs)
|
||||
basic_machine=i370-ibm
|
||||
os=-mvs
|
||||
;;
|
||||
nacl)
|
||||
basic_machine=le32-unknown
|
||||
os=-nacl
|
||||
;;
|
||||
ncr3000)
|
||||
basic_machine=i486-ncr
|
||||
os=-sysv4
|
||||
@ -839,6 +897,12 @@ case $basic_machine in
|
||||
np1)
|
||||
basic_machine=np1-gould
|
||||
;;
|
||||
neo-tandem)
|
||||
basic_machine=neo-tandem
|
||||
;;
|
||||
nse-tandem)
|
||||
basic_machine=nse-tandem
|
||||
;;
|
||||
nsr-tandem)
|
||||
basic_machine=nsr-tandem
|
||||
;;
|
||||
@ -921,9 +985,10 @@ case $basic_machine in
|
||||
;;
|
||||
power) basic_machine=power-ibm
|
||||
;;
|
||||
ppc) basic_machine=powerpc-unknown
|
||||
ppc | ppcbe) basic_machine=powerpc-unknown
|
||||
;;
|
||||
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
ppc-* | ppcbe-*)
|
||||
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
ppcle | powerpclittle | ppc-le | powerpc-little)
|
||||
basic_machine=powerpcle-unknown
|
||||
@ -1017,6 +1082,9 @@ case $basic_machine in
|
||||
basic_machine=i860-stratus
|
||||
os=-sysv4
|
||||
;;
|
||||
strongarm-* | thumb-*)
|
||||
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
sun2)
|
||||
basic_machine=m68000-sun
|
||||
;;
|
||||
@ -1073,20 +1141,8 @@ case $basic_machine in
|
||||
basic_machine=t90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
tic54x | c54x*)
|
||||
basic_machine=tic54x-unknown
|
||||
os=-coff
|
||||
;;
|
||||
tic55x | c55x*)
|
||||
basic_machine=tic55x-unknown
|
||||
os=-coff
|
||||
;;
|
||||
tic6x | c6x*)
|
||||
basic_machine=tic6x-unknown
|
||||
os=-coff
|
||||
;;
|
||||
tile*)
|
||||
basic_machine=tile-unknown
|
||||
basic_machine=$basic_machine-unknown
|
||||
os=-linux-gnu
|
||||
;;
|
||||
tx39)
|
||||
@ -1156,6 +1212,9 @@ case $basic_machine in
|
||||
xps | xps100)
|
||||
basic_machine=xps100-honeywell
|
||||
;;
|
||||
xscale-* | xscalee[bl]-*)
|
||||
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
|
||||
;;
|
||||
ymp)
|
||||
basic_machine=ymp-cray
|
||||
os=-unicos
|
||||
@ -1253,11 +1312,11 @@ esac
|
||||
if [ x"$os" != x"" ]
|
||||
then
|
||||
case $os in
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# First match some system type aliases
|
||||
# that might get confused with valid system types.
|
||||
# -solaris* is a basic system type, with this one exception.
|
||||
-auroraux)
|
||||
os=-auroraux
|
||||
-auroraux)
|
||||
os=-auroraux
|
||||
;;
|
||||
-solaris1 | -solaris1.*)
|
||||
os=`echo $os | sed -e 's|solaris1|sunos4|'`
|
||||
@ -1293,8 +1352,9 @@ case $os in
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
|
||||
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-android* \
|
||||
| -linux-newlib* | -linux-uclibc* \
|
||||
| -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
|
||||
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||
@ -1341,7 +1401,7 @@ case $os in
|
||||
-opened*)
|
||||
os=-openedition
|
||||
;;
|
||||
-os400*)
|
||||
-os400*)
|
||||
os=-os400
|
||||
;;
|
||||
-wince*)
|
||||
@ -1390,7 +1450,7 @@ case $os in
|
||||
-sinix*)
|
||||
os=-sysv4
|
||||
;;
|
||||
-tpf*)
|
||||
-tpf*)
|
||||
os=-tpf
|
||||
;;
|
||||
-triton*)
|
||||
@ -1435,6 +1495,8 @@ case $os in
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-nacl*)
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
@ -1457,10 +1519,10 @@ else
|
||||
# system, and we'll never get to this point.
|
||||
|
||||
case $basic_machine in
|
||||
score-*)
|
||||
score-*)
|
||||
os=-elf
|
||||
;;
|
||||
spu-*)
|
||||
spu-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-acorn)
|
||||
@ -1472,8 +1534,17 @@ case $basic_machine in
|
||||
arm*-semi)
|
||||
os=-aout
|
||||
;;
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
tic54x-*)
|
||||
os=-coff
|
||||
;;
|
||||
tic55x-*)
|
||||
os=-coff
|
||||
;;
|
||||
tic6x-*)
|
||||
os=-coff
|
||||
;;
|
||||
# This must come before the *-dec entry.
|
||||
pdp10-*)
|
||||
@ -1493,14 +1564,11 @@ case $basic_machine in
|
||||
;;
|
||||
m68000-sun)
|
||||
os=-sunos3
|
||||
# This also exists in the configure program, but was not the
|
||||
# default.
|
||||
# os=-sunos4
|
||||
;;
|
||||
m68*-cisco)
|
||||
os=-aout
|
||||
;;
|
||||
mep-*)
|
||||
mep-*)
|
||||
os=-elf
|
||||
;;
|
||||
mips*-cisco)
|
||||
@ -1527,7 +1595,7 @@ case $basic_machine in
|
||||
*-ibm)
|
||||
os=-aix
|
||||
;;
|
||||
*-knuth)
|
||||
*-knuth)
|
||||
os=-mmixware
|
||||
;;
|
||||
*-wec)
|
||||
|
36
configure.ac
36
configure.ac
@ -1,36 +1,26 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT(cc-tool, 0.18, george-u@yandex.com)
|
||||
|
||||
# AC_CANONICAL_SYSTEM
|
||||
AM_INIT_AUTOMAKE(cc-tool, 0.18)
|
||||
|
||||
AC_INIT(cc-tool, 0.26, george-u@yandex.com)
|
||||
AM_INIT_AUTOMAKE([no-dependencies foreign subdir-objects])
|
||||
AM_SILENT_RULES([yes])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_PROG_LIBTOOL
|
||||
AC_PROG_CXX
|
||||
|
||||
BOOST_REQUIRE([1.34])
|
||||
|
||||
BOOST_FILESYSTEM([mt])
|
||||
BOOST_REQUIRE([1.39])
|
||||
BOOST_PROGRAM_OPTIONS([mt])
|
||||
BOOST_SYSTEM([mt])
|
||||
BOOST_REGEX([mt])
|
||||
BOOST_THREADS([mt])
|
||||
BOOST_FILESYSTEM([mt])
|
||||
BOOST_FOREACH
|
||||
BOOST_SMART_PTR
|
||||
BOOST_STRING_ALGO
|
||||
BOOST_SIGNALS2
|
||||
BOOST_CRC
|
||||
|
||||
PKG_CHECK_MODULES([DEPS], [libusb-1.0 >= 1.0.0])
|
||||
PKG_CHECK_MODULES([LIBUSB], [libusb-1.0 >= 1.0.0])
|
||||
|
||||
AC_LANG_PUSH([C++])
|
||||
AC_CHECK_HEADERS( \
|
||||
boost/regex.hpp \
|
||||
boost/foreach.hpp \
|
||||
boost/filesystem.hpp \
|
||||
boost/shared_ptr.hpp \
|
||||
boost/signals2.hpp \
|
||||
boost/crc.hpp \
|
||||
boost/algorithm/string.hpp,
|
||||
[],[AC_MSG_ERROR(You need the Boost libraries.)])
|
||||
AC_LANG_POP([C++])
|
||||
|
||||
AC_CONFIG_FILES(Makefile src/Makefile)
|
||||
AC_CONFIG_FILES(Makefile)
|
||||
AC_OUTPUT
|
||||
|
||||
|
Binary file not shown.
29
install-sh
29
install-sh
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
scriptversion=2011-01-19.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -156,6 +156,10 @@ while test $# -ne 0; do
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dst_arg=$2
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true;;
|
||||
@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
case $dst_arg in
|
||||
-* | [=\(\)!]) dst_arg=./$dst_arg;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
@ -200,7 +208,11 @@ if test $# -eq 0; then
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
do_exit='(exit $ret); exit $ret'
|
||||
trap "ret=129; $do_exit" 1
|
||||
trap "ret=130; $do_exit" 2
|
||||
trap "ret=141; $do_exit" 13
|
||||
trap "ret=143; $do_exit" 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
@ -228,9 +240,9 @@ fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
# Protect names problematic for `test' and other utilities.
|
||||
case $src in
|
||||
-*) src=./$src;;
|
||||
-* | [=\(\)!]) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
@ -252,12 +264,7 @@ do
|
||||
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.
|
||||
@ -385,7 +392,7 @@ do
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
[-=\(\)!]*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
@ -403,7 +410,7 @@ do
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
test X"$d" = X && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
|
814
m4/boost.m4
814
m4/boost.m4
File diff suppressed because it is too large
Load Diff
1335
m4/libtool.m4
vendored
1335
m4/libtool.m4
vendored
File diff suppressed because it is too large
Load Diff
19
m4/ltoptions.m4
vendored
19
m4/ltoptions.m4
vendored
@ -326,9 +326,24 @@ dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
|
||||
# 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],
|
||||
[AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
|
||||
[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
|
||||
[pic_mode="$withval"],
|
||||
[lt_p=${PACKAGE-default}
|
||||
case $withval in
|
||||
yes|no) pic_mode=$withval ;;
|
||||
*)
|
||||
pic_mode=default
|
||||
# Look at the argument we got. We use all the common list separators.
|
||||
lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
|
||||
for lt_pkg in $withval; do
|
||||
IFS="$lt_save_ifs"
|
||||
if test "X$lt_pkg" = "X$lt_p"; then
|
||||
pic_mode=yes
|
||||
fi
|
||||
done
|
||||
IFS="$lt_save_ifs"
|
||||
;;
|
||||
esac],
|
||||
[pic_mode=default])
|
||||
|
||||
test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
|
||||
|
12
m4/ltversion.m4
vendored
12
m4/ltversion.m4
vendored
@ -7,17 +7,17 @@
|
||||
# unlimited permission to copy and/or distribute it, with or without
|
||||
# modifications, as long as this notice is preserved.
|
||||
|
||||
# Generated from ltversion.in.
|
||||
# @configure_input@
|
||||
|
||||
# serial 3175 ltversion.m4
|
||||
# serial 3337 ltversion.m4
|
||||
# This file is part of GNU Libtool
|
||||
|
||||
m4_define([LT_PACKAGE_VERSION], [2.2.10])
|
||||
m4_define([LT_PACKAGE_REVISION], [1.3175])
|
||||
m4_define([LT_PACKAGE_VERSION], [2.4.2])
|
||||
m4_define([LT_PACKAGE_REVISION], [1.3337])
|
||||
|
||||
AC_DEFUN([LTVERSION_VERSION],
|
||||
[macro_version='2.2.10'
|
||||
macro_revision='1.3175'
|
||||
[macro_version='2.4.2'
|
||||
macro_revision='1.3337'
|
||||
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
|
||||
_LT_DECL(, macro_revision, 0)
|
||||
])
|
||||
|
@ -2,7 +2,7 @@
|
||||
.\" groff -man -Tascii foo.1
|
||||
.\"
|
||||
.
|
||||
.TH cc-tool 1 "June 06 2012" "cc-tool 0.18" "USER COMMANDS"
|
||||
.TH cc-tool 1 "March 01 2013" "cc-tool 0.26" "USER COMMANDS"
|
||||
.
|
||||
.SH NAME
|
||||
cc-tool \- control Texas Instruments CC Debugger
|
||||
@ -13,7 +13,7 @@ cc-tool \- control Texas Instruments CC Debugger
|
||||
.
|
||||
.SH DESCRIPTION
|
||||
.B cc-tool
|
||||
provides support of Texas Instruments CC Debugger and several evaluation boards in order to program TI 8051-based System-On-Chip devices
|
||||
provides support of Texas Instruments CC Debugger and several evaluation boards to program TI 8051-based System-On-Chip devices
|
||||
.
|
||||
.SH SUPPORTED DEVICES
|
||||
.B CC Debugger
|
||||
@ -22,11 +22,14 @@ provides support of Texas Instruments CC Debugger and several evaluation boards
|
||||
.B SmartRF04 Evaluation Board
|
||||
(VID: 0x11a0 PID: 0xdb20)
|
||||
.br
|
||||
.B SmartRF04 Evaluation Board (Chinese)
|
||||
(VID: 0x11a0 PID: 0xeb20)
|
||||
.br
|
||||
.B SmartRF05 Evaluation Board
|
||||
(VID: 0x0451 PID: 0x16a0)
|
||||
.
|
||||
.SH SUPPORTED TARGETS
|
||||
CC2540 CC2530 CC2531 CC2533 CC2430 CC2431 CC2510 CC2511 CC1110 CC1111
|
||||
CC2540 CC2541 CC2543 CC2544 CC2545 CC2530 CC2531 CC2533 CC2430 CC2431 CC2510 CC2511 CC1110 CC1111
|
||||
.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
@ -48,12 +51,21 @@ set fast debug interface speed (by default: slow)
|
||||
read target info page (if target supports any). If no file-name specified data will be send to standard output.
|
||||
.
|
||||
.TP
|
||||
.B \-r, \-\-read file_name
|
||||
read flash memory and save to the specified file
|
||||
.
|
||||
.TP
|
||||
.B \-a, \-\-read-mac-address
|
||||
read target's mac address(es) (if target supports any).
|
||||
.
|
||||
.TP
|
||||
.B \-r, \-\-read file_name
|
||||
read flash memory and save to the specified file
|
||||
.B \-b, \-\-write-mac-address xx:xx:xx:xx:xx:xx[:xx:xx]
|
||||
write target's secondary mac address (if target supports any).
|
||||
mac address should be specified in hex notation, MSB first. The length of the address must be 6 or 8 bytes depending on target.
|
||||
.
|
||||
.TP
|
||||
.B \-p, \-\-preserve-mac-address
|
||||
before erasing target (secondary) mac address is read out and will be written back after flash programming.
|
||||
.
|
||||
.TP
|
||||
.B \-e, \-\-erase
|
||||
@ -88,8 +100,30 @@ search for programmer and target and print various information of them.
|
||||
.
|
||||
.TP
|
||||
.B \-l, \-\-lock lock_data
|
||||
specify lock data in hex numbers. Lock data size must be exactly 1 byte (2 hex digits) or 16 bytes (32 hex digits) depending on target.
|
||||
For several targets lock data can be placed into flash image file either
|
||||
specify lock data as hex string or list of lock qualifiers.
|
||||
Hex data must be exactly 1 byte (2 hex digits) or 16 bytes (32 hex digits), LSB first, depending on target.
|
||||
Lock qualifiers correspond to lock bit of target (see target datasheet). Not all targets support all qualifiers.
|
||||
Qualifiers are:
|
||||
.RS 10
|
||||
.I debug
|
||||
- debug lock bit
|
||||
.RE
|
||||
.RS 10
|
||||
.I boot
|
||||
- boot lock bit
|
||||
(for targets CC111x, CC243x, CC251x)
|
||||
.RE
|
||||
.RS 10
|
||||
.I pages[:n[,k[,x-y]]]
|
||||
- specify what pages to lock (starting with 0), if target support per-page lock.
|
||||
(for targets CC253x, CC254x)
|
||||
.RE
|
||||
.RS 10
|
||||
.I flash[:a]
|
||||
- specify the size in KB of the upper flash area to lock if target support per-flash-area-size lock
|
||||
(for targets CC111x, CC243x, CC251x)
|
||||
.RE
|
||||
Qualifier list is delimited by semicolon (See example section).
|
||||
.TP
|
||||
.B \-\-log [log_file]
|
||||
create log file with all operations performed. Useful for debugging cc-tool itself.
|
||||
@ -104,6 +138,10 @@ perform target reset. There's no need to use this option along with others becau
|
||||
specify target name e.g. CC2530 etc. If specified target does not match
|
||||
detected one no further actions are performed. This option is not required.
|
||||
.
|
||||
.TP
|
||||
.B \-s, \-\-flash-size specify target flash size
|
||||
specify target flash size in kilobytes. This option is required for any actions with MAC address when target is CC2430
|
||||
.
|
||||
.SH SUPPORTED FILE FORMATS
|
||||
Supported image file formats are Intel hex or binary. Format will be determined automatically by file extention (hex or bin)
|
||||
or my be specified explicitly by adding
|
||||
@ -115,16 +153,28 @@ after file name. See EXAMPLES section.
|
||||
.SH EXAMPLES
|
||||
.TP
|
||||
Read entire flash into binary file image.xxx
|
||||
.B cc_tool
|
||||
.B cc-tool
|
||||
-r image.xxx,bin
|
||||
.TP
|
||||
Erase flash, write intel hex file image.hex and verify flash using default method
|
||||
.B cc_tool
|
||||
.B cc-tool
|
||||
-v -e -w image.hex
|
||||
.TP
|
||||
Merge file image.hex and patch.bin (at offset 80), write resulting image, verify flash using read method
|
||||
.B cc_tool
|
||||
.B cc-tool
|
||||
-v read -w image.hex --write patch.bin,80
|
||||
.TP
|
||||
Set debug lock bit
|
||||
.B cc-tool
|
||||
--lock debug
|
||||
.TP
|
||||
Set debug lock bit and lock pages 0,1,2,3,4
|
||||
.B cc-tool
|
||||
--lock debug;pages:0-4
|
||||
.TP
|
||||
Set debug lock bit, boot lock bit, and set lock size 8K
|
||||
.B cc-tool
|
||||
--lock debug;boot;flash:8
|
||||
.
|
||||
.SH EXIT STATUS
|
||||
.B cc-tool
|
||||
|
53
missing
53
missing
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
scriptversion=2012-01-06.13; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 Free Software Foundation, Inc.
|
||||
# 2008, 2009, 2010, 2011, 2012 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
|
||||
@ -84,7 +84,6 @@ Supported PROGRAM values:
|
||||
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
|
||||
@ -122,15 +121,6 @@ case $1 in
|
||||
# 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.
|
||||
@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if
|
||||
\`Bison' from any GNU archive site."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
eval LASTARG=\${$#}
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
\`Flex' from any GNU archive site."
|
||||
rm -f lex.yy.c
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
eval LASTARG=\${$#}
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
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.
|
||||
|
@ -1,31 +0,0 @@
|
||||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
AM_CPPFLAGS = $(DEPS_CFLAGS) -O3 -Iprogrammer -Icommon -Iusb -Idata -Iapplication
|
||||
AM_LDFLAGS = \
|
||||
$(BOOST_FILESYSTEM_LDFLAGS) \
|
||||
$(BOOST_REGEX_LDFLAGS) \
|
||||
$(BOOST_SYSTEM_LDFLAGS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LDFLAGS)
|
||||
|
||||
# $(BOOST_THREADS_LDFLAGS)
|
||||
|
||||
LDADD = $(DEPS_LIBS)
|
||||
|
||||
LIBS = -s \
|
||||
$(BOOST_FILESYSTEM_LIBS) \
|
||||
$(BOOST_REGEX_LIBS) \
|
||||
$(BOOST_SYSTEM_LIBS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LIBS)
|
||||
|
||||
# $(BOOST_THREADS_LIBS)
|
||||
|
||||
bin_PROGRAMS=cc-tool
|
||||
cc_tool_SOURCES=main.cpp application/cc_flasher.cpp application/cc_base.cpp \
|
||||
common/log.cpp common/common.cpp common/timer.cpp \
|
||||
usb/usb_device.cpp \
|
||||
data/binary_file.cpp data/data_section.cpp data/data_section_store.cpp \
|
||||
data/file.cpp data/hex_file.cpp data/read_target.cpp \
|
||||
data/progress_watcher.cpp \
|
||||
programmer/cc_253x_2540.cpp programmer/cc_251x_111x.cpp \
|
||||
programmer/cc_243x.cpp programmer/cc_programmer.cpp \
|
||||
programmer/cc_unit_driver.cpp programmer/cc_unit_info.cpp
|
||||
|
690
src/Makefile.in
690
src/Makefile.in
@ -1,690 +0,0 @@
|
||||
# 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 = cc-tool$(EXEEXT)
|
||||
subdir = src
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \
|
||||
$(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_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am__dirstamp = $(am__leading_dot)dirstamp
|
||||
am_cc_tool_OBJECTS = main.$(OBJEXT) application/cc_flasher.$(OBJEXT) \
|
||||
application/cc_base.$(OBJEXT) common/log.$(OBJEXT) \
|
||||
common/common.$(OBJEXT) common/timer.$(OBJEXT) \
|
||||
usb/usb_device.$(OBJEXT) data/binary_file.$(OBJEXT) \
|
||||
data/data_section.$(OBJEXT) data/data_section_store.$(OBJEXT) \
|
||||
data/file.$(OBJEXT) data/hex_file.$(OBJEXT) \
|
||||
data/read_target.$(OBJEXT) data/progress_watcher.$(OBJEXT) \
|
||||
programmer/cc_253x_2540.$(OBJEXT) \
|
||||
programmer/cc_251x_111x.$(OBJEXT) programmer/cc_243x.$(OBJEXT) \
|
||||
programmer/cc_programmer.$(OBJEXT) \
|
||||
programmer/cc_unit_driver.$(OBJEXT) \
|
||||
programmer/cc_unit_info.$(OBJEXT)
|
||||
cc_tool_OBJECTS = $(am_cc_tool_OBJECTS)
|
||||
cc_tool_LDADD = $(LDADD)
|
||||
am__DEPENDENCIES_1 =
|
||||
cc_tool_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I.@am__isrc@
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(cc_tool_SOURCES)
|
||||
DIST_SOURCES = $(cc_tool_SOURCES)
|
||||
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@
|
||||
BOOST_CPPFLAGS = @BOOST_CPPFLAGS@
|
||||
BOOST_FILESYSTEM_LDFLAGS = @BOOST_FILESYSTEM_LDFLAGS@
|
||||
BOOST_FILESYSTEM_LDPATH = @BOOST_FILESYSTEM_LDPATH@
|
||||
BOOST_FILESYSTEM_LIBS = @BOOST_FILESYSTEM_LIBS@
|
||||
BOOST_LDPATH = @BOOST_LDPATH@
|
||||
BOOST_PROGRAM_OPTIONS_LDFLAGS = @BOOST_PROGRAM_OPTIONS_LDFLAGS@
|
||||
BOOST_PROGRAM_OPTIONS_LDPATH = @BOOST_PROGRAM_OPTIONS_LDPATH@
|
||||
BOOST_PROGRAM_OPTIONS_LIBS = @BOOST_PROGRAM_OPTIONS_LIBS@
|
||||
BOOST_REGEX_LDFLAGS = @BOOST_REGEX_LDFLAGS@
|
||||
BOOST_REGEX_LDPATH = @BOOST_REGEX_LDPATH@
|
||||
BOOST_REGEX_LIBS = @BOOST_REGEX_LIBS@
|
||||
BOOST_ROOT = @BOOST_ROOT@
|
||||
BOOST_SYSTEM_LDFLAGS = @BOOST_SYSTEM_LDFLAGS@
|
||||
BOOST_SYSTEM_LDPATH = @BOOST_SYSTEM_LDPATH@
|
||||
BOOST_SYSTEM_LIBS = @BOOST_SYSTEM_LIBS@
|
||||
BOOST_THREAD_LDFLAGS = @BOOST_THREAD_LDFLAGS@
|
||||
BOOST_THREAD_LDPATH = @BOOST_THREAD_LDPATH@
|
||||
BOOST_THREAD_LIBS = @BOOST_THREAD_LIBS@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DEPS_CFLAGS = @DEPS_CFLAGS@
|
||||
DEPS_LIBS = @DEPS_LIBS@
|
||||
DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
|
||||
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 = -s \
|
||||
$(BOOST_FILESYSTEM_LIBS) \
|
||||
$(BOOST_REGEX_LIBS) \
|
||||
$(BOOST_SYSTEM_LIBS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LIBS)
|
||||
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
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@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||
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_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
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@
|
||||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
AM_CPPFLAGS = $(DEPS_CFLAGS) -O3 -Iprogrammer -Icommon -Iusb -Idata -Iapplication
|
||||
AM_LDFLAGS = \
|
||||
$(BOOST_FILESYSTEM_LDFLAGS) \
|
||||
$(BOOST_REGEX_LDFLAGS) \
|
||||
$(BOOST_SYSTEM_LDFLAGS) \
|
||||
$(BOOST_PROGRAM_OPTIONS_LDFLAGS)
|
||||
|
||||
|
||||
# $(BOOST_THREADS_LDFLAGS)
|
||||
LDADD = $(DEPS_LIBS)
|
||||
cc_tool_SOURCES = main.cpp application/cc_flasher.cpp application/cc_base.cpp \
|
||||
common/log.cpp common/common.cpp common/timer.cpp \
|
||||
usb/usb_device.cpp \
|
||||
data/binary_file.cpp data/data_section.cpp data/data_section_store.cpp \
|
||||
data/file.cpp data/hex_file.cpp data/read_target.cpp \
|
||||
data/progress_watcher.cpp \
|
||||
programmer/cc_253x_2540.cpp programmer/cc_251x_111x.cpp \
|
||||
programmer/cc_243x.cpp programmer/cc_programmer.cpp \
|
||||
programmer/cc_unit_driver.cpp programmer/cc_unit_info.cpp
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .cpp .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) --gnu src/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu src/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
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
|
||||
application/$(am__dirstamp):
|
||||
@$(MKDIR_P) application
|
||||
@: > application/$(am__dirstamp)
|
||||
application/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) application/$(DEPDIR)
|
||||
@: > application/$(DEPDIR)/$(am__dirstamp)
|
||||
application/cc_flasher.$(OBJEXT): application/$(am__dirstamp) \
|
||||
application/$(DEPDIR)/$(am__dirstamp)
|
||||
application/cc_base.$(OBJEXT): application/$(am__dirstamp) \
|
||||
application/$(DEPDIR)/$(am__dirstamp)
|
||||
common/$(am__dirstamp):
|
||||
@$(MKDIR_P) common
|
||||
@: > common/$(am__dirstamp)
|
||||
common/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) common/$(DEPDIR)
|
||||
@: > common/$(DEPDIR)/$(am__dirstamp)
|
||||
common/log.$(OBJEXT): common/$(am__dirstamp) \
|
||||
common/$(DEPDIR)/$(am__dirstamp)
|
||||
common/common.$(OBJEXT): common/$(am__dirstamp) \
|
||||
common/$(DEPDIR)/$(am__dirstamp)
|
||||
common/timer.$(OBJEXT): common/$(am__dirstamp) \
|
||||
common/$(DEPDIR)/$(am__dirstamp)
|
||||
usb/$(am__dirstamp):
|
||||
@$(MKDIR_P) usb
|
||||
@: > usb/$(am__dirstamp)
|
||||
usb/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) usb/$(DEPDIR)
|
||||
@: > usb/$(DEPDIR)/$(am__dirstamp)
|
||||
usb/usb_device.$(OBJEXT): usb/$(am__dirstamp) \
|
||||
usb/$(DEPDIR)/$(am__dirstamp)
|
||||
data/$(am__dirstamp):
|
||||
@$(MKDIR_P) data
|
||||
@: > data/$(am__dirstamp)
|
||||
data/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) data/$(DEPDIR)
|
||||
@: > data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/binary_file.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/data_section.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/data_section_store.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/file.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/hex_file.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/read_target.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
data/progress_watcher.$(OBJEXT): data/$(am__dirstamp) \
|
||||
data/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/$(am__dirstamp):
|
||||
@$(MKDIR_P) programmer
|
||||
@: > programmer/$(am__dirstamp)
|
||||
programmer/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) programmer/$(DEPDIR)
|
||||
@: > programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_253x_2540.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_251x_111x.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_243x.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_programmer.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_unit_driver.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
programmer/cc_unit_info.$(OBJEXT): programmer/$(am__dirstamp) \
|
||||
programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
cc-tool$(EXEEXT): $(cc_tool_OBJECTS) $(cc_tool_DEPENDENCIES)
|
||||
@rm -f cc-tool$(EXEEXT)
|
||||
$(CXXLINK) $(cc_tool_OBJECTS) $(cc_tool_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
-rm -f application/cc_base.$(OBJEXT)
|
||||
-rm -f application/cc_flasher.$(OBJEXT)
|
||||
-rm -f common/common.$(OBJEXT)
|
||||
-rm -f common/log.$(OBJEXT)
|
||||
-rm -f common/timer.$(OBJEXT)
|
||||
-rm -f data/binary_file.$(OBJEXT)
|
||||
-rm -f data/data_section.$(OBJEXT)
|
||||
-rm -f data/data_section_store.$(OBJEXT)
|
||||
-rm -f data/file.$(OBJEXT)
|
||||
-rm -f data/hex_file.$(OBJEXT)
|
||||
-rm -f data/progress_watcher.$(OBJEXT)
|
||||
-rm -f data/read_target.$(OBJEXT)
|
||||
-rm -f programmer/cc_243x.$(OBJEXT)
|
||||
-rm -f programmer/cc_251x_111x.$(OBJEXT)
|
||||
-rm -f programmer/cc_253x_2540.$(OBJEXT)
|
||||
-rm -f programmer/cc_programmer.$(OBJEXT)
|
||||
-rm -f programmer/cc_unit_driver.$(OBJEXT)
|
||||
-rm -f programmer/cc_unit_info.$(OBJEXT)
|
||||
-rm -f usb/usb_device.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@application/$(DEPDIR)/cc_base.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@application/$(DEPDIR)/cc_flasher.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/common.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/log.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/timer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/binary_file.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/data_section.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/data_section_store.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/file.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/hex_file.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/progress_watcher.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@data/$(DEPDIR)/read_target.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_243x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_251x_111x.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_253x_2540.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_programmer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_unit_driver.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@programmer/$(DEPDIR)/cc_unit_info.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@usb/$(DEPDIR)/usb_device.Po@am__quote@
|
||||
|
||||
.cpp.o:
|
||||
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
|
||||
|
||||
.cpp.obj:
|
||||
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.cpp.lo:
|
||||
@am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
|
||||
@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -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)
|
||||
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)
|
||||
-rm -f application/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f application/$(am__dirstamp)
|
||||
-rm -f common/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f common/$(am__dirstamp)
|
||||
-rm -f data/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f data/$(am__dirstamp)
|
||||
-rm -f programmer/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f programmer/$(am__dirstamp)
|
||||
-rm -f usb/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f usb/$(am__dirstamp)
|
||||
|
||||
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) application/$(DEPDIR) common/$(DEPDIR) data/$(DEPDIR) programmer/$(DEPDIR) usb/$(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) application/$(DEPDIR) common/$(DEPDIR) data/$(DEPDIR) programmer/$(DEPDIR) usb/$(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:
|
@ -78,7 +78,7 @@ void CC_Base::init_options(po::options_description &desc)
|
||||
"set programmer deivce usb address 'bus:device'");
|
||||
|
||||
desc.add_options()
|
||||
("fast,f", "set fast debug interface speed (by default: slow)"); //TODO made fast by default
|
||||
("fast,f", "set fast debug interface speed (by default: slow)");
|
||||
|
||||
desc.add_options()
|
||||
("name,n", po::value<String>(&option_unit_name_),
|
||||
@ -229,7 +229,7 @@ bool CC_Base::execute(int argc, char *argv[])
|
||||
}
|
||||
std::cout << "\n";
|
||||
}
|
||||
catch (po::error& e) //command line error
|
||||
catch (po::error& e) // command line error
|
||||
{
|
||||
std::cout << " Bad command line options";
|
||||
if (strlen(e.what()))
|
||||
|
@ -26,6 +26,8 @@ public:
|
||||
|
||||
protected:
|
||||
virtual void init_options(po::options_description &);
|
||||
|
||||
/// @return false if application should exit
|
||||
virtual bool read_options(const po::options_description &, const po::variables_map &);
|
||||
virtual void process_tasks();
|
||||
|
||||
|
@ -17,19 +17,30 @@
|
||||
#include "cc_flasher.h"
|
||||
|
||||
enum Task {
|
||||
T_RESET = 0x0001,
|
||||
T_ERASE = 0x0002,
|
||||
T_WRITE_FLASH = 0x0004,
|
||||
T_READ_FLASH = 0x0008,
|
||||
T_VERIFY = 0x0010,
|
||||
T_LOCK = 0x0020,
|
||||
T_READ_MAC = 0x0040,
|
||||
T_READ_INFO_PAGE = 0x0080,
|
||||
T_TEST = 0x0100,
|
||||
T_RESET = 0x0001,
|
||||
T_ERASE = 0x0002,
|
||||
T_WRITE_FLASH = 0x0004,
|
||||
T_READ_FLASH = 0x0008,
|
||||
T_VERIFY = 0x0010,
|
||||
T_LOCK = 0x0020,
|
||||
T_READ_MAC = 0x0040,
|
||||
T_WRITE_MAC = 0x0080,
|
||||
T_PRESERVE_MAC = 0x0100,
|
||||
T_READ_INFO_PAGE= 0x0200,
|
||||
T_TEST = 0x0400,
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
bool extract_mac_address(const String &mac, size_t length, ByteVector &data)
|
||||
static String mac_address_to_string(const ByteVector &mac)
|
||||
{
|
||||
ByteVector data(mac.size(), 0);
|
||||
std::reverse_copy(mac.begin(), mac.end(), data.begin());
|
||||
|
||||
return binary_to_hex(&data[0], data.size(), ":");
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
static bool extract_mac_address(const String &mac, size_t length, ByteVector &data)
|
||||
{
|
||||
String exp;
|
||||
for (size_t i = 0; i < length; i++)
|
||||
@ -42,8 +53,8 @@ bool extract_mac_address(const String &mac, size_t length, ByteVector &data)
|
||||
if (!boost::regex_match(mac.c_str(), what, regex))
|
||||
return false;
|
||||
|
||||
for (size_t i = 0; i < length; i++)
|
||||
data.push_back(std::strtoul(what[i + 1].str().c_str(), NULL, 16));
|
||||
for (size_t i = length; i > 0; i--)
|
||||
data.push_back(std::strtoul(what[i].str().c_str(), NULL, 16));
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -118,14 +129,13 @@ static std::ostream& operator <<(std::ostream &os, const UnitInfo &o)
|
||||
os << "n/a" << "\n";
|
||||
else
|
||||
os << o.flash_size << " KB" << "\n";
|
||||
os << " Flash page size: " << o.flash_page_size << "\n";
|
||||
os << " RAM size: ";
|
||||
if (!o.ram_size)
|
||||
os << "n/a" << "\n";
|
||||
else
|
||||
os << o.ram_size << " KB" << "\n";
|
||||
os << std::dec;
|
||||
os << " Lock data size: " << o.lock_size << " B" << "\n";
|
||||
|
||||
return os;
|
||||
}
|
||||
|
||||
@ -136,6 +146,30 @@ static void on_progress(size_t done_read, size_t total_read)
|
||||
<< "%\r" << std::flush;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
static void print_result(bool result)
|
||||
{
|
||||
// clear out progress message
|
||||
std::cout << String(18, ' ') << "\r" << std::flush;
|
||||
|
||||
if (result)
|
||||
std::cout << " Completed" << "\n";
|
||||
else
|
||||
std::cout << " Failed" << "\n";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
static void print_result(bool result, const Timer& timer)
|
||||
{
|
||||
// clear out progress message
|
||||
std::cout << String(18, ' ') << "\r" << std::flush;
|
||||
|
||||
if (result)
|
||||
std::cout << " Completed (" << timer.elapsed_time() << ")" << "\n";
|
||||
else
|
||||
std::cout << " Failed" << "\n";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::init_options(po::options_description &desc)
|
||||
{
|
||||
@ -148,6 +182,12 @@ void CC_Flasher::init_options(po::options_description &desc)
|
||||
desc.add_options()
|
||||
("read-mac-address,a", "read mac address(es)");
|
||||
|
||||
desc.add_options()
|
||||
("write-mac-address,b", po::value<String>(), "write (secondary) mac address");
|
||||
|
||||
desc.add_options()
|
||||
("preserve-mac-address,p", "preserve (secondary) mac address across writing");
|
||||
|
||||
desc.add_options()
|
||||
("read,r", po::value<String>(), "read flash memory");
|
||||
|
||||
@ -159,7 +199,7 @@ void CC_Flasher::init_options(po::options_description &desc)
|
||||
"write flash memory.");
|
||||
|
||||
desc.add_options()
|
||||
("verify,v", po::value<String>(&option_verify_type_)->implicit_value(""),
|
||||
("verify,v", po::value<String>()->implicit_value(""),
|
||||
"verify flash after write, method '(r)ead' or '(c)cr' (used by default)");
|
||||
|
||||
desc.add_options()
|
||||
@ -170,7 +210,11 @@ void CC_Flasher::init_options(po::options_description &desc)
|
||||
|
||||
desc.add_options()
|
||||
("lock,l", po::value<String>(&option_lock_data_),
|
||||
"specify lock data in hex numbers");
|
||||
"specify lock data in hex numbers or by string: debug[;pages:xx]");
|
||||
|
||||
desc.add_options()
|
||||
("flash-size,s", po::value<String>(&option_flash_size_),
|
||||
"specify target flash size in KB");
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -182,23 +226,42 @@ bool CC_Flasher::read_options(const po::options_description &desc, const po::var
|
||||
if (vm.count("read-mac-address"))
|
||||
task_set_ |= T_READ_MAC;
|
||||
|
||||
if (vm.count("preserve-mac-address"))
|
||||
task_set_ |= T_PRESERVE_MAC;
|
||||
|
||||
if (vm.count("write-mac-address"))
|
||||
{
|
||||
task_set_ |= T_WRITE_MAC;
|
||||
|
||||
String value = vm["write-mac-address"].as<String>();
|
||||
|
||||
if (!extract_mac_address(value, 6, mac_addr_) &&
|
||||
!extract_mac_address(value, 8, mac_addr_))
|
||||
throw po::error("bad mac address format - " + value);
|
||||
|
||||
if (task_set_ & T_PRESERVE_MAC)
|
||||
throw po::error("incompatible options write-mac-address and preserve-mac-address");
|
||||
}
|
||||
|
||||
if (vm.count("read-info-page"))
|
||||
{
|
||||
task_set_ |= T_READ_INFO_PAGE;
|
||||
info_page_read_target_.set_source(option_info_page_);
|
||||
}
|
||||
|
||||
if (vm.count("verify"))
|
||||
{
|
||||
task_set_ |= T_VERIFY;
|
||||
|
||||
if (!option_verify_type_.empty())
|
||||
{
|
||||
if (option_verify_type_ == "r" || option_verify_type_ == "read")
|
||||
String value = vm["verify"].as<String>();
|
||||
if (value == "r" || value == "read")
|
||||
verify_method_ = CC_Programmer::VM_BY_READ;
|
||||
else
|
||||
if ((option_verify_type_ == "c" || option_verify_type_ == "crc"))
|
||||
if ((value == "c" || value == "crc"))
|
||||
verify_method_ = CC_Programmer::VM_BY_CRC;
|
||||
else
|
||||
throw po::error("bad verify method - " + option_verify_type_);
|
||||
if (!value.empty())
|
||||
throw po::error("invalid verify method - " + value);
|
||||
}
|
||||
|
||||
if (vm.count("reset"))
|
||||
@ -216,6 +279,12 @@ bool CC_Flasher::read_options(const po::options_description &desc, const po::var
|
||||
|
||||
if (vm.count("write"))
|
||||
{
|
||||
if (!(task_set_ & T_ERASE))
|
||||
{
|
||||
std::cout << " Writing flash is not supported without erase" << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
task_set_ |= T_WRITE_FLASH;
|
||||
StringVector list = vm["write"].as<StringVector>();
|
||||
foreach (String &item, list)
|
||||
@ -230,32 +299,189 @@ bool CC_Flasher::read_options(const po::options_description &desc, const po::var
|
||||
task_set_ |= T_LOCK;
|
||||
|
||||
if ((task_set_ & T_VERIFY) && !(task_set_ & T_WRITE_FLASH))
|
||||
throw po::error("verify option is used without write");
|
||||
throw po::error("'verify' option is used without write");
|
||||
|
||||
if (!option_flash_size_.empty())
|
||||
{
|
||||
char *error = NULL;
|
||||
if (strtoull(option_flash_size_.c_str(), &error, 10) == 0 ||
|
||||
*error != '\0')
|
||||
throw po::error("invalid flash size value " + option_flash_size_);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Flasher::validate_mac_options()
|
||||
{
|
||||
if (!(unit_info_.flags & UnitInfo::SUPPORT_MAC_ADDRESS) &&
|
||||
(task_set_ & (T_WRITE_MAC | T_READ_MAC | T_PRESERVE_MAC)))
|
||||
{
|
||||
std::cout << " Target does not support MAC address" << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target_locked_ && (task_set_ & T_PRESERVE_MAC))
|
||||
{
|
||||
std::cout << " Target is locked. Unable to preserve mac address" << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((task_set_ & T_WRITE_MAC) && mac_addr_.size() != unit_info_.mac_address_size)
|
||||
{
|
||||
std::cout << " Wrong MAC address length specified, must be "
|
||||
<< unit_info_.mac_address_size << "\n";
|
||||
return false;
|
||||
}
|
||||
if (task_set_ & (T_WRITE_MAC | T_READ_MAC | T_PRESERVE_MAC) &&
|
||||
!unit_info_.max_flash_size)
|
||||
{
|
||||
std::cout << " Mac adddress operations are disabled because "
|
||||
"target flash size is unavailable." << "\n";
|
||||
std::cout << " See --flash-size option" << "\n";
|
||||
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
StringVector split_string(const String& input)
|
||||
{
|
||||
StringVector list;
|
||||
|
||||
String s = boost::to_lower_copy(input);
|
||||
boost::split(list, s, boost::is_any_of(";"));
|
||||
StringVector::iterator it = list.begin();
|
||||
while (it != list.end())
|
||||
{
|
||||
boost::trim(*it);
|
||||
if (it->empty())
|
||||
it = list.erase(it);
|
||||
else
|
||||
it++;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Flasher::validate_lock_options()
|
||||
{
|
||||
if (!(task_set_ & T_LOCK))
|
||||
return true;
|
||||
|
||||
if (!hex_to_binary(option_lock_data_, lock_data_, ""))
|
||||
{
|
||||
// check if conversion failed due to odd number of hex digits:
|
||||
bool hex_data = true;
|
||||
foreach(char c, option_lock_data_)
|
||||
if (!std::isxdigit(c))
|
||||
hex_data = false;
|
||||
if (hex_data)
|
||||
{
|
||||
std::cout << " Incorrect lock data" << "\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
programmer_.unit_convert_lock_data(split_string(option_lock_data_), lock_data_);
|
||||
std::cout << " Lock data: " << binary_to_hex(lock_data_, "") << "\n";
|
||||
}
|
||||
catch (std::exception &e)
|
||||
{
|
||||
std::cout << " Error reading lock data: " << e.what() << "\n";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (lock_data_.size() != programmer_.unit_lock_data_size())
|
||||
{
|
||||
std::cout << " Lock data size must be "
|
||||
<< programmer_.unit_lock_data_size()
|
||||
<< "B, provided: " << lock_data_.size() << "\n";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Flasher::validate_flash_size_options()
|
||||
{
|
||||
if (option_flash_size_.empty())
|
||||
return true;
|
||||
|
||||
if (unit_info_.flash_size)
|
||||
std::cout << " Specified flash size is ignored (read from target instead) " << "\n";
|
||||
else
|
||||
{
|
||||
uint_t flash_size = 0;
|
||||
string_to_number(option_flash_size_, flash_size);
|
||||
|
||||
bool found = std::find(
|
||||
unit_info_.flash_sizes.begin(),
|
||||
unit_info_.flash_sizes.end(),
|
||||
flash_size) != unit_info_.flash_sizes.end();
|
||||
|
||||
if (!found)
|
||||
{
|
||||
String list;
|
||||
foreach (uint_t size, unit_info_.flash_sizes)
|
||||
string_append(list, number_to_string(size), ", ");
|
||||
|
||||
std::cout << " Specified flash size is wrong";
|
||||
if (list.size())
|
||||
std::cout << "; valid values are " << list;
|
||||
std::cout << "\n";
|
||||
return false;
|
||||
}
|
||||
programmer_.unit_set_flash_size(flash_size);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::task_write_config()
|
||||
{
|
||||
String status;
|
||||
|
||||
if (task_set_ & T_LOCK)
|
||||
status += " lock data";
|
||||
|
||||
if (task_set_ & T_WRITE_MAC)
|
||||
{
|
||||
if (!status.empty())
|
||||
status += ", ";
|
||||
status += " mac address";
|
||||
}
|
||||
|
||||
std::cout << " Writing " << status << "..." << "\n";
|
||||
print_result(programmer_.unit_config_write(mac_addr_, lock_data_));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::process_tasks()
|
||||
{
|
||||
target_locked_ = programmer_.unit_locked();
|
||||
if (target_locked_)
|
||||
{
|
||||
std::cout << " Target is locked. ";
|
||||
std::cout << "No operations allowed without erase\n";
|
||||
}
|
||||
|
||||
if (!task_set_)
|
||||
{
|
||||
std::cout << " No actions specified" << "\n";
|
||||
return;
|
||||
}
|
||||
|
||||
if (!validate_lock_options())
|
||||
return;
|
||||
|
||||
target_locked_ = programmer_.unit_locked();
|
||||
if (target_locked_)
|
||||
std::cout << " Target is locked." << "\n";
|
||||
|
||||
if (task_set_ & T_TEST)
|
||||
task_test();
|
||||
|
||||
if (target_locked_ && !(task_set_ & T_ERASE))
|
||||
if (target_locked_ && !(task_set_ & T_ERASE))
|
||||
{
|
||||
std::cout << " No operations allowed on locked target without erasing\n";
|
||||
return;
|
||||
}
|
||||
|
||||
if (target_locked_)
|
||||
{
|
||||
@ -263,11 +489,26 @@ void CC_Flasher::process_tasks()
|
||||
task_set_ &= ~T_ERASE;
|
||||
if (target_locked_)
|
||||
{
|
||||
std::cout << "still locked" << "\n";//
|
||||
std::cout << " Unit is still locked after erasing" << "\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Order of checking matters
|
||||
if (!validate_flash_size_options() || !validate_mac_options())
|
||||
return;
|
||||
|
||||
if (task_set_ & T_PRESERVE_MAC)
|
||||
{
|
||||
programmer_.unit_mac_address_read(unit_info_.mac_address_count - 1,
|
||||
mac_addr_);
|
||||
|
||||
std::cout << " MAC address to preserve: "
|
||||
<< mac_address_to_string(mac_addr_) << "\n";
|
||||
|
||||
task_set_ |= T_WRITE_MAC;
|
||||
}
|
||||
|
||||
if (task_set_ & T_READ_MAC)
|
||||
task_read_mac_address();
|
||||
|
||||
@ -287,19 +528,32 @@ void CC_Flasher::process_tasks()
|
||||
task_erase();
|
||||
|
||||
if (task_set_ & T_WRITE_FLASH)
|
||||
{
|
||||
if (task_set_ & T_LOCK)
|
||||
{
|
||||
if (programmer_.flash_image_embed_lock_data(flash_write_data_, lock_data_))
|
||||
task_set_ &= ~T_LOCK;
|
||||
}
|
||||
|
||||
if (task_set_ & T_WRITE_MAC)
|
||||
{
|
||||
if (programmer_.flash_image_embed_mac_address(flash_write_data_, mac_addr_))
|
||||
task_set_ &= ~T_WRITE_MAC;
|
||||
}
|
||||
task_write_flash();
|
||||
}
|
||||
|
||||
if (task_set_ & T_VERIFY)
|
||||
task_verify_flash();
|
||||
|
||||
if (task_set_ & T_LOCK)
|
||||
task_lock();
|
||||
if (task_set_ & (T_WRITE_MAC | T_LOCK))
|
||||
task_write_config();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::task_test()
|
||||
{
|
||||
std::cout << "\n" << " Device info: " << "\n";
|
||||
std::cout << " Device info: " << "\n";
|
||||
|
||||
CC_ProgrammerInfo info;
|
||||
programmer_.programmer_info(info);
|
||||
@ -308,46 +562,29 @@ void CC_Flasher::task_test()
|
||||
if (target_locked_)
|
||||
return;
|
||||
|
||||
std::cout << "\n" << " Target info: " << "\n";
|
||||
std::cout << "\n";
|
||||
std::cout << " Target info: " << "\n";
|
||||
std::cout << unit_info_;
|
||||
std::cout << " Lock data size: " << programmer_.unit_lock_data_size()
|
||||
<< " B" << "\n";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::task_read_mac_address()
|
||||
{
|
||||
if (!(unit_info_.flags & UnitInfo::SUPPORT_MAC_ADDRESS))
|
||||
{
|
||||
std::cout << " Target does not support MAC address" << "\n";
|
||||
return;
|
||||
}
|
||||
|
||||
ByteVector mac0;
|
||||
programmer_.unit_mac_address_read(0, mac0);
|
||||
|
||||
if (unit_info_.mac_address_count == 1)
|
||||
{
|
||||
std::cout << " MAC address: "
|
||||
<< binary_to_hex(&mac0[0], mac0.size(), ":") << "\n";
|
||||
}
|
||||
std::cout << " MAC address: " << mac_address_to_string(mac0) << "\n";
|
||||
else
|
||||
{
|
||||
ByteVector mac1;
|
||||
programmer_.unit_mac_address_read(1, mac1);
|
||||
|
||||
std::cout << " MAC addresses, primary: ";
|
||||
for(char x = mac0.size() - 1; x >= 0; --x) {
|
||||
std::cout << binary_to_hex(&mac0[x], 1, ":");
|
||||
if (x > 0)
|
||||
std::cout << ":";
|
||||
}
|
||||
|
||||
std::cout << ", secondary: ";
|
||||
for(char x = mac1.size() - 1; x >= 0; --x) {
|
||||
std::cout << binary_to_hex(&mac1[x], 1, ":");
|
||||
if (x > 0)
|
||||
std::cout << ":";
|
||||
}
|
||||
std::cout << "\n";
|
||||
std::cout << " MAC addresses, primary: "
|
||||
<< mac_address_to_string(mac0) << ", secondary: "
|
||||
<< mac_address_to_string(mac1) << "\n";
|
||||
}
|
||||
}
|
||||
|
||||
@ -365,8 +602,7 @@ void CC_Flasher::task_read_info_page()
|
||||
Timer timer;
|
||||
ByteVector info_page;
|
||||
programmer_.unit_read_info_page(info_page);
|
||||
|
||||
std::cout << " Reading completed (" << timer.elapsed_time() << ")" << "\n";
|
||||
print_result(true, timer);
|
||||
|
||||
if (info_page_read_target_.source_type() == ReadTarget::ST_CONSOLE)
|
||||
{
|
||||
@ -382,9 +618,7 @@ void CC_Flasher::task_erase()
|
||||
{
|
||||
std::cout << " Erasing flash..." << "\n";
|
||||
|
||||
if (!programmer_.unit_erase())
|
||||
std::cout << "Flash erasing failed, timeout" << "\n";
|
||||
std::cout << " Erasing completed" << "\n";
|
||||
print_result(programmer_.unit_erase());
|
||||
|
||||
programmer_.unit_connect(unit_info_);
|
||||
target_locked_ = programmer_.unit_locked();
|
||||
@ -397,26 +631,20 @@ void CC_Flasher::task_verify_flash()
|
||||
|
||||
Timer timer;
|
||||
bool result = programmer_.unit_flash_verify(flash_write_data_, verify_method_);
|
||||
|
||||
if (result)
|
||||
std::cout << " Verification completed (" << timer.elapsed_time() << ")" << "\n";
|
||||
else
|
||||
std::cout << " Verification failed" << "\n";
|
||||
print_result(result, timer);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::task_read_flash()
|
||||
{
|
||||
std::cout
|
||||
<< " Reading flash ("
|
||||
<< unit_info_.actual_flash_size() / 1024 << " KB)..." << "\n";
|
||||
size_t size = unit_info_.actual_flash_size() / 1024;
|
||||
std::cout << " Reading flash (" << size << " KB)..." << "\n";
|
||||
|
||||
Timer timer;
|
||||
ByteVector flash_data;
|
||||
programmer_.unit_flash_read(flash_data);
|
||||
flash_read_target_.on_read(flash_data);
|
||||
|
||||
std::cout << " Reading completed (" << timer.elapsed_time() << ")" << "\n";
|
||||
print_result(true, timer);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -433,38 +661,12 @@ void CC_Flasher::task_write_flash()
|
||||
return;
|
||||
}
|
||||
|
||||
std::cout << " Writing flash... ("
|
||||
<< convinient_storage_size(flash_write_data_.actual_size())
|
||||
<< ")..." << "\n";
|
||||
String size = convinient_storage_size(flash_write_data_.actual_size());
|
||||
std::cout << " Writing flash (" << size << ")..." << "\n";
|
||||
|
||||
Timer timer;
|
||||
programmer_.unit_flash_write(flash_write_data_);
|
||||
std::cout << " Writing completed (" << timer.elapsed_time() << ")" << "\n";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Flasher::task_lock()
|
||||
{
|
||||
ByteVector data;
|
||||
|
||||
if (!hex_to_binary(option_lock_data_, data, ""))
|
||||
{
|
||||
std::cout << " Incorrect lock data format" << "\n";
|
||||
return;
|
||||
}
|
||||
if (data.size() != unit_info_.lock_size)
|
||||
{
|
||||
std::cout << " Lock data size must be " << unit_info_.lock_size
|
||||
<< "B, provided: " << data.size() << "\n";
|
||||
return;
|
||||
}
|
||||
|
||||
std::cout << " Writing lock data... " << "\n";
|
||||
bool result = programmer_.unit_lock_write(data);
|
||||
if (result)
|
||||
std::cout << " Lock completed" << "\n";
|
||||
else
|
||||
std::cout << " Lock failed" << "\n";
|
||||
print_result(true, timer);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
@ -25,15 +25,19 @@ public:
|
||||
CC_Flasher();
|
||||
|
||||
private:
|
||||
void task_lock();
|
||||
void task_test();
|
||||
void task_erase();
|
||||
void task_read_flash();
|
||||
void task_write_flash();
|
||||
void task_verify_flash();
|
||||
void task_read_mac_address();
|
||||
void task_write_config();
|
||||
void task_read_info_page();
|
||||
|
||||
bool validate_mac_options();
|
||||
bool validate_lock_options();
|
||||
bool validate_flash_size_options();
|
||||
|
||||
virtual void init_options(po::options_description &);
|
||||
virtual bool read_options(const po::options_description &, const po::variables_map &);
|
||||
virtual void process_tasks();
|
||||
@ -41,10 +45,13 @@ private:
|
||||
String option_lock_data_;
|
||||
String option_info_page_;
|
||||
String option_verify_type_;
|
||||
String option_flash_size_;
|
||||
uint_t task_set_;
|
||||
|
||||
CC_Programmer::VerifyMethod verify_method_;
|
||||
DataSectionStore flash_write_data_;
|
||||
ByteVector mac_addr_;
|
||||
ByteVector lock_data_;
|
||||
|
||||
ReadTarget flash_read_target_;
|
||||
ReadTarget info_page_read_target_;
|
||||
|
@ -11,6 +11,12 @@
|
||||
#include <sys/time.h>
|
||||
#include "common.h"
|
||||
|
||||
//==============================================================================
|
||||
uint_t align_up(uint_t value, uint_t aligment)
|
||||
{
|
||||
return ((value + aligment - 1) / aligment) * aligment;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool hex_to_binary(const String &hex, ByteVector &out, const char delimiter[])
|
||||
{
|
||||
@ -81,3 +87,12 @@ String binary_to_hex(const ByteVector &data, const char delimiter[])
|
||||
//==============================================================================
|
||||
void vector_append(ByteVector &vector, const uint8_t data[], size_t size)
|
||||
{ vector.insert(vector.end(), data, data + size); }
|
||||
|
||||
//==============================================================================
|
||||
String &string_append(String &string, const String &item, const char *delimiter)
|
||||
{
|
||||
if (!string.empty())
|
||||
string.append(delimiter);
|
||||
|
||||
return string;
|
||||
}
|
||||
|
@ -29,20 +29,27 @@
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#define foreach BOOST_FOREACH
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||
#define foreach BOOST_FOREACH
|
||||
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
|
||||
#define ALIGN_UP(value, aligment) (((value + (aligment) - 1) / (aligment)) * (aligment))
|
||||
#define LOBYTE(w) ((uint8_t)(w))
|
||||
#define HIBYTE(w) ((uint8_t)(((uint16_t)(w) >> 8) & 0xFF))
|
||||
|
||||
typedef unsigned int uint_t;
|
||||
typedef std::string String;
|
||||
typedef std::vector<String> StringVector;
|
||||
typedef std::vector<uint8_t> ByteVector;
|
||||
typedef std::string String;
|
||||
typedef std::vector<String> StringVector;
|
||||
typedef std::vector<uint8_t> ByteVector;
|
||||
typedef std::vector<bool> BoolVector;
|
||||
typedef std::vector<uint_t> UintVector;
|
||||
|
||||
String convinient_storage_size(off_t size);
|
||||
uint_t get_tick_count();
|
||||
String binary_to_hex(const uint8_t data[], size_t size, const char delimiter[] = "");
|
||||
String binary_to_hex(const ByteVector &data, const char delimiter[] = "");
|
||||
void vector_append(ByteVector &vector, const uint8_t data[], size_t size);
|
||||
String& string_append(String &string, const String &item, const char *delimiter);
|
||||
bool hex_to_binary(const String &hex, ByteVector &out, const char delimiter[] = "");
|
||||
uint_t align_up(uint_t value, uint_t aligment);
|
||||
|
||||
namespace common_impl
|
||||
{
|
||||
|
@ -21,15 +21,15 @@ Timer::Timer()
|
||||
//==============================================================================
|
||||
void Timer::start()
|
||||
{
|
||||
start_time_ = get_tick_count(); elapsed_time_ = 0;
|
||||
start_time_ = get_tick_count();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
String Timer::elapsed_time()
|
||||
String Timer::elapsed_time() const
|
||||
{
|
||||
elapsed_time_ = get_tick_count() - start_time_;
|
||||
uint_t elapsed_time = get_tick_count() - start_time_;
|
||||
|
||||
char buf[16];
|
||||
sprintf(buf, "%.02f s.", (float)elapsed_time_ / 1000);
|
||||
sprintf(buf, "%.02f s.", (float)elapsed_time / 1000);
|
||||
return buf;
|
||||
}
|
||||
|
@ -16,14 +16,13 @@
|
||||
class Timer : boost::noncopyable
|
||||
{
|
||||
public:
|
||||
String elapsed_time();
|
||||
String elapsed_time() const;
|
||||
Timer();
|
||||
|
||||
private:
|
||||
void start();
|
||||
|
||||
uint_t start_time_;
|
||||
uint_t elapsed_time_;
|
||||
};
|
||||
|
||||
#endif // !_TIMER_H_
|
||||
|
@ -274,14 +274,14 @@ void hex_file_load(const String &file_name,
|
||||
static void write_eof_record(std::ostream &out)
|
||||
{
|
||||
out << ":00000001FF";
|
||||
out << "\n";
|
||||
out << "\r\n";
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
static void write_data_record(std::ostream &out, uint_t address,
|
||||
const uint8_t data[], size_t size)
|
||||
{
|
||||
const uint8_t buffer[] = { size, address >> 8, address, 0x00 };
|
||||
const uint8_t buffer[] = { LOBYTE(size), HIBYTE(address), LOBYTE(address), 0x00 };
|
||||
|
||||
uint8_t crc = 0;
|
||||
crc = std::accumulate(buffer, buffer + ARRAY_SIZE(buffer), crc);
|
||||
@ -298,7 +298,7 @@ static void write_data_record(std::ostream &out, uint_t address,
|
||||
//==============================================================================
|
||||
static void write_segment_record(std::ostream &out, uint16_t address)
|
||||
{
|
||||
const uint8_t buffer[] = { 0x02, 0x00, 0x00, 0x02, address >> 8, address };
|
||||
const uint8_t buffer[] = { 0x02, 0x00, 0x00, 0x02, HIBYTE(address), LOBYTE(address) };
|
||||
|
||||
uint8_t crc = 0;
|
||||
crc = 0x100 - std::accumulate(buffer, buffer + ARRAY_SIZE(buffer), crc);
|
||||
|
@ -22,8 +22,8 @@ public:
|
||||
void do_on_read_progress(const OnProgress::slot_type &slot);
|
||||
void do_on_write_progress(const OnProgress::slot_type &slot);
|
||||
|
||||
void read_progress(uint_t done_chunk);
|
||||
void write_progress(uint_t done_chunk);
|
||||
void read_progress(uint_t done_chunk_size);
|
||||
void write_progress(uint_t done_chunk_size);
|
||||
|
||||
void read_start(size_t total_size);
|
||||
void read_finish();
|
||||
|
@ -16,6 +16,16 @@
|
||||
#include "read_target.h"
|
||||
#include "common/common.h"
|
||||
|
||||
//==============================================================================
|
||||
static String file_extention(const String path)
|
||||
{
|
||||
#if BOOST_FILESYSTEM_VERSION >= 3
|
||||
return boost::filesystem::path(path).extension().string();
|
||||
#else
|
||||
return boost::filesystem::extension(path);
|
||||
#endif
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
ReadTarget::ReadTarget() :
|
||||
source_type_(ST_CONSOLE)
|
||||
@ -71,7 +81,7 @@ void option_extract_file_info(const String &input, OptionFileInfo &file_info,
|
||||
file_info.type = strs[1];
|
||||
if (file_info.type.empty())
|
||||
{
|
||||
file_info.type = boost::filesystem::extension(file_info.name);
|
||||
file_info.type = file_extention(file_info.name);
|
||||
if (file_info.type[0] == '.')
|
||||
file_info.type.erase(0, 1);
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ CC_243x::CC_243x(USB_Device &programmer, ProgressWatcher &pw) :
|
||||
{
|
||||
UnitCoreInfo reg_info;
|
||||
|
||||
reg_info.lock_size = 1;
|
||||
reg_info.flash_word_size = 4;
|
||||
reg_info.write_block_size = 1024;
|
||||
reg_info.verify_block_size = 1024;
|
||||
@ -57,10 +58,14 @@ void CC_243x::supported_units(Unit_ID_List &units)
|
||||
void CC_243x::find_unit_info(UnitInfo &unit_info)
|
||||
{
|
||||
unit_info.flags = UnitInfo::SUPPORT_MAC_ADDRESS;
|
||||
unit_info.lock_size = 1;
|
||||
unit_info.max_flash_size = 128;
|
||||
unit_info.flash_page_size = 2;
|
||||
unit_info.mac_address_count = 1;
|
||||
unit_info.mac_address_size = 8;
|
||||
|
||||
unit_info.flash_sizes.push_back(32);
|
||||
unit_info.flash_sizes.push_back(64);
|
||||
unit_info.flash_sizes.push_back(128);
|
||||
|
||||
ByteVector sfr;
|
||||
|
||||
@ -69,7 +74,7 @@ void CC_243x::find_unit_info(UnitInfo &unit_info)
|
||||
unit_info.internal_ID = sfr[1];
|
||||
|
||||
// Possible flash sizes: 32, 64, 128
|
||||
log_info("! getting flash size");///
|
||||
/* log_info("! getting flash size begin");///
|
||||
|
||||
unit_info.flash_size = 32;
|
||||
for (uint8_t i = 1; i < 3; i++)
|
||||
@ -84,6 +89,9 @@ void CC_243x::find_unit_info(UnitInfo &unit_info)
|
||||
unit_info.flash_size = 32 << i;
|
||||
}
|
||||
|
||||
log_info("! getting flash size end, result: %u", unit_info.flash_size);///
|
||||
*/
|
||||
|
||||
unit_info_ = unit_info;
|
||||
}
|
||||
|
||||
@ -98,11 +106,7 @@ bool CC_243x::erase_check_comleted()
|
||||
|
||||
//==============================================================================
|
||||
void CC_243x::mac_address_read(size_t index, ByteVector &mac_address)
|
||||
{ read_xdata_memory(0xDF43, 8, mac_address); }
|
||||
|
||||
//==============================================================================
|
||||
void CC_243x::mac_address_write(ByteVector &mac_address)
|
||||
{ }
|
||||
{ read_xdata_memory(0xDF43, unit_info_.mac_address_size, mac_address); }
|
||||
|
||||
//==============================================================================
|
||||
void CC_243x::flash_write(const DataSectionStore §ions)
|
||||
@ -110,11 +114,74 @@ void CC_243x::flash_write(const DataSectionStore §ions)
|
||||
|
||||
//==============================================================================
|
||||
void CC_243x::flash_read_block(size_t offset, size_t size, ByteVector &data)
|
||||
{ flash_large_read_block(offset, size, data); }
|
||||
{ flash_read(offset, size, data); }
|
||||
|
||||
//==============================================================================
|
||||
bool CC_243x::lock_write(const ByteVector &data)
|
||||
bool CC_243x::flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address)
|
||||
{
|
||||
write_lock_to_info_page(data[0]);
|
||||
if (!unit_info_.flash_size)
|
||||
return false;
|
||||
|
||||
const uint_t mac_offset = unit_info_.flash_size * 1024 -
|
||||
unit_info_.mac_address_size;
|
||||
|
||||
DataSection section(mac_offset, mac_address);
|
||||
sections.add_section(section, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_243x::convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data)
|
||||
{
|
||||
uint8_t lock_size[] = { 0, 2, 4, 8, 16, 32, 64, 128 };
|
||||
|
||||
convert_lock_data_std_set(
|
||||
qualifiers,
|
||||
ByteVector(lock_size, lock_size + ARRAY_SIZE(lock_size)),
|
||||
lock_data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_243x::config_write(const ByteVector &mac_address, const ByteVector &lock_data)
|
||||
{
|
||||
if (!lock_data.empty())
|
||||
write_lock_to_info_page(lock_data[0]);
|
||||
|
||||
if (!mac_address.empty())
|
||||
{
|
||||
if (!unit_info_.flash_size)
|
||||
{
|
||||
std::cout << " unable to determine flash size. Writing mac is unsupported" << "\n";
|
||||
return true;
|
||||
}
|
||||
|
||||
CHECK_PARAM(mac_address.size() == unit_info_.mac_address_size);
|
||||
|
||||
const uint_t page_size = unit_info_.flash_page_size * 1024;
|
||||
const uint_t page_offset = unit_info_.flash_size * 1024 - page_size;
|
||||
|
||||
ByteVector block;
|
||||
flash_read_start();
|
||||
flash_read(page_offset, page_size, block);
|
||||
flash_read_end();
|
||||
|
||||
if (!empty_block(&block[0], block.size()))
|
||||
erase_page(page_offset / page_size);
|
||||
|
||||
const uint_t mac_offset = unit_info_.flash_size * 1024 - mac_address.size();
|
||||
memcpy(&block[mac_offset - page_offset], &mac_address[0], mac_address.size());
|
||||
|
||||
DataSectionStore store;
|
||||
store.add_section(DataSection(page_offset, block), true);
|
||||
write_flash_slow(store);
|
||||
|
||||
ByteVector check_block;
|
||||
flash_read_start();
|
||||
flash_read(page_offset, page_size, check_block);
|
||||
flash_read_end();
|
||||
return memcmp(&check_block[0], &block[0], block.size()) == 0;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -22,12 +22,17 @@ public:
|
||||
virtual bool erase_check_comleted();
|
||||
|
||||
virtual void mac_address_read(size_t index, ByteVector &mac_address);
|
||||
virtual void mac_address_write(ByteVector &mac_address);
|
||||
|
||||
virtual void flash_write(const DataSectionStore §ions);
|
||||
virtual void flash_read_block(size_t offset, size_t size, ByteVector &data);
|
||||
|
||||
virtual bool lock_write(const ByteVector &data);
|
||||
virtual bool flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address);
|
||||
|
||||
virtual void convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data);
|
||||
|
||||
virtual bool config_write(const ByteVector &mac_address, const ByteVector &lock_data);
|
||||
|
||||
CC_243x(USB_Device &programmer, ProgressWatcher &pw);
|
||||
};
|
||||
|
@ -20,6 +20,7 @@ CC_251x_111x::CC_251x_111x(USB_Device &programmer, ProgressWatcher &pw) :
|
||||
{
|
||||
UnitCoreInfo reg_info;
|
||||
|
||||
reg_info.lock_size = 1;
|
||||
reg_info.flash_word_size = 2;
|
||||
reg_info.verify_block_size = 512;
|
||||
reg_info.write_block_size = 512;
|
||||
@ -57,10 +58,8 @@ void CC_251x_111x::supported_units(Unit_ID_List &units)
|
||||
//==============================================================================
|
||||
void CC_251x_111x::find_unit_info(UnitInfo &unit_info)
|
||||
{
|
||||
unit_info.lock_size = 1;
|
||||
unit_info.max_flash_size = 32;
|
||||
unit_info.flash_page_size = 1;
|
||||
unit_info.mac_address_count = 1;
|
||||
unit_info.flags = UnitInfo::SUPPORT_INFO_PAGE;
|
||||
|
||||
ByteVector sfr;
|
||||
@ -69,6 +68,10 @@ void CC_251x_111x::find_unit_info(UnitInfo &unit_info)
|
||||
unit_info.revision = sfr[0];
|
||||
unit_info.internal_ID = sfr[1];
|
||||
|
||||
unit_info.flash_sizes.push_back(8);
|
||||
unit_info.flash_sizes.push_back(16);
|
||||
unit_info.flash_sizes.push_back(32);
|
||||
|
||||
unit_info_ = unit_info;
|
||||
}
|
||||
|
||||
@ -83,15 +86,30 @@ bool CC_251x_111x::erase_check_comleted()
|
||||
|
||||
//==============================================================================
|
||||
void CC_251x_111x::flash_read_block(size_t offset, size_t size, ByteVector &data)
|
||||
{ flash_read_32k(offset, size, data); }
|
||||
{ flash_read_near(offset, size, data); }
|
||||
|
||||
//==============================================================================
|
||||
void CC_251x_111x::flash_write(const DataSectionStore §ions)
|
||||
{ write_flash_slow(sections); }
|
||||
|
||||
//==============================================================================
|
||||
bool CC_251x_111x::lock_write(const ByteVector &data)
|
||||
bool CC_251x_111x::config_write(const ByteVector &mac_address,
|
||||
const ByteVector &lock_data)
|
||||
{
|
||||
write_lock_to_info_page(data[0]);
|
||||
if (!lock_data.empty())
|
||||
write_lock_to_info_page(lock_data[0]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_251x_111x::convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data)
|
||||
{
|
||||
uint8_t lock_size[] = { 0, 1, 2, 4, 8, 16, 24, 32 };
|
||||
convert_lock_data_std_set(
|
||||
qualifiers,
|
||||
ByteVector(lock_size, lock_size + ARRAY_SIZE(lock_size)),
|
||||
lock_data);
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,10 @@ public:
|
||||
virtual void flash_write(const DataSectionStore §ions);
|
||||
virtual void flash_read_block(size_t offset, size_t size, ByteVector &data);
|
||||
|
||||
virtual bool lock_write(const ByteVector &data);
|
||||
virtual bool config_write(const ByteVector &mac_address, const ByteVector &lock_data);
|
||||
|
||||
virtual void convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data);
|
||||
|
||||
CC_251x_111x(USB_Device &programmer, ProgressWatcher &pw);
|
||||
};
|
||||
|
@ -1,324 +0,0 @@
|
||||
/*
|
||||
* cc_253x_2540.cpp
|
||||
*
|
||||
* Created on: Aug 4, 2011
|
||||
* Author: George Stark <george-u@yandex.com>
|
||||
*
|
||||
* License: GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#include "log.h"
|
||||
#include "cc_253x_2540.h"
|
||||
|
||||
const size_t LOCK_DATA_SIZE = 16;
|
||||
const size_t INFO_PAGE_OFFSET = 0x7800;
|
||||
const size_t INFO_PAGE_SIZE = 0x800;
|
||||
|
||||
const uint16_t XREG_DBGDATA = 0x6260;
|
||||
const uint16_t XREG_FWDATA = 0x6273;
|
||||
const uint16_t XREG_FCTL = 0x6270;
|
||||
const uint16_t XREG_FADDRL = 0x6271;
|
||||
const uint16_t XREG_FADDRH = 0x6272;
|
||||
const uint16_t XREG_DMA1CFGL = 0x70D2;
|
||||
const uint16_t XREG_DMA1CFGH = 0x70D3;
|
||||
const uint16_t XREG_DMAARM = 0x70D6;
|
||||
const uint16_t XREG_DMAREQ = 0x70D7;
|
||||
const uint16_t XREG_DMAIRQ = 0x70D1;
|
||||
|
||||
const uint16_t XREG_MEMCTR = 0x70C7;
|
||||
const uint16_t XREG_FMAP = 0x709F;
|
||||
|
||||
//==============================================================================
|
||||
CC_253x_2540::CC_253x_2540(USB_Device &usb_device, ProgressWatcher &pw) :
|
||||
CC_UnitDriver(usb_device, pw)
|
||||
{
|
||||
UnitCoreInfo reg_info;
|
||||
|
||||
reg_info.flash_word_size = 4;
|
||||
reg_info.write_block_size = 1024;
|
||||
reg_info.verify_block_size = 1024;
|
||||
reg_info.xbank_offset = 0x8000;
|
||||
reg_info.dma0_cfg_offset = 0x0800;
|
||||
reg_info.dma_data_offset = 0x0000;
|
||||
|
||||
reg_info.memctr = XREG_MEMCTR;
|
||||
reg_info.fmap = XREG_FMAP;
|
||||
reg_info.faddrh = XREG_FADDRH;
|
||||
reg_info.faddrl = XREG_FADDRL;
|
||||
reg_info.fctl = XREG_FCTL;
|
||||
reg_info.fwdata = XREG_FWDATA;
|
||||
reg_info.rndh = 0x70BD;
|
||||
reg_info.rndl = 0x70BC;
|
||||
reg_info.dma0_cfgh = 0x70D5;
|
||||
reg_info.dma0_cfgl = 0x70D4;
|
||||
reg_info.dma_arm = XREG_DMAARM;
|
||||
reg_info.dma_req = XREG_DMAREQ;
|
||||
reg_info.dma_irq = XREG_DMAIRQ;
|
||||
|
||||
reg_info.fctl_write = 0x06;
|
||||
|
||||
set_reg_info(reg_info);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::supported_units(Unit_ID_List &units)
|
||||
{
|
||||
units.push_back(Unit_ID(0x2540, "CC2540"));
|
||||
units.push_back(Unit_ID(0x2530, "CC2530"));
|
||||
units.push_back(Unit_ID(0x2531, "CC2531"));
|
||||
units.push_back(Unit_ID(0x2533, "CC2533"));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::find_unit_info(UnitInfo &unit_info)
|
||||
{
|
||||
ByteVector sfr;
|
||||
read_xdata_memory(0x6276, 2, sfr);
|
||||
|
||||
unit_info.flags = UnitInfo::SUPPORT_MAC_ADDRESS | UnitInfo::SUPPORT_INFO_PAGE;
|
||||
|
||||
if (sfr[0] & 0x08)
|
||||
unit_info.flags |= UnitInfo::SUPPORT_USB;
|
||||
|
||||
unit_info.ram_size = (sfr[1] & 0x07) + 1;
|
||||
|
||||
switch ((sfr[0] >> 4) & 0x07)
|
||||
{
|
||||
case 0x01:
|
||||
unit_info.flash_size = 32;
|
||||
break;
|
||||
case 0x02:
|
||||
unit_info.flash_size = 64;
|
||||
break;
|
||||
case 0x03:
|
||||
unit_info.flash_size = (unit_info.ID == 0x2533) ? 96 : 128;
|
||||
break;
|
||||
case 0x04:
|
||||
unit_info.flash_size = 256;
|
||||
break;
|
||||
}
|
||||
|
||||
///unit_info.flash_size = 64;////
|
||||
|
||||
unit_info.lock_size = 16;
|
||||
unit_info.flash_page_size = (unit_info.ID == 0x2533) ? 1 : 2;
|
||||
unit_info.max_flash_size = (unit_info.ID == 0x2533) ? 96 : 256;
|
||||
unit_info_.mac_address_count = 2;
|
||||
|
||||
read_xdata_memory(0x6249, 1, sfr);
|
||||
unit_info.revision = sfr[0];
|
||||
|
||||
read_xdata_memory(0x624A, 1, sfr);
|
||||
unit_info.internal_ID = sfr[0];
|
||||
|
||||
unit_info_ = unit_info;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::read_info_page(ByteVector &info_page)
|
||||
{
|
||||
log_info("programmer, read info page");
|
||||
|
||||
size_t address = INFO_PAGE_OFFSET;
|
||||
size_t total_size = INFO_PAGE_SIZE;
|
||||
ByteVector data;
|
||||
|
||||
while (total_size)
|
||||
{
|
||||
size_t count = std::min(XDATA_READ_CHUNK_SIZE, total_size);
|
||||
read_xdata_memory(address, count, data);
|
||||
info_page.insert(info_page.end(), data.begin(), data.end());
|
||||
total_size -= count;
|
||||
address += count;
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::mac_address_read(size_t index, ByteVector &mac_address)
|
||||
{
|
||||
log_info("programmer, read mac address %u", index);
|
||||
|
||||
if (index == 0)
|
||||
{
|
||||
if (unit_info_.ID != 0x2540)
|
||||
read_xdata_memory(0x780E, 8, mac_address);
|
||||
else
|
||||
read_xdata_memory(0x780E, 6, mac_address);
|
||||
|
||||
mac_address_write(mac_address);
|
||||
}
|
||||
if (index == 1)
|
||||
{
|
||||
size_t size = unit_info_.ID == 0x2540 ? 6 : 8;
|
||||
size_t offset = unit_info_.flash_size * 1024 - LOCK_DATA_SIZE - size;
|
||||
|
||||
flash_read_start();
|
||||
flash_read_block(offset, size, mac_address);
|
||||
flash_read_end();
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::mac_address_write(ByteVector &mac_address)
|
||||
{
|
||||
size_t size = unit_info_.ID == 0x2540 ? 6 : 8;
|
||||
size_t offset = unit_info_.flash_size * 1024 - LOCK_DATA_SIZE - size;
|
||||
DataSection section(offset, mac_address);
|
||||
DataSectionStore store;
|
||||
store.add_section(section, true);
|
||||
write_flash_slow(store);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_2540::erase_check_comleted()
|
||||
{
|
||||
log_info("programmer, check erase is completed");
|
||||
|
||||
uint8_t status = 0;
|
||||
|
||||
read_debug_status(status);
|
||||
return !(status & DEBUG_STATUS_CHIP_ERASE_BUSY);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::flash_select_bank(uint_t bank)
|
||||
{
|
||||
log_info("programmer, set flash bank %u", bank);
|
||||
|
||||
uint8_t command[] = { 0xBE, 0x57, 0x75, 0x9F, bank };
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), &command[0]);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::flash_read_block(size_t offset, size_t size, ByteVector &data)
|
||||
{ flash_large_read_block(offset, size, data); }
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_2540::lock_write(const ByteVector &lock_data)
|
||||
{
|
||||
pw_.enable(false);
|
||||
|
||||
DataSection section(unit_info_.flash_size * 1024 - lock_data.size(), lock_data);
|
||||
DataSectionStore store;
|
||||
store.add_section(section, true);
|
||||
write_flash_slow(store);
|
||||
|
||||
ByteVector read_data;
|
||||
flash_read_start();
|
||||
flash_read_block(section.address, section.size(), read_data);
|
||||
bool result = !memcmp(&read_data[0], §ion.data[0], section.size());
|
||||
flash_read_end();
|
||||
return result;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_2540::flash_write(const DataSectionStore §ions)
|
||||
{
|
||||
// write_flash_slow(sections);
|
||||
// return;
|
||||
|
||||
// Buffers
|
||||
const uint16_t ADDR_BUF0 = 0x0000; // 1K
|
||||
const uint16_t ADDR_BUF1 = 0x0400; // 1K
|
||||
const uint16_t ADDR_DMA_DESC = 0x0800; // 32 bytes
|
||||
|
||||
// DMA Channels
|
||||
const uint8_t CH_DBG_TO_BUF0 = 0x02;
|
||||
const uint8_t CH_DBG_TO_BUF1 = 0x04;
|
||||
const uint8_t CH_BUF0_TO_FLASH = 0x08;
|
||||
const uint8_t CH_BUF1_TO_FLASH = 0x10;
|
||||
|
||||
const uint16_t PROG_BLOCK_SIZE = 1024;
|
||||
|
||||
const uint8_t dma_desc[32] = {
|
||||
// Debug Interface -> Buffer 0 (Channel 1)
|
||||
HIBYTE(XREG_DBGDATA), // src[15:8]
|
||||
LOBYTE(XREG_DBGDATA), // src[7:0]
|
||||
HIBYTE(ADDR_BUF0), // dest[15:8]
|
||||
LOBYTE(ADDR_BUF0), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 31, // trigger DBG_BW
|
||||
0x11, // increment destination
|
||||
|
||||
// Debug Interface -> Buffer 1 (Channel 2)
|
||||
HIBYTE(XREG_DBGDATA), // src[15:8]
|
||||
LOBYTE(XREG_DBGDATA), // src[7:0]
|
||||
HIBYTE(ADDR_BUF1), // dest[15:8]
|
||||
LOBYTE(ADDR_BUF1), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 31, // trigger DBG_BW
|
||||
0x11, // increment destination
|
||||
|
||||
// Buffer 0 -> Flash controller (Channel 3)
|
||||
HIBYTE(ADDR_BUF0), // src[15:8]
|
||||
LOBYTE(ADDR_BUF0), // src[7:0]
|
||||
HIBYTE(XREG_FWDATA), // dest[15:8]
|
||||
LOBYTE(XREG_FWDATA), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 18, // trigger FLASH
|
||||
0x42, // increment source
|
||||
|
||||
// Buffer 1 -> Flash controller (Channel 4)
|
||||
HIBYTE(ADDR_BUF1), // src[15:8]
|
||||
LOBYTE(ADDR_BUF1), // src[7:0]
|
||||
HIBYTE(XREG_FWDATA), // dest[15:8]
|
||||
LOBYTE(XREG_FWDATA), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 18, // trigger FLASH
|
||||
0x42 // increment source
|
||||
};
|
||||
|
||||
ByteVector xsfr;
|
||||
|
||||
// Load dma descriptors
|
||||
write_xdata_memory(ADDR_DMA_DESC, dma_desc, sizeof(dma_desc));
|
||||
|
||||
// Set the pointer to the DMA descriptors
|
||||
write_xdata_memory(XREG_DMA1CFGL, LOBYTE(ADDR_DMA_DESC));
|
||||
write_xdata_memory(XREG_DMA1CFGH, HIBYTE(ADDR_DMA_DESC));
|
||||
|
||||
write_xdata_memory(XREG_FADDRL, 0);
|
||||
write_xdata_memory(XREG_FADDRH, 0);
|
||||
|
||||
ByteVector data;
|
||||
sections.create_image(0xFF, data);
|
||||
data.resize((sections.upper_address() + (PROG_BLOCK_SIZE - 1)) &
|
||||
~(PROG_BLOCK_SIZE - 1), 0xFF);
|
||||
|
||||
pw_.write_start(data.size());
|
||||
|
||||
uint8_t dbg_arm, flash_arm;
|
||||
for (size_t i = 0; i < (data .size() / PROG_BLOCK_SIZE); i++)
|
||||
{
|
||||
if ((i & 0x0001) == 0)
|
||||
{
|
||||
dbg_arm = CH_DBG_TO_BUF0;
|
||||
flash_arm = CH_BUF0_TO_FLASH;
|
||||
}
|
||||
else
|
||||
{
|
||||
dbg_arm = CH_DBG_TO_BUF1;
|
||||
flash_arm = CH_BUF1_TO_FLASH;
|
||||
}
|
||||
// transfer next buffer (first buffer when i == 0)
|
||||
write_xdata_memory(XREG_DMAARM, dbg_arm);
|
||||
|
||||
ByteVector command;
|
||||
command.push_back(0xEE);
|
||||
command.push_back(0x84);
|
||||
command.push_back(0x00);
|
||||
command.insert(command.end(), &data[i * PROG_BLOCK_SIZE],
|
||||
&data[i * PROG_BLOCK_SIZE] + PROG_BLOCK_SIZE);
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
|
||||
// wait for write to finish
|
||||
while (read_xdata_memory(XREG_FCTL) & 0x80);
|
||||
|
||||
write_xdata_memory(XREG_DMAARM, flash_arm);
|
||||
write_xdata_memory(XREG_FCTL, 0x06);
|
||||
|
||||
pw_.write_progress(PROG_BLOCK_SIZE);
|
||||
}
|
||||
while (read_xdata_memory(XREG_FCTL) & 0x80); // wait for the last buffer
|
||||
|
||||
pw_.write_finish();
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
* cc_253x_2540.h
|
||||
*
|
||||
* Created on: Aug 4, 2011
|
||||
* Author: George Stark <george-u@yandex.com>
|
||||
*
|
||||
* License: GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _CC_253X_2540_H_
|
||||
#define _CC_253X_2540_H_
|
||||
|
||||
#include "cc_debug_interface.h"
|
||||
#include "cc_unit_driver.h"
|
||||
|
||||
class CC_253x_2540 : public CC_UnitDriver
|
||||
{
|
||||
public:
|
||||
virtual void supported_units(Unit_ID_List &units);
|
||||
virtual void find_unit_info(UnitInfo &info);
|
||||
virtual void read_info_page(ByteVector &info_page);
|
||||
virtual bool erase_check_comleted();
|
||||
virtual void mac_address_read(size_t index, ByteVector &mac_address);
|
||||
virtual void mac_address_write(ByteVector &mac_address);
|
||||
virtual void flash_write(const DataSectionStore §ions);
|
||||
virtual bool lock_write(const ByteVector &data);
|
||||
|
||||
CC_253x_2540(USB_Device &programmer, ProgressWatcher &pw);
|
||||
|
||||
private:
|
||||
// virtual bool read_info_page(ByteVector &info_page);
|
||||
// virtual bool flash_write(uint_t offset, const ByteVector &flash_data);
|
||||
|
||||
//virtual void flash_read(ByteVector &flash_data);
|
||||
|
||||
// uint16_t calc_block_crc();
|
||||
//void flash_lock_bits_read(ByteVector &lock_data);
|
||||
|
||||
virtual void flash_read_block(size_t offset, size_t size, ByteVector &flash_data);
|
||||
|
||||
// void flash_read_page(uint16_t address, ByteVector &flash_data);
|
||||
void flash_select_bank(uint_t bank);
|
||||
// void flash_read_start();
|
||||
// void flash_read_end();
|
||||
|
||||
};
|
||||
|
||||
#endif // !_CC_253X_2540_H_
|
497
src/programmer/cc_253x_254x.cpp
Normal file
497
src/programmer/cc_253x_254x.cpp
Normal file
@ -0,0 +1,497 @@
|
||||
/*
|
||||
* cc_253x_254x.cpp
|
||||
*
|
||||
* Created on: Aug 4, 2011
|
||||
* Author: George Stark <george-u@yandex.com>
|
||||
*
|
||||
* License: GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#include <boost/regex.hpp>
|
||||
#include "log.h"
|
||||
#include "cc_253x_254x.h"
|
||||
|
||||
#include "data/hex_file.h"
|
||||
#include "data/binary_file.h"
|
||||
|
||||
const size_t LOCK_DATA_SIZE = 16;
|
||||
const size_t MAX_PAGE_COUNT = LOCK_DATA_SIZE * 8;
|
||||
const size_t INFO_PAGE_OFFSET = 0x7800;
|
||||
const size_t INFO_PAGE_SIZE = 0x800;
|
||||
|
||||
const uint16_t XREG_DBGDATA = 0x6260;
|
||||
const uint16_t XREG_FWDATA = 0x6273;
|
||||
const uint16_t XREG_FCTL = 0x6270;
|
||||
const uint16_t XREG_FADDRL = 0x6271;
|
||||
const uint16_t XREG_FADDRH = 0x6272;
|
||||
const uint16_t XREG_DMA1CFGL = 0x70D2;
|
||||
const uint16_t XREG_DMA1CFGH = 0x70D3;
|
||||
const uint16_t XREG_DMAARM = 0x70D6;
|
||||
const uint16_t XREG_DMAREQ = 0x70D7;
|
||||
const uint16_t XREG_DMAIRQ = 0x70D1;
|
||||
|
||||
const uint16_t XREG_MEMCTR = 0x70C7;
|
||||
const uint16_t XREG_FMAP = 0x709F;
|
||||
|
||||
//==============================================================================
|
||||
static void read_range(const String& input, BoolVector& range,
|
||||
uint_t min_value, uint_t max_value)
|
||||
{
|
||||
boost::cmatch what;
|
||||
boost::regex exp("(\\d{1,})-(\\d{1,})");
|
||||
|
||||
StringVector list;
|
||||
boost::split(list, input, boost::is_any_of(","));
|
||||
|
||||
foreach(const String& item, list)
|
||||
{
|
||||
uint_t n = 0;
|
||||
uint_t r1, r2;
|
||||
if (string_to_number(item, n))
|
||||
r1 = r2 = n;
|
||||
else
|
||||
{
|
||||
if (!boost::regex_match(item.c_str(), what, exp))
|
||||
throw std::runtime_error("read_range: incorrect input");
|
||||
string_to_number(what[1].str(), r1);
|
||||
string_to_number(what[2].str(), r2);
|
||||
if (r1 > r2)
|
||||
std::swap(r1, r2);
|
||||
}
|
||||
if (r2 > max_value || r1 < min_value)
|
||||
throw std::runtime_error("read_range: value is out of range");
|
||||
|
||||
if (range.size() <= r2)
|
||||
range.resize(r2 + 1, false);
|
||||
for (; r1 <= r2; r1++)
|
||||
range[r1] = true;
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
CC_253x_254x::CC_253x_254x(USB_Device &usb_device, ProgressWatcher &pw) :
|
||||
CC_UnitDriver(usb_device, pw)
|
||||
{
|
||||
UnitCoreInfo reg_info;
|
||||
|
||||
reg_info.lock_size = 16;
|
||||
reg_info.flash_word_size = 4;
|
||||
reg_info.write_block_size = 1024;
|
||||
reg_info.verify_block_size = 1024;
|
||||
reg_info.xbank_offset = 0x8000;
|
||||
reg_info.dma0_cfg_offset = 0x0800;
|
||||
reg_info.dma_data_offset = 0x0000;
|
||||
|
||||
reg_info.memctr = XREG_MEMCTR;
|
||||
reg_info.fmap = XREG_FMAP;
|
||||
reg_info.faddrh = XREG_FADDRH;
|
||||
reg_info.faddrl = XREG_FADDRL;
|
||||
reg_info.fctl = XREG_FCTL;
|
||||
reg_info.fwdata = XREG_FWDATA;
|
||||
reg_info.rndh = 0x70BD;
|
||||
reg_info.rndl = 0x70BC;
|
||||
reg_info.dma0_cfgh = 0x70D5;
|
||||
reg_info.dma0_cfgl = 0x70D4;
|
||||
reg_info.dma_arm = XREG_DMAARM;
|
||||
reg_info.dma_req = XREG_DMAREQ;
|
||||
reg_info.dma_irq = XREG_DMAIRQ;
|
||||
|
||||
reg_info.fctl_write = 0x06;
|
||||
|
||||
set_reg_info(reg_info);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::supported_units(Unit_ID_List &units)
|
||||
{
|
||||
units.push_back(Unit_ID(0x2530, "CC2530"));
|
||||
units.push_back(Unit_ID(0x2531, "CC2531"));
|
||||
units.push_back(Unit_ID(0x2533, "CC2533"));
|
||||
units.push_back(Unit_ID(0x2540, "CC2540"));
|
||||
units.push_back(Unit_ID(0x2541, "CC2541"));
|
||||
units.push_back(Unit_ID(0x2543, "CC2543"));
|
||||
units.push_back(Unit_ID(0x2544, "CC2544"));
|
||||
units.push_back(Unit_ID(0x2545, "CC2545"));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::find_unit_info(UnitInfo &unit_info)
|
||||
{
|
||||
bool small_unit =
|
||||
unit_info.ID == 0x2543 ||
|
||||
unit_info.ID == 0x2544 ||
|
||||
unit_info.ID == 0x2545;
|
||||
|
||||
unit_info.flags = UnitInfo::SUPPORT_INFO_PAGE;
|
||||
|
||||
ByteVector sfr;
|
||||
read_xdata_memory(0x6276, 2, sfr);
|
||||
|
||||
if (sfr[0] & 0x08)
|
||||
unit_info.flags |= UnitInfo::SUPPORT_USB;
|
||||
|
||||
unit_info.ram_size = (sfr[1] & 0x07) + 1;
|
||||
|
||||
uint8_t flash_size_id = (sfr[0] >> 4) & 0x07;
|
||||
switch (flash_size_id)
|
||||
{
|
||||
case 0x01:
|
||||
unit_info.flash_size = 32;
|
||||
break;
|
||||
case 0x02:
|
||||
unit_info.flash_size = 64;
|
||||
break;
|
||||
case 0x03:
|
||||
unit_info.flash_size = (unit_info.ID == 0x2533) ? 96 : 128;
|
||||
break;
|
||||
case 0x04:
|
||||
unit_info.flash_size = 256;
|
||||
break;
|
||||
}
|
||||
|
||||
if (small_unit)
|
||||
{
|
||||
if (flash_size_id == 0x01)
|
||||
unit_info.flash_size = 18;
|
||||
if (flash_size_id == 0x07)
|
||||
unit_info.flash_size = 32;
|
||||
}
|
||||
|
||||
unit_info.flash_sizes.push_back(16);//
|
||||
unit_info.flash_sizes.push_back(32);
|
||||
unit_info.flash_sizes.push_back(64);
|
||||
unit_info.flash_sizes.push_back(96);
|
||||
unit_info.flash_sizes.push_back(128);
|
||||
unit_info.flash_sizes.push_back(256);
|
||||
|
||||
///unit_info.flash_size = 64;////
|
||||
|
||||
if (!small_unit)
|
||||
{
|
||||
unit_info.flash_page_size = (unit_info.ID == 0x2533) ? 1 : 2;
|
||||
unit_info.max_flash_size = (unit_info.ID == 0x2533) ? 96 : 256;
|
||||
|
||||
unit_info.flags |= UnitInfo::SUPPORT_MAC_ADDRESS;
|
||||
|
||||
unit_info.mac_address_count = 2;
|
||||
unit_info.mac_address_size =
|
||||
(unit_info.ID == 0x2540 || unit_info.ID == 0x2541) ? 6 : 8;
|
||||
}
|
||||
else
|
||||
{
|
||||
unit_info.flash_page_size = 1;
|
||||
unit_info.max_flash_size = 32;
|
||||
|
||||
UnitCoreInfo reg_info(get_reg_info());
|
||||
|
||||
reg_info.write_block_size = 512;
|
||||
reg_info.verify_block_size = 512;
|
||||
reg_info.dma0_cfg_offset = 0x0200;
|
||||
set_reg_info(reg_info);
|
||||
}
|
||||
|
||||
read_xdata_memory(0x6249, 1, sfr);
|
||||
unit_info.revision = sfr[0];
|
||||
|
||||
read_xdata_memory(0x624A, 1, sfr);
|
||||
unit_info.internal_ID = sfr[0];
|
||||
|
||||
unit_info_ = unit_info;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::read_info_page(ByteVector &info_page)
|
||||
{
|
||||
log_info("programmer, read info page");
|
||||
|
||||
size_t address = INFO_PAGE_OFFSET;
|
||||
size_t total_size = INFO_PAGE_SIZE;
|
||||
ByteVector data;
|
||||
|
||||
while (total_size)
|
||||
{
|
||||
size_t count = std::min(XDATA_READ_CHUNK_SIZE, total_size);
|
||||
read_xdata_memory(address, count, data);
|
||||
info_page.insert(info_page.end(), data.begin(), data.end());
|
||||
total_size -= count;
|
||||
address += count;
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::mac_address_read(size_t index, ByteVector &mac_address)
|
||||
{
|
||||
CHECK_PARAM(unit_info_.flags & UnitInfo::SUPPORT_MAC_ADDRESS);
|
||||
|
||||
log_info("programmer, read mac address %u", index);
|
||||
|
||||
if (index == 0)
|
||||
{
|
||||
size_t offset = (unit_info_.ID == 0x2540 || unit_info_.ID == 0x2541) ?
|
||||
0x780E : 0x780C;
|
||||
|
||||
read_xdata_memory(offset, unit_info_.mac_address_size, mac_address);
|
||||
}
|
||||
if (index == 1)
|
||||
{
|
||||
size_t offset = unit_info_.flash_size * 1024 - LOCK_DATA_SIZE -
|
||||
unit_info_.mac_address_size;
|
||||
|
||||
flash_read_start();
|
||||
flash_read_block(offset, unit_info_.mac_address_size, mac_address);
|
||||
flash_read_end();
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_254x::erase_check_comleted()
|
||||
{
|
||||
log_info("programmer, check erase is completed");
|
||||
|
||||
uint8_t status = 0;
|
||||
|
||||
read_debug_status(status);
|
||||
return !(status & DEBUG_STATUS_CHIP_ERASE_BUSY);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::flash_select_bank(uint_t bank)
|
||||
{
|
||||
log_info("programmer, set flash bank %u", bank);
|
||||
|
||||
uint8_t command[] = { 0xBE, 0x57, 0x75, 0x9F, LOBYTE(bank) };
|
||||
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), &command[0]);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::flash_read_block(size_t offset, size_t size, ByteVector &data)
|
||||
{
|
||||
flash_read(offset, size, data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data)
|
||||
{
|
||||
ByteVector data(LOCK_DATA_SIZE, 0xFF);
|
||||
|
||||
foreach (const String &s, qualifiers)
|
||||
{
|
||||
if (s == "debug")
|
||||
data[LOCK_DATA_SIZE - 1] &= ~0x80;
|
||||
else
|
||||
if (s == "pages" || s == "flash")
|
||||
{
|
||||
uint8_t bit = (data[LOCK_DATA_SIZE - 1] & 0x80); // save debug bit
|
||||
std::fill(data.begin(), data.end(), 0xFF);
|
||||
data[LOCK_DATA_SIZE - 1] &= (~0x80 | bit); // restore debug bit
|
||||
}
|
||||
else
|
||||
if (s.find("pages:") == 0)
|
||||
{
|
||||
BoolVector pages;
|
||||
read_range(s.substr(ARRAY_SIZE("pages:") - 1), pages,
|
||||
0, MAX_PAGE_COUNT - 1);
|
||||
uint_t count = std::min(pages.size(), MAX_PAGE_COUNT);
|
||||
for (uint_t i = 0; i < count; i++)
|
||||
if (pages[i])
|
||||
data[i / 8] &= ~(1 << (i % 8));
|
||||
}
|
||||
else
|
||||
throw std::runtime_error("unknown lock qualifyer: " + s);
|
||||
}
|
||||
lock_data = data;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_254x::flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address)
|
||||
{
|
||||
if (!(unit_info_.flags & UnitInfo::SUPPORT_MAC_ADDRESS))
|
||||
return false;
|
||||
|
||||
DataSection section(mac_address_offset(), mac_address);
|
||||
sections.add_section(section, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_254x::flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data)
|
||||
{
|
||||
DataSection section(lock_data_offset(), lock_data);
|
||||
sections.add_section(section, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
uint_t CC_253x_254x::mac_address_offset() const
|
||||
{
|
||||
return unit_info_.flash_size * 1024 - LOCK_DATA_SIZE -
|
||||
unit_info_.mac_address_size;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
uint_t CC_253x_254x::lock_data_offset() const
|
||||
{
|
||||
return unit_info_.flash_size * 1024 - LOCK_DATA_SIZE;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_253x_254x::config_write(const ByteVector &mac_address,
|
||||
const ByteVector &lock_data)
|
||||
{
|
||||
if (mac_address.empty() && lock_data.empty())
|
||||
return true;
|
||||
|
||||
const uint_t page_size = unit_info_.flash_page_size * 1024;
|
||||
const uint_t page_offset = unit_info_.flash_size * 1024 - page_size;
|
||||
|
||||
ByteVector block;
|
||||
flash_read(page_offset, page_size, block);
|
||||
|
||||
if (!empty_block(&block[0], block.size()))
|
||||
erase_page(page_offset);
|
||||
|
||||
if (!mac_address.empty())
|
||||
{
|
||||
CHECK_PARAM(mac_address.size() == unit_info_.mac_address_size);
|
||||
CHECK_PARAM(unit_info_.flags & UnitInfo::SUPPORT_MAC_ADDRESS);
|
||||
|
||||
memcpy(&block[mac_address_offset() - page_offset], &mac_address[0],
|
||||
unit_info_.mac_address_size);
|
||||
}
|
||||
|
||||
if (!lock_data.empty())
|
||||
{
|
||||
CHECK_PARAM(lock_data.size() == LOCK_DATA_SIZE);
|
||||
|
||||
memcpy(&block[lock_data_offset() - page_offset], &lock_data[0],
|
||||
LOCK_DATA_SIZE);
|
||||
}
|
||||
|
||||
DataSectionStore store;
|
||||
store.add_section(DataSection(page_offset, block), true);
|
||||
write_flash_slow(store);
|
||||
|
||||
ByteVector check_block;
|
||||
flash_read(page_offset, page_size, check_block);
|
||||
|
||||
return memcmp(&check_block[0], &block[0], block.size()) == 0;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_253x_254x::flash_write(const DataSectionStore §ions)
|
||||
{
|
||||
if (unit_info_.ID == 0x2543 ||
|
||||
unit_info_.ID == 0x2544 ||
|
||||
unit_info_.ID == 0x2545)
|
||||
{
|
||||
write_flash_slow(sections);
|
||||
return;
|
||||
}
|
||||
|
||||
// Buffers
|
||||
const uint16_t ADDR_BUF0 = 0x0000; // 1K
|
||||
const uint16_t ADDR_BUF1 = 0x0400; // 1K
|
||||
const uint16_t ADDR_DMA_DESC = 0x0800; // 32 bytes
|
||||
|
||||
// DMA Channels
|
||||
const uint8_t CH_DBG_TO_BUF0 = 0x02;
|
||||
const uint8_t CH_DBG_TO_BUF1 = 0x04;
|
||||
const uint8_t CH_BUF0_TO_FLASH = 0x08;
|
||||
const uint8_t CH_BUF1_TO_FLASH = 0x10;
|
||||
|
||||
const uint16_t PROG_BLOCK_SIZE = 1024;
|
||||
|
||||
const uint8_t dma_desc[32] = {
|
||||
// Debug Interface -> Buffer 0 (Channel 1)
|
||||
HIBYTE(XREG_DBGDATA), // src[15:8]
|
||||
LOBYTE(XREG_DBGDATA), // src[7:0]
|
||||
HIBYTE(ADDR_BUF0), // dest[15:8]
|
||||
LOBYTE(ADDR_BUF0), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 31, // trigger DBG_BW
|
||||
0x11, // increment destination
|
||||
|
||||
// Debug Interface -> Buffer 1 (Channel 2)
|
||||
HIBYTE(XREG_DBGDATA), // src[15:8]
|
||||
LOBYTE(XREG_DBGDATA), // src[7:0]
|
||||
HIBYTE(ADDR_BUF1), // dest[15:8]
|
||||
LOBYTE(ADDR_BUF1), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 31, // trigger DBG_BW
|
||||
0x11, // increment destination
|
||||
|
||||
// Buffer 0 -> Flash controller (Channel 3)
|
||||
HIBYTE(ADDR_BUF0), // src[15:8]
|
||||
LOBYTE(ADDR_BUF0), // src[7:0]
|
||||
HIBYTE(XREG_FWDATA), // dest[15:8]
|
||||
LOBYTE(XREG_FWDATA), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 18, // trigger FLASH
|
||||
0x42, // increment source
|
||||
|
||||
// Buffer 1 -> Flash controller (Channel 4)
|
||||
HIBYTE(ADDR_BUF1), // src[15:8]
|
||||
LOBYTE(ADDR_BUF1), // src[7:0]
|
||||
HIBYTE(XREG_FWDATA), // dest[15:8]
|
||||
LOBYTE(XREG_FWDATA), // dest[7:0]
|
||||
HIBYTE(PROG_BLOCK_SIZE), LOBYTE(PROG_BLOCK_SIZE), 18, // trigger FLASH
|
||||
0x42 // increment source
|
||||
};
|
||||
|
||||
ByteVector xsfr;
|
||||
|
||||
// Load dma descriptors
|
||||
write_xdata_memory(ADDR_DMA_DESC, dma_desc, sizeof(dma_desc));
|
||||
|
||||
// Set the pointer to the DMA descriptors
|
||||
write_xdata_memory(XREG_DMA1CFGL, LOBYTE(ADDR_DMA_DESC));
|
||||
write_xdata_memory(XREG_DMA1CFGH, HIBYTE(ADDR_DMA_DESC));
|
||||
|
||||
write_xdata_memory(XREG_FADDRL, 0);
|
||||
write_xdata_memory(XREG_FADDRH, 0);
|
||||
|
||||
ByteVector data;
|
||||
sections.create_image(FLASH_EMPTY_BYTE, data);
|
||||
data.resize(align_up(sections.upper_address(), PROG_BLOCK_SIZE), FLASH_EMPTY_BYTE);
|
||||
|
||||
pw_.write_start(data.size());
|
||||
|
||||
uint8_t dbg_arm, flash_arm;
|
||||
for (size_t i = 0; i < (data .size() / PROG_BLOCK_SIZE); i++)
|
||||
{
|
||||
if ((i & 0x0001) == 0)
|
||||
{
|
||||
dbg_arm = CH_DBG_TO_BUF0;
|
||||
flash_arm = CH_BUF0_TO_FLASH;
|
||||
}
|
||||
else
|
||||
{
|
||||
dbg_arm = CH_DBG_TO_BUF1;
|
||||
flash_arm = CH_BUF1_TO_FLASH;
|
||||
}
|
||||
// transfer next buffer (first buffer when i == 0)
|
||||
write_xdata_memory(XREG_DMAARM, dbg_arm);
|
||||
|
||||
ByteVector command;
|
||||
command.push_back(0xEE);
|
||||
command.push_back(0x84);
|
||||
command.push_back(0x00);
|
||||
command.insert(command.end(), &data[i * PROG_BLOCK_SIZE],
|
||||
&data[i * PROG_BLOCK_SIZE] + PROG_BLOCK_SIZE);
|
||||
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
|
||||
// wait for write to finish
|
||||
while (read_xdata_memory(XREG_FCTL) & 0x80);
|
||||
|
||||
write_xdata_memory(XREG_DMAARM, flash_arm);
|
||||
write_xdata_memory(XREG_FCTL, 0x06);
|
||||
|
||||
pw_.write_progress(PROG_BLOCK_SIZE);
|
||||
}
|
||||
while (read_xdata_memory(XREG_FCTL) & FCTL_BUSY); // wait for the last buffer
|
||||
|
||||
pw_.write_finish();
|
||||
}
|
55
src/programmer/cc_253x_254x.h
Normal file
55
src/programmer/cc_253x_254x.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* cc_253x_254x.h
|
||||
*
|
||||
* Created on: Aug 4, 2011
|
||||
* Author: George Stark <george-u@yandex.com>
|
||||
*
|
||||
* License: GNU GPL v2
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _CC_253X_254X_H_
|
||||
#define _CC_253X_254X_H_
|
||||
|
||||
#include "cc_debug_interface.h"
|
||||
#include "cc_unit_driver.h"
|
||||
|
||||
class CC_253x_254x : public CC_UnitDriver
|
||||
{
|
||||
public:
|
||||
virtual void supported_units(Unit_ID_List &units);
|
||||
virtual void find_unit_info(UnitInfo &info);
|
||||
virtual void read_info_page(ByteVector &info_page);
|
||||
virtual bool erase_check_comleted();
|
||||
|
||||
/// @param offset must be at page boundaries
|
||||
virtual void mac_address_read(size_t index, ByteVector &mac_address);
|
||||
virtual void flash_write(const DataSectionStore §ions);
|
||||
virtual bool config_write(const ByteVector &mac_address,
|
||||
const ByteVector &lock_data);
|
||||
|
||||
virtual bool flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address);
|
||||
virtual bool flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data);
|
||||
|
||||
virtual void convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data);
|
||||
|
||||
CC_253x_254x(USB_Device &programmer, ProgressWatcher &pw);
|
||||
|
||||
private:
|
||||
virtual void flash_read_block(size_t offset, size_t size, ByteVector &flash_data);
|
||||
|
||||
// void flash_read_page(uint16_t address, ByteVector &flash_data);
|
||||
void flash_select_bank(uint_t bank);
|
||||
// void flash_read_start();
|
||||
// void flash_read_end();
|
||||
|
||||
/// Return absolute flash offset where secondary mac address is stored
|
||||
uint_t mac_address_offset() const;
|
||||
/// Return absolute flash offset where lock data is stored
|
||||
uint_t lock_data_offset() const;
|
||||
};
|
||||
|
||||
#endif // !_CC_253X_2540_H_
|
@ -13,8 +13,7 @@
|
||||
|
||||
#include "common.h"
|
||||
|
||||
const uint8_t ENDPOINT_IN = 0x84;
|
||||
const uint8_t ENDPOINT_OUT = 0x04;
|
||||
const size_t CC_BREAKPOINT_COUNT = 4;
|
||||
|
||||
const uint8_t
|
||||
DEBUG_STATUS_STACK_OVERFLOW = 0x01,
|
||||
@ -48,7 +47,4 @@ const uint8_t
|
||||
DEBUG_COMMAND_GET_CHIP_ID = 0x68,
|
||||
DEBUG_COMMAND_BURST_WRITE = 0x80;
|
||||
|
||||
#define LOBYTE(w) ((uint8_t)(w))
|
||||
#define HIBYTE(w) ((uint8_t)(((uint16_t)(w) >> 8) & 0xFF))
|
||||
|
||||
#endif // !_CC_DEBUG_INTERFACE_H_
|
||||
|
@ -11,7 +11,7 @@
|
||||
#include <stdio.h>
|
||||
#include "cc_programmer.h"
|
||||
#include "cc_251x_111x.h"
|
||||
#include "cc_253x_2540.h"
|
||||
#include "cc_253x_254x.h"
|
||||
#include "cc_243x.h"
|
||||
#include "log.h"
|
||||
|
||||
@ -19,9 +19,14 @@ const uint_t DEFAULT_TIMEOUT = 3000;
|
||||
const uint_t MAX_ERASE_TIME = 8000;
|
||||
|
||||
const static USB_DeviceID DeviceTable[] = {
|
||||
{ 0x0451, 0x16A2, "CC Debugger" },
|
||||
{ 0x11A0, 0xDB20, "SmartRF04 Evaluation Board" },
|
||||
{ 0x0451, 0x16A0, "SmartRF05 Evaluation Board" },
|
||||
{ 0x0451, 0x16A2, 0x84, 0x04, "CC Debugger",
|
||||
USB_DeviceID::PROTOCOL_TI },
|
||||
{ 0x11A0, 0xDB20, 0x84, 0x04, "SmartRF04 Evaluation Board",
|
||||
USB_DeviceID::PROTOCOL_TI },
|
||||
{ 0x11A0, 0xEB20, 0x82, 0x02, "SmartRF04 Evaluation Board (Chinese)",
|
||||
USB_DeviceID::PROTOCOL_CHIPCON },
|
||||
{ 0x0451, 0x16A0, 0x84, 0x04, "SmartRF05 Evaluation Board",
|
||||
USB_DeviceID::PROTOCOL_TI },
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
@ -51,7 +56,7 @@ CC_Programmer::CC_Programmer()
|
||||
{
|
||||
usb_device_.set_transfer_timeout(DEFAULT_TIMEOUT);
|
||||
|
||||
unit_drviers_.push_back(CC_UnitDriverPtr(new CC_253x_2540(usb_device_, pw_)));
|
||||
unit_drviers_.push_back(CC_UnitDriverPtr(new CC_253x_254x(usb_device_, pw_)));
|
||||
unit_drviers_.push_back(CC_UnitDriverPtr(new CC_251x_111x(usb_device_, pw_)));
|
||||
unit_drviers_.push_back(CC_UnitDriverPtr(new CC_243x(usb_device_, pw_)));
|
||||
}
|
||||
@ -99,6 +104,12 @@ bool CC_Programmer::set_debug_interface_speed(CC_Programmer::InterfaceSpeed spee
|
||||
return true;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Programmer::unit_set_flash_size(uint_t flash_size)
|
||||
{
|
||||
return driver_->set_flash_size(flash_size);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Programmer::programmer_info(CC_ProgrammerInfo &info)
|
||||
{
|
||||
@ -113,6 +124,9 @@ bool CC_Programmer::programmer_info(CC_ProgrammerInfo &info)
|
||||
//==============================================================================
|
||||
void CC_Programmer::init_device()
|
||||
{
|
||||
if (programmer_info_.usb_device.protocol == USB_DeviceID::PROTOCOL_CHIPCON)
|
||||
usb_device_.reset_device();
|
||||
|
||||
usb_device_.set_configuration(1);
|
||||
usb_device_.claim_interface(0);
|
||||
request_device_info();
|
||||
@ -132,6 +146,7 @@ CC_Programmer::OpenResult CC_Programmer::open(uint_t bus, uint_t device)
|
||||
if (descriptor.idProduct == item.product_id &&
|
||||
descriptor.idVendor == item.vendor_id)
|
||||
{
|
||||
programmer_info_.usb_device = item;
|
||||
init_device();
|
||||
return OR_OK;
|
||||
}
|
||||
@ -146,7 +161,7 @@ CC_Programmer::OpenResult CC_Programmer::open()
|
||||
{
|
||||
if (usb_device_.open_by_vid_pid(item.vendor_id, item.product_id))
|
||||
{
|
||||
programmer_info_.descripton = item.description;
|
||||
programmer_info_.usb_device = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -177,7 +192,20 @@ void CC_Programmer::request_device_info()
|
||||
device_descriptor.bcdDevice & 0xFF);
|
||||
programmer_info_.debugger_id = DID;
|
||||
|
||||
usb_device_.string_descriptor_ascii(device_descriptor.iProduct, programmer_info_.name);
|
||||
if (device_descriptor.iProduct > 0)
|
||||
usb_device_.string_descriptor_ascii(device_descriptor.iProduct, programmer_info_.name);
|
||||
else
|
||||
{
|
||||
foreach (const USB_DeviceID &item, DeviceTable)
|
||||
{
|
||||
if (device_descriptor.idProduct == item.product_id &&
|
||||
device_descriptor.idVendor == item.vendor_id)
|
||||
{
|
||||
programmer_info_.name = item.description;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const uint8_t USB_REQUEST_GET_STATE = 0xC0;
|
||||
|
||||
@ -206,12 +234,15 @@ void CC_Programmer::request_device_info()
|
||||
}
|
||||
}
|
||||
|
||||
if (!driver_ && unit_info_.ID)
|
||||
if (!driver_ && unit_info_.ID > 0)
|
||||
{
|
||||
std::swap(info[0], info[1]);
|
||||
unit_info_.name = "CC" + binary_to_hex(info, 2, "");
|
||||
}
|
||||
|
||||
if (driver_)
|
||||
driver_->set_programmer_ID(programmer_info_.usb_device);
|
||||
|
||||
log_add_programmer_info(programmer_info_);
|
||||
}
|
||||
|
||||
@ -232,12 +263,16 @@ void CC_Programmer::enter_debug_mode()
|
||||
log_info("programmer, enter debug mode");
|
||||
|
||||
const uint8_t USB_PREPARE_DEBUG_MODE = 0xC5;
|
||||
const uint8_t USB_SET_CHIP_INFO = 0xC8;
|
||||
|
||||
usb_device_.control_write(LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_OUT,
|
||||
USB_PREPARE_DEBUG_MODE, 0, 0, NULL, 0);
|
||||
|
||||
ByteVector command(0x30, ' ');
|
||||
const uint8_t USB_SET_CHIP_INFO = 0xC8;
|
||||
const size_t command_size =
|
||||
programmer_info_.usb_device.protocol == USB_DeviceID::PROTOCOL_TI ?
|
||||
0x30 : 0x20;
|
||||
|
||||
ByteVector command(command_size, ' ');
|
||||
memcpy(&command[0x00], unit_info_.name.c_str(), unit_info_.name.size());
|
||||
memcpy(&command[0x10], "DID:", 4);
|
||||
memcpy(&command[0x15], programmer_info_.debugger_id.c_str(), programmer_info_.debugger_id.size());
|
||||
@ -298,7 +333,7 @@ bool CC_Programmer::unit_reset()
|
||||
//==============================================================================
|
||||
bool CC_Programmer::unit_erase()
|
||||
{
|
||||
driver_->erase_start();
|
||||
driver_->erase();
|
||||
|
||||
uint_t erase_timer = get_tick_count();
|
||||
do
|
||||
@ -327,8 +362,38 @@ void CC_Programmer::unit_mac_address_read(size_t index, ByteVector &mac_address)
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Programmer::unit_mac_address_write(ByteVector &mac_address)
|
||||
{ }
|
||||
bool CC_Programmer::unit_config_write(ByteVector &mac_address, ByteVector &lock_data)
|
||||
{
|
||||
pw_.enable(false);
|
||||
return driver_->config_write(mac_address, lock_data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Programmer::flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address)
|
||||
{
|
||||
return driver_->flash_image_embed_mac_address(sections, mac_address);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Programmer::flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data)
|
||||
{
|
||||
return driver_->flash_image_embed_lock_data(sections, lock_data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
uint_t CC_Programmer::unit_lock_data_size() const
|
||||
{
|
||||
return driver_->lock_data_size();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Programmer::unit_convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data)
|
||||
{
|
||||
driver_->convert_lock_data(qualifiers, lock_data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Programmer::unit_flash_read(ByteVector &flash_data)
|
||||
@ -363,13 +428,6 @@ void CC_Programmer::unit_flash_write(const DataSectionStore §ions)
|
||||
driver_->flash_write(sections);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_Programmer::unit_lock_write(const ByteVector &lock_data)
|
||||
{
|
||||
pw_.enable(false);
|
||||
return driver_->lock_write(lock_data);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_Programmer::do_on_flash_read_progress(
|
||||
const ProgressWatcher::OnProgress::slot_type &slot)
|
||||
|
@ -15,22 +15,27 @@
|
||||
#include "usb/usb_device.h"
|
||||
#include "data/data_section_store.h"
|
||||
|
||||
const size_t CC_BREAKPOINT_COUNT = 4;
|
||||
struct USB_DeviceID
|
||||
{
|
||||
enum { PROTOCOL_TI, PROTOCOL_CHIPCON };
|
||||
|
||||
uint16_t vendor_id;
|
||||
uint16_t product_id;
|
||||
|
||||
uint8_t endpoint_in;
|
||||
uint8_t endpoint_out;
|
||||
|
||||
char description[256];
|
||||
uint_t protocol;
|
||||
};
|
||||
|
||||
struct CC_ProgrammerInfo
|
||||
{
|
||||
String name;
|
||||
String descripton;
|
||||
String debugger_id; // 4 unique digits
|
||||
uint16_t fw_version;
|
||||
uint16_t fw_revision;
|
||||
};
|
||||
|
||||
struct USB_DeviceID
|
||||
{
|
||||
uint16_t vendor_id;
|
||||
uint16_t product_id;
|
||||
char description[256];
|
||||
String name;
|
||||
String debugger_id; // 4 unique digits
|
||||
uint16_t fw_version;
|
||||
uint16_t fw_revision;
|
||||
USB_DeviceID usb_device;
|
||||
};
|
||||
|
||||
struct CC_Breakpoint
|
||||
@ -61,6 +66,8 @@ public:
|
||||
enum InterfaceSpeed { IS_SLOW, IS_FAST };
|
||||
bool set_debug_interface_speed(InterfaceSpeed speed);
|
||||
|
||||
bool unit_set_flash_size(uint_t flash_size);
|
||||
|
||||
void unit_status(String &name, bool &supported) const;
|
||||
bool unit_connect(UnitInfo &info);
|
||||
void unit_close();
|
||||
@ -72,14 +79,26 @@ public:
|
||||
void unit_read_info_page(ByteVector &info_page);
|
||||
|
||||
void unit_mac_address_read(size_t index, ByteVector &mac_address);
|
||||
void unit_mac_address_write(ByteVector &mac_address);
|
||||
|
||||
void unit_flash_read(ByteVector &flash_data);
|
||||
void unit_flash_write(const DataSectionStore §ions);
|
||||
|
||||
enum VerifyMethod { VM_BY_CRC, VM_BY_READ };
|
||||
bool unit_flash_verify(const DataSectionStore §ions, VerifyMethod method);
|
||||
bool unit_lock_write(const ByteVector &lock_data);
|
||||
|
||||
bool unit_config_write(ByteVector &mac_address, ByteVector &lock_data);
|
||||
|
||||
void unit_convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data);
|
||||
|
||||
uint_t unit_lock_data_size() const;
|
||||
|
||||
bool flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address);
|
||||
|
||||
bool flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data);
|
||||
|
||||
|
||||
void do_on_flash_read_progress(const ProgressWatcher::OnProgress::slot_type&);
|
||||
void do_on_flash_write_progress(const ProgressWatcher::OnProgress::slot_type&);
|
||||
@ -97,7 +116,7 @@ private:
|
||||
CC_UnitDriverPtrList unit_drviers_;
|
||||
CC_UnitDriverPtr driver_;
|
||||
ProgressWatcher pw_;
|
||||
CC_Breakpoint bps_[CC_BREAKPOINT_COUNT];
|
||||
//CC_Breakpoint bps_[CC_BREAKPOINT_COUNT];
|
||||
};
|
||||
|
||||
#endif // !_CC_PROGRAMMER_H_
|
||||
|
@ -19,11 +19,42 @@
|
||||
|
||||
typedef boost::crc_optimal<16, 0x8005, 0xFFFF, 0, false, false> CrcCalculator;
|
||||
|
||||
const size_t MAX_EMPTY_BLOCK_SIZE = FLASH_BANK_SIZE;
|
||||
static uint8_t empty_block_[MAX_EMPTY_BLOCK_SIZE];
|
||||
|
||||
//==============================================================================
|
||||
CC_UnitDriver::CC_UnitDriver(USB_Device &programmer, ProgressWatcher &pw) :
|
||||
|
||||
usb_device_(programmer),
|
||||
pw_(pw)
|
||||
{ }
|
||||
pw_(pw),
|
||||
endpoint_in_(0),
|
||||
endpoint_out_(0)
|
||||
{
|
||||
memset(empty_block_, FLASH_EMPTY_BYTE, FLASH_BANK_SIZE);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::set_programmer_ID(const USB_DeviceID& programmer_ID)
|
||||
{
|
||||
endpoint_in_ = programmer_ID.endpoint_in;
|
||||
endpoint_out_ = programmer_ID.endpoint_out;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_UnitDriver::set_flash_size(uint_t flash_size)
|
||||
{
|
||||
bool found = std::find(
|
||||
unit_info_.flash_sizes.begin(),
|
||||
unit_info_.flash_sizes.end(),
|
||||
flash_size) != unit_info_.flash_sizes.end();
|
||||
|
||||
if (!unit_info_.flash_size && found)
|
||||
{
|
||||
unit_info_.flash_size = flash_size;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::reset(bool debug_mode)
|
||||
@ -46,8 +77,8 @@ void CC_UnitDriver::read_debug_status(uint8_t &status)
|
||||
|
||||
status = 0;
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), command);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, 1, &status);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), command);
|
||||
usb_device_.bulk_read(endpoint_in_, 1, &status);
|
||||
|
||||
log_info("programmer, debug status, %02Xh", status);
|
||||
}
|
||||
@ -59,8 +90,8 @@ void CC_UnitDriver::read_debug_config(uint8_t &config)
|
||||
|
||||
uint8_t command[] = { 0x1F, DEBUG_COMMAND_RD_CONFIG };
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), command);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, 1, &config);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), command);
|
||||
usb_device_.bulk_read(endpoint_in_, 1, &config);
|
||||
|
||||
log_info("programmer, debug config, %02Xh", config);
|
||||
}
|
||||
@ -72,17 +103,35 @@ void CC_UnitDriver::write_debug_config(uint8_t config)
|
||||
|
||||
uint8_t command[] = { 0x4C, DEBUG_COMMAND_WR_CONFIG, config };
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), command);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), command);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::erase_start()
|
||||
bool CC_UnitDriver::erase_page(uint_t page_offset)
|
||||
{
|
||||
page_offset /= reg_info_.flash_word_size;
|
||||
|
||||
write_xdata_memory(reg_info_.faddrl, 0);
|
||||
write_xdata_memory(reg_info_.faddrh, HIBYTE(page_offset));
|
||||
|
||||
// erase
|
||||
write_xdata_memory(reg_info_.fctl, FCTL_ERASE);
|
||||
|
||||
// wait for write to finish
|
||||
uint8_t reg;
|
||||
while ((reg = read_xdata_memory(reg_info_.fctl)) & FCTL_BUSY);
|
||||
|
||||
return !(reg & FCTL_ABORT);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::erase()
|
||||
{
|
||||
log_info("programmer, erase");
|
||||
|
||||
uint8_t command[] = { 0x1C, DEBUG_COMMAND_CHIP_ERASE };
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), command);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), command);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -99,7 +148,7 @@ void CC_UnitDriver::write_sfr(uint8_t address, uint8_t value)
|
||||
vector_append(command, mov_a_direct, sizeof(mov_a_direct));
|
||||
vector_append(command, footer, sizeof(footer));
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -116,8 +165,8 @@ void CC_UnitDriver::read_sfr(uint8_t address, uint8_t &value)
|
||||
vector_append(command, mov_a_direct, sizeof(mov_a_direct));
|
||||
vector_append(command, footer, sizeof(footer));
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, 1, &value);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(endpoint_in_, 1, &value);
|
||||
|
||||
log_info("programmer, sfr value: %02Xh", value);
|
||||
}
|
||||
@ -166,12 +215,26 @@ void CC_UnitDriver::read_xdata_memory(uint16_t address, size_t count, ByteVector
|
||||
|
||||
data.resize(count);
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, count, &data[0]);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(endpoint_in_, count, &data[0]);
|
||||
|
||||
log_info("programmer, read xdata memory, data: %s", binary_to_hex(&data[0], count, " ").c_str());
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_UnitDriver::flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool CC_UnitDriver::flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::read_info_page(ByteVector &info_page)
|
||||
{ }
|
||||
@ -180,10 +243,6 @@ void CC_UnitDriver::read_info_page(ByteVector &info_page)
|
||||
void CC_UnitDriver::mac_address_read(size_t index, ByteVector &mac_address)
|
||||
{ }
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::mac_address_write(ByteVector &mac_address)
|
||||
{ }
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::write_xdata_memory(uint16_t address, uint8_t data)
|
||||
{ write_xdata_memory(address, &data, 1); }
|
||||
@ -203,7 +262,7 @@ void CC_UnitDriver::write_xdata_memory(uint16_t address, const uint8_t data[], s
|
||||
|
||||
uint8_t footer[] = { 0xD4, 0x57, 0x90, 0xC2, 0x57, 0x75, 0x92, 0x90, 0x56, 0x74 };
|
||||
|
||||
uint8_t load_dtpr[] = { 0xBE, 0x57, 0x90, address >> 8, address };
|
||||
uint8_t load_dtpr[] = { 0xBE, 0x57, 0x90, HIBYTE(address), LOBYTE(address) };
|
||||
uint8_t mov_a_data[] = { 0x8E, 0x56, 0x74, 0x00 };
|
||||
uint8_t mov_dtpr_a[] = { 0x5E, 0x55, 0xF0 };
|
||||
uint8_t inc_dtpr[] = { 0x5E, 0x55, 0xA3 };
|
||||
@ -221,7 +280,7 @@ void CC_UnitDriver::write_xdata_memory(uint16_t address, const uint8_t data[], s
|
||||
}
|
||||
vector_append(command, footer, sizeof(footer));
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -252,6 +311,7 @@ bool CC_UnitDriver::flash_verify_by_read(const DataSectionStore §ion_store)
|
||||
flash_read_block(item.address, item.size(), data);
|
||||
if (memcmp(&data[0], &item.data[0], item.size()))
|
||||
{
|
||||
//binary_file_save("vr.bin", data);
|
||||
result = false;
|
||||
break;
|
||||
}
|
||||
@ -261,7 +321,7 @@ bool CC_UnitDriver::flash_verify_by_read(const DataSectionStore §ion_store)
|
||||
|
||||
pw_.read_finish();
|
||||
|
||||
return true;
|
||||
return result;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -368,16 +428,13 @@ static void create_read_proc(size_t count, ByteVector &proc)
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::flash_read_32k(size_t address, size_t size, ByteVector &data)
|
||||
void CC_UnitDriver::flash_read_near(uint16_t address, size_t size, ByteVector &data)
|
||||
{
|
||||
if (((address % 0x8000) + size) > 0x8000)
|
||||
throw std::runtime_error("flash_read_32k, incorrect parameters");
|
||||
|
||||
const uint8_t load_dtpr[] = { 0xBE, 0x57, 0x90, address >> 8, address };
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(load_dtpr), load_dtpr);
|
||||
const uint8_t load_dtpr[] = { 0xBE, 0x57, 0x90, HIBYTE(address), LOBYTE(address) };
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(load_dtpr), load_dtpr);
|
||||
|
||||
size_t offset = data.size();
|
||||
data.resize(offset + size, 0xFF);
|
||||
data.resize(offset + size, FLASH_EMPTY_BYTE);
|
||||
|
||||
ByteVector command;
|
||||
for (size_t i = 0; i < size / FLASH_READ_CHUNK_SIZE; i++)
|
||||
@ -385,8 +442,8 @@ void CC_UnitDriver::flash_read_32k(size_t address, size_t size, ByteVector &data
|
||||
if (command.empty())
|
||||
create_read_proc(FLASH_READ_CHUNK_SIZE, command);
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, FLASH_READ_CHUNK_SIZE, &data[offset]);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(endpoint_in_, FLASH_READ_CHUNK_SIZE, &data[offset]);
|
||||
offset += FLASH_READ_CHUNK_SIZE;
|
||||
|
||||
pw_.read_progress(FLASH_READ_CHUNK_SIZE);
|
||||
@ -396,16 +453,15 @@ void CC_UnitDriver::flash_read_32k(size_t address, size_t size, ByteVector &data
|
||||
{
|
||||
create_read_proc(size % FLASH_READ_CHUNK_SIZE, command);
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(ENDPOINT_IN, size - offset, &data[offset]);
|
||||
usb_device_.bulk_write(endpoint_out_, command.size(), &command[0]);
|
||||
usb_device_.bulk_read(endpoint_in_, size - offset, &data[offset]);
|
||||
|
||||
pw_.read_progress(size - offset);
|
||||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::flash_large_read_block(size_t offset, size_t size,
|
||||
ByteVector &flash_data)
|
||||
void CC_UnitDriver::flash_read(size_t offset, size_t size, ByteVector &flash_data)
|
||||
{
|
||||
uint8_t flash_bank = 0xFF;
|
||||
|
||||
@ -426,7 +482,7 @@ void CC_UnitDriver::flash_large_read_block(size_t offset, size_t size,
|
||||
bank_offset = offset % FLASH_BANK_SIZE;
|
||||
}
|
||||
|
||||
flash_read_32k(bank_offset + reg_info_.xbank_offset, count, flash_data);
|
||||
flash_read_near(bank_offset + reg_info_.xbank_offset, count, flash_data);
|
||||
|
||||
size -= count;
|
||||
offset += count;
|
||||
@ -441,7 +497,7 @@ void CC_UnitDriver::flash_read_start()
|
||||
uint8_t byte = 0;
|
||||
usb_device_.control_read(LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_IN,
|
||||
USB_PREPARE, 0, 0, &byte, 1);
|
||||
reset(true);
|
||||
//reset(true); // if write and lock verifing will fail after reset
|
||||
|
||||
uint8_t header[] = {
|
||||
0x40, 0x55, 0x00, 0x72, 0x56, 0xE5, 0xD0, 0x74, 0x56, 0xE5, 0x92, 0xBE,
|
||||
@ -449,7 +505,7 @@ void CC_UnitDriver::flash_read_start()
|
||||
0x7A, 0x56, 0xE5, 0x9F
|
||||
};
|
||||
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(header), header);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(header), header);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -459,7 +515,7 @@ void CC_UnitDriver::flash_read_end()
|
||||
0xCA, 0x57, 0x75, 0x9F, 0xD6, 0x57, 0x90, 0xC4, 0x57,
|
||||
0x75, 0x92, 0xC2, 0x57, 0x75, 0xD0, 0x90, 0x56, 0x74
|
||||
};
|
||||
usb_device_.bulk_write(ENDPOINT_OUT, sizeof(command), command);
|
||||
usb_device_.bulk_write(endpoint_out_, sizeof(command), command);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
@ -478,10 +534,76 @@ void CC_UnitDriver::write_lock_to_info_page(uint8_t lock_byte)
|
||||
select_info_page_flash(false);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
uint_t CC_UnitDriver::lock_data_size() const
|
||||
{
|
||||
return reg_info_.lock_size;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
UnitCoreInfo CC_UnitDriver::get_reg_info()
|
||||
{ return reg_info_; }
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::set_reg_info(const UnitCoreInfo ®_info)
|
||||
{ reg_info_ = reg_info; }
|
||||
|
||||
//==============================================================================
|
||||
bool CC_UnitDriver::empty_block(const uint8_t* data, size_t size)
|
||||
{
|
||||
if (size <= MAX_EMPTY_BLOCK_SIZE)
|
||||
return memcmp(data, empty_block_, size) == 0;
|
||||
|
||||
ByteVector empty_block;
|
||||
empty_block.resize(size, FLASH_EMPTY_BYTE);
|
||||
return memcmp(data, &empty_block[0], size) == 0;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::convert_lock_data_std_set(
|
||||
const StringVector& qualifiers,
|
||||
const ByteVector& lock_sizes,
|
||||
ByteVector& lock_data)
|
||||
{
|
||||
ByteVector data(1, 0x1F);
|
||||
|
||||
foreach (const String &item, qualifiers)
|
||||
{
|
||||
if (item == "debug")
|
||||
data[0] &= ~1;
|
||||
else
|
||||
if (item == "boot")
|
||||
data[0] &= ~0x10;
|
||||
else
|
||||
if (item == "flash" || item == "pages")
|
||||
data[0] &= ~0x0E;
|
||||
else
|
||||
if (item.find("flash:") == 0)
|
||||
{
|
||||
uint_t size = 0;
|
||||
String arg = item.substr(ARRAY_SIZE("flash:") - 1);
|
||||
if (!string_to_number(arg, size))
|
||||
throw std::runtime_error("incorrect flash size value");
|
||||
|
||||
ByteVector::const_iterator it = std::find(
|
||||
lock_sizes.begin(),
|
||||
lock_sizes.end(),
|
||||
size);
|
||||
|
||||
if (it == lock_sizes.end())
|
||||
throw std::runtime_error("target unsupport flash size " + arg);
|
||||
|
||||
uint8_t index = (uint8_t)(it - lock_sizes.begin());
|
||||
|
||||
data[0] &= ~(7 << 1); // clear out prev lock size data
|
||||
data[0] |= (~index & 0x07) << 1;
|
||||
}
|
||||
else
|
||||
throw std::runtime_error("unknown lock qualifyer: " + item);
|
||||
}
|
||||
lock_data = data;
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void CC_UnitDriver::write_flash_slow(const DataSectionStore §ion_store)
|
||||
{
|
||||
@ -506,40 +628,36 @@ void CC_UnitDriver::write_flash_slow(const DataSectionStore §ion_store)
|
||||
write_xdata_memory(reg_info_.dma0_cfgl, LOBYTE(reg_info_.dma0_cfg_offset));
|
||||
write_xdata_memory(reg_info_.dma0_cfgh, HIBYTE(reg_info_.dma0_cfg_offset));
|
||||
|
||||
size_t faddr = 0xFFFF;
|
||||
size_t faddr = (size_t)-1;
|
||||
|
||||
ByteVector data;
|
||||
section_store.create_image(0xFF, data);
|
||||
data.resize((section_store.upper_address() + (WRITE_BLOCK_SIZE - 1)) &
|
||||
~(WRITE_BLOCK_SIZE - 1), 0xFF);
|
||||
section_store.create_image(FLASH_EMPTY_BYTE, data);
|
||||
data.resize(align_up(section_store.upper_address(), WRITE_BLOCK_SIZE),
|
||||
FLASH_EMPTY_BYTE);
|
||||
|
||||
pw_.write_start(data.size());
|
||||
|
||||
ByteVector empty_block;
|
||||
empty_block.resize(WRITE_BLOCK_SIZE, 0xFF);
|
||||
|
||||
for (size_t i = 0; i < (data.size() / WRITE_BLOCK_SIZE); i++)
|
||||
{
|
||||
pw_.write_progress(WRITE_BLOCK_SIZE);
|
||||
|
||||
size_t offset = WRITE_BLOCK_SIZE * i;
|
||||
if (!memcmp(&data[offset], &empty_block[0], WRITE_BLOCK_SIZE))
|
||||
if (empty_block(&data[offset], WRITE_BLOCK_SIZE))
|
||||
continue;
|
||||
|
||||
size_t new_faddr = WRITE_BLOCK_SIZE * i / reg_info_.flash_word_size;
|
||||
if (new_faddr != faddr)
|
||||
size_t next_faddr = offset / reg_info_.flash_word_size;
|
||||
if (next_faddr != faddr)
|
||||
{
|
||||
faddr = WRITE_BLOCK_SIZE * i / reg_info_.flash_word_size;
|
||||
write_xdata_memory(reg_info_.faddrl, LOBYTE(faddr));
|
||||
write_xdata_memory(reg_info_.faddrh, HIBYTE(faddr));
|
||||
faddr += WRITE_BLOCK_SIZE / reg_info_.flash_word_size;
|
||||
write_xdata_memory(reg_info_.faddrl, LOBYTE(next_faddr));
|
||||
write_xdata_memory(reg_info_.faddrh, HIBYTE(next_faddr));
|
||||
faddr = next_faddr + WRITE_BLOCK_SIZE / reg_info_.flash_word_size;
|
||||
}
|
||||
|
||||
write_xdata_memory(reg_info_.dma_data_offset, &data[offset], WRITE_BLOCK_SIZE);
|
||||
|
||||
write_xdata_memory(reg_info_.dma_arm, 0x01);
|
||||
write_xdata_memory(reg_info_.fctl, reg_info_.fctl_write);
|
||||
while ((read_xdata_memory(reg_info_.fctl) & 0x80));
|
||||
while ((read_xdata_memory(reg_info_.fctl) & FCTL_BUSY));
|
||||
}
|
||||
pw_.write_finish();
|
||||
}
|
||||
|
@ -16,10 +16,17 @@
|
||||
#include "usb/usb_device.h"
|
||||
#include "cc_unit_info.h"
|
||||
|
||||
const size_t XDATA_READ_CHUNK_SIZE = 128;
|
||||
const size_t FLASH_READ_CHUNK_SIZE = 128;
|
||||
const size_t FLASH_BANK_SIZE = 1024 * 32;
|
||||
const size_t FLASH_MAPPED_BANK_OFFSET = 1024 * 32;
|
||||
const size_t FLASH_EMPTY_BYTE = 0xFF;
|
||||
const size_t XDATA_READ_CHUNK_SIZE = 128;
|
||||
const size_t FLASH_READ_CHUNK_SIZE = 128;
|
||||
const size_t FLASH_BANK_SIZE = 1024 * 32;
|
||||
const size_t FLASH_MAPPED_BANK_OFFSET = 1024 * 32;
|
||||
|
||||
const uint8_t FCTL_BUSY = 0x80;
|
||||
const uint8_t FCTL_ABORT = 0x20;
|
||||
const uint8_t FCTL_ERASE = 0x01;
|
||||
|
||||
struct USB_DeviceID;
|
||||
|
||||
class CC_UnitDriver : boost::noncopyable
|
||||
{
|
||||
@ -29,17 +36,60 @@ public:
|
||||
|
||||
virtual void read_info_page(ByteVector &info_page);
|
||||
|
||||
/// @param index 0 - primary address, 1 - secondary address
|
||||
/// Read mac address
|
||||
/// @param index 0 - primary address, 1 - secondary address (if any)
|
||||
virtual void mac_address_read(size_t index, ByteVector &mac_address);
|
||||
virtual void mac_address_write(ByteVector &mac_address);
|
||||
|
||||
virtual void erase_start();
|
||||
/// Write and verify lock data and/or mac address. If field is empty
|
||||
/// it wont be written.
|
||||
/// @return false if varification after write failed
|
||||
virtual bool config_write(const ByteVector &mac_address,
|
||||
const ByteVector &lock_data) = 0;
|
||||
|
||||
/// Integrate mac address into flash image
|
||||
/// @return true if target store mac address in flash
|
||||
virtual bool flash_image_embed_mac_address(DataSectionStore §ions,
|
||||
const ByteVector &mac_address);
|
||||
|
||||
/// Integrate lock data into flash image
|
||||
/// @return true if target store lock data in flash
|
||||
virtual bool flash_image_embed_lock_data(DataSectionStore §ions,
|
||||
const ByteVector &lock_data);
|
||||
|
||||
/// Convert list of string qulifiers like 'debug', 'pages:xx' into lock data
|
||||
virtual void convert_lock_data(const StringVector& qualifiers,
|
||||
ByteVector& lock_data) = 0;
|
||||
|
||||
/// Erase flash completely. Operation is asynchronious,
|
||||
virtual void erase();
|
||||
virtual bool erase_check_comleted() = 0;
|
||||
|
||||
/// Erase single page. Page size depends on target
|
||||
/// @param page_offset must be aligned to a page boundary.
|
||||
/// @return false if erase was aborted (e.g. 'cause page is locked)
|
||||
virtual bool erase_page(uint_t page_offset);
|
||||
|
||||
/// Write data into flash. Empty data block are skipped.
|
||||
/// Modified parts of flash should be bllank.
|
||||
virtual void flash_write(const DataSectionStore §ions) = 0;
|
||||
|
||||
/// Compare specified data to data from flash. Empty blocks are skipped.
|
||||
/// @return false if verification failed
|
||||
virtual bool flash_verify_by_crc(const DataSectionStore §ions);
|
||||
|
||||
/// Compare specified data to data from flash. Empty blocks are skipped.
|
||||
/// @return false if verification failed
|
||||
virtual bool flash_verify_by_read(const DataSectionStore §ions);
|
||||
|
||||
/// prepare reading procedure
|
||||
void flash_read_start();
|
||||
|
||||
/// finish reading procedure
|
||||
void flash_read_end();
|
||||
|
||||
/// read flash block (offset and size are not limited by any boundares\banks)
|
||||
/// @param offset absolute flash offset
|
||||
virtual void flash_read_block(size_t offset, size_t size, ByteVector &data) = 0;
|
||||
virtual bool lock_write(const ByteVector &data) = 0;
|
||||
|
||||
void read_debug_status(uint8_t &status);
|
||||
void read_debug_config(uint8_t &config);
|
||||
@ -55,28 +105,51 @@ public:
|
||||
void read_xdata_memory(uint16_t address, size_t count, ByteVector &out);
|
||||
uint8_t read_xdata_memory(uint16_t address);
|
||||
|
||||
/// @param debug_mode if true after reset target will be halted
|
||||
void reset(bool debug_mode);
|
||||
|
||||
void flash_read_start();
|
||||
void flash_read_end();
|
||||
uint_t lock_data_size() const;
|
||||
|
||||
bool set_flash_size(uint_t flash_size);
|
||||
void set_programmer_ID(const USB_DeviceID& programmer_ID);
|
||||
|
||||
CC_UnitDriver(USB_Device &programmer, ProgressWatcher &pw);
|
||||
|
||||
protected:
|
||||
// some procedures is valid only for subset of targets
|
||||
void select_info_page_flash(bool select_info_page);
|
||||
|
||||
// Out data will be put in the end of data
|
||||
void flash_read_32k(size_t address, size_t size, ByteVector &data);
|
||||
void flash_large_read_block(size_t offset, size_t size, ByteVector &data);
|
||||
/// Read data from the 16-bit address space. Bank number is not changed.
|
||||
/// Result data will be appended to the end of data
|
||||
void flash_read_near(uint16_t address, size_t size, ByteVector &data);
|
||||
|
||||
/// Read any block size
|
||||
void flash_read(size_t offset, size_t size, ByteVector &data);//todo: rename!!!
|
||||
|
||||
void set_reg_info(const UnitCoreInfo &);
|
||||
UnitCoreInfo get_reg_info();
|
||||
|
||||
void write_flash_slow(const DataSectionStore §ions);
|
||||
|
||||
//void write_flash_word(const DataSectionStore §ions);
|
||||
void write_lock_to_info_page(uint8_t lock_byte);
|
||||
//void
|
||||
|
||||
/// @return true if specified memory block contains only 1s ()
|
||||
bool empty_block(const uint8_t* data, size_t size);
|
||||
|
||||
/// Convert list of string qulifiers 'debug', 'flash:xx', 'boot'
|
||||
void convert_lock_data_std_set(
|
||||
const StringVector& qualifiers,
|
||||
const ByteVector& lock_sizes,
|
||||
ByteVector& lock_data);
|
||||
|
||||
USB_Device &usb_device_;
|
||||
ProgressWatcher &pw_;
|
||||
UnitInfo unit_info_;
|
||||
|
||||
uint8_t endpoint_in_;
|
||||
uint8_t endpoint_out_;
|
||||
|
||||
private:
|
||||
uint16_t calc_block_crc();
|
||||
|
||||
|
@ -17,7 +17,10 @@ UnitInfo::UnitInfo() :
|
||||
revision(0),
|
||||
flags(0),
|
||||
flash_size(0),
|
||||
max_flash_size(0),
|
||||
ram_size(0),
|
||||
mac_address_count(0),
|
||||
mac_address_size(0),
|
||||
flash_page_size(0)
|
||||
{ }
|
||||
|
||||
@ -28,3 +31,14 @@ UnitCoreInfo::UnitCoreInfo()
|
||||
//==============================================================================
|
||||
size_t UnitInfo::actual_flash_size() const
|
||||
{ return 1024 * (flash_size ? flash_size : max_flash_size); }
|
||||
|
||||
#define CHECK_PARAM(x) check_param(x, __FILE__, __LINE__)
|
||||
|
||||
//==============================================================================
|
||||
void check_param(bool assert, const String& module, uint_t line)
|
||||
{
|
||||
if (assert)
|
||||
return;
|
||||
|
||||
throw std::runtime_error("internal error at " + module + ":" + number_to_string(line));
|
||||
}
|
||||
|
@ -26,8 +26,8 @@ struct Unit_ID
|
||||
struct UnitInfo
|
||||
{
|
||||
enum Flags {
|
||||
SUPPORT_USB = 0x01,
|
||||
SUPPORT_MAC_ADDRESS = 0x02,
|
||||
SUPPORT_USB = 0x01, // remove
|
||||
SUPPORT_MAC_ADDRESS = 0x02, // remove, use mac_address_count to checck
|
||||
SUPPORT_INFO_PAGE = 0x04
|
||||
};
|
||||
|
||||
@ -36,12 +36,15 @@ struct UnitInfo
|
||||
uint8_t internal_ID; // read from chip
|
||||
uint8_t revision; // read from chip
|
||||
uint_t flags;
|
||||
|
||||
uint_t flash_size; // in KB
|
||||
uint_t max_flash_size; // in KB
|
||||
UintVector flash_sizes; // list of possible flash sizes, in KB
|
||||
|
||||
uint_t ram_size; // in KB
|
||||
uint_t mac_address_count;
|
||||
uint_t flash_page_size; // in KB // todo: remove
|
||||
uint_t lock_size; //
|
||||
uint_t mac_address_size;
|
||||
uint_t flash_page_size; // in KB
|
||||
|
||||
size_t actual_flash_size() const;
|
||||
|
||||
@ -50,6 +53,7 @@ struct UnitInfo
|
||||
|
||||
struct UnitCoreInfo
|
||||
{
|
||||
size_t lock_size; //
|
||||
size_t flash_word_size;
|
||||
size_t verify_block_size;
|
||||
size_t write_block_size;
|
||||
@ -57,7 +61,7 @@ struct UnitCoreInfo
|
||||
uint16_t dma0_cfg_offset;
|
||||
uint16_t dma_data_offset;
|
||||
|
||||
// Xdata registers addresses;
|
||||
// Xdata register addresses;
|
||||
uint16_t memctr;
|
||||
uint16_t fmap;
|
||||
uint16_t rndl;
|
||||
@ -73,10 +77,14 @@ struct UnitCoreInfo
|
||||
uint16_t dma_irq;
|
||||
|
||||
uint8_t fctl_write;
|
||||
uint8_t fctl_erase;
|
||||
|
||||
UnitCoreInfo();
|
||||
};
|
||||
|
||||
typedef std::list<Unit_ID> Unit_ID_List;
|
||||
|
||||
void check_param(bool assert, const String& module, uint_t line);
|
||||
#define CHECK_PARAM(x) check_param(x, __FILE__, __LINE__)
|
||||
|
||||
#endif // !_CC_UNIT_INFO_H_
|
||||
|
@ -258,6 +258,12 @@ void USB_Device::set_debug_mode(DebugLevel level)
|
||||
libusb_set_debug(context_.get(), level);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void USB_Device::reset_device()
|
||||
{
|
||||
libusb_reset_device(handle_);
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
void USB_Device::claim_interface(uint_t interface_number)
|
||||
{
|
||||
@ -332,7 +338,7 @@ void USB_Device::control_write(uint8_t bmRequestType, uint8_t bRequest, uint16_t
|
||||
bmRequestType |= LIBUSB_ENDPOINT_OUT;
|
||||
|
||||
log_info("usb, control write, request_type: %02Xh, request: %02Xh, value: %04Xh, index: %04Xh, count: %u",
|
||||
bmRequestType, bRequest, wIndex, wValue, count);
|
||||
bmRequestType, bRequest, wValue, wIndex, count);
|
||||
if (count)
|
||||
log_info("usb, control write, data: %s", binary_to_hex(data, count, " ").c_str());
|
||||
|
||||
|
@ -25,6 +25,8 @@ public:
|
||||
|
||||
void set_transfer_timeout(uint_t timeout);
|
||||
|
||||
void reset_device();
|
||||
|
||||
void set_configuration(uint_t configuration); // throw
|
||||
void claim_interface(uint_t interface_number); // throw
|
||||
void release_interface(uint_t interface_number); // throw
|
||||
|
@ -14,9 +14,9 @@
|
||||
#include "common.h"
|
||||
|
||||
const uint_t VERSION_MAJOR = 0;
|
||||
const uint_t VERSION_MINOR = 18;
|
||||
const uint_t VERSION_MINOR = 26;
|
||||
|
||||
const char MODULE_NAME[] = "cc-tool";
|
||||
const char MODULE_DESCRIPTION[] = "Texas Instruments 8051-based System-On-Chip devices programmer using TI CC Debugger";
|
||||
const char MODULE_DESCRIPTION[] = "Texas Instruments 8051-based System-On-Chip device programmer";
|
||||
|
||||
#endif // !_VERSION_H_
|
||||
|
@ -3,6 +3,7 @@ ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a
|
||||
|
||||
# SmartRF04 Evaluation Board
|
||||
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11a0", ATTRS{idProduct}=="db20", MODE="0666"
|
||||
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11a0", ATTRS{idProduct}=="eb20", MODE="0666"
|
||||
|
||||
# CC Debugger
|
||||
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a2", MODE="0666"
|
||||
|
Loading…
x
Reference in New Issue
Block a user