buildtms — Build transaction manager server
This binary is used for building transaction manager which has the linked in XA switch variable name. Otherwise the binary is the same as the tmsrv(8). Also the Enduro/X XA init procedure is standard one, and XA init procedure starts with loading shared library loading from the NDRX_XA_DRIVERLIB env variable (see ex_env(5)).
Thus for this kind of built-in XA switches, libndrxxatmsx(8) driver must be used.
To link-in the XA switch, the output server is main is generated and compiled during the buildtms run.
The command line template, how C compiler is invoked, is following:
<CC> [$CFLAGS] -o <binary_name> <generated_source>.c [-I<$NDRX_HOME>/include -L<NDRX_HOME>/{lib|lib64}] [<RM_libs>] -latmisrvinteg -latmi -lubf -lnstd
All file system path related buffers internally are set to 5120 bytes + EOS byte, thus for example if build command is longer than 5120, it will be truncated to 5120.
See atmitest/test071_buildtools/run.sh for samples. Some of them:
$ export CC=cc $ export CFLAGS="-g -I../../include -L../../libatmi -L../../libubf -L../../tmsrv -L../../libatmisrv -L../../libexuuid -L../../libexthpool -L../../libnstd" $ buildtms -k -o tmstest -rTestSw -v
That would result in following compilation unit:
$ cc -I../../include -L../../libatmi -L../../libubf -L../../tmsrv -L../../libatmisrv \ -L../../libexuuid -L../../libexthpool -L../../libnstd -o tmstest ndrx_tms_YJPUnv.c \ -I./include -L./lib -L ../test021_xafull -l xadrv -ltms -latmisrvinteg -latmi \ -lubf -lexuuid -lexthpool -lnstd -lrt -ldl -lm -lc -lpthread