If you are planing to download Vortex Library and using it as a stand alone library apart from Af-Arch you can get current stable releases at: http://www.sourceforge.net/projects/vortexlibrary
svn co https://dolphin.aspl.es/svn/publico/af-arch/trunk/libvortex
If you are using Microsoft Windows platform use the url above. SubVersion client programs for windows can be found at: http://tortoisesvn.tigris.org (really recommended) or http://rapidsvn.tigris.org.
Of course you will have to download the Vortex Library dependencies. Check the this section to know more about library dependencies.
bash:~$ cd libvortex bash:~/libvortex$ ./autogen.sh
This will configure your project trying to find the dependencies needed.
Once the configure process is done you can type:
bash:~/libvortex$ make install
The previous command will require permissions to write inside the destination directory. If you have problems, try to execute the previous command as root.
Because readline doesn't provide an standard way to get current installation location, the following is provided to configure readline installation. You have to use the READLINE_PATH environment var as follows:
bash:~/libvortex$ READLINE_PATH=/some/path/to/readline make
make program will use the content of READLINE_PATH var to build an include header directive and an include lib directive as follows:
READLINE_PATH=/some/path/to/readline -I$(READLINE_PATH)/include -L$(READLINE_PATH)/lib
You don't need to pay attention to this description if you don't have problems with your readline installation.
The Makefile.win will find the library dependencies through pkg-config program or by a directory configured.
The pkg-config method is preferred because is easy to use but it have no difference (or special effect) on source code if you provide the directory where libraries can be found.
If you chose the pkg-config method you have to ensure the Makefile.win will find the include flags and import libraries while executing:
pkg-config --cflags --libs glib-2.0 libxml-2.0
Once you have ensured the pkg-config will provide the right references to the Makefile.win type the following:
CC=gcc-3.3 vortex_dll=libvortex MODE=console make -f Makefile.win
Of course, the CC variable may point to another gcc, check the one that is installed on your system but, make sure you are not using the gcc provided by a cygwin installation. It will produce a faulty libvortex.dll not usable by any native Microsoft Windows program.
The MODE variable can be set to "windows". This will disable the console output. "console" value will allow to enable vortex log info to console.
The vortex_dll variable must not be changed. This variable is controlled by a top level Makefile.win inside the Af-Arch project so that Makefile.win can control the library naming. To follow the same convention naming will save you lot of problems in the future.
Additionally, if you chose to provide the libraries directly you will have to download the libraries the Vortex Library depends on inside a directory, for example, "c:\libraries". Use lowercase letter for your files and directories names, it will save you lot of time. Now, edit the Makefile.win to comment out those lines referring to pkg-config (LIBS and CFLAGS) and uncomment those lines referring to BASE_DIR variable.
CC=gcc-3.3 vortex_dll=libvortex MODE=console BASE_DIR=c:/libraries make -f Makefile.win
This process will produce a libvortex.dll (actually the dynamic libraries) and a import library called libvortex.dll.a. The import library will be needed to compile your application under windows against Vortex Library so it get linked to libvortex.dll.
gcc `pkg-config --cflags --libs vortex` your-program.c -o your-program
On windows platform using cygwin the previous example also works.
gcc your-program.c -o your-program -Ic:/libraries/include/vortex/ \ -I"c:/libraries/include" \ -I"c:/libraries/include/glib-2.0" \ -I"c:/libraries/include/libxml2" \ -I"c:/libraries/lib/glib-2.0/include" -I"." -L"c:/libraries/lib" \ -L"c:/libraries/bin" \ -L"c:/libraries/lib/glib-2.0" \ -lws2_32 \ -lglib-2.0 \ -lgmodule-2.0 \ -lgobject-2.0 \ -lgthread-2.0 \ -lxml2 \ -lintl -liconv -lm
Where c:/libraries contains the installation of the Vortex Library (headers files installed on c:/libraries/include/vortex, import library: libvortex.dll.a and dll: libvortex.dll), glib-2.0 installation and libxml-2.0 installation.
Because glib-2.0 also depends on libiconv and gettext you will have to provide the -lintl and -liconv flags. The -lws2_32 will provide winsocks2 reference to your program.