No use T-Gtk definitivamente en Harbour

01/05/2010

Procedo a descartar las T-GTK para tratara de instalarlas, el autor dice
que es sencillo y simplemente hay que generar el archivo Rules.make
desde el subdirectorio ../TGTK/utils/config_system
Hay que cambiar los permisos de configure con:

chmod ugo+wrx configure

luego hay que ir al entorno grafico y desde alli lanzar una terminal
yo utilizo (KConsole) , cambiar permsiso a super usario con sudo o
directamente con el comando su (dar el passwd de ROOT) , luego ubicar
el directorio donde descargo el t-gtk, en mi caso :

/home/ksos/t-gtk/TGTK

cd /home/ksos/t-gtk/TGTK/utils/config-system

./configure

De los parametros que mas le convengan de acuerdo a su sistema y
darle save y salir.
Si no tuvo ningun problema el sistema debe haber creado un archivo
Rules.make en /home/ksos/t-gtk/TGTK

Una copia del mismo revisado y probado es la siguiente:

##################################################
# System Configure of T-Gtk.
# Version para el S.O GNU/Linux y para XHARBOUR
# (c)2004-05 Rafa Carmona.
#
# Create: 05/02/10 # 21:06:35
##################################################

# Para tener soporte de impresion en GNU/Linux a traves de gnome.
# tenemos que tener instalado el paquete libgnomeprintui22-devel,
# si queremos realizar la aplicacion con soporte de impresion.
# Aqui , especificaremos los cFlags de compilacion necesarios para C
SUPPORT_PRINT_LINUX=no

# 20-12-2005 by Joaquim Ferrer
# Soporte de Impresion para Win32
# Es necesario tener instalado el pack de soporte para impresion
# de gnome, portado a Win32, gtk-win32-gnomeprint-2-2 instalado
# en el path de Gtk+, si no es asi, SUPPORT_PRINT_WIN32=no -->
SUPPORT_PRINT_WIN32=no

#Especifica aqui, si lo necesitas por no tenerlo en el entorno, SET,
#las rutas del compilador de Harbour.
#Bajo Windows especificar mingw32, bajo linux especificar gcc.
HB_COMPILER = gcc

#Especificamos compilador xBase a usar, si harbour o xHarbour
XBASE_COMPILER = XHARBOUR

#Rutas hacia el compilador xBase
HB_BIN_INSTALL = /usr/bin
HB_INC_INSTALL = /usr/include/xharbour
HB_LIB_INSTALL = /usr/lib/xharbour

#Rutas de librerias y de includes de TGTK.
LIBDIR_TGTK=/home/ksos/t-gtk/TGTK/lib
INCLUDE_TGTK_PRG=/home/ksos/t-gtk/TGTK/include

##############################################
# Esqueleto para todas las plataformas
##############################################

#Generic make options
LINKER = ar
CC = gcc
LIBRARIAN = ranlib
GT_LIBS=-lgtstd

ifeq ($(HB_COMPILER),mingw32)
CFLAGS +=-fms-extensions -Wall $(shell pkg-config --cflags tgtk)-mms-bitfields -ffast-math -mno-cygwin -O3
ifeq ($(SUPPORT_PRINT_WIN32),yes)
CFLAGS += $(shell pkg-config --cflags libgnomeprintui-2.2)
endif
else
CFLAGS += -Wall -I. $(shell pkg-config --cflags tgtk)
ifeq ($(SUPPORT_PRINT_LINUX),yes)
CFLAGS += $(shell pkg-config --cflags libgnomeprintui-2.2) -DHB_OS_LINUX
LIBS += $(shell pkg-config --libs libgnomeprintui-2.2)
endif
endif

ifeq ($(XBASE_COMPILER),HARBOUR)
CFLAGS += -D_HB_API_INTERNAL_
endif

#libraries for binary building
ifeq ($(HB_MT),MT)
LIBFILES_ = -ldebug -lvmmt -lrtlmt $(GT_LIBS) -lrddmt -lrtlmt -lvmmt -lmacro -lppmt -ldbfntxmt -ldbfcdx -ldbfdbt -lcommon -lm -lpthread

else
ifeq ($(HB_COMPILER),mingw32)
ifeq ($(XBASE_COMPILER),XHARBOUR)
# XHARBOUR
#LIBFILES_ = -ldebug -lvm -lrtl $(GT_LIBS) -llang -lrdd -lrtl -lvm -lmacro -lpp -ldbfntx -ldbfcdx -ldbfdbt -lrtl -lcommon -lm -lgtwin $(GT_LIBS) -lgtnul -lgtwin
LIBFILES_ = -lvm -lrtl -llang -lrdd -lmacro -lpp -ldbfntx -ldbfcdx -ldbffpt -lhbsix -lhsx -lpcrepos -lcommon -lm -lgtwin -lgtnul $(GT_LIBS)

else
# HARBOUR
#LIBFILES_ = -ldebug -lvm -lrtl $(GT_LIBS) -llang -lrdd -lrtl -lvm -lmacro -lpp -ldbfntx -ldbfcdx -ldbfdbt -lcommon -lm -lgtwin $(GT_LIBS) -lgtwin

LIBFILES_ = -lvm -lrtl $(GT_LIBS) -llang -lrdd -lmacro -lpp -ldbfntx -ldbfcdx -ldbffpt -lhbsix -lhsx -lcommon -lm -lgtwin $(GT_LIBS)

endif
else
ifeq ($(XBASE_COMPILER),XHARBOUR)
# XHARBOUR
LIBFILES_ = -lvm -lrtl -lgtnul -lgtcrs -lncurses -llang -lrdd -lmacro -lpp -ldbfntx -ldbfcdx -ldbffpt -lcommon -lm -lhbsix -lhsx -lpcrepos -lgpm

else
# HARBOUR
LIBFILES_ = -lvm -lrtl -lgtcrs -lncurses -llang -lrdd -lmacro -lpp -ldbfntx -ldbfcdx -ldbffpt -lcommon -lm -lhbsix -lhsx $(GT_LIBS)

endif
endif
endif

ifeq ($(HB_COMPILER),mingw32)
ifeq ($(XBASE_COMPILER),XHARBOUR)
# XHARBOUR
LIBFILES_ += -lhbodbc -luser32 -lwinspool -lole32 -loleaut32 -luuid -lgdi32 -lcomctl32 -lcomdlg32 -lodbc32 -lwininet -lwsock32
else
# HARBOUR
LIBFILES_ += -luser32 -lwinspool -lole32 -loleaut32 -luuid -lgdi32 -lcomctl32 -lcomdlg32 -lodbc32 -lwininet -lwsock32
endif
EXETYPE=.exe
else
LIBFILES_ +=
EXETYPE=
endif

#librerias usadas por Tgtk las definimos aqui. GTK y GLADE
LIBS += -L$(LIBDIR_TGTK) $(shell pkg-config --libs tgtk )
PRGFLAGS += -I$(INCLUDE_TGTK_PRG)

# Soporte impresion para Win32, las libs de gnome van en este orden y despues de tgtk si no, no enlaza.
ifeq ($(SUPPORT_PRINT_WIN32),yes)
LIBS += $(shell pkg-config --libs libgnomeprint-2.2) $(shell pkg-config --libs libgnomeprintui-2.2)
endif

#nos servira para compilar prgs exclusivos para GNU/Linux
#por ejemplo, gPrinter.prg
ifeq ($(HB_COMPILER),gcc)
PRGFLAGS += -DHB_OS_LINUX
endif

LIBDIR_ = $(LIBDIR) -L$(HB_LIB_INSTALL)
LIBS_= $(LIBS)-Wl,--start-group $(LIBFILES_) -Wl,--end-group

ifeq ($(strip $(SOURCE_TYPE)),)
SOURCE_TYPE=prg
endif

#Sources / object determination rule
#subidr might override this file by providing a makefile.sources
ifeq ($(strip $(SOURCES)),)
SOURCES=$(wildcard *.$(SOURCE_TYPE))
endif

ifeq ($(strip $(OBJECTS)),)
OBJECTS=$(patsubst %.$(SOURCE_TYPE),%.o,$(SOURCES))
ifneq ($(strip $(CSOURCES)),)
OBJECTS+=$(patsubst %.c,%.o,$(CSOURCES))
endif
endif


#COMMANDS
all:$(TARGET) $(TARGETS)
win:$(TARGET) $(TARGETS)
linux:$(TARGET) $(TARGETS)

.PHONY: clean install

%$(EXETYPE):%.o
$(CC) -o$@ $< $(LIBDIR_) $(LIBS_)

%.o: %.c
$(CC) -c -o$@ $(CFLAGS) -I$(HB_INC_INSTALL) $<

%.c: %.prg
$(HB_BIN_INSTALL)/harbour -w -q0 -gc0 -n $(PRGFLAGS) -I$(HB_INC_INSTALL) -o$@ $<

$(TARGET): $(OBJECTS)
ifeq ( lib , $(patsubst %.a, lib, $(TARGET)))
$(LINKER) -r $(TARGET) $(OBJECTS)
$(LIBRARIAN) $(TARGET)
else
$(CC) -s -o $(TARGET) $(OBJECTS) $(LIBDIR_) $(LIBS_)
endif
9

clean:
rm -f *.o
rm -f *~
rm -f *.ppo
rm -f $(TARGET)
rm -f $(TARGET).exe
rm -f $(TARGETS)

install: all
cp -f *.a $(TGTK_INSTALL)

--------------------------------------------------------------------------

cambio al directorio principal de /home/ksos/t-gtk/TGTK
alli creo el directorio lib

#mkdir lib

de una vez, les recomiendo borrar el archivo src/gnomeprint.prg
pues genera un monton de errores de compilacion y evita que el
sistema puda terminar correctamente, ni se que ocurre pues en
Rules.make le dije que no lo tuviera en cuenta este archivo , al
seleccion

SUPPORT_PRINT_LINUX=no

sin embargo trata de ejecutarlo y crea un monton de problemas, tambien
les recomiento que de una vez se haga el siguiente paso:

# cd /usr/lib/pkgconfig/
# cp gtk+.pc tgtk.pc

pues el sistema solicita el paquete tgtk.pc que no existe por ninguna
parte.

ahora /home/ksos/t-gtk/TGTK.

# make
# make install

Las librerias T-GTK , quedarian instaladas.

Comentarios

  1. Hola Carlos, en mayo 2011, se libero la version 2 de t-gtk. Se intentó hacer muy simple la instalación/configuración.

    solo ejecutar install.sh con privilegios de root
    (probado en ubuntu)

    luego, se genera setenv.mk para que luego en el mismo puedas setear los valores personalizados.

    y ante cualquier duda me puedes escribir a riztan@gmail.com y gustosamente tratare de ayudarte ;)

    nos podemos encontrar tambien en www.gtxbase.org/forums

    Que estes bien..

    Saludos
    Riztan

    ResponderEliminar

Publicar un comentario

Entradas populares