Merged changes from 3.15 branch up to revno 12670

This commit is contained in:
Andrew Johnson
2015-04-16 18:12:59 -05:00
10 changed files with 92 additions and 33 deletions

View File

@@ -239,8 +239,7 @@ menu%.h$(DEP): ../menu%.dbd
%.dbd$(DEP): %.dbd.pod %.dbd$(DEP): %.dbd.pod
@$(RM) $@ @$(RM) $@
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@ @echo "$(COMMONDEP_TARGET): ../Makefile" > $@
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
%.dbd$(DEP): %Include.dbd %.dbd$(DEP): %Include.dbd
@$(RM) $@ @$(RM) $@
@@ -281,6 +280,8 @@ menu%.h$(DEP): ../menu%.dbd
@$(RM) $@ @$(RM) $@
@$(ACFDEPENDS_CMD) @$(ACFDEPENDS_CMD)
.PRECIOUS: %$(DEP)
##################################################### CapFast filter ##################################################### CapFast filter
$(COMMON_DIR)/%.edf: ../%.sch $(DEPSCHS) $(COMMON_DIR)/%.edf: ../%.sch $(DEPSCHS)
@@ -370,7 +371,7 @@ $(COMMON_DIR)/bpt%.dbd: bpt%.data
$(COMMON_DIR)/%.dbd: %.dbd.pod $(COMMON_DIR)/%.dbd: %.dbd.pod
@$(RM) $(notdir $@) @$(RM) $(notdir $@)
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $< $(PERL) $(TOOLS)/podRemove.pl -o $(notdir $@) $<
@$(MV) $(notdir $@) $@ @$(MV) $(notdir $@) $@
$(COMMON_DIR)/%.dbd: %Include.dbd $(COMMON_DIR)/%.dbd: %Include.dbd
@@ -422,7 +423,7 @@ $$(INSTALL_DBD)/$$(notdir $(1)) : $(1)
endef endef
$(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file)))) $(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
.PRECIOUS: $(COMMON_DBDS) $(COMMON_DIR)/%Include.dbd .PRECIOUS: $(COMMON_DBDS) $(COMMON_DIR)/%.dbd
##################################################### HTML files ##################################################### HTML files

View File

@@ -260,7 +260,7 @@ YACCOPT ?= $($*_YACCOPT)
$(LIBNAME) $(TESTLIBNAME): $(LIBRARY_OBJS) $(LIBNAME) $(TESTLIBNAME): $(LIBRARY_OBJS)
$(LIBNAME) $(TESTLIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX): $(filter-out $(DLLSTUB_LIBNAME) $(TESTDLLSTUB_LIBNAME), $(LIBNAME) $(TESTLIBNAME)): $(LIB_PREFIX)%$(LIB_SUFFIX):
@$(RM) $@ @$(RM) $@
$(ARCMD) $(ARCMD)
ifneq ($(strip $(RANLIB)),) ifneq ($(strip $(RANLIB)),)
@@ -270,13 +270,13 @@ endif # RANLIB
$(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \ $(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \
$(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS) $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(DLLSTUB_LIBNAME): $(SHRLIBNAME) $(DLLSTUB_LIBNAME): $(SHRLIBNAME);
$(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX): $(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
@$(RM) $@ @$(RM) $@
$(LINK.shrlib) $(LINK.shrlib)
$(MT_DLL_COMMAND) $(MT_DLL_COMMAND)
$(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): $(TESTSHRLIBNAME);
$(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX): $(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
@$(RM) $@ @$(RM) $@
$(LINK.shrlib) $(LINK.shrlib)

View File

@@ -1,6 +1,6 @@
Installation Instructions Installation Instructions
EPICS Base Release 3.15.1 EPICS Base Release 3.15.2
-------------------------------------------------------------------------- --------------------------------------------------------------------------

View File

@@ -9,7 +9,7 @@
<BODY> <BODY>
<CENTER> <CENTER>
<H1>Installation Instructions</H1> <H1>Installation Instructions</H1>
<H2>EPICS Base Release 3.15.1</H2><BR> <H2>EPICS Base Release 3.15.2</H2><BR>
</CENTER> </CENTER>
<HR> <HR>
<H3> Table of Contents</H3> <H3> Table of Contents</H3>

View File

@@ -652,7 +652,7 @@ not follow this pattern, but are still printable strings.
=item [1] R3.15 Channel Access Reference Manual by Jeffrey O. Hill =item [1] R3.15 Channel Access Reference Manual by Jeffrey O. Hill
L<http://www.aps.anl.gov/epics/base/R3-15/0-docs/CAref.html> L<http://www.aps.anl.gov/epics/base/R3-15/2-docs/CAref.html>
=back =back

View File

@@ -323,7 +323,7 @@ inline int aitString::installBuf(const char* pString, unsigned strLengthIn, unsi
inline int aitString::installBuf(const char* pString) inline int aitString::installBuf(const char* pString)
{ {
unsigned strLengthIn = strlen(pString); unsigned strLengthIn = (unsigned) strlen(pString);
return this->installBuf(pString, strLengthIn, strLengthIn+1u); return this->installBuf(pString, strLengthIn, strLengthIn+1u);
} }
@@ -350,7 +350,7 @@ inline int aitString::installConstBuf(const char* pString, unsigned strLengthIn,
inline int aitString::installConstBuf(const char* pString) inline int aitString::installConstBuf(const char* pString)
{ {
unsigned strLengthIn = strlen(pString); unsigned strLengthIn = (unsigned) strlen(pString);
return this->installConstBuf(pString, strLengthIn, strLengthIn+1u); return this->installConstBuf(pString, strLengthIn, strLengthIn+1u);
} }
@@ -378,7 +378,7 @@ inline int aitString::installConstImortalBuf(const char* pString,
inline int aitString::installConstImortalBuf(const char* pString) inline int aitString::installConstImortalBuf(const char* pString)
{ {
unsigned strLengthIn = strlen(pString); unsigned strLengthIn = (unsigned) strlen(pString);
return this->installConstImortalBuf(pString, strLengthIn, strLengthIn+1u); return this->installConstImortalBuf(pString, strLengthIn, strLengthIn+1u);
} }
@@ -396,7 +396,7 @@ inline int aitString::copy(const char* pString, unsigned stringLength)
inline int aitString::copy(const char* p) inline int aitString::copy(const char* p)
{ {
return this->copy(p, strlen(p)); return this->copy(p, (unsigned) strlen(p));
} }
inline int aitString::copy(const aitString* p) inline int aitString::copy(const aitString* p)
@@ -436,7 +436,7 @@ inline aitString::aitString(void)
inline aitString::aitString(const char* p, aitStrType typeIn) inline aitString::aitString(const char* p, aitStrType typeIn)
{ {
unsigned strLengthIn = strlen(p); unsigned strLengthIn = (unsigned) strlen(p);
this->init(p, typeIn, strLengthIn, strLengthIn+1u); this->init(p, typeIn, strLengthIn, strLengthIn+1u);
} }

View File

@@ -2280,28 +2280,29 @@ long dbPutString(DBENTRY *pdbentry,const char *pstring)
case DBF_INLINK: case DBF_INLINK:
case DBF_OUTLINK: case DBF_OUTLINK:
case DBF_FWDLINK: { case DBF_FWDLINK: {
dbLinkInfo link_info; dbLinkInfo link_info;
DBLINK *plink = (DBLINK *)pfield; DBLINK *plink = (DBLINK *)pfield;
status = dbParseLink(pstring, pflddes->field_type, &link_info); status = dbParseLink(pstring, pflddes->field_type, &link_info);
if (status) break;
if(status==0 && plink->type==CONSTANT && plink->value.constantStr==NULL) { if (plink->type==CONSTANT && plink->value.constantStr==NULL) {
/* links not yet initialized by dbInitRecordLinks() */ /* links not yet initialized by dbInitRecordLinks() */
free(plink->text); free(plink->text);
plink->text = epicsStrDup(pstring); plink->text = epicsStrDup(pstring);
free(link_info.target); free(link_info.target);
} else {
/* assignment after init (eg. autosave restore) */
struct dbCommon *prec = pdbentry->precnode->precord;
devSup *devsup = (devSup *)ellNth(&pdbentry->precordType->devList, prec->dtyp+1);
} else if(status==0) { status = dbCanSetLink(plink, &link_info, devsup);
/* assignment after init (eg. autosave restore) */ if (status == 0)
struct dbCommon *prec = pdbentry->precnode->precord; status = dbSetLink(plink, &link_info, devsup);
devSup *devsup = (devSup *)ellNth(&pdbentry->precordType->devList, prec->dtyp+1); }
status = dbCanSetLink(plink, &link_info, devsup);
if(status==0)
status = dbSetLink(plink, &link_info, devsup);
} }
break;
}
break;
default: default:
return S_dbLib_badField; return S_dbLib_badField;
} }

View File

@@ -24,7 +24,7 @@ accepted by the EPICS IOC's dbLoadTemplate command.</p>
<h2>Command Syntax:</h2> <h2>Command Syntax:</h2>
<pre>msi -V -g -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre> <pre>msi -V -g -D -o<i>outfile</i> -I<i>dir</i> -M<i>subs</i> -S<i>subfile</i> <i>template</i></pre>
<p>All parameters are optional. The -o, -I, -M, and -S switches may be <p>All parameters are optional. The -o, -I, -M, and -S switches may be
separated from their associated value string by spaces if desired. Output will separated from their associated value string by spaces if desired. Output will
@@ -46,6 +46,13 @@ be written to stdout unless the -o option is given.</p>
this was the behavior of previous versions of msi, but it does not follow this was the behavior of previous versions of msi, but it does not follow
common scoping rules and is discouraged.</dd> common scoping rules and is discouraged.</dd>
<dt><tt>-D</tt></dt>
<dd>Output dependency information suitable for including by a Makefile to
stdout instead of performing the macro substitutions. The <tt>-o</tt> option
must be given to specify the target name for the dependency rules. Other
options should be given exactly as will be used in the macro substitution
process.</dd>
<dt><tt>-o</tt> <i>file</i></dt> <dt><tt>-o</tt> <i>file</i></dt>
<dd>Output will be written to the specifed file rather than to the standard <dd>Output will be written to the specifed file rather than to the standard
output.</dd> output.</dd>

View File

@@ -51,6 +51,7 @@ PERL_SCRIPTS += dbdToRecordtypeH.pl
PERL_SCRIPTS += dbdExpand.pl PERL_SCRIPTS += dbdExpand.pl
PERL_SCRIPTS += dbdToHtml.pl PERL_SCRIPTS += dbdToHtml.pl
PERL_SCRIPTS += podToHtml.pl PERL_SCRIPTS += podToHtml.pl
PERL_SCRIPTS += podRemove.pl
PERL_SCRIPTS += registerRecordDeviceDriver.pl PERL_SCRIPTS += registerRecordDeviceDriver.pl
HTMLS = style.css HTMLS = style.css

49
src/tools/podRemove.pl Normal file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env perl
#*************************************************************************
# Copyright (c) 2015 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
use strict;
use warnings;
use Getopt::Std;
our ($opt_o);
$Getopt::Std::OUTPUT_HELP_VERSION = 1;
&HELP_MESSAGE if !getopts('o:') || @ARGV != 1;
my $infile = shift @ARGV;
if (!$opt_o) {
($opt_o = $infile) =~ s/\.pod$//;
$opt_o =~ s/^.*\///;
}
open my $inp, '<', $infile or
die "podRemove.pl: Can't open $infile: $!\n";
open my $out, '>', $opt_o or
die "podRemove.pl: Can't create $opt_o: $!\n";
my $inPod = 0;
while (<$inp>) {
if (m/\A=[a-zA-Z]/) {
$inPod = !m/\A=cut/;
}
else {
print $out $_ unless $inPod;
}
}
close $out;
close $inp;
sub HELP_MESSAGE {
print STDERR "Usage: podRemove.pl [-o file] file.pod\n";
exit 2;
}