Hola, en este artículo intentaré explicar la forma como particularmente yo instalo harbour y t-gtk en mi GNU/Linux Ubuntu.

Primero que nada, instalar git. Entonces, desde la terminal:

sudo apt-get install git

Ahora vamos a clonar harbour:

git clone https://github.com/harbour/core.git harbour-project

 después, a clonar t-gtk:

git clone git://git.code.sf.net/p/t-gtk/gitsvn t-gtk

Podemos observar que tenemos dos carpetas (harbour-project y t-gtk) en nuestro directorio.

Lo logico en este punto es construir harbour, sin embargo personalmente prefiero ejecutar un script de t-gtk primero.  Esto porque hay algunos paquetes que muy posiblemente no están instalados y si harbour no los detecta no construira las librerias que dependen de esos paquetes, entonces el script que está disponible en t-gtk busca precisamente instalar todas esas dependencias.

Entonces, nos posicionamos en el directorio de t-gtk

cd t-gtk

Antes de ejecutar el script (install.sh) es necesario generar el fichero setenv_<entorno>.mk que es el encargado de identificar el entorno que estamos trabajando: sistema operativo, ubicación de harbour y t-gtk, componentes a configurar, etc. Entonces, vamos primero a generar nuestro fichero de entorno, esto lo hacemos ejecutando make.

make

make, a su vez necesita leer el fichero de entorno (setenv<xxx>.mk) pero al no localizarlo intentará generar uno con la información que pueda detectar. Luego de crearlo, nos indica un mensaje y termina la ejecución. El resultado es algo como:

$ make

Ejecutando config/global.mk

* Ejecutando config/detect.mk

Ejecutando config/platform_name.mk
Harbour Build Info
---------------------------
Version: Harbour 3.2.0dev (r1509181115)
Compiler: GNU C 4.8.2 (64-bit)
Platform: Linux 3.13.0-74-generic x86_64
PCode version: 0.3
ChangeLog last entry: 2015-09-18 13:15 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
ChangeLog ID: d8749db18d0e4ef2405a68b609ce825d55da04ab
Built on: Sep 18 2015 22:54:13
Build options: (Clipper 5.3b) (Clipper 5.x undoc)
---------------------------
! Compilación sin soporte para SSL (secure sockets layer).  
make -C src/gclass

Ejecutando config/gensetenv.mk
* Generando setenv_Ubuntu_14.04.1_x86_64.mk
! Compilación sin soporte para SSL (secure sockets layer).  
/bin/sh: 1: GTK_PATH: not found
* Finalizada la contruccion de setenv_Ubuntu_14.04.1_x86_64.mk
Por favor, edite setenv_Ubuntu_14.04.1_x86_64.mk y ajuste los valores...
* Vuelva a ejecutar..
make[1]: se ingresa al directorio «/home/usuario/t-gtk/src/gclass»
../../config/gensetenv.mk:183: *** .  Alto.
make[1]: se sale del directorio «/home/usuario/t-gtk/src/gclass»
make: *** [all] Error 2

 

Podemos editar el fichero generado: setenv_Ubuntu_14.04.1_x86_64.mk y vemos algo como:

#--------------------------------------------- 
 # System Configure of T-Gtk.
 # (c)2004-15 gTXBASE Team.
 #
 #---------------------------------------------

 #--------------------
 # Compilador xBase. Opciones [HARBOUR o XHARBOUR]
 export XBASE_COMPILER =HARBOUR
 
 #--------------------
 # RUTAS Compilador xBase HARBOUR.
 export HARBOUR_PATH =/usr/local
 export HB_BIN_INSTALL =/usr/local/bin
 export HB_INC_INSTALL =/usr/local/include/harbour
 export HB_LIB_INSTALL =/usr/local/lib/harbour
 export HB_VERSION =32
 #--------------------
 # RUTAS Compilador xBase xHARBOUR.
 export XHB_BIN_INSTALL =/usr/bin
 export XHB_INC_INSTALL =/usr/include/xharbour
 export XHB_LIB_INSTALL =/usr/lib/xharbour
 
 #--------------------
 # RUTAS T-GTK.
 export TGTK_DIR =/home/usuario/t-gtk
 export LIBDIR_TGTK =$(TGTK_DIR)/lib
 export INCLUDE_TGTK_PRG =$(TGTK_DIR)/include
 
 #--------------------
 # Componentes Adicionales.
 export GTK_PATH =
 export TGTK_BIN =\mingw
 export PKG_CONFIG_PATH =/lib/pkgconfig
 #--------------------
 # Genera Binario con Datos de la Plataforma.
 export BIN_PLATFORM_NAME =yes
 #--------------------
 # Auto Descarga e Instalación de Componentes.
 export AUTO_INST =yes
 export TGTK_DOWN =yes
 
 
 # Soporte de Impresion.
 export SUPPORT_PRINT_LINUX =no
 
 # Soporte para MultiThread.
 export GTK_THREAD =no
 
 
 # Soporte para Terminal.
 #export VTE =no
 
 # Soporte para GTKSourceView.
 export GTKSOURCEVIEW =no
 
 # Soporte para GTK-Extra.
 export GTK_EXTRA =no
 
 # Soporte para Bonobo.
 export BONOBO =no
 
 # Soporte para gnomeDB y LibGDA.
 export GDA =no
 export GDA_VERSION =5.0
 
 # Soporte para cURL.
 export CURL =no
 
 # Soporte para WebKit.
 export WEBKIT =no
 
 # Soporte para LibGD (GD Graphic Library)
 export LIBGD =no
 
 # Soporte para Haru (Free PDF Library)
 export HPDF =no
 
 # Soporte para SQLite.
 export SQLITE =no
 
 # Soporte para MySQL.
 export MYSQL =no
 export DOLPHIN =no
 export DOLPHIN_PATH =
 export MYSQL_VERSION =5.0
 export MYSQL_PATH =MySQLMySQL Server 5.0include
 
 # Soporte para PostgreSQL.
 export POSTGRE =no
 export POSTGRE_VERSION =9.0
 export POSTGRE_PATH =PostgreSQL9.0include
 
 
 # Soporte para SSL (Secure Sockets Layer).
 export SSL =yes
 
 
 # Flags para el Compilador xBase.
 # Solo para definir una cadena fija como flag (HB_FLAGS).
 #export HB_FLAGS
 
 # -l
 export HB_LINES :=no
 # -gh
 export HB_HRB_OUT :=no
 # -d
 export HB_DEFINE :=
 # -v
 export HB_ASSUME_VARS :=no
 # -p
 export HB_GEN_PPO :=yes
 # -p+
 export HB_GEN_PPT :=no
 # -b
 export HB_DEBUG_INFO :=no
 # -w[level] Warning Level [1..3]
 export HB_WL :=1
 # -q[,0,2]
 export HB_QUIET :=0
 # -kM turn off macrotext substitution
 export HB_MACROTEXT_SUBS :=no

Bien, como se puede observar hay una serie de componentes a los que en caso de querer darle soporte (y por lo tanto se debe instalar dependencias) se debe cambiar el valor de 'no' a 'yes'.

Ahora si, vamos a ejecutar el script que se encarga de instalar todos los paquetes que requerimos. (debemos indicar el nombre del archivo de entorno)

./install.sh setenv_Ubuntu_14.04.1_x86_64.mk

y comienza el proceso... se debe indicar contraseña de administrador cuando lo solicite.

Cuando este proceso termine, ya el entorno esta listo para construir harbour y t-gtk sin problemas.

podemos volver a posicionarnos en el directorio donde está alojada nuestra copia de harbour.

cd
cd harbour-project
make
sudo make install

Nota: Es necesario tener privilegios administrativos para poder instalar harbour. Por eso el uso de "sudo" make install.

 

Si todo ha ido bien, ya harbour es utilizable. Puedes intentar ejecutarlo

harbour

y devolvera algo como:

Harbour 3.2.0dev (r1509181115)
Copyright (c) 1999-2015, http://harbour-project.org/
Syntax:  harbour <file[s][.prg]|@file>; [options]

Options:  -a               automatic memvar declaration
          -b               debug info
          -build           display detailed version info
          -credits         display credits
          -d<id>[=<val>]   #define <id>
          -es[<level>]     set exit severity
          -fn[:[l|u]|-]    set filename casing (l=lower u=upper)
          -fd[:[l|u]|-]    set directory casing (l=lower u=upper)
          -fp[:<char>]     set path separator
          -fs[-]           turn filename space trimming on or off (default)
          -g<type>         output type generated is <type> (see below)
          -gc[<type>]      output type: C source (.c) (default)
                           <type>: 0=compact (default) 1=normal 2=verbose
                                   3=generate real C code
          -gh              output type: Harbour Portable Object (.hrb)
          -gd[.<destext>]  generate dependencies list into (.d) file
          -ge[<mode>]      error output <mode>: 0=Clipper (default)
                                                1=IDE friendly
          -i<path>         #include file search path
          -i[-|+]          disable/enable support for INCLUDE envvar
          -j[<file>]       generate i18n gettext file (.pot)
          -k               compilation mode (type -k? for more data)
          -l               suppress line number information
          -m               compile module only
          -n[<type>]       no implicit starting procedure
                           <type>: 0=no implicit starting procedure
                                   1=no starting procedure at all
                                   2=add starting procedure if necessary
          -o<path>         object file drive and/or path
          -p[<path>]       generate pre-processed output (.ppo) file
          -p+              generate pre-processor trace (.ppt) file
          -q               quiet
          -q0              quiet and don't display program header
          -q2              disable all output messages
          -ql              hide line counter gauge
          -r:<max>         set maximum number of preprocessor iterations
          -s[m]            syntax check only [minimal for dependencies list]
          -u[<file>]       use command def set in <file> (or none)
          -u+<file>        add command def set from <file>
          -undef:<id>      #undef <id>
          -v               variables are assumed M->
          -w[<level>]      set warning level number (0..3, default 1)
          -z               suppress shortcutting (.and. & .or.)
          @<file>          compile list of modules in <file>

Puedes dirigirte a la carpeta tests e intentar compilar algun ejemplo a través de hbmk2.

más información: https://harbour.github.io/samples.html

 

Ahora vamos a construir t-gtk. Nos dirijimos a la carpeta donde esta alojada.

cd
cd t-gtk
make
make install

Nota: No hacemos uso de "sudo" al hacer make install, ya que los scritps de t-gtk aún no copian las librerias generadas a directorios que requieren permisos administrativos.

 

Si todo va bien, ya está la t-gtk lista para trabajar. Puedes ver las librerias generadas en la carpeta lib

Igualmente puedes compilar algun ejemplo posicionando el prompt en alguno como:

cd tests/gclass/demo
make

Luego, si se ha compilado sin problemas se puede hacer un list (ls) y vemos que está el fichero ejecutable.

 

Espero sea de utilidad.

 

Saludos!