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.
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.
Hola Carlos, en mayo 2011, se libero la version 2 de t-gtk. Se intentó hacer muy simple la instalación/configuración.
ResponderEliminarsolo 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