From 7aaaef1362cd6448b2cb1589f3094086c9efd07b Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 2 Mar 2011 03:39:29 +0000 Subject: [PATCH] 2011-03-02 04:38 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.pt_BR.po * utils/hbmk2/hbmk2.hu_HU.po * utils/hbmk2/hbmk2.prg * utils/hbmk2/hbmk2.es_PE.po + Added -pic[-] option and pic= .hbc command to enable PIC. It's always enabled when using -hbdyn/-hbdynvm. ! Using -fPIC for bsd. (in sync with core make) + Added sunos/sparc PIC option, though to really kick in, CPU detection should be implemented, or it should be manually supplied using -cpu=sparc option. Please review these. * contrib/hblzf/3rd/liblzf/lzf_d.c * contrib/hblzf/3rd/liblzf/lzfP.h * contrib/hblzf/3rd/liblzf/LICENSE * contrib/hblzf/3rd/liblzf/lzf.hbp * contrib/hblzf/3rd/liblzf/liblzf.dif * contrib/hblzf/3rd/liblzf/Changes * contrib/hblzf/3rd/liblzf/README * contrib/hblzf/3rd/liblzf/lzf_c.c * update lzf to 3.6 [Tamas Tevesz] * contrib/hbqt/qtgui/hbqt_init.cpp * Renamed HBQT_PUSHEVENT() to HBQTGUI_EVENTPUSH(). * Commented this new function with a detailed TOFIX note, with some notes needing more close inspection. --- harbour/ChangeLog | 38 ++- harbour/contrib/hblzf/3rd/liblzf/Changes | 11 + harbour/contrib/hblzf/3rd/liblzf/LICENSE | 2 +- harbour/contrib/hblzf/3rd/liblzf/README | 4 +- harbour/contrib/hblzf/3rd/liblzf/liblzf.dif | 4 +- harbour/contrib/hblzf/3rd/liblzf/lzf.hbp | 4 +- harbour/contrib/hblzf/3rd/liblzf/lzfP.h | 64 +++-- harbour/contrib/hblzf/3rd/liblzf/lzf_c.c | 35 ++- harbour/contrib/hblzf/3rd/liblzf/lzf_d.c | 55 +++- harbour/contrib/hbqt/qtgui/hbqt_init.cpp | 11 +- harbour/utils/hbmk2/hbmk2.es_PE.po | 4 +- harbour/utils/hbmk2/hbmk2.hu_HU.po | 4 +- harbour/utils/hbmk2/hbmk2.prg | 269 +++++++++++--------- harbour/utils/hbmk2/hbmk2.pt_BR.po | 4 +- 14 files changed, 317 insertions(+), 192 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index dc12927917..63ab217fce 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,17 +16,45 @@ The license applies to all entries newer than 2009-04-28. */ +2011-03-02 04:38 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.pt_BR.po + * utils/hbmk2/hbmk2.hu_HU.po + * utils/hbmk2/hbmk2.prg + * utils/hbmk2/hbmk2.es_PE.po + + Added -pic[-] option and pic= .hbc command to enable PIC. + It's always enabled when using -hbdyn/-hbdynvm. + ! Using -fPIC for bsd. (in sync with core make) + + Added sunos/sparc PIC option, though to really kick in, + CPU detection should be implemented, or it should be + manually supplied using -cpu=sparc option. + Please review these. + + * contrib/hblzf/3rd/liblzf/lzf_d.c + * contrib/hblzf/3rd/liblzf/lzfP.h + * contrib/hblzf/3rd/liblzf/LICENSE + * contrib/hblzf/3rd/liblzf/lzf.hbp + * contrib/hblzf/3rd/liblzf/liblzf.dif + * contrib/hblzf/3rd/liblzf/Changes + * contrib/hblzf/3rd/liblzf/README + * contrib/hblzf/3rd/liblzf/lzf_c.c + * update lzf to 3.6 [Tamas Tevesz] + + * contrib/hbqt/qtgui/hbqt_init.cpp + * Renamed HBQT_PUSHEVENT() to HBQTGUI_EVENTPUSH(). + * Commented this new function with a detailed TOFIX note, + with some notes needing more close inspection. + 2011-03-01 18:22 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/hbqt_init.cpp - + Added: HBQT_PUSHEVENT( , , , + + Added: HBQT_PUSHEVENT( , , , [nKeyboardModifiers], [cKey], [lRepeat=.f.], [ntimes=1] ) - Current implementation is only for keyboard events, viz., - QEvent_KeyPress and QEvent_KeyRelease. Mouse events needs - QPoint() to be present which is in the gtcore namespace, + Current implementation is only for keyboard events, viz., + QEvent_KeyPress and QEvent_KeyRelease. Mouse events needs + QPoint() to be present which is in the gtcore namespace, so needs a different approach as per current hbQT scenario, do the needful. - + 2011-03-01 17:38 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtnetwork/hbqt_init.cpp * contrib/hbqt/qtnetwork/hbqtnetwork.hbx diff --git a/harbour/contrib/hblzf/3rd/liblzf/Changes b/harbour/contrib/hblzf/3rd/liblzf/Changes index 09581ff20f..93bd4cb6dc 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/Changes +++ b/harbour/contrib/hblzf/3rd/liblzf/Changes @@ -1,3 +1,14 @@ +3.6 Mon Feb 7 17:37:31 CET 2011 + - fixed hash calculation in C♯ version (Tiago Freitas Leal). + - unroll copy for small sizes, use memcpy for larger sizes, + greatly speeding up decompression in most cases. + - finally disable rep movsb - it's a big loss on modern intel cpus, + and only a small win on amd cpus. + - improve C++ compatibility of the code. + - slightly improve compressor speed. + - halved memory requirements for compressor on 64 bit architectures, + which can improve the speed quite a bit on older cpus. + 3.5 Fri May 1 02:28:42 CEST 2009 - lzf_compress did sometimes write one octet past the given output buffer (analyzed and nice testcase by Salvatore Sanfilippo). diff --git a/harbour/contrib/hblzf/3rd/liblzf/LICENSE b/harbour/contrib/hblzf/3rd/liblzf/LICENSE index 9d8e6ec9c8..ee54ff7179 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/LICENSE +++ b/harbour/contrib/hblzf/3rd/liblzf/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2000-2007 Marc Alexander Lehmann +Copyright (c) 2000-2009 Marc Alexander Lehmann Redistribution and use in source and binary forms, with or without modifica- tion, are permitted provided that the following conditions are met: diff --git a/harbour/contrib/hblzf/3rd/liblzf/README b/harbour/contrib/hblzf/3rd/liblzf/README index b5379a3892..0734ebe065 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/README +++ b/harbour/contrib/hblzf/3rd/liblzf/README @@ -10,7 +10,7 @@ DESCRIPTION A C♯ implementation without external dependencies is available, too. - I do not know for certain wether any patents in any countries apply + I do not know for certain whether any patents in any countries apply to this algorithm, but at the moment it is believed that it is free from any patents. More importantly, it is also free to use in every software package (see LICENSE). @@ -20,7 +20,7 @@ DESCRIPTION NOTE: This package contains a very bare-bones command-line utility which is neither optimized for speed nor for compression. This library - is really intented to be used inside larger programs. + is really intended to be used inside larger programs. AUTHOR This library was written by Marc Lehmann (See also diff --git a/harbour/contrib/hblzf/3rd/liblzf/liblzf.dif b/harbour/contrib/hblzf/3rd/liblzf/liblzf.dif index e674e958f8..d7783cffb8 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/liblzf.dif +++ b/harbour/contrib/hblzf/3rd/liblzf/liblzf.dif @@ -1,6 +1,6 @@ diff -urN liblzf.orig/lzf.h liblzf/lzf.h ---- liblzf.orig/lzf.h 2011-01-04 15:34:58 +0000 -+++ liblzf/lzf.h 2011-01-04 14:30:25 +0000 +--- liblzf.orig/lzf.h 2011-03-01 17:34:48.870928894 +0100 ++++ liblzf/lzf.h 2011-03-01 17:34:48.910930654 +0100 @@ -37,6 +37,10 @@ #ifndef LZF_H #define LZF_H diff --git a/harbour/contrib/hblzf/3rd/liblzf/lzf.hbp b/harbour/contrib/hblzf/3rd/liblzf/lzf.hbp index 778707085b..ac9d6c6c09 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/lzf.hbp +++ b/harbour/contrib/hblzf/3rd/liblzf/lzf.hbp @@ -19,8 +19,8 @@ lzf_c.c lzf_d.c # ORIGIN http://liblzf.plan9.de -# VER 3.5 -# URL http://dist.schmorp.de/liblzf/liblzf-3.5.tar.gz +# VER 3.6 +# URL http://dist.schmorp.de/liblzf/liblzf-3.6.tar.gz # DIFF liblzf.dif # # MAP LICENSE diff --git a/harbour/contrib/hblzf/3rd/liblzf/lzfP.h b/harbour/contrib/hblzf/3rd/liblzf/lzfP.h index d533f18292..7b7feda477 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/lzfP.h +++ b/harbour/contrib/hblzf/3rd/liblzf/lzfP.h @@ -49,7 +49,7 @@ * the difference between 15 and 14 is very small * for small blocks (and 14 is usually a bit faster). * For a low-memory/faster configuration, use HLOG == 13; - * For best compression, use 15 or 16 (or more, up to 23). + * For best compression, use 15 or 16 (or more, up to 22). */ #ifndef HLOG # define HLOG 16 @@ -93,15 +93,15 @@ /* * Avoid assigning values to errno variable? for some embedding purposes - * (linux kernel for example), this is neccessary. NOTE: this breaks - * the documentation in lzf.h. + * (linux kernel for example), this is necessary. NOTE: this breaks + * the documentation in lzf.h. Avoiding errno has no speed impact. */ #ifndef AVOID_ERRNO # define AVOID_ERRNO 0 #endif /* - * Wether to pass the LZF_STATE variable as argument, or allocate it + * Whether to pass the LZF_STATE variable as argument, or allocate it * on the stack. For small-stack environments, define this to 1. * NOTE: this breaks the prototype in lzf.h. */ @@ -110,27 +110,63 @@ #endif /* - * Wether to add extra checks for input validity in lzf_decompress + * Whether to add extra checks for input validity in lzf_decompress * and return EINVAL if the input stream has been corrupted. This * only shields against overflowing the input buffer and will not * detect most corrupted streams. - * This check is not normally noticable on modern hardware + * This check is not normally noticeable on modern hardware * (<1% slowdown), but might slow down older cpus considerably. */ #ifndef CHECK_INPUT # define CHECK_INPUT 1 #endif +/* + * Whether to store pointers or offsets inside the hash table. On + * 64 bit architetcures, pointers take up twice as much space, + * and might also be slower. Default is to autodetect. + */ +/*#define LZF_USER_OFFSETS autodetect */ + /*****************************************************************************/ /* nothing should be changed below */ +#ifdef __cplusplus +# include +# include +using namespace std; +#else +# include +# include +#endif + +#ifndef LZF_USE_OFFSETS +# if defined (WIN32) +# define LZF_USE_OFFSETS defined(_M_X64) +# else +# if __cplusplus > 199711L +# include +# else +# include +# endif +# define LZF_USE_OFFSETS (UINTPTR_MAX > 0xffffffffU) +# endif +#endif + typedef unsigned char u8; -typedef const u8 *LZF_STATE[1 << (HLOG)]; +#if LZF_USE_OFFSETS +# define LZF_HSLOT_BIAS ((const u8 *)in_data) + typedef unsigned int LZF_HSLOT; +#else +# define LZF_HSLOT_BIAS 0 + typedef const u8 *LZF_HSLOT; +#endif + +typedef LZF_HSLOT LZF_STATE[1 << (HLOG)]; #if !STRICT_ALIGN /* for unaligned accesses we need a 16 bit datatype. */ -# include # if USHRT_MAX == 65535 typedef unsigned short u16; # elif UINT_MAX == 65535 @@ -142,17 +178,7 @@ typedef const u8 *LZF_STATE[1 << (HLOG)]; #endif #if ULTRA_FAST -# if defined(VERY_FAST) -# undef VERY_FAST -# endif -#endif - -#if INIT_HTAB -# ifdef __cplusplus -# include -# else -# include -# endif +# undef VERY_FAST #endif #endif diff --git a/harbour/contrib/hblzf/3rd/liblzf/lzf_c.c b/harbour/contrib/hblzf/3rd/liblzf/lzf_c.c index 0b5d816dd0..bc07084b8f 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/lzf_c.c +++ b/harbour/contrib/hblzf/3rd/liblzf/lzf_c.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2008 Marc Alexander Lehmann + * Copyright (c) 2000-2010 Marc Alexander Lehmann * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: @@ -40,8 +40,8 @@ /* * don't play with this unless you benchmark! - * decompression is not dependent on the hash function - * the hashing function might seem strange, just believe me + * the data format is not dependent on the hash function. + * the hash function might seem strange, just believe me, * it works ;) */ #ifndef FRST @@ -89,9 +89,9 @@ /* * compressed format * - * 000LLLLL ; literal - * LLLooooo oooooooo ; backref L - * 111ooooo LLLLLLLL oooooooo ; backref L+7 + * 000LLLLL ; literal, L+1=1..33 octets + * LLLooooo oooooooo ; backref L+1=1..7 octets, o+1=1..4096 offset + * 111ooooo LLLLLLLL oooooooo ; backref L+8 octets, o+1=1..4096 offset * */ @@ -106,7 +106,6 @@ lzf_compress (const void *const in_data, unsigned int in_len, #if !LZF_STATE_ARG LZF_STATE htab; #endif - const u8 **hslot; const u8 *ip = (const u8 *)in_data; u8 *op = (u8 *)out_data; const u8 *in_end = ip + in_len; @@ -133,10 +132,6 @@ lzf_compress (const void *const in_data, unsigned int in_len, #if INIT_HTAB memset (htab, 0, sizeof (htab)); -# if 0 - for (hslot = htab; hslot < htab + HSIZE; hslot++) - *hslot++ = ip; -# endif #endif lit = 0; op++; /* start run */ @@ -144,24 +139,23 @@ lzf_compress (const void *const in_data, unsigned int in_len, hval = FRST (ip); while (ip < in_end - 2) { + LZF_HSLOT *hslot; + hval = NEXT (hval, ip); hslot = htab + IDX (hval); - ref = *hslot; *hslot = ip; + ref = *hslot + LZF_HSLOT_BIAS; *hslot = ip - LZF_HSLOT_BIAS; if (1 #if INIT_HTAB && ref < ip /* the next test will actually take care of this, but this is faster */ #endif && (off = ip - ref - 1) < MAX_OFF - && ip + 4 < in_end && ref > (u8 *)in_data -#if STRICT_ALIGN - && ref[0] == ip[0] - && ref[1] == ip[1] && ref[2] == ip[2] +#if STRICT_ALIGN + && ((ref[1] << 8) | ref[0]) == ((ip[1] << 8) | ip[0]) #else && *(u16 *)ref == *(u16 *)ip - && ref[2] == ip[2] #endif ) { @@ -223,6 +217,7 @@ lzf_compress (const void *const in_data, unsigned int in_len, } *op++ = off; + lit = 0; op++; /* start run */ ip += len + 1; @@ -238,12 +233,12 @@ lzf_compress (const void *const in_data, unsigned int in_len, hval = FRST (ip); hval = NEXT (hval, ip); - htab[IDX (hval)] = ip; + htab[IDX (hval)] = ip - LZF_HSLOT_BIAS; ip++; # if VERY_FAST && !ULTRA_FAST hval = NEXT (hval, ip); - htab[IDX (hval)] = ip; + htab[IDX (hval)] = ip - LZF_HSLOT_BIAS; ip++; # endif #else @@ -252,7 +247,7 @@ lzf_compress (const void *const in_data, unsigned int in_len, do { hval = NEXT (hval, ip); - htab[IDX (hval)] = ip; + htab[IDX (hval)] = ip - LZF_HSLOT_BIAS; ip++; } while (len--); diff --git a/harbour/contrib/hblzf/3rd/liblzf/lzf_d.c b/harbour/contrib/hblzf/3rd/liblzf/lzf_d.c index 9e2cd829c3..8433b8f1fb 100644 --- a/harbour/contrib/hblzf/3rd/liblzf/lzf_d.c +++ b/harbour/contrib/hblzf/3rd/liblzf/lzf_d.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2007 Marc Alexander Lehmann + * Copyright (c) 2000-2010 Marc Alexander Lehmann * * Redistribution and use in source and binary forms, with or without modifica- * tion, are permitted provided that the following conditions are met: @@ -43,12 +43,14 @@ # define SET_ERRNO(n) errno = (n) #endif +#if USE_REP_MOVSB /* small win on amd, big loss on intel */ #if (__i386 || __amd64) && __GNUC__ >= 3 # define lzf_movsb(dst, src, len) \ asm ("rep movsb" \ : "=D" (dst), "=S" (src), "=c" (len) \ : "0" (dst), "1" (src), "2" (len)); #endif +#endif unsigned int lzf_decompress (const void *const in_data, unsigned int in_len, @@ -84,9 +86,17 @@ lzf_decompress (const void *const in_data, unsigned int in_len, #ifdef lzf_movsb lzf_movsb (op, ip, ctrl); #else - do - *op++ = *ip++; - while (--ctrl); + switch (ctrl) + { + case 32: *op++ = *ip++; case 31: *op++ = *ip++; case 30: *op++ = *ip++; case 29: *op++ = *ip++; + case 28: *op++ = *ip++; case 27: *op++ = *ip++; case 26: *op++ = *ip++; case 25: *op++ = *ip++; + case 24: *op++ = *ip++; case 23: *op++ = *ip++; case 22: *op++ = *ip++; case 21: *op++ = *ip++; + case 20: *op++ = *ip++; case 19: *op++ = *ip++; case 18: *op++ = *ip++; case 17: *op++ = *ip++; + case 16: *op++ = *ip++; case 15: *op++ = *ip++; case 14: *op++ = *ip++; case 13: *op++ = *ip++; + case 12: *op++ = *ip++; case 11: *op++ = *ip++; case 10: *op++ = *ip++; case 9: *op++ = *ip++; + case 8: *op++ = *ip++; case 7: *op++ = *ip++; case 6: *op++ = *ip++; case 5: *op++ = *ip++; + case 4: *op++ = *ip++; case 3: *op++ = *ip++; case 2: *op++ = *ip++; case 1: *op++ = *ip++; + } #endif } else /* back reference */ @@ -132,12 +142,39 @@ lzf_decompress (const void *const in_data, unsigned int in_len, len += 2; lzf_movsb (op, ref, len); #else - *op++ = *ref++; - *op++ = *ref++; + switch (len) + { + default: + len += 2; - do - *op++ = *ref++; - while (--len); + if (op >= ref + len) + { + /* disjunct areas */ + memcpy (op, ref, len); + op += len; + } + else + { + /* overlapping, use octte by octte copying */ + do + *op++ = *ref++; + while (--len); + } + + break; + + case 9: *op++ = *ref++; + case 8: *op++ = *ref++; + case 7: *op++ = *ref++; + case 6: *op++ = *ref++; + case 5: *op++ = *ref++; + case 4: *op++ = *ref++; + case 3: *op++ = *ref++; + case 2: *op++ = *ref++; + case 1: *op++ = *ref++; + case 0: *op++ = *ref++; /* two octets more */ + *op++ = *ref++; + } #endif } } diff --git a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp index 1dd0c4a129..824c357f50 100644 --- a/harbour/contrib/hbqt/qtgui/hbqt_init.cpp +++ b/harbour/contrib/hbqt/qtgui/hbqt_init.cpp @@ -588,7 +588,15 @@ static void hbqt_lib_exit( void * cargo ) HB_SYMBOL_UNUSED( cargo ); } -HB_FUNC( HBQT_PUSHEVENT ) +#if 0 +/* TOFIX: Accept .prg level object already created instead of duplicating + logic present in QKeyEvent.qth and QMouseEvent.qth. + Check its type here. + Another pending TOFIX is why this doesn't work, and why does it + GPF even: + QApplication():sendEvent( oWnd, QKeyEvent( QEvent_KeyPress, Qt_Key_X, Qt_NoModifier, "X", 0 ) ) + */ +HB_FUNC( HBQTGUI_EVENTPUSH ) { switch( hb_parni( 2 ) ) { @@ -626,6 +634,7 @@ HB_FUNC( HBQT_PUSHEVENT ) } } } +#endif HB_CALL_ON_STARTUP_BEGIN( _hbqtgui_init_ ) hb_vmAtInit( hbqt_lib_init, NULL ); diff --git a/harbour/utils/hbmk2/hbmk2.es_PE.po b/harbour/utils/hbmk2/hbmk2.es_PE.po index 1281a0df58..2d547363a7 100644 --- a/harbour/utils/hbmk2/hbmk2.es_PE.po +++ b/harbour/utils/hbmk2/hbmk2.es_PE.po @@ -478,8 +478,8 @@ msgstr "las opciones regulares de compilador Harbour también son aceptadas.\\n( #: hbmk2.prg:7960 #, c-format -msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" -msgstr "Opciones de .hbc (que debe estar en líneas separadas): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\nLas líneas que empiezan con en carácter '#' son ignoradas" +msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" +msgstr "Opciones de .hbc (que debe estar en líneas separadas): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\nLas líneas que empiezan con en carácter '#' son ignoradas" #: hbmk2.prg:7942 hbmk2.prg:11633 #, c-format diff --git a/harbour/utils/hbmk2/hbmk2.hu_HU.po b/harbour/utils/hbmk2/hbmk2.hu_HU.po index 3aa059d91d..87c67a94e4 100644 --- a/harbour/utils/hbmk2/hbmk2.hu_HU.po +++ b/harbour/utils/hbmk2/hbmk2.hu_HU.po @@ -1009,8 +1009,8 @@ msgstr "cél futtatása" #: hbmk2.prg:7959 #, c-format -msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" -msgstr ".hbc opciók (külön sorokba írandók): libs=[], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[], frameworks=[], prgflags=[Harbour opciók], cflags=[C fordító opciók], resflags=[erőforrás fordító kapcsolók], ldflags=[szerkesztő kapcsolók], libpaths=[útvonalak], sources=[forrás fájlok], incpaths=[útvonalak], instfiles=[fájlok], instpaths=[útvonalak], autohbcs=[<.ch>:<.hbc>], plugins=[plugin-ek], gui|mt|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\n'#' karakterrel kezdődő sorokat figyelmen kívül hagyja" +msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" +msgstr ".hbc opciók (külön sorokba írandók): libs=[], hbcs=[<.hbc nevek>], gt=[gtnév], syslibs=[], frameworks=[], prgflags=[Harbour opciók], cflags=[C fordító opciók], resflags=[erőforrás fordító kapcsolók], ldflags=[szerkesztő kapcsolók], libpaths=[útvonalak], sources=[forrás fájlok], incpaths=[útvonalak], instfiles=[fájlok], instpaths=[útvonalak], autohbcs=[<.ch>:<.hbc>], plugins=[plugin-ek], gui|mt|pic|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\n'#' karakterrel kezdődő sorokat figyelmen kívül hagyja" #: hbmk2.prg:11633 #, c-format diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index d6f3b0baaf..3c0257db96 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -318,141 +318,142 @@ REQUEST hbmk_KEYW #define _HBMK_lGUI 15 #define _HBMK_lMT 16 -#define _HBMK_lDEBUG 17 -#define _HBMK_nHEAD 18 -#define _HBMK_aINCPATH 19 -#define _HBMK_lREBUILD 20 -#define _HBMK_lCLEAN 21 -#define _HBMK_lTRACE 22 -#define _HBMK_lDONTEXEC 23 -#define _HBMK_nHBMODE 24 -#define _HBMK_cUILNG 25 -#define _HBMK_cUICDP 26 -#define _HBMK_aLIBUSER 27 -#define _HBMK_aLIBUSERFWK 28 -#define _HBMK_aLIBUSERGT 29 -#define _HBMK_aLIBUSERSYS 30 -#define _HBMK_aLIBUSERSYSPRE 31 -#define _HBMK_aLIBPATH 32 -#define _HBMK_aINSTPATH 33 -#define _HBMK_aOPTC 34 -#define _HBMK_aOPTPRG 35 -#define _HBMK_aOPTRES 36 -#define _HBMK_aOPTL 37 -#define _HBMK_aOPTA 38 -#define _HBMK_aOPTD 39 -#define _HBMK_aOPTI 40 -#define _HBMK_lCPP 41 -#define _HBMK_lSHARED 42 -#define _HBMK_lSTATICFULL 43 -#define _HBMK_lSHAREDDIST 44 -#define _HBMK_lNULRDD 45 -#define _HBMK_lMAP 46 -#define _HBMK_lBEEP 47 -#define _HBMK_lSTRIP 48 -#define _HBMK_lOPTIM 49 -#define _HBMK_nCOMPR 50 -#define _HBMK_nWARN 51 -#define _HBMK_lRUN 52 -#define _HBMK_lINC 53 -#define _HBMK_lREBUILDPO 54 -#define _HBMK_lMINIPO 55 -#define _HBMK_lUNICODE 56 -#define _HBMK_nCONF 57 -#define _HBMK_lIGNOREERROR 58 -#define _HBMK_lIMPLIB 59 -#define _HBMK_lHBCPPMM 60 -#define _HBMK_aVAR 61 -#define _HBMK_hDEP 62 +#define _HBMK_lPIC 17 +#define _HBMK_lDEBUG 18 +#define _HBMK_nHEAD 19 +#define _HBMK_aINCPATH 20 +#define _HBMK_lREBUILD 21 +#define _HBMK_lCLEAN 22 +#define _HBMK_lTRACE 23 +#define _HBMK_lDONTEXEC 24 +#define _HBMK_nHBMODE 25 +#define _HBMK_cUILNG 26 +#define _HBMK_cUICDP 27 +#define _HBMK_aLIBUSER 28 +#define _HBMK_aLIBUSERFWK 29 +#define _HBMK_aLIBUSERGT 30 +#define _HBMK_aLIBUSERSYS 31 +#define _HBMK_aLIBUSERSYSPRE 32 +#define _HBMK_aLIBPATH 33 +#define _HBMK_aINSTPATH 34 +#define _HBMK_aOPTC 35 +#define _HBMK_aOPTPRG 36 +#define _HBMK_aOPTRES 37 +#define _HBMK_aOPTL 38 +#define _HBMK_aOPTA 39 +#define _HBMK_aOPTD 40 +#define _HBMK_aOPTI 41 +#define _HBMK_lCPP 42 +#define _HBMK_lSHARED 43 +#define _HBMK_lSTATICFULL 44 +#define _HBMK_lSHAREDDIST 45 +#define _HBMK_lNULRDD 46 +#define _HBMK_lMAP 47 +#define _HBMK_lBEEP 48 +#define _HBMK_lSTRIP 49 +#define _HBMK_lOPTIM 50 +#define _HBMK_nCOMPR 51 +#define _HBMK_nWARN 52 +#define _HBMK_lRUN 53 +#define _HBMK_lINC 54 +#define _HBMK_lREBUILDPO 55 +#define _HBMK_lMINIPO 56 +#define _HBMK_lUNICODE 57 +#define _HBMK_nCONF 58 +#define _HBMK_lIGNOREERROR 59 +#define _HBMK_lIMPLIB 60 +#define _HBMK_lHBCPPMM 61 +#define _HBMK_aVAR 62 +#define _HBMK_hDEP 63 -#define _HBMK_lCreateLib 63 -#define _HBMK_lCreateDyn 64 -#define _HBMK_lCreateImpLib 65 -#define _HBMK_lCreatePPO 66 -#define _HBMK_lCreateHRB 67 +#define _HBMK_lCreateLib 64 +#define _HBMK_lCreateDyn 65 +#define _HBMK_lCreateImpLib 66 +#define _HBMK_lCreatePPO 67 +#define _HBMK_lCreateHRB 68 -#define _HBMK_lDynVM 68 +#define _HBMK_lDynVM 69 -#define _HBMK_lBLDFLGP 69 -#define _HBMK_lBLDFLGC 70 -#define _HBMK_lBLDFLGL 71 +#define _HBMK_lBLDFLGP 70 +#define _HBMK_lBLDFLGC 71 +#define _HBMK_lBLDFLGL 72 -#define _HBMK_cFIRST 72 -#define _HBMK_aPRG 73 -#define _HBMK_aC 74 -#define _HBMK_aCPP 75 -#define _HBMK_aRESSRC 76 -#define _HBMK_aRESCMP 77 -#define _HBMK_aOBJUSER 78 -#define _HBMK_aICON 79 -#define _HBMK_cMANIFEST 80 -#define _HBMK_aIMPLIBSRC 81 -#define _HBMK_aDEF 82 -#define _HBMK_aINSTFILE 83 -#define _HBMK_hDEPTS 84 -#define _HBMK_aREQUEST 85 +#define _HBMK_cFIRST 73 +#define _HBMK_aPRG 74 +#define _HBMK_aC 75 +#define _HBMK_aCPP 76 +#define _HBMK_aRESSRC 77 +#define _HBMK_aRESCMP 78 +#define _HBMK_aOBJUSER 79 +#define _HBMK_aICON 80 +#define _HBMK_cMANIFEST 81 +#define _HBMK_aIMPLIBSRC 82 +#define _HBMK_aDEF 83 +#define _HBMK_aINSTFILE 84 +#define _HBMK_hDEPTS 85 +#define _HBMK_aREQUEST 86 -#define _HBMK_aPO 86 -#define _HBMK_cHBL 87 -#define _HBMK_cHBLDir 88 -#define _HBMK_aLNG 89 -#define _HBMK_cPO 90 +#define _HBMK_aPO 87 +#define _HBMK_cHBL 88 +#define _HBMK_cHBLDir 89 +#define _HBMK_aLNG 90 +#define _HBMK_cPO 91 -#define _HBMK_hPLUGINHRB 91 -#define _HBMK_hPLUGINVars 92 -#define _HBMK_aPLUGINPars 93 -#define _HBMK_hPLUGINExt 94 +#define _HBMK_hPLUGINHRB 92 +#define _HBMK_hPLUGINVars 93 +#define _HBMK_aPLUGINPars 94 +#define _HBMK_hPLUGINExt 95 -#define _HBMK_lDEBUGTIME 95 -#define _HBMK_lDEBUGINC 96 -#define _HBMK_lDEBUGSTUB 97 -#define _HBMK_lDEBUGI18N 98 -#define _HBMK_lDEBUGDEPD 99 -#define _HBMK_lDEBUGPARS 100 +#define _HBMK_lDEBUGTIME 96 +#define _HBMK_lDEBUGINC 97 +#define _HBMK_lDEBUGSTUB 98 +#define _HBMK_lDEBUGI18N 99 +#define _HBMK_lDEBUGDEPD 100 +#define _HBMK_lDEBUGPARS 101 -#define _HBMK_cCCPATH 101 -#define _HBMK_cCCPREFIX 102 -#define _HBMK_cCCPOSTFIX 103 -#define _HBMK_cCCEXT 104 +#define _HBMK_cCCPATH 102 +#define _HBMK_cCCPREFIX 103 +#define _HBMK_cCCPOSTFIX 104 +#define _HBMK_cCCEXT 105 -#define _HBMK_cWorkDir 105 -#define _HBMK_cWorkDirDynSub 106 -#define _HBMK_nCmd_Esc 107 -#define _HBMK_nScr_Esc 108 -#define _HBMK_nCmd_FNF 109 -#define _HBMK_nScr_FNF 110 -#define _HBMK_nErrorLevel 111 +#define _HBMK_cWorkDir 106 +#define _HBMK_cWorkDirDynSub 107 +#define _HBMK_nCmd_Esc 108 +#define _HBMK_nScr_Esc 109 +#define _HBMK_nCmd_FNF 110 +#define _HBMK_nScr_FNF 111 +#define _HBMK_nErrorLevel 112 -#define _HBMK_cPROGDIR 112 -#define _HBMK_cPROGNAME 113 +#define _HBMK_cPROGDIR 113 +#define _HBMK_cPROGNAME 114 -#define _HBMK_hAUTOHBC 114 /* trigger header => .hbc associations */ -#define _HBMK_hAUTOHBCFOUND 115 /* trigger headers found */ +#define _HBMK_hAUTOHBC 115 /* trigger header => .hbc associations */ +#define _HBMK_hAUTOHBCFOUND 116 /* trigger headers found */ -#define _HBMK_aDEPTHBC 116 /* .hbc references found */ -#define _HBMK_hDEPTSDIR 117 /* Header dirs found for dependencies */ +#define _HBMK_aDEPTHBC 117 /* .hbc references found */ +#define _HBMK_hDEPTSDIR 118 /* Header dirs found for dependencies */ -#define _HBMK_lStopAfterInit 118 -#define _HBMK_lStopAfterHarbour 119 +#define _HBMK_lStopAfterInit 119 +#define _HBMK_lStopAfterHarbour 120 -#define _HBMK_nCOMPVer 120 -#define _HBMK_lDEPIMPLIB 121 /* Generate import libs configured in dependecy specification */ -#define _HBMK_lInstForce 122 /* Force to install target even if was up to date */ -#define _HBMK_lAutoHBM 123 /* Toggles processing of hbmk.hbm file in current directory */ -#define _HBMK_lContainer 124 /* Target type: container */ -#define _HBMK_lShowLevel 125 /* Show project nesting level in all output lines */ -#define _HBMK_hFiles 126 /* Cache for the header parser (common for C and Harbour) */ -#define _HBMK_cDynLibPrefix 127 /* Dynamic lib filename prefix */ -#define _HBMK_cDynLibExt 128 /* Dynamic lib filename extension */ -#define _HBMK_aLINK 129 /* Links to be created and pointing to the target */ -#define _HBMK_hDEPTMACRO 130 /* Links to be created and pointing to the target */ +#define _HBMK_nCOMPVer 121 +#define _HBMK_lDEPIMPLIB 122 /* Generate import libs configured in dependecy specification */ +#define _HBMK_lInstForce 123 /* Force to install target even if was up to date */ +#define _HBMK_lAutoHBM 124 /* Toggles processing of hbmk.hbm file in current directory */ +#define _HBMK_lContainer 125 /* Target type: container */ +#define _HBMK_lShowLevel 126 /* Show project nesting level in all output lines */ +#define _HBMK_hFiles 127 /* Cache for the header parser (common for C and Harbour) */ +#define _HBMK_cDynLibPrefix 128 /* Dynamic lib filename prefix */ +#define _HBMK_cDynLibExt 129 /* Dynamic lib filename extension */ +#define _HBMK_aLINK 130 /* Links to be created and pointing to the target */ +#define _HBMK_hDEPTMACRO 131 /* Links to be created and pointing to the target */ -#define _HBMK_aArgs 131 -#define _HBMK_nArgTarget 132 -#define _HBMK_lPause 133 -#define _HBMK_nLevel 134 +#define _HBMK_aArgs 132 +#define _HBMK_nArgTarget 133 +#define _HBMK_lPause 134 +#define _HBMK_nLevel 135 -#define _HBMK_cHBX 135 +#define _HBMK_cHBX 136 #define _HBMK_MAX_ 136 @@ -954,6 +955,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) hbmk[ _HBMK_lCPP ] := NIL hbmk[ _HBMK_lGUI ] := .F. hbmk[ _HBMK_lMT ] := .F. + hbmk[ _HBMK_lPIC ] := .F. hbmk[ _HBMK_lDEBUG ] := .F. hbmk[ _HBMK_nHEAD ] := _HEAD_FULL hbmk[ _HBMK_lREBUILD ] := .F. @@ -2128,6 +2130,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) CASE cParamL == "-fixshared" ; hbmk[ _HBMK_lSHARED ] := .T. ; hbmk[ _HBMK_lSTATICFULL ] := .F. ; hbmk[ _HBMK_lSHAREDDIST ] := .F. CASE cParamL == "-static" ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .F. ; hbmk[ _HBMK_lSHAREDDIST ] := NIL CASE cParamL == "-fullstatic" ; hbmk[ _HBMK_lSHARED ] := .F. ; hbmk[ _HBMK_lSTATICFULL ] := .T. ; hbmk[ _HBMK_lSHAREDDIST ] := NIL + CASE cParamL == "-pic" ; hbmk[ _HBMK_lPIC ] := .T. + CASE cParamL == "-pic-" ; hbmk[ _HBMK_lPIC ] := .F. CASE cParamL == "-nohblib" ; l_lNOHBLIB := .T. CASE cParamL == "-nohblib-" ; l_lNOHBLIB := .F. CASE cParamL == "-nomiscsyslib" ; l_lLIBSYSMISC := .F. @@ -2973,6 +2977,10 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) hbmk[ _HBMK_cFIRST ] := SubStr( hbmk[ _HBMK_cFIRST ], 2 ) ENDIF + IF hbmk[ _HBMK_lCreateDyn ] + hbmk[ _HBMK_lPIC ] := .T. + ENDIF + #if 0 /* disabled to experiment with '-hbdyn -shared' combination. */ IF hbmk[ _HBMK_lCreateDyn ] .AND. hbmk[ _HBMK_lSHARED ] hbmk[ _HBMK_lSHARED ] := .F. @@ -3414,8 +3422,8 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) ENDIF ENDIF - IF hbmk[ _HBMK_lCreateDyn ] .AND. ! HBMK_ISPLAT( "darwin|cygwin" ) - IF HBMK_ISPLAT( "hpux|sunos|linux" ) + IF hbmk[ _HBMK_lPIC ] .AND. ! HBMK_ISPLAT( "darwin|cygwin" ) + IF HBMK_ISPLAT( "bsd|hpux|sunos|linux" ) AAdd( hbmk[ _HBMK_aOPTC ], "-fPIC" ) ELSE AAdd( hbmk[ _HBMK_aOPTC ], "-fpic" ) @@ -4519,8 +4527,12 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) AAdd( hbmk[ _HBMK_aOPTL ], "-o {OE}" ) ENDIF - IF hbmk[ _HBMK_lCreateDyn ] - AAdd( hbmk[ _HBMK_aOPTC ], "-KPIC" ) + IF hbmk[ _HBMK_lPIC ] + IF hbmk[ _HBMK_cPLAT ] == "sunos" .AND. hbmk[ _HBMK_cCPU ] == "sparc" + AAdd( hbmk[ _HBMK_aOPTC ], "-xcode=pic32" ) + ELSE + AAdd( hbmk[ _HBMK_aOPTC ], "-KPIC" ) + ENDIF ENDIF /* Add system libraries */ @@ -4658,7 +4670,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel ) AAdd( hbmk[ _HBMK_aOPTL ], "-o{OE}" ) ENDIF - IF hbmk[ _HBMK_lCreateDyn ] + IF hbmk[ _HBMK_lPIC ] AAdd( hbmk[ _HBMK_aOPTC ], "-Xpic" ) ENDIF @@ -9084,6 +9096,12 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel ) CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lMT ] := .F. ENDCASE + CASE Lower( Left( cLine, Len( "pic=" ) ) ) == "pic=" ; cLine := SubStr( cLine, Len( "pic=" ) + 1 ) + DO CASE + CASE ValueIsT( cLine ) ; hbmk[ _HBMK_lPIC ] := .T. + CASE ValueIsF( cLine ) ; hbmk[ _HBMK_lPIC ] := .F. + ENDCASE + CASE Lower( Left( cLine, Len( "shareddef=" ) ) ) == "shareddef=" ; cLine := SubStr( cLine, Len( "shareddef=" ) + 1 ) IF hbmk[ _HBMK_lSHARED ] == NIL DO CASE @@ -11789,6 +11807,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) { "-main=" , I_( "override the name of starting function/procedure" ) },; { "-request=" , I_( "force function/procedure to be linked" ) },; { "-fullstatic" , I_( "link with all static libs" ) },; + { "-pic[-]" , I_( "create position independent object code (always enabled in -hbdyn/-hbdynvm modes)" ) },; { "-[full|fix]shared" , I_( "create shared Harbour binaries without/with absolute dir reference to Harbour library (default: 'fullshared' when Harbour is installed on system location, 'fixshared' otherwise) (fix/full option in *nix only)" ) },; { "-nulrdd[-]" , I_( "link with nulrdd" ) },; { "-[no]debug" , I_( "add/exclude C compiler debug info. For Harbour level debug, use Harbour option -b as usual" ) },; @@ -11915,7 +11934,7 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) I_( "Regular Harbour compiler options are also accepted.\n(see them with -harbourhelp option)" ),; hb_StrFormat( I_( "%1$s option file in hbmk2 directory is always processed if it exists. On *nix platforms ~/.harbour, /etc/harbour, /etc/harbour, /etc are checked (in that order) before the hbmk2 directory." ), _HBMK_AUTOHBC_NAME ),; hb_StrFormat( I_( "%1$s make script in current directory is always processed if it exists." ), _HBMK_AUTOHBM_NAME ),; - I_( ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\nLines starting with '#' char are ignored" ),; + I_( ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\nLines starting with '#' char are ignored" ),; I_( "Platform filters are accepted in each .hbc line and with several options.\nFilter format: {[!][|||]}. Filters can be combined using '&', '|' operators and grouped by parantheses. Ex.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!watcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin}, {allwin|allmsvc|allgcc|allmingw|allicc|allpocc|unix}, {x86|x86_64|ia64|arm|mips|sh}, {debug|nodebug|gui|std|mt|st|shared|static|unicode|ascii|xhb}" ),; I_( "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_dir}, ${hb_name}, ${hb_plat}, ${hb_comp}, ${hb_build}, ${hb_cpu}, ${hb_bin}, ${hb_lib}, ${hb_dyn}, ${hb_inc}, ${}. libpaths= also accepts %{hb_name} which translates to the name of the .hbc file under search." ),; I_( 'Options accepting macros also support command substitution. Enclose command inside ``, and, if the command contains space, also enclose in double quotes. F.e. "-cflag=`wx-config --cflags`", or ldflags={unix&gcc}"`wx-config --libs`".' ),; diff --git a/harbour/utils/hbmk2/hbmk2.pt_BR.po b/harbour/utils/hbmk2/hbmk2.pt_BR.po index 35db6d73b9..1a5b066cb5 100644 --- a/harbour/utils/hbmk2/hbmk2.pt_BR.po +++ b/harbour/utils/hbmk2/hbmk2.pt_BR.po @@ -478,8 +478,8 @@ msgstr "Opções usadas com o compilador Harbour também são aceitas." #: hbmk2.prg:7960 #, c-format -msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" -msgstr "As opções em um arquivo .hbc devem estar em linhas separadas e são: libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[flags do Harbour], cflags=[flags do compilador C], resflags=[flags do compilador de recursos], ldflags=[flags do linkeditor], libpaths=[paths], sources=[módulos fontes], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=[yes|no], echo=\\nLinhas iniciadas com '#' são interpretadas como comentários e serão ignoradas" +msgid ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], pflags=[flags for plugins], libpaths=[paths], sources=[source files], psources=[source files for plugins], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|map|implib|hbcppmm|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=, stop=, echo=\\nLines starting with '#' char are ignored" +msgstr "As opções em um arquivo .hbc devem estar em linhas separadas e são: libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], syslibs=[], frameworks=[], prgflags=[flags do Harbour], cflags=[flags do compilador C], resflags=[flags do compilador de recursos], ldflags=[flags do linkeditor], libpaths=[paths], sources=[módulos fontes], incpaths=[paths], requests=[func], instfiles=[files], instpaths=[paths], autohbcs=[<.ch>:<.hbc>], plugins=[plugins], gui|mt|pic|shared|nulrdd|debug|opt|hbcppmm|map|implib|strip|run|inc=[yes|no], cpp=[yes|no|def], warn=[max|yes|low|no|def], compr=[yes|no|def|min|max], head=[off|full|native|dep], skip=[yes|no], echo=\\nLinhas iniciadas com '#' são interpretadas como comentários e serão ignoradas" #: hbmk2.prg:7942 hbmk2.prg:11633 #, c-format