Incluir a SUPER.LIB na compilação

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Eliane
Usuário Nível 2
Usuário Nível 2
Mensagens: 82
Registrado em: 22 Mai 2006 10:17
Localização: Londrina-PR

Incluir a SUPER.LIB na compilação

Mensagem por Eliane »

Sou iniciante em harbour começando do zero ok. Tenho um sistema em clipper com os fontes que funciona redondinho, um sistema razoavelmente grande. Quero passar para o Harbour em modo console mesmo. Ele usa a super.lib Procurei a respeito e vi que tem como incluí-la no sistema harbour mas não sei como fazer. Estou seguindo o exemplo de compilação sugerido na Migração para Harbour usando hbmk2.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Incluir a SUPER.LIB na compilação

Mensagem por Itamar M. Lins Jr. »

Eu não sei se todas as funções da superlib estão no Harbour, precisa ver quais que vc usa.
Poste seu arquivo .hbp e a tela com os erros se possível.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Incluir a SUPER.LIB na compilação

Mensagem por Itamar M. Lins Jr. »

Na pasta extras do harbour 3.4 Fork do Viktor tem um pequeno tutorial.

Código: Selecionar todos

1.) Download original sources of SuperLib 3.5 from this page:
       http://www.the-oasis.net/ftpmaster.php3?content=ftplib.htm
    Direct link:
       http://www.the-oasis.net/files/library/supfree.zip

2.) Unpack it:
    unzip supfree.zip
    unzip SOURCE.ZIP

3.) *nix users will need to convert original filenames to lowercase
    and EOLs to native format, using these commands:
    hbmk2 -sanitize *.c *.prg

4.) Apply supplied patch to the source using GNU Patch:
    patch -lNi superlib.dif

5.) Build it:
    hbmk2 superlib.hbp

6.) You're done.

7.) Finally, to build an application with SuperLib, use:
    hbmk2 myapp.prg superlib.hbc

[vszakats]
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Incluir a SUPER.LIB na compilação

Mensagem por acelconsultoria »

Boa noite,

Apenas "fuçando" por curiosidade, tentei gerar a lib da SUPERLIB. Consegui gerar o arquivo, mas quando tento gerar algum exemplo da pasta SAMPLES, dá o seguinte erro:

Código: Selecionar todos

hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
       TAKEOUT(), GETSCROW(), GETSCCOL(), SSPRINKLE()
Pesquisando lá nos fontes da superlib, vi que essas "funções" estão dentro dos arquivos .c que acompanham os fontes. Na hora de gerar a lib, não acusou nenhum erro e pelo que pude perceber, o arquivo hbp que gera a lib contém os arquivos .c.

superlib.hbp

Código: Selecionar todos

-hblib
-inc

-olib/${hb_plat}/${hb_comp}/${hb_name}

-w1 -es2

-hbx=${hb_name}

hbsuper.prg

between.c
mline.c
nextls.c
s_scrbuf.c

curd.prg
r_hcode.prg
r_printr.prg
r_quikr.prg
r_report.prg
s_1label.prg
s_2dbrz.prg
s_aaskip.prg
s_abort.prg
s_achoi.prg
s_addsp.prg
s_aextra.prg
s_aftype.prg
s_akount.prg
s_aleng.prg
s_allbut.prg
s_amsg.prg
s_amsort.prg
s_amstat.prg
s_append.prg
s_appt.prg
s_arrang.prg
s_ascii.prg
s_astats.prg
s_at2c.prg
s_att.prg
s_bdelim.prg
s_begend.prg
s_bigel.prg
s_blanks.prg
s_bldar.prg
s_bldbf.prg
s_bldndx.prg
s_bom.prg
s_boxes.prg
s_boyear.prg
s_brsdf.prg
s_build.prg
s_bungde.prg
s_bungee.prg
s_bxx.prg
s_calck.prg
s_calcvw.prg
s_centr.prg
s_clab.prg
s_clrfun.prg
s_cls.prg
s_colpik.prg
s_copy.prg
s_copyf.prg
s_crunch.prg
s_ctrlw.prg
s_cvtdel.prg
s_datcal.prg
s_datek.prg
s_datvw.prg
s_daysin.prg
s_dbarr.prg
s_dbstat.prg
s_delar.prg
s_delet.prg
s_doyear.prg
s_dpops.prg
s_dtdiff.prg
s_dtow.prg
s_dup.prg
s_duph.prg
s_edit.prg
s_editm.prg
s_editmv.prg
s_edpict.prg
s_endsw.prg
s_enhan.prg
s_evalq.prg
s_export.prg
s_fform.prg
s_fields.prg
s_filein.prg
s_filer.prg
s_fillar.prg
s_fm2n.prg
s_fm2p.prg
s_forml.prg
s_formu.prg
s_freadl.prg
s_freq.prg
s_fulld.prg
s_gened.prg
s_genva.prg
s_getcal.prg
s_getdat.prg
s_getdfp.prg
s_getkey.prg
s_getman.prg
s_global.prg
s_globr.prg
s_hardc.prg
s_help.prg
s_helpm.prg
s_hplas.prg
s_init.prg
s_inlook.prg
s_isload.prg
s_ispart.prg
s_isvalf.prg
s_kbdesc.prg
s_list.prg
s_ljust.prg
s_lotmen.prg
s_mailm.prg
s_makeb.prg
s_mchoi.prg
s_meas.prg
s_menuv.prg
s_messyn.prg
s_mfld.prg
s_mfldt.prg
s_mmemo.prg
s_modify.prg
s_moose.prg
s_msg.prg
s_mulmyn.prg
s_nbr2st.prg
s_nkey.prg
s_notdup.prg
s_nozdiv.prg
s_old.prg
s_oldmod.prg
s_oner.prg
s_openin.prg
s_paths.prg
s_pcsel.prg
s_picknd.prg
s_plsw.prg
s_popdir.prg
s_popex.prg
s_popord.prg
s_popr.prg
s_popupk.prg
s_popvw.prg
s_pread.prg
s_prnpor.prg
s_prnt.prg
s_prntf.prg
s_prog.prg
s_proper.prg
s_pseek.prg
s_pulldn.prg
s_purgem.prg
s_query.prg
s_readrs.prg
s_rjust.prg
s_rmenu2.prg
s_rread.prg
s_saddr.prg
s_scmod.prg
s_screen.prg
s_scroll.prg
s_search.prg
s_setcen.prg
s_setcol.prg
s_setdat.prg
s_setex.prg
s_setkey.prg
s_sfilok.prg
s_smal.prg
s_smalk.prg
s_smgets.prg
s_snetu.prg
s_sreclo.prg
s_stan.prg
s_starts.prg
s_stod.prg
s_stretc.prg
s_strpat.prg
s_strpul.prg
s_subplu.prg
s_sumav.prg
s_super.prg
s_tabmen.prg
s_tag.prg
s_taga.prg
s_tagam.prg
s_tagf.prg
s_time.prg
s_todo.prg
s_trueva.prg
s_unbox.prg
s_uniqf.prg
s_unsel.prg
s_var2.prg
s_varlen.prg
s_viewp.prg
s_vmemo.prg
s_vview.prg
s_wild.prg
s_womon.prg
s_woyear.prg
s_writef.prg
s_xbxx.prg

$hb_pkg_dynlib.hbm
$hb_pkg_install.hbm
Uma das funções, a TAKEOUT(), está no arquivo Between.c... que é assim:

Código: Selecionar todos

/*
Function:     Takeout()
Purpose :     Extract section of a string between delimiters
Usage   :     Takeout(<expC1>, <expC2>, <expN>)
Params  :     expC1 - string
              expC2 - delimiter  (beginning and end of string are considered
                                  delimiters)
              expN  - occurance
Example :     takeout("Next:Previous:First:Quit",":",3)
              returns "First"
Returns :     Section of string between delimiters, occurance <expN>.
Found in:     between.c
*/


#include "extend.h"
CLIPPER takeout()
{
   char *string;
   char *delim;
   char *result;
   char *empty = 0;

   quant i;
   quant occur;
   quant knt;
   quant fnd;
   quant strstart=0;
   quant strlen;
   quant strend;
   quant size;

   occur        = _parni(3);
   occur        =  occur-1;    /* beginning of string = first delim */
   delim        = _parc(2);
   string       = _parc(1);
   strlen       = _parclen(1);
   strend       = strlen-1;

   i = 0;
   knt = 0;
   fnd = 0;

   /* first find occurrance */
   while (i < strlen && knt < occur)     /* not null, kount < occurance */
     {
     knt = (delim[0] == string[i]) ? knt+1 : knt ;
     strstart = (knt == occur) ? i+1 : strend ;
     i++;
     }

   fnd = (knt == occur);

   while (i < strlen && (strend == strlen-1) && (fnd))
     {
     strend  = (delim[0] == string[i]) ? i-1 : strend ;
     i++;
     }

   knt = 0;


   if (strend >= strstart && (fnd))
   {
     size = (strend-strstart+2);
     result = _xgrab(size);
     for(i = strstart; i <= strend  ;i++)
       result[knt++] = string[i];
     result[knt] = NIL;
     _retclen(result,knt);
     _xfree(result);
   }
   else
     _retclen(empty,0);
}
Bom... então o que está acontecendo ???
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Incluir a SUPER.LIB na compilação

Mensagem por Itamar M. Lins Jr. »

Ola!
Bom... então o que está acontecendo ???
Não sei. Mas o Viktor sabe, e deve ter corrigido.

Código: Selecionar todos

2017-04-05 11:45 UTC Viktor Szakats (vszakats users.noreply.github.com)
  * package/mpkg_rpm_docker.sh
    * temp fix: use vendored sqlite

  * utils/hbmk2/hbmk2.prg
    ! fix to expand wildcard on *nix that came from the command-line
      this fixes the sanitize commands in extras/*/README.md on *nix
      systems

  * extras/superlib/superlib.patch
    ! fix some C code warnings

  + extras/superlib/build.sh
    + add script that does all the steps described in README.md

  + extras/superlib/test.prg
    + add simple test app

  * extras/superlib/superlib.hbp
    * be silent

Código: Selecionar todos

Fast-forward
 ChangeLog.txt                  | 21 +++++++++++++++++++++
 extras/superlib/build.sh       | 13 +++++++++++++
 extras/superlib/superlib.hbp   |  2 ++
 extras/superlib/superlib.patch | 18 ++++++++++++------
 extras/superlib/test.prg       |  5 +++++
 package/mpkg_rpm_docker.sh     |  6 +++++-
 utils/hbmk2/hbmk2.prg          |  7 -------
 7 files changed, 58 insertions(+), 14 deletions(-)
Atualizar e testar novamente.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Incluir a SUPER.LIB na compilação

Mensagem por acelconsultoria »

Os arquivos PRG dentro da pasta source, possuem alguns erros de digitação, causando alguns erros inconvenientes na hora de gerar a lib.

Eu corrigi os erros dos PRGs, e a lib agora gera sem erros. Segue em anexo.
Anexos
SOURCE.rar
PRGs dos fontes corrigidos da Superlib
(1.63 MiB) Baixado 335 vezes
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Incluir a SUPER.LIB na compilação

Mensagem por acelconsultoria »

Boa tarde,

Consegui gerar a lib com as atualizações recentes do Harbour 3.4... porém, não consigo compilar nenhum exemplo. O erro continua o mesmo de antes:

Código: Selecionar todos

Harbour 3.4.0dev () (2017-04-03 08:45)
Copyright (c) 1999-2017, https://github.com/vszakats/harbour-core/
Compiling 's3prog.prg'...

Lines 97, Functions/Procedures 5
Generating C source output to 'C:\Users\Escola\AppData\Local\Temp\hbmk_w97xnu.dir\s3prog.c'... Done.

hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
       TAKEOUT(), GETSCROW(), GETSCCOL(), SSPRINKLE()

Essas funções fazem parte dos .C que acompanham os fontes da superlib. Mas notei também, que no arquivo superlib.patch há um script para "alguma-coisa-que-não-entendi", e também constam essas mesmas funções.

No README explica que o arquivo superlib.patch deve ser rodado no GNU, para configurar o ambiente pra gerar a lib, com o comando:

"patch -lNi superlib.patch"

Não sei se dá pra usar esse arquivo no Windows, pra ajudar a corrigir esse problema. Bom, continuamos no aguardo.
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Incluir a SUPER.LIB na compilação

Mensagem por Vlademiro »

O arquivo que eu uso com sucesso a superlib é
superlib.zip
(1.1 KiB) Baixado 260 vezes
Aproveito o embalo e posto também o da grump :
grump.hbp.zip
(748 Bytes) Baixado 281 vezes
Aqui comigo funciona perfeitamente tanto no Harbour 3.2 quanto no Harbour 3.4

O menu da superlib tem um pequeno bug quando tento ultrapassar a última opção, mas não é um bug grave.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Incluir a SUPER.LIB na compilação

Mensagem por Vlademiro »

Para facilitar ainda mais segue os fontes da superlib que eu uso aqui. Talvez eu tenha modificado algo nela, mas não tenho certeza pois já faz muito tempo.
superlib_completa.zip
(1.37 MiB) Baixado 480 vezes
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Incluir a SUPER.LIB na compilação

Mensagem por acelconsultoria »

Boa noite, Vlademiro.

Como eu não uso linux, eu tava apanhando aqui pra ver como eu iria fazer um "patch" no superlib.patch pra arrumar os arquivos .c. Mas aí vc já resolveu.

Grato.

Maickon Sato
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
fdaniele
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 10 Mar 2019 04:51
Localização: capri/italy

Incluir a SUPER.LIB na compilação

Mensagem por fdaniele »

Thank you Mr. Vlademiro

I'm an Italian and I still work today in clipper with superlib and grumpfish and finally now I'm going to Harbor
thanks to your contribution.
I am infinitely grateful to you for your kindness
God bless you

thank and congratulations!

Daniele
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Incluir a SUPER.LIB na compilação

Mensagem por Nascimento »

pelo que percebi o .path ele faz tipo uma substituição de comandos "clipper" para comandos "harbour" vc lendo o .path vai saber como proceder na compilaçao da lib para harbour
ja portei varias libs para harbour inclusive feitas em .c , a algumas totalmente em .c a ultima que fiz foi uma lib bridge para usar a allegro original no harbour

por isso digo que não é tão complexo, so tem que ter conhecimento basico de .C e estudar a hbapi.h o resto é so festa!
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Incluir a SUPER.LIB na compilação

Mensagem por janio »

O que tem de bom nessa SuperLib?

Gostaria de ver algumas telas feitas com ela, se possivel

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

Incluir a SUPER.LIB na compilação

Mensagem por Linguagemclipper »

Generating C source output to 'C:\Users\ANDERS~1\AppData\Local\Temp\hbmk_6ixlk
dir\s_xbxx.c'... Done.
E:/PROGRAMA/FONTALU/LIB52/superlib/mline.c: In function 'HB_FUN_S_GETLINE':
E:/PROGRAMA/FONTALU/LIB52/superlib/mline.c:40:6: warning: comparison is always
rue due to limited range of data type [-Wtype-limits]
E:/PROGRAMA/FONTALU/LIB52/superlib/mline.c:48:6: warning: comparison is always
alse due to limited range of data type [-Wtype-limits]
E:/PROGRAMA/FONTALU/LIB52/superlib/mline.c:58:52: warning: comparison between
gned and unsigned integer expressions [-Wsign-compare]
E:/PROGRAMA/FONTALU/LIB52/superlib/mline.c:63:21: warning: comparison between
gned and unsigned integer expressions [-Wsign-compare]
E:/PROGRAMA/FONTALU/LIB52/superlib/nextls.c: In function 'HB_FUN_NEXTLS':
E:/PROGRAMA/FONTALU/LIB52/superlib/nextls.c:14:16: warning: comparison between
igned and unsigned integer expressions [-Wsign-compare]
E:/PROGRAMA/FONTALU/LIB52/superlib/nextls.c:21:16: warning: comparison between
igned and unsigned integer expressions [-Wsign-compare]
E:/PROGRAMA/FONTALU/LIB52/superlib/s_scrbuf.c: In function 'HB_FUN_GETSCROW':
E:/PROGRAMA/FONTALU/LIB52/superlib/s_scrbuf.c:10:13: warning: variable 'rows'
t but not used [-Wunused-but-set-variable]
Não conseguí compilar do pacote completo. Deu esses avisos e não compilou nenhuma lib.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Responder