Commit Graph
141 Commits
Author SHA1 Message Date
Andrew Johnson 4b1fd8cba0 Modify registerRecordDeviceDriver for loadable support
Don't generate code to register record types that have only
been declared, i.e. that have no fields defined in them.
This allows libraries to created which only contain device
support without the record types that they support. The
library must have a DBD file that may declare the record
types (to avoid generating a warning) and also contains any
other device(), variable(), function() and registrar()
entries for software included in the library.

Adds -l flag to the registerRecordDeviceDriver program,
which results in epicsExportSharedSymbols being defined
and shareLib.h being reloaded so the generated output file
can be linked into the library that it is registering.
This aspect has not been tested on Windows DLLs yet.
2014-07-28 00:18:37 -05:00
Andrew Johnson 163cf7971d Errors from the DBD Parser should stop dbdExpand
Such errors used to be just warnings, now they stop the output
file being generated unless the -D flag was given.
2014-07-28 00:16:16 -05:00
Andrew Johnson a2d511b6e9 DBD parser accepts record type declarations
Record types are the only DBD entries for which the parser
will not accept redefinitions. This change lets it accept
a record type declaration any number of times. However once
a record type declaration has been parsed the full record
type definition cannot be loaded, an error will be raised
if the full definition is seen. The parser will still not
accept a full record type definition more than once either,
any later copies of the record type must be declarations.
2014-07-27 23:55:47 -05:00
Andrew Johnson 8eed4cdd88 Perl DBD Parser: Autovivify record types in device() entries
If a record type named in a device() entry does not exist when
the device is seen, the DBD parser will now print a warning
and create an empty record type with that name to hold the
device entry information.
This will allow support modules to be built into libraries that
include their own registerRecordDeviceDriver code, which was
apparently possible with 3.14 although not officially supported.
To avoid the warning message, the DBD file can declare each
record type before the device statement that uses it.

A record type declaration looks like this:
    recordtype(ao) {}
    device(ao, ....)
An IOC will accept and ignore a record type declaration, but it
must have loaded the full record type definition first.
2014-07-27 23:37:58 -05:00
Ralph Lange 271e1811e3 ioc/dbStatic: make offset in field description an unsigned short, add cast to code generator
fixes ~2600 compiler warnings (on windows-x64)
2014-05-22 16:18:02 +02:00
Andrew Johnson 0a2020e2fc Merged changes from 3.14 branch
Up to 3.14.12.4 release.
2013-12-17 12:54:04 -06:00
Michael Davidsaver 034388f009 recognize and store field attribute "prop()" 2013-11-04 13:39:16 -05:00
Andrew Johnson 91ef05b5dc tools: Improve dbdExpand.pl error/warning message
Missing files used to result in an empty output file.
Now it warns instead of dying, and suggests adding a
dependency to the Makefile.
2013-10-14 12:43:26 -05:00
Andrew Johnson 8a28858ada Merged changes from 3.14 branch. 2013-07-10 16:18:18 -05:00
Andrew Johnson 75a5f19d2e IOCS_APPL_TOP must be absolute path
Fix a recently introduced problem where cdCommands and envParams
had TOP as a relative path (which actually worked by chance).
Also fixed a problem with convertRelease hanging when the -t
argument matched the absolute path to TOP.
2013-07-10 14:13:31 -05:00
Andrew Johnson 9d9f345278 configure: Removed generation of xxxInclude.dbd files
Rules now expand the source DBD files directly in to the target.
Also removed the makeIncludeDbd.pl script which is no longer needed.
2013-06-18 10:01:37 -05:00
Andrew Johnson 2be5e15346 Merged changes from 3.14 branch
Up to revno 12420 inclusive.
2013-06-07 18:08:38 -05:00
Andrew Johnson 5ac686fafd tools: Munch support for module destructors
Added in VxWorks 6.9
2013-04-25 17:00:36 -05:00
Andrew Johnson 4f9928bc3c Merged changes from 3.14 branch
Up to revno 12404.
2013-03-15 15:23:55 -05:00
Andrew Johnson 451c4cc854 Unify #! line for Perl scripts
/usr/bin/env exists on all current workstation OSs.
2013-01-23 07:29:07 -06:00
Andrew Johnson 68bde36d75 Merged changes from 3.14 branch.
Merged up to commit 12364 (2012-09-11) inclusive.
2012-10-01 00:54:10 -05:00
Andrew Johnson 4790578953 tools: Try harder to collapse ../ components in AbsPath
Idea from Angus Gratton, ANU
2012-09-11 12:11:55 -05:00
Andrew Johnson f29e995103 Permit but check duplicate DBD entries
Record types cannot be duplicated however.
DBD sub-objects now have a ->what method for their description.
This also adds a method to look up a breaktable by name.
2012-08-22 16:54:54 -05:00
Andrew Johnson 0faff0f03e registerRecordDeviceDriver updates
Added -D and -o <outfile> options
Changed the build rules to use -o
Moved the script into src/tools
2012-08-10 11:40:50 -05:00
Andrew Johnson 93f7caebc4 tools/DBD: Fix DBD output of empty attributes
Use the regex's from Base.pm for value recognition
in both Parser.pm and Output.pm
2012-08-10 11:39:30 -05:00
Andrew Johnson 6bc0c6f6cd tools: mkmf.pl accepts -Mxxx options but ignores them
For compatibility with msi; users can put -Mvar=value into a
xxx_DBFLAGS variable to have msi define that macro when
generating the xxx.db file.  This lets mkmf accept the same
DBFLAGS variable that msi does in this case.
2012-07-31 16:09:54 -05:00
Andrew Johnson 3961dcbc51 Merged change from 3.14 branch
Includes everything up to revno 12353 on 2012-07-31
2012-07-31 14:21:01 -05:00
Andrew Johnson e03d10857c tools: Delete makeDbDepends.pl from Makefile 2012-07-31 14:09:02 -05:00
Andrew Johnson 8b616ba00a Merged changes from 3.14 branch
Includes everything up to revno 12352 on 2012-07-31
2012-07-31 14:04:38 -05:00
Janet Anderson 4133b666a0 Added die if no target file argument 2012-07-31 10:44:33 -05:00
Andrew Johnson 1864ac41fb Add support for native linux-arm builds. 2012-07-30 17:50:30 -05:00
Janet Anderson 1649ce6f79 Replaced makeDbDepends with mkmf 2012-07-30 17:10:57 -05:00
Andrew Johnson 48c805ab3d Trap and check warning message from macLib.plt test. 2012-07-09 12:37:27 -05:00
Andrew Johnson 024c9224c9 dbdToRecordtypeH.pl: Don't warn about unused menus. 2012-07-06 14:15:22 -05:00
Andrew Johnson 05f07d9ec8 tools/DBD: Improve error reporting
Better 'duplicate choice' message
Output messages to STDERR
2012-06-27 11:58:23 -05:00
Andrew Johnson 0ea56b82b8 Delete filterWarnings.pl script
Was only used on HPUX which we don't support any more.
2012-04-12 10:34:56 -05:00
Andrew Johnson 5d5aa57d72 tools: Add -q (quiet) flag to installEpics.pl
The -q flag now gets used when the GNUmake '-s' flag is provided.
This change also includes a cleanup of the installEpics.pl script.
2012-04-04 12:30:27 -05:00
Andrew Johnson de6d7b2cf0 Merged compiled-dbd branch.
This does all DBD-file processing at build-time in Perl scripts.
The result should behave almost identically to the old programs.
2012-04-04 12:07:46 -05:00
Andrew Johnson f1994996ad Convert registerRecordDeviceDriver.pl to use DBD module.
The output is now a bit more compact as it uses Text::Wrap on
the declarations and array data.
2012-03-27 10:47:59 -05:00
Andrew Johnson 116f0fd00c Run the tools/test files under the test harness 2012-03-14 15:27:40 -05:00
Andrew Johnson d3d8418855 Move src/dbHost scripts and modules into src/tools. 2012-03-13 18:00:46 -05:00
Andrew Johnson bf965cc59c Merged changes from 3.14 branch.
Includes all changes up to rev 12323 on 2012-02-20.
2012-02-20 10:01:04 -06:00
Andrew Johnson c32997ffa1 tools: Fix dependency file problem.
Reported by Eric.
2011-12-20 16:30:41 -06:00
Andrew Johnson f207b00b05 tools: Use Carp
Use carp and croak instead of warn and die in library routines.
2011-12-05 14:56:50 -06:00
Andrew Johnson d72b4a3c1e Fix install problems when using parallel builds.
If two targets using the same OS are built in parallel,
they can both try to install the same include/os/* file
at the same time, causing the installEpics.pl script to
die.  We fix this by making all installations atomic:
First copy the file to the installation directory using
a unique name, then rename it to the target name.  The
target name is in the same directory and filesystem as
the temporary name, so the rename should be atomic.
2011-10-28 13:19:08 -05:00
Andrew Johnson a367e4be95 tools: use AbsPath() instead of abs_path() in checkRelease
abs_path() dies for dirs that don't exist.
2011-07-13 10:38:13 -05:00
Andrew Johnson 3bf5b21f57 tools: Improve makeDbDepends
Rewrite, add support for quotes around filenames in "file" statements.
2011-06-08 12:26:01 -05:00
Andrew Johnson 8d15407e2f tools: Remove warning from newer versions of Perl.
Replace \1 with $1 in substitution strings.
2011-06-08 12:15:18 -05:00
Andrew Johnson ce0114418f tools: Fix LocalPath on Cygwin
The LocalPath() function must not replace /cygdrive/x with x:
This used to be necessary when mixing win32 and cygwin tools,
but we tell users not to do that any more.  This problem only
appears if the path to base starts with /cygdrive/x.
2011-05-23 16:34:58 -05:00
Andrew Johnson 23daca46a1 tools: More back-slash escape fixes
Thanks to Stephen Norum for pointing most of these out and
testing the patch.
2010-12-16 17:02:15 -06:00
Andrew Johnson af48ed31c3 tools: Need search path for uninstalled modules too.
This fixes the perl compilation failures of fullPathName.pl
that occur before the src/tools directory has been built, and
ensures that the other tools that use EPICS modules also work.
2010-10-26 09:27:47 -05:00
Andrew Johnson 62f603d820 tools: Drop EPICS_HOST_ARCH variable in checkRelease.
On Win32 abs_path() fails if the path given doesn't exist.
2010-10-18 11:35:28 -05:00
Andrew Johnson 0bacce77df Merged the keywords branch.
* Updated the ReleaseChecklist document for Bazaar
* Replaced all RCS $Id$ and $header$ keywords with $Revision-Id$
as supported by the Bazaar Keywords plug-in
* Changed a few names in CONFIG_BASE_VERSION and epicsVersion.h
* Removed various extraneous keywords and non-ASCII characters
2010-10-07 11:51:22 -05:00
Andrew Johnson d4bf5ec2d7 RTEMS: Added parentheses around command arguments for CEXP.
In particular the generated cdCommands file, and the lines in
the st.cmd@RTEMS file template.
2010-10-05 16:02:09 -05:00
Andrew Johnson fbda9f3280 RCS keyword updates for Bazaar
Replaced $Id$ and $Header$ keywords with $Revision-Id$
Deleted $Log$ keywords and any log messages
2010-10-05 14:27:37 -05:00