summaryrefslogtreecommitdiff
path: root/docs/html/xbac.html
blob: e022890fa4b6a42fb4c758d8ab14dcbe0a22fd56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!DOCTYPE HTML PUBLIC>
<HTML>
<TITLE>Xbase DBMS Appendix C</TITLE>
<BODY BGCOLOR=#FFFFFF>
<H2><p align="center">Library Build Compile Options</p></H2>
<p align="center">Chapter Updated 2/1/23</p><hr>



<center>
<H2>Library Build Compile Options</H2>
<table >
<TABLE BORDER>
<TR VALIGN="BASELINE">
<TR><TH>Options</TH><TH>Description</TH><TH>Prerequisites - Notes</TH></TR>
<TR><TD>XB_DEBUG_SUPPORT</TD><TD>Include library debugging functionality</TD></TR>
<TR><TD>XB_UTILS_SUPPORT</TD><TD>Build utility programs?</TD></TR>
<TR><TD>XB_EXAMPLES_SUPPORT</TD><TD>Build example programs?</TD></TR>
<TR><TD>XB_MEMO_SUPPORT</TD><TD>Include Memo file support?</TD><TD>Prereq: XB_LINKLIST_SUPPORT</TD></TR>
<TR><TD>XB_LOGGING_SUPPORT</TD><TD>Include logging support?</TD></TR>
<TR><TD>XB_DBF3_SUPPORT</TD><TD>Include DBF Version III support?</TD><TD>At lease one of XB_DBF3_SUPPORT or<br> XB_DBF4_SUPPORT required</TD></TR>
<TR><TD>XB_DBF4_SUPPORT</TD><TD>Include DBF Version IV support?</TD><TD>At least one of XB_DBF3_SUPPORT or<br> XB_DBF4_SUPPORT required</TD></TR>
<TR><TD>XB_LINKLIST_SUPPORT</TD><TD>Include Linklist functionality?</TD></TR>
<TR><TD>XB_LOCKING_SUPPORT</TD><TD>Include File and Record locking support?</TD><TD>Prereq: XB_LINKLIST_SUPPORT</TD></TR>
<TR><TD>XB_FUNCTION_SUPPORT</TD><TD>Include Expression Function support?</TD></TR>
<TR><TD>XB_EXPRESSION_SUPPORT</TD><TD>Include Expression support?</TD><TD>Prereq: XB_FUNCTION_SUPPORT<br>and XB_LINKLIST_SUPPORT</TD></TR>
<TR><TD>XB_NDX_SUPPORT</TD><TD>Include NDX Index support?</TD><TD>Prereq: XB_EXPRESSION_SUPPORT</TD></TR>
<TR><TD>XB_MDX_SUPPORT</TD><TD>Include MDX Index support?</TD><TD>Prereq: XB_EXPRESSION_SUPPORT</TD></TR>
<TR><TD>XB_SQL_SUPPORT</TD><TD>Include SQL support?</TD><TD>Prereq: XB_MEMO_SUPPORT<br>and XB_DBF4_SUPPORT<br>and XB_BLOCKREAD_SUPPORT<br>and XB_EXPRESSION_SUPPORT</TR>
<TR><TD>XB_INF_SUPPORT</TD><TD>Include INF support (Provides auto open functions for NDX indices)</TD></TR>
<TR><TD>XB_FILTER_SUPPORT</TD><TD>Include Filter support</TD><TD>Prereq: XB_EXPRESSION_SUPPORT</TD></TR>
<TR><TD>XB_BLOCKREAD_SUPPORT</TD><TD>Include Block Read support</TD></TR>
</TABLE></center>



<br><br><hr><br><br>
<center><h2>CMake</h2></center>
The Xbase library is built using the CMake build manager. Cmake provides the architecture for 
building cross platform projects with a unified build system.  If you are not familiar with CMake, 
you can familiarize yourself with it at https://cmake.org
<br><br>
To modify the XBase64 compile options take the following steps:<br><br><br>

1) Identify which platform you want to build and identify the correct build folder
<table border=1>
<tr><td>/xbase64-4.x.x/build/borland5.5</td><td>Older free Borland 5.5 32 bit Windows compiler</td></tr>
<tr><td>/xbase64-4.x.x/build/linux32</td><td>Linux 32 bit build folder</td></tr>
<tr><td>/xbase64-4.x.x/build/linux64</td><td>Linux 64 bit build folder</td></tr>
<tr><td>/xbase64-4.x.x/build/win32vs</td><td>Windows 32 bit Visual Studio folder</td></tr>
<tr><td>/xbase64-4.x.x/build/win64vs</td><td>Windows 64 bit Visual Studio folder</td></tr>
<tr><td>/xbase64-4.x.x/build/mac64</td><td>MAC 64 but folder</td></tr>
</table>

<br><br><br>
2) Navigate to the appropriate folder identified in step 1.  Once you are in the correct folder,
verify there is a <em>CmakeLists.txt</em> file.  That file is the main librbary build configuration file.
<br><br>

3) Select one if the following methods to update the config options 
<table border=1>
<tr><td>For Windows users, use program cmake-gui.exe</td></tr>
<tr><td>For Unix/Linux/Mac users, use program cmake-gui</td></tr>
<tr><td>For Unix command line, use program "ccmake ."</td></tr>
<tr><td>Or manually edit the <em>CmakeLists.txt</em> file with your favorite text editor</td></tr>
</table>
<br><br><br>
<hr><br><br><br>
<center><h2>Debug Support <em>(Option: XB_DEBUG_SUPPORT)</em></h2></center>
The following methods are included in the build when the XB_DEBUG_OPTION is turned on and are mainly used for library debugging purposes.
The option can be safely left turned off.<br>
The <em>dump</em> routines print output to sdtout or an open log file.<br><br><br>

<center><table border=1>
<TR><TH>Method/Function</TH><TH>Description</TH></TR>
<tr><td>xbDate::Dump()</td><td>Dump the xbDate object internals to stdout</td></tr>
<tr><td>xbDate::DumpDateTable()</td><td>Dump internal date tables to stdout</td></tr>
<tr><td>xbDbf::DumpTableLockStatus()</td><td>Dump internal locking status / structures</td></tr>
<tr><td>xbExp::DumpToken()</td><td>Dump expression values</td></tr>
<tr><td>xbExp::DumpTree()</td><td>Dump expression token tree</td></tr>
<tr><td>xbExpNode::DumpToken()</td><td>Dump expression node values</td></tr>
<tr><td>xbFile::DumpBlockToDisk</td><td>Dump specified block of data to a disk file</td></tr>
<tr><td>xbFile::DumpMemToDisk</td><td>Dump specified memory to a disk file</td></tr>
<tr><td>xbIx::DumpNode</td><td>Dump index node header</td></tr>
<tr><td>xbIxMdx::DumpBlock</td><td>Dump MDX index block</td></tr>
<tr><td>xbIxMdx::DumpFreeBlocks</td><td>Dump MDX free block chain</td></tr>
<tr><td>xbIxMdx::DumpHeader</td><td>Dump MDX file header info</td></tr>
<tr><td>xbIxMdx::DumpIxForTag</td><td>Dump MDX index keys and values for a given tag</td></tr>
<tr><td>xbIxMdx::DumpIxNodeChain</td><td>Dump MDX current memory node linked list for a given tag</td></tr>
<tr><td>xbIxMdx::DumpTagBlocks</td><td>Dump MDX blocks for a given tag</td></tr>
<tr><td>xbIxNdx::DumpHeader</td><td>Dump MDX file header info</td></tr>
<tr><td>xbIxNdx::DumpIxNodeChain</td><td>Dump MDX current memory node linked list for a given tag</td></tr>
<tr><td>xbIxNdx::DumpNode</td><td>Dump index node header</td></tr>
<tr><td>xbIxNdx::DumpTagBlocks</td><td>Dump NDX blocks for a given tag</td></tr>
<tr><td>xbMemoDbt3::DumpMemoFreeChain()</td><td>Place holder</td></tr>
<tr><td>xbMemoDbt4::DumpMemoFreeChain()</td><td>Dump list of free blocks available for reuse</td></tr>
<tr><td>xbMemoDbt4::DumpMemoInternals()</td><td>Dump V4 memo file internals</td></tr>
<tr><td>xbString::Dump()</td><td>Dump string internals</td></tr>
<tr><td>xbString::DumpHex()</td><td>Dump string internals in hex</td></tr>
<tr><td>xbBlockRead::DumpReadBlockInternals</td><td>Dump sequential read block internals</td></tr>
</table></center>


<br><hr><br><br>
<p><img src="xbase.jpg"><br><hr>
</BODY>
</HTML>