Tuesday, June 12, 2012
Sunday, June 10, 2012
Installing Fuzuli for Windows
Well, it was difficult to shut down our Linux installed machines and start up Windows after a long time interval. Unfortunately, there are many Windows users around the world that want to try out Fuzuli, our new interpreter which is first introduced in Practical Code Solutions blog.
We compiled Fuzuli using GNU C++ compiler and prepared some Linux packages which are ready to download at Google Code page. In order to compile it Windows, we had to use GNU for Windows, namely CYGWIN. Finally, we have a running copy at hand and it is ready to download in page Download Packages. Installing Fuzuli in Windows is such an easy task. Just follow the required steps and start running and testing Fuzuli.
If you see the output shown above, you probably installed Fuzuli successfuly. Lets try a program. There is fzl file shipped with Fuzuli with name fibonacci.fzl. This file is a text file and can be edited a text editor like Notepad or Notepad++. You can run it by typing
and if there is not any problem, the output should be like this:
The output shown above proofs that Fuzuli is ready. You can create your own fzl files and run them in a similar way.
Ok. Let write a world classic, Hello World!. Open your favorite text editor, it is Notepad++ if I work with Windows.
Now save it with name "hello.fzl" in some folder. Do not forget where you saved the file. I saved my hello.fzl in directory D:\myfuzuli so it is D:\myfuzuli\hello.fzl
We compiled Fuzuli using GNU C++ compiler and prepared some Linux packages which are ready to download at Google Code page. In order to compile it Windows, we had to use GNU for Windows, namely CYGWIN. Finally, we have a running copy at hand and it is ready to download in page Download Packages. Installing Fuzuli in Windows is such an easy task. Just follow the required steps and start running and testing Fuzuli.
- Go to the page http://code.google.com/p/fuzuli/downloads/list and download Fuzuli for Windows.
- The current zip file is fuzuli-win_0.1-4.zip but it depends on the current release. It will have a new name in the future but in the same pattern.
- Extract the zip file, for example in C:\, so your Fuzuli folder becomes c:\fuzuli-win_0.1-4.
- Click button. Select run and type "cmd". Press enter. This will open a terminal screen.
- Type "cd C:\fuzuli-win_0.1-4" and type enter. This will get you in the Fuzuli folder.
- Type "fuzuli" and type enter.
Fuzuli build Jun 9 2012 12:59:18 usage: fuzuli source fuzuli --repl
If you see the output shown above, you probably installed Fuzuli successfuly. Lets try a program. There is fzl file shipped with Fuzuli with name fibonacci.fzl. This file is a text file and can be edited a text editor like Notepad or Notepad++. You can run it by typing
fuzuli fibonacci.fzl
and if there is not any problem, the output should be like this:
PASSED! PASSED! PASSED! PASSED! PASSED!
The output shown above proofs that Fuzuli is ready. You can create your own fzl files and run them in a similar way.
Ok. Let write a world classic, Hello World!. Open your favorite text editor, it is Notepad++ if I work with Windows.
Now save it with name "hello.fzl" in some folder. Do not forget where you saved the file. I saved my hello.fzl in directory D:\myfuzuli so it is D:\myfuzuli\hello.fzl
Okay, see you later in next article!
Saturday, June 9, 2012
How to Use JQuery UI Progress Bar
Hi! As you know, we wrote something about JQuery before. We'd talked about where and how to use it.
In this article, we're going to learn using progress bar we all know. For using it, have to include the library about this. Like i said, this article is about showing load progress using JQuery UI.
I guess that we all need to load progress while our pages was loading on. All of expert of software think about that is the best way ever. For that reason, this is indispensable for us :)
Well, we'd talked about the libraries. If you learn how to use those, you can visit Jquery web site.
Your Html Page should be like:
When the script stars and loads, progress bar will work on the div layer which's id is progressbar.
This is my jquery document:
If you want to see how the demo works, you can visit this page.
Just remember that is an open source project and if you see the code, you can see the code, if you want to get the code, you can get to code also. And libraries we used on the script are here.
We'll see you guys next article!
In this article, we're going to learn using progress bar we all know. For using it, have to include the library about this. Like i said, this article is about showing load progress using JQuery UI.
I guess that we all need to load progress while our pages was loading on. All of expert of software think about that is the best way ever. For that reason, this is indispensable for us :)
Well, we'd talked about the libraries. If you learn how to use those, you can visit Jquery web site.
Your Html Page should be like:
<div id="progressbar"></div>
When the script stars and loads, progress bar will work on the div layer which's id is progressbar.
This is my jquery document:
$(document).ready(function() { var count = 0; setInterval(function() { count = count + 0.5; $('#progressbar').progressbar({ value : count }); }, 10); });As you see, setInterval function is counting our count and then load the page. I used to 0.5 value. If you want to load faster or slower, can change the 0.5 value, namely value of count.
If you want to see how the demo works, you can visit this page.
Just remember that is an open source project and if you see the code, you can see the code, if you want to get the code, you can get to code also. And libraries we used on the script are here.
We'll see you guys next article!
Friday, June 8, 2012
A Basic QT LCD Number Component Example
In this small example, we demonstrate how to use Qt's LCD Number component with consequent images and codes.
Since Qt is known to be a good GUI library, it has got a collection of classes for general purpose programming on networking, databases and other things.
In our simple example, we have one lcd number component and two buttons for increasing and decreasing the value on it. Events are handling using slots and signals as usual in Qt. First, follow these images.
The C++ code for main.cpp, mainwindow.cpp and mainwindow.h is shown below:
main.cpp
mainwindow.cpp
mainwindow.h
Good luck!
Since Qt is known to be a good GUI library, it has got a collection of classes for general purpose programming on networking, databases and other things.
In our simple example, we have one lcd number component and two buttons for increasing and decreasing the value on it. Events are handling using slots and signals as usual in Qt. First, follow these images.
The C++ code for main.cpp, mainwindow.cpp and mainwindow.h is shown below:
main.cpp
#include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->connect(this->ui->pushButton, SIGNAL(clicked()), this,SLOT(button_Plus_click())); this->connect(this->ui->pushButton_2, SIGNAL(clicked()), this,SLOT(button_Minus_click())); this->counter=10; this->ui->lcdNumber->display(counter); } MainWindow::~MainWindow() { delete ui; } void MainWindow::button_Minus_click(){ counter--; this->ui->lcdNumber->display(counter); } void MainWindow::button_Plus_click(){ counter++; this->ui->lcdNumber->display(counter); }
mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; int counter; private slots: void button_Plus_click(); void button_Minus_click(); }; #endif // MAINWINDOW_H
Good luck!
Monday, June 4, 2012
Using dynagen & dynamips for multible cisco router simulation
If you want to simulate a Cisco router, you can use dynamips but if you want to create a network topology you have to use both of dynagen and dynamips. This blog post is about about creating a sample network topology, connecting routers to each other and testing all nodes in the topology.
I'm using Ubuntu 12.04 to show an example now. First, we have to install dynagen (and dynamips) on Ubuntu 12.04. Actually we will also need dynamips but dynamips is a dependance of dynamips. So if we install dynagen, dynamips will be installed with dynagen.
ismail@ismail-ThinkPad-T410:~$ sudo apt-get install dynagen Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: dynamips python-configobj The following NEW packages will be installed: dynagen dynamips python-configobj 0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded. Need to get 1,070 kB/1,418 kB of archives. After this operation, 4,263 kB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main python-configobj all 4.7.2+ds-3build1 [233 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/multiverse dynagen all 0.11.0-6 [836 kB] Fetched 1,070 kB in 0s (1,495 kB/s) Selecting previously unselected package dynamips. (Reading database ... 206573 files and directories currently installed.) Unpacking dynamips (from .../dynamips_0.2.7-0.2.8RC2-5ubuntu1_amd64.deb) ... Selecting previously unselected package python-configobj. Unpacking python-configobj (from .../python-configobj_4.7.2+ds-3build1_all.deb) ... Selecting previously unselected package dynagen. Unpacking dynagen (from .../dynagen_0.11.0-6_all.deb) ... Processing triggers for man-db ... Processing triggers for doc-base ... Processing 1 added doc-base file... Registering documents with scrollkeeper... Setting up dynamips (0.2.7-0.2.8RC2-5ubuntu1) ... Setting up python-configobj (4.7.2+ds-3build1) ... Setting up dynagen (0.11.0-6) ... Processing triggers for python-support ... ismail@ismail-ThinkPad-T410:~$
Let's start to work with sample network topology;
There are only 3 routers on our sample network topology. Only one dynamips instance should be enough.
1-) Start dynamips instance
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7100 & [1] 16919 ismail@ismail-ThinkPad-T410:~$ Cisco Router Simulation Platform (version 0.2.8-RC2-amd64) Copyright (c) 2005-2007 Christophe Fillot. Build date: Jan 18 2011 19:25:29 Hypervisor TCP control server started (port 7100). ismail@ismail-ThinkPad-T410:~$ ps -ef | grep dynamips ismail 16919 8265 6 17:59 pts/2 00:00:00 dynamips -H 7100 ismail 16934 8265 0 17:59 pts/2 00:00:00 grep --color=auto dynamips ismail@ismail-ThinkPad-T410:~$
We are starting dynamips service with "dynamips -H 7100 &" and checking it with "ps -ef | grep dynamips" command.
2-) Create a dynagen configuration file
# [START INSTANCE1] [localhost:7100] udp=10000 workingdir = /tmp/working [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 # idlepc = ?? We will talk about it later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R1]] model = 3725 console = 2001 autostart = false # F0/0 = S0/0 = R2 S0/0 [[Router R2]] model = 3725 console = 2002 autostart = false # F0/0 = S0/0 = R1 S0/0 S0/1 = R3 S0/0 [[Router R3]] model = 3725 console = 2003 autostart = false S0/0 = R2 S0/1 # F0/0 = # [FINISH INSTANCE1]
First stage is about connecting to an existing dynamips service. Dynamips will create some files when it is loading a topology. This files will be created in the "workingdir" directory.
Second stage is about creating a Cisco Router model. We have to define a Cisco ios file path and some hardware specifications in this stage.
The last stages are about defining our virtual routers. If we create more than one models, we can select different models for earch virtual router. The "console" key defines the port number. We will use this port numbers to connect to console of router. Autostart key defines either manual or auto router booting while starting to dynagen process. Finally we will define connections between virtual routers.
I created a "working" directory under /tmp and the dynagen configuration file before starting the dynagen as shown below:
ismail@ismail-ThinkPad-T410:~$ vim /tmp/sample1.net {write dynagen configuration file content as above INSTANCE1} ismail@ismail-ThinkPad-T410:~$ ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample1.net Reading configuration file... Shutdown in progress... Shutdown completed. CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb. NVRAM is empty, setting config register to 0x2142 C3725 instance 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost' (id 3): VM Status : 0 RAM size : 128 Mb NVRAM size : 128 Kb IOS image : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'... ELF entry point: 0x80008000 C3725 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled. C3725 'ghost-c3725-adventerprisek9-mz.124-15.T13.bin-localhost.ghost': stopping simulation. Network successfully loaded Dynagen management console for Dynamips and Pemuwrapper 0.11.0 Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa => list Name Type State Server Console R1 3725 stopped localhost:7100 2001 R2 3725 stopped localhost:7100 2002 R3 3725 stopped localhost:7100 2003 => => ? Documented commands (type help <topic>): ======================================== capture confreg cpuinfo export hist list py save show suspend clear console end filter idlepc no reload send start telnet conf copy exit help import push resume shell stop ver => => start R1 Warning: Starting R1 with no idle-pc value CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb. C3725 instance 'R1' (id 0): VM Status : 0 RAM size : 128 Mb NVRAM size : 128 Kb IOS image : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'... ELF loading skipped, using a ghost RAM file. ELF entry point: 0x80008000 C3725 'R1': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled. 100-VM 'R1' started => => start R2 Warning: Starting R2 with no idle-pc value CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb. NVRAM is empty, setting config register to 0x2142 C3725 instance 'R2' (id 1): VM Status : 0 RAM size : 128 Mb NVRAM size : 128 Kb IOS image : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'... ELF loading skipped, using a ghost RAM file. ELF entry point: 0x80008000 C3725 'R2': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled. 100-VM 'R2' started => start R3 Warning: Starting R3 with no idle-pc value CPU0: carved JIT exec zone of 64 Mb into 2048 pages of 32 Kb. NVRAM is empty, setting config register to 0x2142 C3725 instance 'R3' (id 2): VM Status : 0 RAM size : 128 Mb NVRAM size : 128 Kb IOS image : /tmp/c3725-adventerprisek9-mz.124-15.T13.bin Loading ELF file '/tmp/c3725-adventerprisek9-mz.124-15.T13.bin'... ELF loading skipped, using a ghost RAM file. ELF entry point: 0x80008000 C3725 'R3': starting simulation (CPU0 PC=0xffffffffbfc00000), JIT enabled. 100-VM 'R3' started =>
Open another terminal and execute this command:
ismail@ismail-ThinkPad-T410:~$ telnet localhost 2001 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connected to Dynamips VM "R1" (ID 0, type c3725) - Console port when press enter will appear this; % Please answer 'yes' or 'no'. Would you like to enter the initial configuration dialog? [yes/no]:
press Ctrl+c and enter and enter again:
Press RETURN to get started! *Mar 1 00:00:03.843: %LINEPROTO-5-UPDOWN: Line protocol on Interface VoIP-Null0, changed state to up *Mar 1 00:00:03.847: %LINEPROTO-5-UPDOWN: Line protocol on Interface IPv6-mpls, changed state to up *Mar 1 00:00:03.927: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up *Mar 1 00:00:03.935: %LINK-3-UPDOWN: Interface Serial0/1, changed state to up *Mar 1 00:00:04.927: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up *Mar 1 00:00:04.935: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to up *Mar 1 00:00:32.927: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to down *Mar 1 00:01:26.839: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down *Mar 1 00:01:32.875: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up *Mar 1 00:01:39.015: %LINK-5-CHANGED: Interface FastEthernet0/1, changed state to administratively down *Mar 1 00:0 Router>1:39.075: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down *Mar 1 00:01:40.115: %SYS-5-RESTART: System restarted -- Cisco IOS Software, 3700 Software (C3725-ADVENTERPRISEK9-M), Version 12.4(15)T13, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2010 by Cisco Systems, Inc. Compiled Wed 07-Apr-10 12:44 by prod_rel_team *Mar 1 00:01:40.123: %SNMP-5-COLDSTART: SNMP agent on host Router is undergoing a cold start *Mar 1 00:01:40.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down *Mar 1 00:01:40.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down *Mar 1 00:01:40.159: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is OFF *Mar 1 00:01:40.159: %CRYPTO-6-GDOI_ON_OFF: GDOI is OFF *Mar 1 00:01:40.951: %LINK-5-CHANGED: Interface Serial0/0, changed state to administratively down *Mar 1 00:01:40.951: %LINK-5-CHANGED: Interface Serial0/1, changed state to administratively down *Mar 1 00:01:41.951: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down *Mar 1 00:01:43.839: %IP-5-WEBINST_KILL: Terminating DNS process Router>
So you can get console for other virtual routers with "telnet localhost 2002", "telnet localhost 2003" and "telnet localhost 2004" commands.
I'm preparing more samples for multiple instances, physical ethernet connectivity and switch simulation with dynagen&dynamips.
Labels
cisco,
dynagen,
dynamips,
network,
simulation
Sunday, June 3, 2012
Compiling and installing Fuzuli from source
Installing Fuzuli on Ubuntu 12.04 LTS article is explaining how to install Fuzuli from the Debian package. So you have to choose the correct .deb file because those packages contain compiled binary files for differenct operation system architectures. In this article, we are talking about how to compile Fuzuli source code. Therefore you don't need to select any options for your system because correct binary files will be generated by make tools for your system.
Fuzuli source code is ready for download in the page http://code.google.com/p/fuzuli/source/browse/. You will learn how to download Fuzuli source code and how to compile it in this article steps.
1) INSTALLING MERCURIAL
We are using mercurial hg to update project source code and you can also create a clone of Fuzuli on your file system. Our mercurial repository has the fresh source code of Fuzuli.
First of all we have to install mercurial like below:
First of all we have to install mercurial like below:
user@user-VirtualBox:~$ user@user-VirtualBox:~$ sudo apt-get install mercurial Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: mercurial-common Suggested packages: qct wish vim emacs kdiff3 tkdiff meld xxdiff python-mysqldb python-pygments The following NEW packages will be installed: mercurial mercurial-common 0 upgraded, 2 newly installed, 0 to remove and 154 not upgraded. Need to get 1,982 kB of archives. After this operation, 6,691 kB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/universe mercurial-common all 2.0.2-1ubuntu1 [1,945 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/universe mercurial i386 2.0.2-1ubuntu1 [37.1 kB] Fetched 1,982 kB in 0s (1,991 kB/s) Selecting previously unselected package mercurial-common. (Reading database ... 140906 files and directories currently installed.) Unpacking mercurial-common (from .../mercurial-common_2.0.2-1ubuntu1_all.deb) ... Selecting previously unselected package mercurial. Unpacking mercurial (from .../mercurial_2.0.2-1ubuntu1_i386.deb) ... Processing triggers for man-db ... Setting up mercurial-common (2.0.2-1ubuntu1) ... Setting up mercurial (2.0.2-1ubuntu1) ... Creating config file /etc/mercurial/hgrc.d/hgext.rc with new version user@user-VirtualBox:~$
2-) GETTING SOURCE OF FUZULI WITH MERCURIAL
Also you can see a command line for cloning the source code on http://code.google.com/p/fuzuli/source/checkout page, command-line access part.
user@user-VirtualBox:~$ hg clone https://code.google.com/p/fuzuli/ destination directory: fuzuli requesting all changes adding changesets adding manifests adding file changes added 21 changesets with 242 changes to 136 files updating to branch default 116 files updated, 0 files merged, 0 files removed, 0 files unresolved
3-) INSTALLING GCC TO COMPILE SOFTWARES
We will need gcc compiler to generate binaries from source code, let's install it:
user@user-VirtualBox:~$ user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install g++ Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: g++-multilib The following NEW packages will be installed: g++ 0 upgraded, 1 newly installed, 0 to remove and 154 not upgraded. Need to get 1,444 B of archives. After this operation, 34.8 kB of additional disk space will be used. Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main g++ i386 4:4.6.3-1ubuntu5 [1,444 B] Fetched 1,444 B in 0s (13.3 kB/s) Selecting previously unselected package g++. (Reading database ... 142965 files and directories currently installed.) Unpacking g++ (from .../g++_4%3a4.6.3-1ubuntu5_i386.deb) ... Processing triggers for man-db ... Setting up g++ (4:4.6.3-1ubuntu5) ... update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode. user@user-VirtualBox:/usr/share/fuzuli$
4-) INSTALLING DEPENDENCIES TO COMPILE FUZULI
4a-) MySQL database client library,
libmysqlclient-dev is mandatory but libmysqlclient18 is not.
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libmysqlclient18 libmysqlclient-dev Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: mysql-common zlib1g-dev The following NEW packages will be installed: libmysqlclient-dev libmysqlclient18 mysql-common zlib1g-dev 0 upgraded, 4 newly installed, 0 to remove and 154 not upgraded. Need to get 2,455 kB of archives. After this operation, 8,944 kB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main mysql-common all 5.5.22-0ubuntu1 [13.7 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/main libmysqlclient18 i386 5.5.22-0ubuntu1 [921 kB] Get:3 http://tr.archive.ubuntu.com/ubuntu/ precise/main zlib1g-dev i386 1:1.2.3.4.dfsg-3ubuntu4 [162 kB] Get:4 http://tr.archive.ubuntu.com/ubuntu/ precise/main libmysqlclient-dev i386 5.5.22-0ubuntu1 [1,358 kB] Fetched 2,455 kB in 6s (375 kB/s) Selecting previously unselected package mysql-common. (Reading database ... 142970 files and directories currently installed.) Unpacking mysql-common (from .../mysql-common_5.5.22-0ubuntu1_all.deb) ... Selecting previously unselected package libmysqlclient18. Unpacking libmysqlclient18 (from .../libmysqlclient18_5.5.22-0ubuntu1_i386.deb) ... Selecting previously unselected package zlib1g-dev. Unpacking zlib1g-dev (from .../zlib1g-dev_1%3a1.2.3.4.dfsg-3ubuntu4_i386.deb) ... Selecting previously unselected package libmysqlclient-dev. Unpacking libmysqlclient-dev (from .../libmysqlclient-dev_5.5.22-0ubuntu1_i386.deb) ... Processing triggers for man-db ... Setting up mysql-common (5.5.22-0ubuntu1) ... Setting up libmysqlclient18 (5.5.22-0ubuntu1) ... Setting up zlib1g-dev (1:1.2.3.4.dfsg-3ubuntu4) ... Setting up libmysqlclient-dev (5.5.22-0ubuntu1) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place user@user-VirtualBox:/usr/share/fuzuli$
4b-) The Tk toolkit for TCL and X11 (default version) - runtime files
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install tk tk-dev Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libexpat1-dev libfontconfig1-dev libfreetype6-dev libpthread-stubs0 libpthread-stubs0-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxft-dev libxrender-dev libxss-dev libxss1 tcl tcl-dev tcl8.5 tcl8.5-dev tk8.5 tk8.5-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-render-dev x11proto-scrnsaver-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev Suggested packages: libxcb-doc tcl-doc tclreadline tcl8.5-doc tk-doc tk8.5-doc The following NEW packages will be installed: libexpat1-dev libfontconfig1-dev libfreetype6-dev libpthread-stubs0 libpthread-stubs0-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxft-dev libxrender-dev libxss-dev libxss1 tcl tcl-dev tcl8.5 tcl8.5-dev tk tk-dev tk8.5 tk8.5-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-render-dev x11proto-scrnsaver-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev 0 upgraded, 31 newly installed, 0 to remove and 154 not upgraded. Need to get 10.2 MB of archives. After this operation, 36.1 MB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxss1 i386 1:1.2.1-2 [8,604 B] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/main libexpat1-dev i386 2.0.1-7.2ubuntu1 [207 kB] Get:3 http://tr.archive.ubuntu.com/ubuntu/ precise/main libfreetype6-dev i386 2.4.8-1ubuntu2 [778 kB] Get:4 http://tr.archive.ubuntu.com/ubuntu/ precise/main libfontconfig1-dev i386 2.8.0-3ubuntu9 [652 kB] Get:5 http://tr.archive.ubuntu.com/ubuntu/ precise/main libpthread-stubs0 i386 0.3-3 [3,264 B] Get:6 http://tr.archive.ubuntu.com/ubuntu/ precise/main libpthread-stubs0-dev i386 0.3-3 [2,860 B] Get:7 http://tr.archive.ubuntu.com/ubuntu/ precise/main xorg-sgml-doctools all 1:1.10-1 [12.0 kB] Get:8 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-core-dev all 7.0.22-1 [299 kB] Get:9 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxau-dev i386 1:1.0.6-4 [10.2 kB] Get:10 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxdmcp-dev i386 1:1.1.0-4 [26.5 kB] Get:11 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-input-dev all 2.1.99.6-1 [133 kB] Get:12 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-kb-dev all 1.0.5-2 [27.6 kB] Get:13 http://tr.archive.ubuntu.com/ubuntu/ precise/main xtrans-dev all 1.2.6-2 [82.9 kB] Get:14 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxcb1-dev i386 1.8.1-1 [82.4 kB] Get:15 http://tr.archive.ubuntu.com/ubuntu/ precise/main libx11-dev i386 2:1.4.99.1-0ubuntu2 [894 kB] Get:16 http://tr.archive.ubuntu.com/ubuntu/ precise/main libx11-doc all 2:1.4.99.1-0ubuntu2 [2,413 kB] Get:17 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-xext-dev all 7.2.0-3 [253 kB] Get:18 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxext-dev i386 2:1.3.0-3build1 [150 kB] Get:19 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-render-dev all 2:0.11.1-2 [20.1 kB] Get:20 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxrender-dev i386 1:0.9.6-2build1 [26.6 kB] Get:21 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxft-dev i386 2.2.0-3ubuntu2 [51.7 kB] Get:22 http://tr.archive.ubuntu.com/ubuntu/ precise/main x11proto-scrnsaver-dev all 1.2.1-2 [23.1 kB] Get:23 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxss-dev i386 1:1.2.1-2 [12.8 kB] Get:24 http://tr.archive.ubuntu.com/ubuntu/ precise/main tcl8.5 i386 8.5.11-1ubuntu1 [1,097 kB] Get:25 http://tr.archive.ubuntu.com/ubuntu/ precise/main tcl all 8.5.0-2 [4,690 B] Get:26 http://tr.archive.ubuntu.com/ubuntu/ precise/main tcl8.5-dev i386 8.5.11-1ubuntu1 [970 kB] Get:27 http://tr.archive.ubuntu.com/ubuntu/ precise/main tcl-dev all 8.5.0-2 [7,002 B] Get:28 http://tr.archive.ubuntu.com/ubuntu/ precise/main tk8.5 i386 8.5.11-1 [996 kB] Get:29 http://tr.archive.ubuntu.com/ubuntu/ precise/main tk all 8.5.0-2 [4,720 B] Get:30 http://tr.archive.ubuntu.com/ubuntu/ precise/main tk8.5-dev i386 8.5.11-1 [919 kB] Get:31 http://tr.archive.ubuntu.com/ubuntu/ precise/main tk-dev all 8.5.0-2 [4,450 B] Fetched 10.2 MB in 7s (1,431 kB/s) Extracting templates from packages: 100% Selecting previously unselected package libxss1. (Reading database ... 143079 files and directories currently installed.) Unpacking libxss1 (from .../libxss1_1%3a1.2.1-2_i386.deb) ... Selecting previously unselected package libexpat1-dev. Unpacking libexpat1-dev (from .../libexpat1-dev_2.0.1-7.2ubuntu1_i386.deb) ... Selecting previously unselected package libfreetype6-dev. Unpacking libfreetype6-dev (from .../libfreetype6-dev_2.4.8-1ubuntu2_i386.deb) ... Selecting previously unselected package libfontconfig1-dev. Unpacking libfontconfig1-dev (from .../libfontconfig1-dev_2.8.0-3ubuntu9_i386.deb) ... Selecting previously unselected package libpthread-stubs0. Unpacking libpthread-stubs0 (from .../libpthread-stubs0_0.3-3_i386.deb) ... Selecting previously unselected package libpthread-stubs0-dev. Unpacking libpthread-stubs0-dev (from .../libpthread-stubs0-dev_0.3-3_i386.deb) ... Selecting previously unselected package xorg-sgml-doctools. Unpacking xorg-sgml-doctools (from .../xorg-sgml-doctools_1%3a1.10-1_all.deb) ... Selecting previously unselected package x11proto-core-dev. Unpacking x11proto-core-dev (from .../x11proto-core-dev_7.0.22-1_all.deb) ... Selecting previously unselected package libxau-dev. Unpacking libxau-dev (from .../libxau-dev_1%3a1.0.6-4_i386.deb) ... Selecting previously unselected package libxdmcp-dev. Unpacking libxdmcp-dev (from .../libxdmcp-dev_1%3a1.1.0-4_i386.deb) ... Selecting previously unselected package x11proto-input-dev. Unpacking x11proto-input-dev (from .../x11proto-input-dev_2.1.99.6-1_all.deb) ... Selecting previously unselected package x11proto-kb-dev. Unpacking x11proto-kb-dev (from .../x11proto-kb-dev_1.0.5-2_all.deb) ... Selecting previously unselected package xtrans-dev. Unpacking xtrans-dev (from .../xtrans-dev_1.2.6-2_all.deb) ... Selecting previously unselected package libxcb1-dev. Unpacking libxcb1-dev (from .../libxcb1-dev_1.8.1-1_i386.deb) ... Selecting previously unselected package libx11-dev. Unpacking libx11-dev (from .../libx11-dev_2%3a1.4.99.1-0ubuntu2_i386.deb) ... Selecting previously unselected package libx11-doc. Unpacking libx11-doc (from .../libx11-doc_2%3a1.4.99.1-0ubuntu2_all.deb) ... Selecting previously unselected package x11proto-xext-dev. Unpacking x11proto-xext-dev (from .../x11proto-xext-dev_7.2.0-3_all.deb) ... Selecting previously unselected package libxext-dev. Unpacking libxext-dev (from .../libxext-dev_2%3a1.3.0-3build1_i386.deb) ... Selecting previously unselected package x11proto-render-dev. Unpacking x11proto-render-dev (from .../x11proto-render-dev_2%3a0.11.1-2_all.deb) ... Selecting previously unselected package libxrender-dev. Unpacking libxrender-dev (from .../libxrender-dev_1%3a0.9.6-2build1_i386.deb) ... Selecting previously unselected package libxft-dev. Unpacking libxft-dev (from .../libxft-dev_2.2.0-3ubuntu2_i386.deb) ... Selecting previously unselected package x11proto-scrnsaver-dev. Unpacking x11proto-scrnsaver-dev (from .../x11proto-scrnsaver-dev_1.2.1-2_all.deb) ... Selecting previously unselected package libxss-dev. Unpacking libxss-dev (from .../libxss-dev_1%3a1.2.1-2_i386.deb) ... Selecting previously unselected package tcl8.5. Unpacking tcl8.5 (from .../tcl8.5_8.5.11-1ubuntu1_i386.deb) ... Selecting previously unselected package tcl. Unpacking tcl (from .../archives/tcl_8.5.0-2_all.deb) ... Selecting previously unselected package tcl8.5-dev. Unpacking tcl8.5-dev (from .../tcl8.5-dev_8.5.11-1ubuntu1_i386.deb) ... Selecting previously unselected package tcl-dev. Unpacking tcl-dev (from .../tcl-dev_8.5.0-2_all.deb) ... Selecting previously unselected package tk8.5. Unpacking tk8.5 (from .../tk8.5_8.5.11-1_i386.deb) ... Selecting previously unselected package tk. Unpacking tk (from .../archives/tk_8.5.0-2_all.deb) ... Selecting previously unselected package tk8.5-dev. Unpacking tk8.5-dev (from .../tk8.5-dev_8.5.11-1_i386.deb) ... Selecting previously unselected package tk-dev. Unpacking tk-dev (from .../tk-dev_8.5.0-2_all.deb) ... Processing triggers for doc-base ... Processing 3 added doc-base files... Registering documents with scrollkeeper... Processing triggers for man-db ... Setting up libxss1 (1:1.2.1-2) ... Setting up libexpat1-dev (2.0.1-7.2ubuntu1) ... Setting up libfreetype6-dev (2.4.8-1ubuntu2) ... Setting up libfontconfig1-dev (2.8.0-3ubuntu9) ... Setting up libpthread-stubs0 (0.3-3) ... Setting up libpthread-stubs0-dev (0.3-3) ... Setting up xorg-sgml-doctools (1:1.10-1) ... Setting up x11proto-core-dev (7.0.22-1) ... Setting up libxau-dev (1:1.0.6-4) ... Setting up libxdmcp-dev (1:1.1.0-4) ... Setting up x11proto-input-dev (2.1.99.6-1) ... Setting up x11proto-kb-dev (1.0.5-2) ... Setting up xtrans-dev (1.2.6-2) ... Setting up libxcb1-dev (1.8.1-1) ... Setting up libx11-dev (2:1.4.99.1-0ubuntu2) ... Setting up libx11-doc (2:1.4.99.1-0ubuntu2) ... Setting up x11proto-xext-dev (7.2.0-3) ... Setting up libxext-dev (2:1.3.0-3build1) ... Setting up x11proto-render-dev (2:0.11.1-2) ... Setting up libxrender-dev (1:0.9.6-2build1) ... Setting up libxft-dev (2.2.0-3ubuntu2) ... Setting up x11proto-scrnsaver-dev (1.2.1-2) ... Setting up libxss-dev (1:1.2.1-2) ... Setting up tcl8.5 (8.5.11-1ubuntu1) ... update-alternatives: using /usr/bin/tclsh8.5 to provide /usr/bin/tclsh (tclsh) in auto mode. Setting up tcl (8.5.0-2) ... update-alternatives: using /usr/bin/tclsh-default to provide /usr/bin/tclsh (tclsh) in auto mode. Setting up tcl8.5-dev (8.5.11-1ubuntu1) ... Setting up tcl-dev (8.5.0-2) ... Setting up tk8.5 (8.5.11-1) ... update-alternatives: using /usr/bin/wish8.5 to provide /usr/bin/wish (wish) in auto mode. Setting up tk (8.5.0-2) ... update-alternatives: using /usr/bin/wish-default to provide /usr/bin/wish (wish) in auto mode. Setting up tk8.5-dev (8.5.11-1) ... Setting up tk-dev (8.5.0-2) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place user@user-VirtualBox:/usr/share/fuzuli$
4c-) tcl, The Command Language (default version) - run-time files
It's already installed in step "4b".
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install tcl tcl-dev Reading package lists... Done Building dependency tree Reading state information... Done tcl is already the newest version. tcl set to manually installed. tcl-dev is already the newest version. tcl-dev set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 154 not upgraded. user@user-VirtualBox:/usr/share/fuzuli$
4d-) libcgicc5,
libcgicc5 is not dependency for fuzuli any more. If you are compiling older version of fuzuli, you may need it.
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libcgicc libcgicc5 libcgicc5-dev libcgicc-doc user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libcgicc5 libcgicc5-dev Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: libcgicc-doc The following NEW packages will be installed: libcgicc5 libcgicc5-dev 0 upgraded, 2 newly installed, 0 to remove and 153 not upgraded. Need to get 160 kB of archives. After this operation, 758 kB of additional disk space will be used. Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/universe libcgicc5 i386 3.2.9-3 [59.5 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/universe libcgicc5-dev i386 3.2.9-3 [100 kB] Fetched 160 kB in 0s (885 kB/s) Selecting previously unselected package libcgicc5. (Reading database ... 147007 files and directories currently installed.) Unpacking libcgicc5 (from .../libcgicc5_3.2.9-3_i386.deb) ... Selecting previously unselected package libcgicc5-dev. Unpacking libcgicc5-dev (from .../libcgicc5-dev_3.2.9-3_i386.deb) ... Processing triggers for man-db ... Setting up libcgicc5 (3.2.9-3) ... Setting up libcgicc5-dev (3.2.9-3) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place user@user-VirtualBox:/usr/share/fuzuli$
4e-) libgd2-xpm, GD Graphics Library version 2
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libgd2-xpm libgd2-xpm-dev Reading package lists... Done Building dependency tree Reading state information... Done libgd2-xpm is already the newest version. The following extra packages will be installed: libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libpng12-dev libxpm-dev The following NEW packages will be installed: libgd2-xpm-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libpng12-dev libxpm-dev 0 upgraded, 6 newly installed, 0 to remove and 154 not upgraded. Need to get 928 kB of archives. After this operation, 2,962 kB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main libjpeg-turbo8-dev i386 1.1.90+svn733-0ubuntu4 [413 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/main libjpeg8-dev i386 8c-2ubuntu7 [1,544 B] Get:3 http://tr.archive.ubuntu.com/ubuntu/ precise/main libjpeg-dev all 8c-2ubuntu7 [1,536 B] Get:4 http://tr.archive.ubuntu.com/ubuntu/ precise/main libpng12-dev i386 1.2.46-3ubuntu4 [207 kB] Get:5 http://tr.archive.ubuntu.com/ubuntu/ precise/main libxpm-dev i386 1:3.5.9-4 [93.9 kB] Get:6 http://tr.archive.ubuntu.com/ubuntu/ precise/main libgd2-xpm-dev i386 2.0.36~rc1~dfsg-6ubuntu2 [210 kB] Fetched 928 kB in 0s (1,660 kB/s) Selecting previously unselected package libjpeg-turbo8-dev. (Reading database ... 145510 files and directories currently installed.) Unpacking libjpeg-turbo8-dev (from .../libjpeg-turbo8-dev_1.1.90+svn733-0ubuntu4_i386.deb) ... Selecting previously unselected package libjpeg8-dev. Unpacking libjpeg8-dev (from .../libjpeg8-dev_8c-2ubuntu7_i386.deb) ... Selecting previously unselected package libjpeg-dev. Unpacking libjpeg-dev (from .../libjpeg-dev_8c-2ubuntu7_all.deb) ... Selecting previously unselected package libpng12-dev. Unpacking libpng12-dev (from .../libpng12-dev_1.2.46-3ubuntu4_i386.deb) ... Selecting previously unselected package libxpm-dev. Unpacking libxpm-dev (from .../libxpm-dev_1%3a3.5.9-4_i386.deb) ... Selecting previously unselected package libgd2-xpm-dev. Unpacking libgd2-xpm-dev (from .../libgd2-xpm-dev_2.0.36~rc1~dfsg-6ubuntu2_i386.deb) ... Processing triggers for man-db ... Setting up libjpeg-turbo8-dev (1.1.90+svn733-0ubuntu4) ... Setting up libjpeg8-dev (8c-2ubuntu7) ... Setting up libjpeg-dev (8c-2ubuntu7) ... Setting up libpng12-dev (1.2.46-3ubuntu4) ... Setting up libxpm-dev (1:3.5.9-4) ... Setting up libgd2-xpm-dev (2.0.36~rc1~dfsg-6ubuntu2) ... user@user-VirtualBox:/usr/share/fuzuli$
4f-) libreadline6, GNU readline and history libraries, run-time libraries
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libreadline6 libreadline6-dev Reading package lists... Done Building dependency tree Reading state information... Done libreadline6 is already the newest version. The following NEW packages will be installed: libreadline6-dev libtinfo-dev 0 upgraded, 2 newly installed, 0 to remove and 151 not upgraded. Need to get 343 kB of archives. After this operation, 901 kB of additional disk space will be used. Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise/main libtinfo-dev i386 5.9-4 [93.5 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise/main libreadline6-dev i386 6.2-8 [249 kB] Fetched 343 kB in 0s (656 kB/s) Selecting previously unselected package libtinfo-dev. (Reading database ... 148620 files and directories currently installed.) Unpacking libtinfo-dev (from .../libtinfo-dev_5.9-4_i386.deb) ... Selecting previously unselected package libreadline6-dev. Unpacking libreadline6-dev (from .../libreadline6-dev_6.2-8_i386.deb) ... Processing triggers for install-info ... Setting up libtinfo-dev (5.9-4) ... Setting up libreadline6-dev (6.2-8) ... user@user-VirtualBox:/usr/share/fuzuli$
4g-) libssl1.0.0
user@user-VirtualBox:/usr/share/fuzuli$ sudo apt-get install libssl-dev Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libssl-doc libssl1.0.0 The following NEW packages will be installed: libssl-dev libssl-doc The following packages will be upgraded: libssl1.0.0 1 upgraded, 2 newly installed, 0 to remove and 153 not upgraded. Need to get 3,449 kB of archives. After this operation, 6,355 kB of additional disk space will be used. Do you want to continue [Y/n]? Get:1 http://tr.archive.ubuntu.com/ubuntu/ precise-updates/main libssl1.0.0 i386 1.0.1-4ubuntu5.2 [1,002 kB] Get:2 http://tr.archive.ubuntu.com/ubuntu/ precise-updates/main libssl-dev i386 1.0.1-4ubuntu5.2 [1,414 kB] Get:3 http://tr.archive.ubuntu.com/ubuntu/ precise-updates/main libssl-doc all 1.0.1-4ubuntu5.2 [1,033 kB] Fetched 3,449 kB in 0s (4,125 kB/s) Preconfiguring packages ... (Reading database ... 145603 files and directories currently installed.) Preparing to replace libssl1.0.0 1.0.1-4ubuntu3 (using .../libssl1.0.0_1.0.1-4ubuntu5.2_i386.deb) ... Unpacking replacement libssl1.0.0 ... Setting up libssl1.0.0 (1.0.1-4ubuntu5.2) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place Selecting previously unselected package libssl-dev. (Reading database ... 145603 files and directories currently installed.) Unpacking libssl-dev (from .../libssl-dev_1.0.1-4ubuntu5.2_i386.deb) ... Selecting previously unselected package libssl-doc. Unpacking libssl-doc (from .../libssl-doc_1.0.1-4ubuntu5.2_all.deb) ... Processing triggers for man-db ... Setting up libssl-dev (1.0.1-4ubuntu5.2) ... Setting up libssl-doc (1.0.1-4ubuntu5.2) ... user@user-VirtualBox:/usr/share/fuzuli$
4h-) Happycoders libsocket;
There is an article on stdioe blog. You can follow those instructions: http://stdioe.blogspot.com/2012/06/compiling-happycoders-libsocket-in.html
Note: After the installing process of Happycoders libsocket, you have to care "make install" command's output notes, (like following text)
---------------------------------------------------------------------- Libraries have been installed in: /usr/local/lib/happycoders/ If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,--rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ----------------------------------------------------------------------
You can execute "sudo ldconfig -n /usr/lib/happycoders" command and edit "/etc/ld.so.conf.d/libc.conf" file like following text:
# libc default configuration
/usr/local/lib
/usr/local/lib/happycoders
Right now we can start to compiling Fuzuli source,
First of all, if you get any errors while compiling you can detect the reason of the error and you can execute "sudo ./release-clean-all.sh" command to go back to first step of fuzuli compiling. For example if an error accours as follow,
user@user-VirtualBox:/usr/share/fuzuli$ ./release-build-all.sh Building file: ../src/AritmeticExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/AritmeticExpression.d" -MT"src/AritmeticExpression.d" -o "src/AritmeticExpression.o" "../src/AritmeticExpression.cpp" In file included from ../src/AritmeticExpression.cpp:19:0: ../src/../include/FuzuliTypes.h:31:25: fatal error: cgicc/Cgicc.h: No such file or directory compilation terminated. make: *** [src/AritmeticExpression.o] Error 1 Building file: ../src/IO.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/IO.d" -MT"src/IO.d" -o "src/IO.o" "../src/IO.cpp" In file included from ../src/IO.cpp:19:0: ../../Interpreter/include/FuzuliTypes.h:31:25: fatal error: cgicc/Cgicc.h: No such file or directory compilation terminated. make: *** [src/IO.o] Error 1 Building file: ../src/main.cpp Invoking: Cross G++ Compiler g++ -I../../Interpreter/include -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o "src/main.o" "../src/main.cpp" ../src/main.cpp:23:31: fatal error: readline/readline.h: No such file or directory compilation terminated. make: *** [src/main.o] Error 1 -------------------------------------------- | testing all FUZULI script files. | -------------------------------------------- ./tester.sh: line 35: fuzuli: command not found argc_argv.fzl: ./tester.sh: line 35: fuzuli: command not found arithmetic.fzl: ./tester.sh: line 35: fuzuli: command not found block.fzl: ./tester.sh: line 35: fuzuli: command not found Break.fzl: ./tester.sh: line 35: fuzuli: command not found clientsocket.fzl: ./tester.sh: line 35: fuzuli: command not found clone.fzl: ./tester.sh: line 35: fuzuli: command not found dotimes.fzl: ./tester.sh: line 35: fuzuli: command not found eval.fzl: ./tester.sh: line 35: fuzuli: command not found explode.fzl: ./tester.sh: line 35: fuzuli: command not found fibonacci.fzl: ./tester.sh: line 35: fuzuli: command not found for.fzl: ./tester.sh: line 35: fuzuli: command not found funcoverload.fzl: ./tester.sh: line 35: fuzuli: command not found function.fzl: ./tester.sh: line 35: fuzuli: command not found hex.fzl: ./tester.sh: line 35: fuzuli: command not found inc.fzl: ./tester.sh: line 35: fuzuli: command not found letTest1.fzl: ./tester.sh: line 35: fuzuli: command not found list.fzl: ./tester.sh: line 35: fuzuli: command not found math.fzl: ./tester.sh: line 35: fuzuli: command not found maxmin.fzl: ./tester.sh: line 35: fuzuli: command not found ols.fzl: ./tester.sh: line 35: fuzuli: command not found sort.fzl: ./tester.sh: line 35: fuzuli: command not found strings.fzl: ./tester.sh: line 35: fuzuli: command not found switchcase.fzl: ./tester.sh: line 35: fuzuli: command not found types.fzl: ./tester.sh: line 35: fuzuli: command not found while.fzl: -------------------------------------------- | Report of test | -------------------------------------------- | 25 files has been tested. | 0 statements has been passed. | 0 statements has been failed. --------------------------------------------
you can execute "sudo ./release-clean-all.sh" command and install libcgicc5-dev with "sudo apt-get install libcgicc5 libcgicc5-dev" command and continue the compiling fuzuli
user@user-VirtualBox:/usr/share/fuzuli$ sudo ./release-clean-all.sh rm -rf ./src/AritmeticExpression.o ./src/AstBuilder.o ./src/BlockExpression.o ./src/CppEmitter.o ./src/DataTypeExpression.o ./src/DynLoadExpression.o ./src/Environment.o ./src/EvalExpression.o ./src/Expression.o ./src/FunctionExpression.o ./src/IOExpression.o ./src/IfExpression.o ./src/LetExpression.o ./src/ListExpression.o ./src/LoopsExpression.o ./src/SourceCode.o ./src/Token.o ./src/WebExpression.o ./src/AritmeticExpression.d ./src/AstBuilder.d ./src/BlockExpression.d ./src/CppEmitter.d ./src/DataTypeExpression.d ./src/DynLoadExpression.d ./src/Environment.d ./src/EvalExpression.d ./src/Expression.d ./src/FunctionExpression.d ./src/IOExpression.d ./src/IfExpression.d ./src/LetExpression.d ./src/ListExpression.d ./src/LoopsExpression.d ./src/SourceCode.d ./src/Token.d ./src/WebExpression.d libfuzuli.so rm -rf ./src/IO.o ./src/Math.o ./src/MySql.o ./src/TclTk.o ./src/gd.o ./src/net.o ./src/strings.o ./src/utils.o ./src/IO.d ./src/Math.d ./src/MySql.d ./src/TclTk.d ./src/gd.d ./src/net.d ./src/strings.d ./src/utils.d libFuzuliCore.so rm -rf ./src/main.o ./src/main.d fuzuli
Let's continue the compiling Fuzuli,
After compiling, the build script will try the some testing. But all of them will be failed because, fuzuli binary file will be located in the /usr/lib/fuzuli directory. We should create a link under the /usr/bin directory.
user@user-VirtualBox:/usr/share/fuzuli$ sudo ln -s /usr/lib/fuzuli/fuzuli /usr/bin/fuzuli
We are get ready to build Fuzuli project now,
user@user-VirtualBox:/usr/share/fuzuli$ sudo ./release-build-all.sh Building file: ../src/AritmeticExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/AritmeticExpression.d" -MT"src/AritmeticExpression.d" -o "src/AritmeticExpression.o" "../src/AritmeticExpression.cpp" Finished building: ../src/AritmeticExpression.cpp Building file: ../src/AstBuilder.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/AstBuilder.d" -MT"src/AstBuilder.d" -o "src/AstBuilder.o" "../src/AstBuilder.cpp" Finished building: ../src/AstBuilder.cpp Building file: ../src/BlockExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/BlockExpression.d" -MT"src/BlockExpression.d" -o "src/BlockExpression.o" "../src/BlockExpression.cpp" Finished building: ../src/BlockExpression.cpp Building file: ../src/CppEmitter.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/CppEmitter.d" -MT"src/CppEmitter.d" -o "src/CppEmitter.o" "../src/CppEmitter.cpp" Finished building: ../src/CppEmitter.cpp Building file: ../src/DataTypeExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/DataTypeExpression.d" -MT"src/DataTypeExpression.d" -o "src/DataTypeExpression.o" "../src/DataTypeExpression.cpp" Finished building: ../src/DataTypeExpression.cpp Building file: ../src/DynLoadExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/DynLoadExpression.d" -MT"src/DynLoadExpression.d" -o "src/DynLoadExpression.o" "../src/DynLoadExpression.cpp" Finished building: ../src/DynLoadExpression.cpp Building file: ../src/Environment.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/Environment.d" -MT"src/Environment.d" -o "src/Environment.o" "../src/Environment.cpp" Finished building: ../src/Environment.cpp Building file: ../src/EvalExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/EvalExpression.d" -MT"src/EvalExpression.d" -o "src/EvalExpression.o" "../src/EvalExpression.cpp" Finished building: ../src/EvalExpression.cpp Building file: ../src/Expression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/Expression.d" -MT"src/Expression.d" -o "src/Expression.o" "../src/Expression.cpp" Finished building: ../src/Expression.cpp Building file: ../src/FunctionExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/FunctionExpression.d" -MT"src/FunctionExpression.d" -o "src/FunctionExpression.o" "../src/FunctionExpression.cpp" Finished building: ../src/FunctionExpression.cpp Building file: ../src/IOExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/IOExpression.d" -MT"src/IOExpression.d" -o "src/IOExpression.o" "../src/IOExpression.cpp" Finished building: ../src/IOExpression.cpp Building file: ../src/IfExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/IfExpression.d" -MT"src/IfExpression.d" -o "src/IfExpression.o" "../src/IfExpression.cpp" Finished building: ../src/IfExpression.cpp Building file: ../src/LetExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/LetExpression.d" -MT"src/LetExpression.d" -o "src/LetExpression.o" "../src/LetExpression.cpp" Finished building: ../src/LetExpression.cpp Building file: ../src/ListExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/ListExpression.d" -MT"src/ListExpression.d" -o "src/ListExpression.o" "../src/ListExpression.cpp" Finished building: ../src/ListExpression.cpp Building file: ../src/LoopsExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/LoopsExpression.d" -MT"src/LoopsExpression.d" -o "src/LoopsExpression.o" "../src/LoopsExpression.cpp" Finished building: ../src/LoopsExpression.cpp Building file: ../src/SourceCode.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/SourceCode.d" -MT"src/SourceCode.d" -o "src/SourceCode.o" "../src/SourceCode.cpp" Finished building: ../src/SourceCode.cpp Building file: ../src/Token.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/Token.d" -MT"src/Token.d" -o "src/Token.o" "../src/Token.cpp" Finished building: ../src/Token.cpp Building file: ../src/WebExpression.cpp Invoking: GCC C++ Compiler g++ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/WebExpression.d" -MT"src/WebExpression.d" -o "src/WebExpression.o" "../src/WebExpression.cpp" Finished building: ../src/WebExpression.cpp Building target: libfuzuli.so Invoking: GCC C++ Linker g++ -shared -o "libfuzuli.so" ./src/AritmeticExpression.o ./src/AstBuilder.o ./src/BlockExpression.o ./src/CppEmitter.o ./src/DataTypeExpression.o ./src/DynLoadExpression.o ./src/Environment.o ./src/EvalExpression.o ./src/Expression.o ./src/FunctionExpression.o ./src/IOExpression.o ./src/IfExpression.o ./src/LetExpression.o ./src/ListExpression.o ./src/LoopsExpression.o ./src/SourceCode.o ./src/Token.o ./src/WebExpression.o -ldl Finished building target: libfuzuli.so make --no-print-directory post-build ./eclipse-post-inst.sh Building file: ../src/IO.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/IO.d" -MT"src/IO.d" -o "src/IO.o" "../src/IO.cpp" ../src/IO.cpp: In function ‘void __readToken(FILE*, fuzuli::Token*)’: ../src/IO.cpp:167:9: warning: variable ‘dummy_return’ set but not used [-Wunused-but-set-variable] ../src/IO.cpp: In function ‘void __readLine(FILE*, fuzuli::Token*)’: ../src/IO.cpp:193:9: warning: variable ‘dummy_return’ set but not used [-Wunused-but-set-variable] Finished building: ../src/IO.cpp Building file: ../src/Math.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/Math.d" -MT"src/Math.d" -o "src/Math.o" "../src/Math.cpp" Finished building: ../src/Math.cpp Building file: ../src/MySql.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/MySql.d" -MT"src/MySql.d" -o "src/MySql.o" "../src/MySql.cpp" Finished building: ../src/MySql.cpp Building file: ../src/TclTk.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/TclTk.d" -MT"src/TclTk.d" -o "src/TclTk.o" "../src/TclTk.cpp" Finished building: ../src/TclTk.cpp Building file: ../src/gd.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/gd.d" -MT"src/gd.d" -o "src/gd.o" "../src/gd.cpp" Finished building: ../src/gd.cpp Building file: ../src/net.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/net.d" -MT"src/net.d" -o "src/net.o" "../src/net.cpp" Finished building: ../src/net.cpp Building file: ../src/strings.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/strings.d" -MT"src/strings.d" -o "src/strings.o" "../src/strings.cpp" Finished building: ../src/strings.cpp Building file: ../src/utils.cpp Invoking: Cross G++ Compiler g++ -I/usr/include/tcl -I../../Interpreter/include/ -O3 -Wall -c -fmessage-length=0 -fPIC -MMD -MP -MF"src/utils.d" -MT"src/utils.d" -o "src/utils.o" "../src/utils.cpp" Finished building: ../src/utils.cpp Building target: libFuzuliCore.so Invoking: Cross G++ Linker g++ -L/usr/lib/happycoders -L/usr/lib/i386-linux-gnu -shared -o "libFuzuliCore.so" ./src/IO.o ./src/Math.o ./src/MySql.o ./src/TclTk.o ./src/gd.o ./src/net.o ./src/strings.o ./src/utils.o -lm -lssl -lcrypto -lsocket -ltk -lgd -lmysqlclient -ltcl Finished building target: libFuzuliCore.so make --no-print-directory post-build ./eclipse-post-inst.sh Building file: ../src/main.cpp Invoking: Cross G++ Compiler g++ -I../../Interpreter/include -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/main.d" -MT"src/main.d" -o "src/main.o" "../src/main.cpp" Finished building: ../src/main.cpp Building target: fuzuli Invoking: Cross G++ Linker g++ -o "fuzuli" ./src/main.o /usr/lib/fuzuli/libfuzuli.so -lreadline Finished building target: fuzuli make --no-print-directory post-build ./eclipse-post-inst.sh -------------------------------------------- | testing all FUZULI script files. | -------------------------------------------- argc_argv.fzl: 1: PASS arithmetic.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS 10: PASS 11: PASS block.fzl: 1: PASS Break.fzl: 1: PASS clientsocket.fzl: 1: PASS clone.fzl: 1: PASS 2: PASS dotimes.fzl: 1: PASS eval.fzl: 1: PASS explode.fzl: 1: PASS fibonacci.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS for.fzl: 1: PASS 2: PASS 3: PASS 4: PASS funcoverload.fzl: 1: PASS 2: PASS 3: PASS function.fzl: 1: PASS 2: PASS hex.fzl: 1: PASS inc.fzl: 1: PASS 2: PASS letTest1.fzl: 1: PASS list.fzl: 1: PASS 2: PASS 3: PASS 4: PASS math.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS maxmin.fzl: 1: PASS ols.fzl: 1: PASS 2: PASS sort.fzl: 1: PASS 2: PASS strings.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS 10: PASS 11: PASS 12: PASS 13: PASS 14: PASS 15: PASS 16: PASS 17: PASS switchcase.fzl: 1: PASS types.fzl: 1: PASS 2: PASS while.fzl: 1: PASS -------------------------------------------- | Report of test | -------------------------------------------- | 25 files has been tested. | 77 statements has been passed. | 0 statements has been failed. -------------------------------------------- -------------------------------------------- | testing all FUZULI script files. | -------------------------------------------- argc_argv.fzl: 1: PASS arithmetic.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS 10: PASS 11: PASS block.fzl: 1: PASS Break.fzl: 1: PASS clientsocket.fzl: 1: PASS clone.fzl: 1: PASS 2: PASS dotimes.fzl: 1: PASS eval.fzl: 1: PASS explode.fzl: 1: PASS fibonacci.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS for.fzl: 1: PASS 2: PASS 3: PASS 4: PASS funcoverload.fzl: 1: PASS 2: PASS 3: PASS function.fzl: 1: PASS 2: PASS hex.fzl: 1: PASS inc.fzl: 1: PASS 2: PASS letTest1.fzl: 1: PASS list.fzl: 1: PASS 2: PASS 3: PASS 4: PASS math.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS maxmin.fzl: 1: PASS ols.fzl: 1: PASS 2: PASS sort.fzl: 1: PASS 2: PASS strings.fzl: 1: PASS 2: PASS 3: PASS 4: PASS 5: PASS 6: PASS 7: PASS 8: PASS 9: PASS 10: PASS 11: PASS 12: PASS 13: PASS 14: PASS 15: PASS 16: PASS 17: PASS switchcase.fzl: 1: PASS types.fzl: 1: PASS 2: PASS while.fzl: 1: PASS -------------------------------------------- | Report of test | -------------------------------------------- | 25 files has been tested. | 77 statements has been passed. | 0 statements has been failed. -------------------------------------------- user@user-VirtualBox:/usr/share/fuzuli$
Well done. All tests are Ok. You can use Fuzuli now. If you want to update your Fuzuli later, you can clean and build again.
Subscribe to:
Posts (Atom)