Mako on Centos 7
Getting started
Mako 4.8.1 and later includes a Centos 7 Linux distribution.
The following guide was created on a Centos 7 installation with these options chosen at installation time:
It includes development tools.
Next:
- Download the Centos 7 distribution from the FTP folder (you will have been advised of the URL, user name and password)
- Unpack the distribution. You can follow these three steps if you prefer to use the desktop environment.
1) Open in Archive Manager | 2) Drag the Distrib folder to the desktop | 3) Open in Terminal |
---|---|---|
You should now have a terminal window open, with a current working folder of distrib.
Additional libraries
You will need to install some packages before building the example apps or your own Mako code. Enter this command into the Terminal window:
Install packages for Mako
sudo yum -y install libuuid-devel openssl-devel curl
The results are shown here. Click to expand.
Package installation
[build@localhost distrib]$ sudo yum -y install libuuid-devel openssl-devel curl
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for build:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mozart.ee.ic.ac.uk
* extras: mozart.ee.ic.ac.uk
* updates: mirror.clustered.net
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:7.29.0-51.el7 will be updated
---> Package curl.x86_64 0:7.29.0-51.el7_6.3 will be an update
--> Processing Dependency: libcurl = 7.29.0-51.el7_6.3 for package: curl-7.29.0-51.el7_6.3.x86_64
---> Package libuuid-devel.x86_64 0:2.23.2-59.el7_6.1 will be installed
---> Package openssl-devel.x86_64 1:1.0.2k-16.el7_6.1 will be installed
--> Processing Dependency: zlib-devel(x86-64) for package: 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64
--> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64
--> Running transaction check
---> Package krb5-devel.x86_64 0:1.15.1-37.el7_6 will be installed
--> Processing Dependency: libverto-devel for package: krb5-devel-1.15.1-37.el7_6.x86_64
--> Processing Dependency: libselinux-devel for package: krb5-devel-1.15.1-37.el7_6.x86_64
--> Processing Dependency: libcom_err-devel for package: krb5-devel-1.15.1-37.el7_6.x86_64
--> Processing Dependency: keyutils-libs-devel for package: krb5-devel-1.15.1-37.el7_6.x86_64
---> Package libcurl.x86_64 0:7.29.0-51.el7 will be updated
---> Package libcurl.x86_64 0:7.29.0-51.el7_6.3 will be an update
---> Package zlib-devel.x86_64 0:1.2.7-18.el7 will be installed
--> Running transaction check
---> Package keyutils-libs-devel.x86_64 0:1.5.8-3.el7 will be installed
---> Package libcom_err-devel.x86_64 0:1.42.9-13.el7 will be installed
---> Package libselinux-devel.x86_64 0:2.5-14.1.el7 will be installed
--> Processing Dependency: libsepol-devel(x86-64) >= 2.5-10 for package: libselinux-devel-2.5-14.1.el7.x86_64
--> Processing Dependency: pkgconfig(libsepol) for package: libselinux-devel-2.5-14.1.el7.x86_64
--> Processing Dependency: pkgconfig(libpcre) for package: libselinux-devel-2.5-14.1.el7.x86_64
---> Package libverto-devel.x86_64 0:0.2.5-4.el7 will be installed
--> Running transaction check
---> Package libsepol-devel.x86_64 0:2.5-10.el7 will be installed
---> Package pcre-devel.x86_64 0:8.32-17.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================
Installing:
libuuid-devel x86_64 2.23.2-59.el7_6.1 updates 91 k
openssl-devel x86_64 1:1.0.2k-16.el7_6.1 updates 1.5 M
Updating:
curl x86_64 7.29.0-51.el7_6.3 updates 269 k
Installing for dependencies:
keyutils-libs-devel x86_64 1.5.8-3.el7 base 37 k
krb5-devel x86_64 1.15.1-37.el7_6 updates 271 k
libcom_err-devel x86_64 1.42.9-13.el7 base 31 k
libselinux-devel x86_64 2.5-14.1.el7 base 187 k
libsepol-devel x86_64 2.5-10.el7 base 77 k
libverto-devel x86_64 0.2.5-4.el7 base 12 k
pcre-devel x86_64 8.32-17.el7 base 480 k
zlib-devel x86_64 1.2.7-18.el7 base 50 k
Updating for dependencies:
libcurl x86_64 7.29.0-51.el7_6.3 updates 222 k
Transaction Summary
===============================================================================================================================
Install 2 Packages (+8 Dependent packages)
Upgrade 1 Package (+1 Dependent package)
Total size: 3.2 M
Total download size: 2.7 M
Downloading packages:
(1/10): libcom_err-devel-1.42.9-13.el7.x86_64.rpm | 31 kB 00:00:00
(2/10): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm | 37 kB 00:00:00
(3/10): krb5-devel-1.15.1-37.el7_6.x86_64.rpm | 271 kB 00:00:00
(4/10): libverto-devel-0.2.5-4.el7.x86_64.rpm | 12 kB 00:00:00
(5/10): libsepol-devel-2.5-10.el7.x86_64.rpm | 77 kB 00:00:00
(6/10): libselinux-devel-2.5-14.1.el7.x86_64.rpm | 187 kB 00:00:00
(7/10): libuuid-devel-2.23.2-59.el7_6.1.x86_64.rpm | 91 kB 00:00:00
(8/10): zlib-devel-1.2.7-18.el7.x86_64.rpm | 50 kB 00:00:00
(9/10): pcre-devel-8.32-17.el7.x86_64.rpm | 480 kB 00:00:00
(10/10): openssl-devel-1.0.2k-16.el7_6.1.x86_64.rpm | 1.5 MB 00:00:00
-------------------------------------------------------------------------------------------------------------------------------
Total 1.9 MB/s | 2.7 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : keyutils-libs-devel-1.5.8-3.el7.x86_64 1/14
Installing : libcom_err-devel-1.42.9-13.el7.x86_64 2/14
Installing : libsepol-devel-2.5-10.el7.x86_64 3/14
Updating : libcurl-7.29.0-51.el7_6.3.x86_64 4/14
Installing : zlib-devel-1.2.7-18.el7.x86_64 5/14
Installing : pcre-devel-8.32-17.el7.x86_64 6/14
Installing : libselinux-devel-2.5-14.1.el7.x86_64 7/14
Installing : libverto-devel-0.2.5-4.el7.x86_64 8/14
Installing : krb5-devel-1.15.1-37.el7_6.x86_64 9/14
Installing : 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64 10/14
Updating : curl-7.29.0-51.el7_6.3.x86_64 11/14
Installing : libuuid-devel-2.23.2-59.el7_6.1.x86_64 12/14
Cleanup : curl-7.29.0-51.el7.x86_64 13/14
Cleanup : libcurl-7.29.0-51.el7.x86_64 14/14
Verifying : libverto-devel-0.2.5-4.el7.x86_64 1/14
Verifying : libuuid-devel-2.23.2-59.el7_6.1.x86_64 2/14
Verifying : pcre-devel-8.32-17.el7.x86_64 3/14
Verifying : zlib-devel-1.2.7-18.el7.x86_64 4/14
Verifying : krb5-devel-1.15.1-37.el7_6.x86_64 5/14
Verifying : curl-7.29.0-51.el7_6.3.x86_64 6/14
Verifying : libselinux-devel-2.5-14.1.el7.x86_64 7/14
Verifying : libcurl-7.29.0-51.el7_6.3.x86_64 8/14
Verifying : libsepol-devel-2.5-10.el7.x86_64 9/14
Verifying : libcom_err-devel-1.42.9-13.el7.x86_64 10/14
Verifying : 1:openssl-devel-1.0.2k-16.el7_6.1.x86_64 11/14
Verifying : keyutils-libs-devel-1.5.8-3.el7.x86_64 12/14
Verifying : curl-7.29.0-51.el7.x86_64 13/14
Verifying : libcurl-7.29.0-51.el7.x86_64 14/14
Installed:
libuuid-devel.x86_64 0:2.23.2-59.el7_6.1 openssl-devel.x86_64 1:1.0.2k-16.el7_6.1
Dependency Installed:
keyutils-libs-devel.x86_64 0:1.5.8-3.el7 krb5-devel.x86_64 0:1.15.1-37.el7_6 libcom_err-devel.x86_64 0:1.42.9-13.el7
libselinux-devel.x86_64 0:2.5-14.1.el7 libsepol-devel.x86_64 0:2.5-10.el7 libverto-devel.x86_64 0:0.2.5-4.el7
pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7
Updated:
curl.x86_64 0:7.29.0-51.el7_6.3
Dependency Updated:
libcurl.x86_64 0:7.29.0-51.el7_6.3
Complete!
Building the Mako example app makoconverter
Assuming you are still located in the distrib folder, follow this example to build makoconverter:
Building makoconverter
[build@localhost distrib]$ cd makoapps/makoconverter/
[build@localhost makoconverter]$ ls
Makefile-release-linux-x64 makoconverter.cpp
[build@localhost makoconverter]$ make -f Makefile-release-linux-x64
mkdir -p release-linux-x64
touch release-linux-x64/.created
g++ -c -O3 -m64 -I./../../interface/ -o release-linux-x64/makoconverter.o ./makoconverter.cpp
g++ -c -O3 -m64 -I./../../interface/ -o release-linux-x64/edlerrors.o ./../../interface/edl/edlerrors.cpp
mkdir -p ../release-linux-x64
touch ../release-linux-x64/.created
g++ -m64 -rdynamic -ldl -lrt -lpthread -lm -luuid -Wl,--start-group -O3 -m64 -o ../release-linux-x64/makoconverter release-linux-x64/makoconverter.o release-linux-x64/edlerrors.o ../../libs/release-linux-x64/edlxpsin.a ../../libs/release-linux-x64/edljaws3.a ../../libs/release-linux-x64/jawsmako.a ../../libs/release-linux-x64/edlpcl5out.a ../../libs/release-linux-x64/edlpclxlout.a ../../libs/release-linux-x64/edllib.a -Wl,--end-group -rdynamic -ldl -lrt -lpthread -lm -luuid -lssl -lcrypto
cp ../../libs/release-linux-x64/edlpspdfout.so ../release-linux-x64/edlpspdfout.so
[build@localhost makoconverter]$ cd ../release-linux-x64/
[build@localhost release-linux-x64]$ ls
edlpspdfout.so makoconverter
[build@localhost release-linux-x64]$ ./makoconverter -ver
(Mako V4.8.1)
Usage: ./makoconverter [ -ver ] <source file> <output file> [ .pdf|.xps|.pcl|.pxl ] [ parameter=value parameter=value ... ]
Where:
-ver Displays the Mako version number
[build@localhost release-linux-x64]$
Once you have built a Mako sample successfully you should be good to go for your own development.