Skip to content

Debug utility for finding missing files, directories, links, includes, references and recursive paths used in lib.defs files for OpenAccess enabled applications.

License

Notifications You must be signed in to change notification settings

EDDRSoftware/libdefsEval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libdefsEval

Debug utility for finding missing files, directories, links, includes, and references used in lib.defs files for the OpenAccess file format.

This application is built using two boost libraries: boost/program_options and boost/filesystem. This is an attempt to allow other operating systems other than Linux to take advantage of this application in the future.

Tested Requirements: (You might be able to earlier versions, but this might require some alterations of code.) Linux RHEL6 Boost version 1_64_0 with header files

$ locate program_options.hpp
/usr/local/boost_1_64_0/boost/program_options.hpp
$ locate locate filesystem/operations.hpp
/usr/local/boost_1_64_0/boost/filesystem/operations.hpp

If these two files are not found on your system, please go to http://boost.org to get them.

To get started, here are the initial steps you will need to run.

$ git clone https://github.com/EDDRSoftware/libdefsEval.git
$ cd libdefsEval
$ locate program_options.so
/usr/local/boost_1_64_0/stage/lib/libboost_program_options.so
$

Use your favorite editor and edit the lines pertaining to BOOST. These should start around line 34. The original looks like this:

BOOST_ROOT = /usr/local/boost_1_64_0
BOOST_LIB  = $(BOOST_ROOT)/stage/lib
BOOST_INC  = $(BOOST_ROOT)/boost

Note that the BOOST_ROOT should point to your version of boost. The locate statement from above should help you decipher where your BOOST_ROOT should point. If you have more than one version of the library listed from the locate statement, I would suggest using the newest version. This might require you to add or update a LD_LIBRARY_PATH environment variable to your system.

Once you have updated the BOOST_ROOT path in the Makefile, you should be able to run make.

$ make
g++ -o ./libdefseval main.cpp -I/usr/local/boost_1_64_0 -I/usr/local/boost_1_64_0/boost -L/usr/local/boost_1_64_0/stage/lib -lboost_program_options -lboost_filesystem -lboost_system
$ ls libdefseval
libdefseval

Congratulations! You have successfully built the application.

To run a test on the testData directory, just run...

$ make test2
LD_LIBRARY_PATH=/usr/local/boost_1_64_0/stage/lib ./libdefseval --def ./testData/lib.defs --libs --cells --views
def: ./testData/lib.defs
DEFINE: /home/username/Development/libdefsEval_orig/testData/lib.defs:2 "DEFINE my_lib $PWD/testData/library"
libPath: /home/username/Development/libdefsEval_orig/testData/library
        libName: my_lib
                cellName: cell1
                        viewName: layout
                        viewName: symbol
                cellName: cell2
                cellName: cell3
ERROR: Recursion in file => "/home/username/Development/libdefsEval_orig/testData/lib.defs" includes file => "/home/username/Development/libdefsEval_orig/testData/lib.defs" which references itself.
INVALID LINE: /home/username/Development/libdefsEval_orig/testData/lib.defs:4 => DEFINE test #This line is treated as an error to help debug.
ERROR: No such file or directory "/home/username/Development/libdefsEval_orig/testData/here"
INVALID LINE: "/home/username/Development/libdefsEval_orig/testData/lib.defs":5 => DEFINE missing_lib $PWD/testData/here
DEFINE: /home/username/Development/libdefsEval_orig/testData/lib.defs:6 "DEFINE dir_link_lib ./directory_link"
libPath: /home/username/Development/libdefsEval_orig/testData/library
        libName: dir_link_lib
                cellName: cell1
                        viewName: layout
                        viewName: symbol
                cellName: cell2
                cellName: cell3
INVALID LINE: /home/username/Development/libdefsEval_orig/testData/lib.defs:7 => INCLUDE #This line is treaded as an error to help debug.
ERROR: Recursion in file => "/home/username/Development/libdefsEval_orig/testData/lib.defs" includes file => "/home/username/Development/libdefsEval_orig/testData/lib.defs" which references itself.
DEFINE: /home/username/Development/libdefsEval_orig/testData/new_dir/symbol.inc:1 "DEFINE test_lib ../library"
libPath: /home/username/Development/libdefsEval_orig/testData/library
        libName: test_lib
                cellName: cell1
                        viewName: layout
                        viewName: symbol
                cellName: cell2
                cellName: cell3
ERROR: Path "/home/username/Development/libdefsEval_orig/testData/./broken_link" contains a broken symlink.
INVALID LINE: "/home/username/Development/libdefsEval_orig/testData/lib.defs":10 => DEFINE broken_lib ./broken_link
$ 

Notice that the ‘test2’ shows plenty of examples of failures. This is intended for the test. Also, note the first line of output has set the LD_LIBRARY_PATH to include the boost libraries needed during execution. LD_LIBRARY_PATH=/usr/local/boost_1_64_0/stage/lib You can also set these permanently by adding the line below to your ~/.bashrc file. Keep in mind that the path should be relevant to the location of the boost libraries on your machine.

export LD_LIBRARY_PATH=/usr/local/boost_1_64_0/stage/lib

About

Debug utility for finding missing files, directories, links, includes, references and recursive paths used in lib.defs files for OpenAccess enabled applications.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published