52 KiB
Harbour Make (hbmk2) 3.2.0dev (r2013-04-03 03:33)
Copyright (c) 1999-2013, Viktor Szakats
http://harbour\-project\.org/
Traducción (es_419): Guillermo Varona Silupú <gvaronas@gmail.com>
Sintáxis:
hbmk2 [opciones] [<script[s]>] <src[s][.prg|.c|.obj|.o|.rc|.res|.def|.po|.pot|.hbl|@.clp|.d|.ch]>
Descripción:
hbmk2 es una herramienta integrada y portable, que permite crear varios tipos de binarios ejecutables (ejecutable, biblioteca dinámica, biblioteca estática, binario portable Harbour) desde múltiples tipos de archivos fuente (C, C++, Objective-C, Harbour, traducciones gettext, recursos Windows). 'Integrada' significa que un único proyecto hbmk2 puede controlar todos o la mayoría de los aspectos del proceso de construcción. 'Portable' significa que un único proyecto hbmk2 puede controlar la construcción en todos los SO soportados y a través de todos los compiladores C soportados. Apunta además a cubrir la mayoría de las tareas de construcción mediante simples y cortos archivos de proyecto (opciones). hbmk2 soporta además proyectos C/C++/Objective-C puros -no-Harbour-. Para lograr estos objetivos, hbmk2 auto-detectará Harbour, el compilador C y otras herramientas requeridas, para luego configurarlas y ejecutarse adecuadamente. hbmk2 permite extender, via plugins, los tipos de archivo fuente soportados.
Ademas de construir ejecutables, hbmk2 puede ejecutar directamente scripts Harbour (desde fuente o pre-compilados), y ofrece además una consola de comandos interactiva.
Opciones:
-
-o<outname> nombre de archivo de salida
-
-l<libname> enlaza con biblioteca <libname>. <libname> no debe incluir ruta, extensión o prefijo 'lib' (excepto que sea parte del nombre). No agregue bibliotecas principales de Harbour, estas son agregadas automáticamente cuando se necesitan. Si <libname> comienza con un caracter '-', la biblioteca será removida de la lista de bibliotecas principales al momento de enlazar.
-
-L<libpath> ruta adicional para buscar librerías
-
-i<p>|-incpath=<p> ruta adicional para buscar cabeceras
-
-static|-shared enlazar con librerías estáticas/compartidas
-
-gt<name> enlaza con el driver GT GT<name>, puede repetirse para enlazar con mas GTs. El primero será utilzado por defecto en tiempo de ejecución
-
-inc[-] habilita modo de compilación incremental
-
-hbexe crea ejecutable (por defecto)
-
-hblib crear librería estática
-
-hbdyn crea biblioteca dinámica (sin enlace a Harbour VM)
-
-hbdynvm crear librería dinámica (con enlace a Harbour VM)
-
-mt|-st enlazar con soporte multi/single-thread Harbour VM
-
-gui|-std crear ejecutable GUI/console
-
-main=<mainfunc> reemplaza nombre de función/procedimento inicial
-
-request=<func> fuerza función/procedimiento a enlazarse
-
-fullstatic enlazar con todas las librerías estáticas
-
-pic[-] crear código objeto independiente de la posición (siempre activado en los modos -hbdyn/-hbdynvm)
-
-[full|fix]shared crear para compartir archivos binarios Harbour sin/con referencia absoluta a librerías de Harbour (por defecto: 'fullshared' cuando Harbour se instala en ubicación del sistema, 'fixshared' en otro caso) (opción fix/full en *nix solamente)
-
-nulrdd[-] enlazar con nulrdd
-
-debug[-] adicionar/excluir información de debug de compilador C. Para activar el debug de Harbour utilize la Opción -b como de costumbre.
-
-optim[-] alternar optimizaciones del compilador C (por defecto: on)
-
-cpp[-] fuerza modo C++/C
-
-cpp=<value> selecciona modo C++. Los valores permitidos son: def, yes, no
-
-map[-] crear (o no) un archivo map
-
-implib[-] crear (o no) una biblioteca de importación (en modo -hbdyn/-hbexe). El nombre tendrá un sufijo añadido.
-
-implib=<output> crear biblioteca de importación (en modo -hbdyn/-hbexe) Nombre de <output> (por defecto: igual que la salida)
-
-ln=<link> crea enlace simbólico apuntando a <output> (<link> se asocia a <output>)
-
-strip[-] desmontar (no desmontar) binarios
-
-trace[-] mostrar comandos ejecutados
-
-beep[-] activa (o desactiva) beep simple en caso de éxito, doble beep en caso de falla
-
-ignore[-] ignore errores cuando ejecute herramienta de compilador (por defecto: off)
-
-hbcppmm[-] reemplaza las funciones de administración de memoria estandar de C++ con las de Harbour
-
-winuni[-] seleccionar entre modo de compilación Unicode (WIDE) y ANSI (por defecto: ANSI) (sólo Windows. Para WinCE siempre se establece en UNICODE.)
-
-nohblib[-] no use librerías estáticas del núcleo de Harbour al enlazar
-
-nodefgt[-] no enlaza GTs por defecto (efectivo en modo -static)
-
-nolibgrouping[-] desactivar agrupamiento de LIBs en compiladores basados en gcc.
-
-nomiscsyslib[-] no agregue lista adicional de librerías del sistema a lista de librerías por defecto
-
-traceonly mostrar comandos a ser ejecutados, pero no ejecutarlos
-
-warn=<level> Establece el nivel de advertencia del compilador C
<level> puede ser: max, yes, low, no, def (default: yes) -
-safe[-] Activa opciones seguras en compilador/enlazador C (por defecto: activado en Windows, desactivado en otros sistemas)
-
-compr=<level> comprime ejecutable/librería dinamica (necesita la herramienta UPX)
<level> puede ser: yes, no, min, max -
-run[-] ejecutar/no ejecutar aplicativo generado.
-
-vcshead=<file> generar archivo de cabecera .ch con información del repositorio local. Actualmente están soportados Git, SVN, Mercurial, Bazaar, Fossil, CVS y Monotone. El archivo de cabecera generado definirá la constante de preprocesador _HBMK_VCS_TYPE_ con el nombre del SCV detectado, y _HBMK_VCS_ID_ con el ID único del repositorio local. Si no se detecta un SCV, un número secuencial será incrementado cada vez que se construya.
-
-tshead=<file> generar archivo de cabecera .ch con información de fecha/hora. Cabecera generado definirá macros _HBMK_BUILD_DATE_, _HBMK_BUILD_TIME_, _HBMK_BUILD_TIMESTAMP_ con fecha/hora de creación de archivo.
-
-icon=<file> establece <file> como ícono de la aplicación. <file> debe ser un formato soportado en la plataforma destino (puede no ser soportado por algunas plataformas/compiladores). En Windows, es implementado generando y enlazando un archivo de recursos.
-
-manifest=<file> incrustar manifiesto <file> en ejecutable/lib dinámica (sólo Windows)
-
-sign=<key> firma el ejecutable con <key> (solo Windows y Darwin). En Windows, se utiliza sigtntool.exe (incluido en el SDK de MS Windows) o posign.exe (parte de Pelees C 7), en ese orden, ambos auto-detectados.
-
-signpw=<pw> use <pw> como contraseña al firmar ejecutables (solo Windows y Darwin)
-
-instfile=<g:file> anadir <archivo> a la lista de archivos que desea copiar a la ruta especificada por la opción -instpath. <g> es un grupo opcional de copia (distingue mayúsculas y minúsculas), debe haber al menos dos caracteres. En caso de que no se especifica <archivo>, la lista de archivos en ese grupo se vaciará.
-
-instpath=<g:path> copia el/los archivo(s) objetivo a la ruta <path>. Si <path> es un directorio, debería terminar con un separador de rutas, en este caso los archivos especificados en la opción '-instfile' también son copiados. Puede ser especificado varias veces. <g> es grupo de copia opcional, debe tener al menos dos caracteres de largo. El objetivo final será copiado automaticamente al grupo de copia por defecto (sin asignación de <g>). Existen los siguientes grupos de copia ya incluidos: 'depimplib' para las bibliotecas importadas y 'depimplibsrc' para los archivos fuente de las bibliotecas importadas (.dll), ambos pertenecientes a las dependencias.
-
-instforce[-] copia archivo(s) destino a ruta de instalación incluso si está(n) actualizado(s)
-
-depimplib[-] activar (o desactivar) la generación de Bibliotecas de Importación para fuentes de biblioteca de importación especificados en la opción -depimplibs= (por defecto: yes)
-
-stop[=<text>] parar sin hacer nada y mostrar <text> si se ha especificado
-
-echo=<text> Muestra texto en la pantalla
-
-pause forzar pause para presionar una tecla en caso de error (solo con driver GT alternativo)
-
-exitstr mostrar resultado de error como texto legible al salir
-
-info activar los mensajes informativos
-
-quiet[-] suprimir todos los mensajes en pantalla
-
-bldf[-] heredar flags de Harbour: todos/ninguno (por defecto)
-
-bldf=[p][c][l] heredar todos los flags .prg/.c/linker (o ninguno) desde construcción de Harbour
-
-F<framework> Enlace con marco <framework> (Sólo Darwin)
-
-prgflag=<f> pasar bandera única al compilador Harbour
-
-cflag=<f> pasar bandera única al compilador C
-
-resflag=<f> pasar bandera única al compilador de recursos (sólo Windows)
-
-ldflag=<f> pasar bandera única al enlazador (ejecutable)
-
-dflag=<f> pasar bandera única al enlazador (librería dinánica)
-
-aflag=<f> pasa flag a linkeditor (lib estática)
-
-iflag=<f> pasar bandera única a comando de creación de biblioteca de importación
-
-signflag=<f> pasar bandera única al comando de firma de código
-
-runflag=<f> pasar bandera única al ejecutable de salida cuando se utiliza la opción -run
-
-cflag+=<f> pasar bandera única al compilador C reemplazando las opciones del compilador C añadidas por el mismo hbmk2. Usar con precaución.
-
-ldflag+=<f> pasar una sola opción al enlazador (ejecutable) después de la lista de bibliotecas. Usar con precaución.
-
-dflag+=<f> pasar una sola opción al enlazador (biblioteca dinámica) después de la lista de bibliotecas. Usar con precaución.
-
-3rd=<f> opciones/flags reservados para herramientas de terceros, siempre ignorado por hbmk2 en sí
-
-env:<e>[<o>[<v>]] alterar el ambiente local. <e> es el nombre de la variable de entorno a alterar. <o> puede ser '=' para establecer/reemplazar, '-' para borrar, '+' para anadir al final de valor existente, '#' para insertar al principio del valor existente. <v> es el valor a poner/agregar/insertar.
-
-jobs=<n> Inicia <n> threads de compilación (solo para plataformas multiproceso)
-
-head=<m> analizando fuente de control de encabezado (en construcción en modo incremental)
<m> puede ser: nativo (compilador utilizado para extraer las dependencias), completa (por defecto, utiliza analizador de texto simple en el fichero entero), dep, off -
-rebuild reconstrucción (en modo incremental)
-
-rebuildall reconstruir con sub-proyectos (contrucción en modo incremental)
-
-clean compilación limpia (en modo incremental)
-
-workdir=<dir> directorio de trabajo
(por defecto: .hbmk/<platform>/<compiler> [*] en modo incremental, directorio temporal del SO de otra manera) -
-hbcontainer destino de construcción virtual, no crea nada. Útil para crear un .hbp con el solo propósito de referenciar sub-proyectos
-
-hbimplib crear biblioteca de importación (solo Windows)
-
-hbl[=<output>] nombre-de-archivo .hbl resultante. macro %{hb_lng} es aceptada en nombre-de-archivo.
-
-lng=<languages> lista de idiomas a ser reemplazados en %{hb_lng} macros en archivos .pot/.po y nombres de archivos y salida .hbl/.po. Lista separada por comas:
-lng=en,hu-HU,de -
-po=<output> crear/actualizar archivo .po desde fuentes. Combinar con anterior archivo .po del mismo nombre.
-
-minipo[-] adicionar (o no) número de versión y referencia de archivo de origen a po. (por defecto: anadirlos)
-
-rebuildpo recrea archivo .po, eliminando todas las entradas obsoletas en el mismo.
-
-hbx=[<.ch>] Crear cabecera Harbour (en formato .hbx) con todos los símbolos externos. Un parámetro vacío lo deshabilita.
-
-autohbc=<.ch:.hbc> <.ch> es un nombre de archivo de cabecera. <.hbc> es un nombre de archivo .hbc para ser incluido automáticamente en caso la cabecera se encuentra en cualquiera de las fuentes compiladas. (EXPERIMENTAL)
-
-deppkgname=<d:n> <d> es el nombre de la dependencia. <n> nombre de la dependencia de un paquete. Se puede especificar varias veces.
-
-depkeyhead=<d:h> <d> es el nombre de la dependencia. <h> es la cabecera clave (.h) de la dependencia de un paquete. Varios encabezados alternativos pueden ser especificados.
-
-depoptional=<d:f> <d> es el nombre de la dependencia. <f> puede ser 'yes' o 'no', especifica si la dependencia es opcional. Por defecto: no
-
-depcontrol=<d:v> <d> es el nombre de la dependencia. <v> es un valor que controla como se hace la detección. Valores aceptados: no, yes, force, nolocal, local. Por defecto: contenido de envvar HBMK_WITH_<d>
-
-depincroot=<d:r> <d> es el nombre de la dependencia. Establecer <r> como directorio raíz para las rutas especificadas en la opción -depincpath.
-
-depincpath=<d:i> <d> es el nombre de la dependencia. Anadir <i> a la lista de rutas de detección de encabezados.
-
-depincpathlocal=<d:i> <d> es el nombre de la dependencia. Agregue <i> a la lista de detección de rutas de cabeceras, donde <i> apunta a un directorio local del proyecto y que contiene una dependencia incrustada (tambien conocida como "localmente hospedada").
-
-depimplibs=<d:dll> <d> es el nombre de la dependencia. Anadir <dll> a la lista fuente de la biblioteca de importación.
-
-depimplibd=<d:lib> <d> es el nombre de la dependencia. Establecer nombre generado de biblioteca de importación a <lib>
-
-depfinish=<d> <d> es el nombre de la dependencia. Cierra la definición de dependencias y ejecuta la detección, estableciendo las variables macro de filtro predefinidas y las opciones de construcción relacionadas. Opcional, si se omite, la detección tendrá lugar después de procesar todas las opciones.
-
-plugin=<filename> agregar plugin (módulo). <filename> puede ser: .hb, .prg, .hrb
-
-pi=<filename> pasar archivo de entrada a plugins
-
-pflag=<f> pasar bandera única a plugins
Las opciones de mas abajo están disponibles en la línea de comandos:
-
-target=<script> especifica una nueva construcción destino. <script> puede ser .prg (o sin extensión) o .hbp archivo. Tenga en cuenta que los archivos .hbp son automáticamente considerados como construcción destino separados.
-
-hbrun ejecutar la construcción de destino
-
-hbraw parar después de ejecutar compilador Harbour
-
-hbcmp|-clipper para después de la creación de los archivos objeto
crear un enlace/copia a hbmk2 para hbcmp/clipper resultará el mismo efecto -
-hbcc acepta raw C flags
create enlace/copia hbmk2 para hbcc para el mismo efecto -
-hblnk aceptar flags primas del enlazador
-
-autohbm[-] activar (o desactivar) procesamiento de hbmk.hbm en el directorio actual (por defecto: yes)
-
-hb10 habilita modo de compatibilidad 'Harbour 1.0.x'
-
-hb20 activa el modo de compatibilidad Harbour 2.0.x
-
-hb30 activa el modo de compatibilidad Harbour 3.0.x
-
-xhb habilitar modo xHb
-
-hbc activa modo puro C
-
-rtlink
-
-blinker
-
-exospace emula comportamiento de linkeditor compatible con clipper
crear link o copiar hbmk2 para rtlink/blinker/exospace resultará el mismo efecto -
-hbreg[=global] registra script Harbour (.hb) con hbmk2 (solo Windows)
-
-hbunreg[=global] desregistra script Harbour (.hb) desde hbmk2 (solo Windows)
-
-find <text> lista todas las funciones Harbour conocidas conteniendo <text> en su nombre, junto con el paquete al que pertenecen (insensible a mayúsculas/minúsculas, acepta múltiples valores, puede contener caracteres comodín)
-
-hbmake=<file> convierte proyecto hbmake en un archivo .hbp
-
-xbp=<file> convierte proyecto .xbp (xbuild) en un archivo .hbp
-
-xhp=<file> convierte un proyecto .xhp (xMate) en un archivo .hbp
-
--hbdirbin muestra el directorio de binarios de Harbour
-
--hbdirdyn muestra el directorio de bibliotecas dinámicas de Harbour
-
--hbdirlib muestra el directorio de bibliotecas estáticas de Harbour
-
--hbdirinc muestra el directorio de cabeceras de Harbour
-
--hbinfo[=nested] muestra información de la construcción de Harbour. La salida es en formato JSON. Las rutas incluidas siempre contienen barras invertidas. Cada bloque JSON siempre es seguido por un byte 0x0A.
-
-plat=<platform> reemplaza la plataforma destino por defecto (por defecto: automático)
-
-cpu=<cpu> reemplaza la CPU de destino por defecto (por defecto: automática) (EXPERIMENTAL)
-
-comp=<compiler> reemplaza la autodetección del compilador C
Valor especial:
- bld: usa la configuración de construcción original (por defecto en *nix) -
-build=<name> utilizar un nombre de build especifico
-
-lang=<lang> reemplaza lenguaje por defecto. <lang> es un código de lenguaje ISO.
-
-width=<n> establecer el ancho de salida a <n> caracteres (0=sin límite).
-
-shl mostrar nivel de subproyecto en las líneas de salida
-
-viewhelp ayuda extensa en visor de texto.
-
-longhelp ayuda detallada
-
-longhelpmd ayuda extensa en formato Markdown
-
-harbourhelp Ayuda de compilador Harbour (todas las opciones del compilador Harbour son aceptadas como tal por hbmk2)
-
-credits Créditos de compilador Harbour
-
-build Información de construcción de compilador Harbour
-
-version muestra solo versión de cabecera
Las opciones de mas abajo son internas o de desarrollador (no se garantiza compatibilidad):
- -debugtime mide el tiempo transcurrido durante la construcción
- -debuginc muestra detalles internos del modo de construcción incremental
- -debugstub muestra el contenido de todos los archivos fuente generados internamente
- -debugi18n muestra
- -debugdepd muestra detalles internos de la búsqueda de dependencia
- -debugpars muestra todos los parámetros de entrada en orden de procesamiento
- -debugrte genera un error en tiempo de ejecución
Usted puede enlazar/copiar/renombrar hbmk2 a los siguientes nombres para alterar el modo de operación por defecto:
- hbrun*|*hbrun modo ejecución de script / consola interactiva
- hbrund|hbrun*d modo ejecución de script / consola interactiva en modo depuración
- harbour modo -hbraw (emula compilador - puro - Harbour)
- clipper modo -hbcmp (emula compilador Clipper)
- rtlink modo -rtlink (emula enlazador Clipper)
- exospace modo -rtlink (emula enlazador Clipper)
- blinker modo -rtlink (emula enlazador Clipper)
- *10 opción -hb10
- *20 opción -hb20
- *30 opción -hb30
- x* opción -xhb
- hbcmp*|*hbcmp modo -hbcmp (emula compilador produciendo un objeto binario)
- hbcc*|*hbcc modo -hbcc (emula compilador C)
- hblnk*|*hblnk modo -hblnk (emula enlazador C)
- hbexe*|*hbexe modo -hbexe
- hblib*|*hblib modo -hblib
- hbdyn*|*hbdyn modo -hbdyn
Archivos:
-
*.hbp archivo de proyecto. Puede contener cualquier número de opciones de línea de comandos, que deben generar una salida. Las líneas que comienzan con "#" son ignoradas, de otra manera, una nueva línea es opcional y las opciones están separadas por espacio, tal como en la línea de comandos. Se deben encomillar las opciones que contengan espacios. Cada referencia a un archivo .hbp será ejecutada como un sub-proyecto.
-
*.hbm Conjunto de opciones. Puede ser usado para agrupar opciones comunes dentro de un archivo e incluirlo entre los archivos del projecto. Utiliza el mismo formato que los archivos .hbp.
-
*.hbc colección de opciones que acompañan a los componentes (conocidos como 'bibliotecas' o paquetes). Usa una sintaxis diferente a la línea de comandos y a los archivos '.hbp'/'.hbm'. Las líneas que comienzan con "#" son ignoradas, cada directiva debe ser ubicada en líneas separadas.
-
*.ch si se envía como archivo fuente, será usado como cabecera estándar adicional
-
hbmk.hbc archivo .hbc estandar que es automáticamente procesado, si existe. Ubicación(es) posibles (en orden de precedencia) v [*]: %APPDATA%\.harbour, <directorio hbmk2>
-
hbmk.hbm archivo .hbm opcional ubicado en el directorio de trabajo actual, que es automáticamente procesado antes que otras opciones
-
$hb_pkg_dynlib.hbm archivo especial .hbm incrustado dentro de hbmk2. Maneja los detalles de la creación de una librería dinámica (al estilo de contribuciones Harbour).
-
$hb_pkg_install.hbm archivo especial .hbm incrustado dentro de hbmk2. Maneja los detalles de la instalación de construcciones destino y paquetes relacionados en las instalaciones estándar (al estilo de contribuciones Harbour).
-
*.hb script Harbour
-
*.hrb Binario portable Harbour (aka script precompilado Harbour)
-
hbstart.hb Script de inicio Harbour para la consola interactiva. Es ejecutado automáticamente al iniciar la consola, si existe. Ubicación(es) posible(s) (en orden de precedencia) [*]: .\, %APPDATA%\.harbour, <directorio hbmk2>
-
shell plugins plugins .hb y .hrb para la consola interactiva Harbour. Pueden residir en [*]: %APPDATA%\.harbour\
-
.hb_history guarda el historial de comandos del intérprete de comandos de Harbour. Puede deshabilitar el historial haciendo que la primera linea sea 'no' (sin comillas y con salto de línea). Se guarda en [*]: %APPDATA%\.harbour\
-
hb_extension lista de extensiones para cargar en el interprete de comandos interactivo de Harbour. Una extensión por línea, y se ignora todo lo que hay detrás del caracter '#'. Nombre de fichero alternativo en MS-DOS: hb_ext.ini. Reside en [*]: %APPDATA%\.harbour\
Variables macro:
- ${hb_root} directorio de hbmk2
- ${hb_dir} directorio del archivo en que es usado
- ${hb_dirname} directorio raiz del archivo en que es utilizado
- ${hb_name} nombre del archivo en que es usado (sin directorio ni extensión)
- ${hb_self} nombre completo del archivo en que es utilizado
- ${hb_curdir} directorio de trabajo actual
- ${hb_tempdir} Directorio del sistema operativo para archivos temporales
- ${hb_targetname} nombre del proyecto (sin directorio ni extensión). Devuelve .adhoc. si no existe archivo de proyecto.
- ${hb_targettype} tipo de proyecto (hbexe, hblib, hbdyn, hbdynvm, hbimplib, hbppo, hbhrb, hbcontainer)
- ${hb_plat} plataforma seleccionada
- ${hb_comp} compilador C seleccionado
- ${hb_comp_ver} versión de compilador C
- ${hb_build} nombre de construcción
- ${hb_cpu} CPU seleccionada
- ${hb_work} directorio de trabajo base por defecto
- ${hb_workdynsub} subdirectorio de trabajo por defecto para destino de bibliotecas dinámicas
- ${hb_dynprefix} prefijo de librería dinámica
- ${hb_dynsuffix} sufijo de librería dinámica
- ${hb_dynext} extensión de librería dinámica
- ${hb_ver} Versión Harbour en formato triple byte hexadecimal, p.e: 030200
- ${hb_verstr} Versión Harbour en formato legible <major>.<minor>.<release><status>. ej.: 3.2.0dev
- ${hb_major} Número mayor de versión Harbour
- ${hb_minor} Número menor de versión Harbour
- ${hb_release} Número de versión de Harbour liberada
- ${hb_status} estado de versión Harbour
- ${hb_revision} revisión Harbour
- ${hb_host_plat} plataforma huésped Harbour
- ${hb_host_plat_unix} devuelve '1' si la plataforma huésped Harbour es compatible *nix
- ${hb_bin} directorio de binarios Harbour
- ${hb_lib} Directorio de librerías estáticas de Harbour
- ${hb_lib3rd} Directorio de librerías estáticas de terceros de Harbour
- ${hb_dyn} Directorio de librerías dinámicas de Harbour
- ${hb_inc} directorio de cabeceras Harbour
- ${hb_addons} directorio base de complementos de Harbour
- ${hb_first} nombre del archivo fuente que contiene la función principal (sin directorio ni extensión)
- ${hb_outputdir} directorio de salida
- ${hb_outputname} nombre de la salida (sin extensión)
- ${hb_level} nivel de recursión de sub-proyecto
- ${<depname>} devuelve el directorio cabecera de la dependencia <depname> fue detectado, o '1' si no se ha detectado.
- ${<envvar>} devuelve el valor de la variable de entorno <envvar>
Filtros (puede combinar y/o negarlos):
- {<platform>} plataforma destino. Donde <platform> puede ser cualquier valor aceptado por la opción -plat= .
- {<compiler>} compilador C destino. Donde <compiler> puede ser cualquier valor aceptado por la opción -comp= .
- {<cpu>} CPU destino. Donde <cpu> puede ser uno de: x86, x86_64, ia64, arm, mips, sh
- {<targettype>} tipo de construcción destino. Donde <targettype> es cualquiera de los valores retornados por la variable macro ${hb_targettype}.
- {mt} construcción destino es multihilo (ver opción -mt)
- {st} construcción destino es monohilo (ver opción -st)
- {gui} GUI destino (vea opción -gui)
- {std} consola destino (vea opción -console)
- {debug} El nivel de depuración C está habilitado (ver la opción -debug-)
- {nodebug} El nivel de depuración C está deshabilitado (vea la opción -debug-)
- {shared} construcción compartida (ver -shared y opciones relacionadas)
- {static} construcción estática (ver -static y opciones relacionadas)
- {lngcpp} modo C++ forzado (ver opción -cpp)
- {lngc} modo C forzado (ver opción -cpp-)
- {winuni} modo UNICODE (WIDE) de Windows (ver opción -winuni)
- {winansi} modo ANSI de Windows (ver opción -winuni-)
- {unix} plataforma destino es compatible *nix (bsd, hpux, sunos, beos, qnx, android, vxworks, symbian, linux, darwin, cygwin, minix, aix)
- {allwin} plataforma destino es compatible con Windows (win, wce)
- {allgcc} compilador C destino pertenece a la familia gcc (gcc, mingw, mingw64, mingwarm, djgpp, gccomf, clang, open64, pcc)
- {allmingw} compilador C destino es mingw* (mingw, mingw64, mingwarm)
- {allmsvc} compilador C destino es msvc* (msvc, msvc64, msvcia64, msvcarm)
- {allbcc} compilador C destino es bcc* (bcc, bcc64)
- {allpocc} compilador C destino es pocc* (pocc, pocc64, poccarm)
- {allicc} compilador C destino es icc* (icc, iccia64)
- {hb10} Modo de compatibilidad Harbour 1.0.x (ver opción -hb10)
- {hb20} Modo de compatibilidad Harbour 2.0.x (ver opción -hb20)
- {hb30} Modo de compatibilidad Harbour 3.0.x (ver opción -hb30)
- {xhb} mode xhb (ver opción -xhb)
- {hb_ispath='<file|dir>'} el filtro pasará si el nombre de <file> o <dir> existe en disco.
- {MACRO} el filtro pasará si el valor de ${MACRO} no está vacio y no es igual a '0' o 'no' (insensible a minúsculas y mayúsculas)
- {MACRO='<value>'} el filtro pasará si el valor de ${MACRO} es igual a <value> (insensible a minúsculas y mayúsculas)
- {MACRO>'<value>'} el filtro pasará si el valor de ${MACRO} es mayor a <value> (insensible a minúsculas y mayúsculas)
- {MACRO<'<value>'} el filtro pasará si el valor de ${MACRO} es menor a <value> (insensible a minúsculas y mayúsculas)
Constantes predefinidas en fuentes.
-
__HBSCRIPT__HBMK_PLUGIN cuando un script .hb es compilado como plugin hbmk2
-
__HBEXTREQ__ cuando una fuente .hbx existe en un proyecto (disponible en las fuentes Harbour)
-
HBMK_HAS_<hbcname> cuando el paquete <hbcname>.hbc se enlaza al objetivo final. El valor se obtiene de la entrada 'version=' del archivo .hbc, convertido a número decimal, '1' si no se especifica. (disponible en el código fuente de Harbour)
-
HBMK_HAS_<depname> cuando la dependencia <depname> ha sido detectada (disponible en fuentes C)
-
__HBSCRIPT__HBSHELL cuando un archivo fuente Harbour es ejecutado como un script de consola
-
<standard Harbour> __PLATFORM__*, __ARCH*BIT__, __*_ENDIAN__, etc...
Constantes predefinidas en ficheros de construcción (están disponibles luego de '-depfinish=<depname>' / 'depfinish=<depname>'):
- HBMK_HAS_<depname> cuando la dependencia <depname> ha sido detectada
- HBMK_DIR_<depname> devuelve el directorio cabecera en donde <depname> fue detectado, o un valor vacío so no se ha detectado.
- HBMK_HAS_<depname>_LOCAL cuando la dependencia <depname> ha sido detectada en una ubicación establecida por la opción -depincpathlocal=
Variables de entorno
-
HBMK_OPTIONS acepta cualquier opción como si se pasaran al inicio de la línea de comandos
-
HB_PLATFORM acepta los mismos valores que la opción -plat=
-
HB_COMPILER acepta los mismos valores que la opción -comp=
-
HB_CPU acepta los mismos valores que la opción -cpu=
-
HB_BUILD_NAME acepta los mismos valores que la opción -build=
-
HB_LANG acepta los mismos valores que la opción -lang=
-
HB_USER_LIBS acepta los mismos valores (separador por espacio) que la opción -l
-
HB_USER_LIBPATHS acepta los mismos valores (separador por espacio) que la opción -L
-
HB_USER_PRGFLAGS opciones para pasar al compilador Harbour (antes de las opciones de línea de comandos)
-
HB_USER_CFLAGS opciones para pasar al compilador C (antes de las opciones de línea de comandos)
-
HB_USER_RESFLAGS opciones para pasar al compilador de recursos (antes de las opciones de línea de comandos) (solo Windows)
-
HB_USER_LDFLAGS opciones para pasar al enlazador (ejecutable) (antes de las opciones de línea de comandos)
-
HB_USER_DFLAGS opciones para pasar al enlazador (biblioteca dinámica) (antes de las opciones de línea de comandos)
-
HB_USER_AFLAGS opciones para pasar al enlazador (biblioteca estática) (antes de las opciones de línea de comandos)
-
HB_COMPILER_VER reemplaza la autodetección de versión de compilador C (solo familias gcc y msvc) . Formato: <15><00>[.<00>] = <major><minor>[.<revision>]
-
HB_CCPATH reemplaza directorio del ejecutable del compilador C (solo familias del compilador gcc)
-
HB_CCPREFIX reemplaza prefijo del ejecutable del compilador C (solo familias del compilador gcc)
-
HB_CCSUFFIX reemplaza sufijo del ejecutable del compilador C (solo familias del compilador gcc)
-
HB_INSTALL_PREFIX reemplaza el directorio base de instalación de Harbour
-
HB_INSTALL_ADDONS reemplaza el directorio base de complementos de Harbour
-
HB_EXTENSION lista separada por espacio de extensiones a cargar en la consola Harbour interactiva
directivas .hbc (deben ser escritas en líneas separadas):
- echo=<msg> mostrar <msg>
- skip=[<msg>] omite el procesamiento del resto del archivo .hbc. Muestra <msg>, si está especificado.
- stop=[<msg>] detiene la construcción. Muestra <msg>, si está especificado.
- sources= agregar lista de archivos de entrada separados por espacio
- headers= agregar lista de archivos de cabecera .ch separados por espacios como cabeceras estándar
- libs= agregar lista de bibliotecas separadas por espacio (vea mas en la opción -l)
- frameworks= agregar lista de frameworks separados por espacio (solo Darwin)
- requests= agrega lista de símbolos separados por espacio para forzar el enlace a la construcción destino.
- syslibs= agregar lista de bibliotecas separadas por espacio como bibliotecas de sistema (antes de las bibliotecas regulares)
- hbcs= incrusta una lista de archivos .hbc separados por espacios. Se aceptan nombres sin extensión. Estas referencias se procesan en el momento.
- autohbcs= lista de valores separados por espacio como en opción -autohbc=
- libpaths= lista de rutas de biblioteca adicionales separadas por espacio
- incpaths= agrega lista de rutas adicionales de cabecera separada por espacio (para Harbour y C)
- instfiles= lista de valores separados por espacio como en opción -instfile=
- instpaths= lista de valores separados por espacio como en opción -instpath=
- prgflags= lista de valores separados por espacio como en opción -prgflag=
- cflags= lista de valores separados por espacio como en opción -cflag=
- resflags= lista de valores separados por espacio como en opción -resflag=
- ldflags= lista de valores separados por espacio como en opción -ldflag=
- ldflags+= lista de valores separados por espacio como en opción -ldflag+=
- dflags= lista de valores separados por espacio como en opción -dflag=
- dflags+= lista de valores separados por espacio como en opción -dflag+=
- pflags= lista de valores separados por espacio como en opción -pflag=
- psources= lista de valores separados por espacio como en opción -pi=
- gui=<bool> opción 'yes' = -gui, 'no' = -std
- mt=<bool> opción 'yes' = -mt, 'no' = -st
- pic=<bool> opción 'yes' = -pic, 'no' = -pic-
- shared=<bool> opción 'yes' = -shared, 'no' = -static
- shareddef=<bool> similar a shared=, pero funciona solo si el modo shared/static no ha sido establecido con anterioridad
- fullstatic=<bool> opción 'yes' = -fullstatic, 'no' = -static
- debug=<bool> opción 'yes' = -debug, 'no' = -debug-
- optim= opción 'yes' = -optim, 'no' = -optim-
- nulrdd=<bool> opción 'yes' = -nulrdd, 'no' = -nulrdd-
- nodefgt=<bool> opción 'yes' = -nodefgt, 'no' = -nodefgt-
- map=<bool> opción 'yes' = -map, 'no' = -map-
- hbcppmm=<bool> opción 'yes' = -hbcpmm, 'no' = -hbcpmm-
- implib=<bool> opción 'yes' = -implib, 'no' = -implib-
- winuni=<bool> opción 'yes' = -winuni, 'no' = -winuni-
- strip=<bool> opción 'yes' = -strip, 'no' = -strip-
- run=<bool> opción 'yes' = -run, 'no' = -run-
- inc=<bool> opción 'yes' = -inc, 'no' = -inc-
- safe=<bool> opción 'yes' = -safe, 'no' = -safe-
- cpp= igual que la opción -cpp=
- warn= igual que la opción -warn=
- compr= igual que la opción -compr=
- head= igual que la opción -head=
- plugins= lista separada por espacio de hbmk2 plugins a cargar
- gt=<name> igual que la opción -gt<name>
- gtdef=<name> establece el GT por defecto a utilizar
- env= igual que la opción -env:
- deppkgname= igual que la opción -deppkgname=
- depkeyhead= igual que la opción -depkeyhead=
- depoptional= igual que la opción -depoptional=
- depcontrol= igual que la opción -depcontrol=
- depincroot= igual que la opción -depincroot=
- depincpath= igual que la opción -depincpath=
- depincpathlocal= igual que la opción -depincpathlocal=
- depimplibs= igual que la opción -depimplibs=
- depimplibd= igual que la opción -depimplibd=
- depfinish= igual que la opción -depfinish=
- name= Nombre de paquete
- description= descripción del paquete
- version=<x.y.z> número de versión del paquete, donde x,y,z >= 0 <= 255. Por defecto 0.0.1, si no es especificado.
- keywords= lista de palabras clave separadas por espacio
- licences= lista de licencias separadas por espacio
- repository= lista separada por espacio de referencias a repositorios fuente
API de plugin:
('hbmk' es la variable de contexto recibida por la función principal del plugin)
- hbmk_Register_Input_File_Extension( hbmk, <cExt> ) -> NIL
Registra extensión de archivo de entrada para enviar al plugin (por defecto todas las extensiones de archivo desconocidas son pasadas al compilador Harbour). - hbmk_AddInput_PRG( hbmk, <cFileName> ) -> NIL
Agregar un archivo Harbour al proyecto. - hbmk_AddInput_C( hbmk, <cFileName> ) -> NIL
Agregar un archivo C al proyecto. - hbmk_AddInput_CPP( hbmk, <cFileName> ) -> NIL
Agregar un archivo C++ al proyecto. - hbmk_AddInput_RC( hbmk, <cFileName> ) -> NIL
Agregar un archivo de recursos Windows al proyecto. - hbmk_AddInput_OBJ( hbmk, <cFileName> ) -> NIL
Agregar un archivo binario objeto al proyecto. - hbmk_AddInput_INSTFILE( hbmk, <cFileName>, [<cGroup>] ) -> NIL
Agrega un archivo a instalar, con un nombre de grupo opcional -instpath= - hbmk_OutStd( hbmk, <cText> ) -> NIL
Texto de salida a stdout. - hbmk_OutErr( hbmk, <cText> ) -> NIL
Texto de salida a stderr. - hbmk_OutStdRaw( hbmk, ... ) -> NIL
Enviar texto a stdout sin ningún formato. - hbmk_OutErrRaw( hbmk, ... ) -> NIL
Enviar texto a stderr sin ningún formato. - hbmk_Macro( hbmk, <cMacro> ) -> <cResult>
Evaluate la expresión macro hbmk2. - hbmk_FNameEscape( hbmk, <cFileName> ) -> <cFileName>
Escapa/encomilla el nombre de archivo para utilizarlo como parámetro de un comando externo - hbmk_PathSepToTarget( hbmk, <cFileName> ) -> <cFileName>
Convierte el nombre del fichero al formato requerido por la plataforma/compilador C destino - hbmk_PathSepToForward( <cPath> ) -> <cPath>
Convierte el nombre de archivo para que tenga barras invertidas como separadores de directorios. - hbmk_PathFromWorkdirToCWD( hbmk ) -> <cRelativePath>
Devuelve la ruta relativa del valor de -workdir= desde el directorio de trabajo actual. - hbmk_FindInPath( <cFileName>, [<xPath>], [<aExtDef>] ) -> <cFNFound> | NIL
Busca el archivo en <xPath> (se admite una matriz o una cadena delimitada con separadores de ruta) con una lista de extensiones alternativas <aExtDef> (por defecto ejecutables binarios). Devuelve un nombre de archivo si se encuentra, NIL si no. - hbmk_FNameDirExtSet( <cFileName>, [<cDirNew>], [<cExtNew>] ) -> <cFileName>
Cambiar directorio y/o extensión en nombre de archivo. - hbmk_FuncNameEncode( <cFuncName> ) -> <cFuncNameEncoded>
Codifica el nombre de la función de acuerdo a las reglas del compilador Harbour para formar los nombres de función HB_FUNC() en el código C. - hbmk_StrStripQuote( <cString> ) -> <cString>
Remueve doble encomillado de una cadena. - hbmk_ArrayToList( <aList>, [<cSeparator>] ) -> <cList>
Convertir array de cadenas a cadena. El separador por defecto es un espacio simple.
Variables de plugin:
(ítems de contexto 'hbmk', insensibles a mayúsculas/minúsculas, solo lectura salvo que se haya establecido lo contrario)
- "apiver" versión API como un entero
- "cSTATE" Esta
- "params" arreglo de parámetros pasados a los plugins vía -pflag=/pi=, o a con una extensión registrada vía hbmk_Register_Input_File_Extension()
- "vars" 'hash' de variables para uso del complemento. Modificable, local para cada complemento.
- "cPLAT" valor -plat
- "cCOMP" valor -comp
- "nCOMPVer" ver envvar HB_COMPILER_VER
- "cCPU" valor -cpu
- "cBUILD" valor -build=
- "cOUTPUTNAME" valor -o
- "cTARGETNAME" ver macro ${hb_targetname}
- "cTARGETTYPE" ver macro ${hb_targettype}
- "lREBUILD" estado de opción -rebuild
- "lCLEAN" estado de opción -clean
- "lDEBUG" estado de opción -debug
- "lMAP" estado de opción -map
- "lSTRIP" estado de opción -strip
- "lDONTEXEC" estado de opción -traceonly
- "lIGNOREERROR" estado de opción -ignore
- "lTRACE" estado de opción -trace
- "lQUIET" estado de opción -q
- "lINFO" estado de opción -info
- "lBEEP" estado de opción -beep
- "lRUN" estado de opción -run
- "lINC" estado de opción -inc
- "cCCPATH" ver envvar HB_CCPATH
- "cCCPREFIX" ver envvar HB_CCPREFIX
- "cCCSUFFIX" ver envvar HB_CCSUFFIX
- "cCCEXT" ver envvar HB_CCEXT
- "cWorkDir" valor -workdir=
- "nExitCode" Código de salida actual
API de consola disponible en scripts Harbour:
- hbshell_gtSelect( [<cGT>] ) -> NIL
Intercambia GT. Por defecto [*]: 'gtwin' - hbshell_Clipper() -> NIL
Habilita modo de compatibilidad Clipper (no-Unicode) - hbshell_include( <cHeader> ) -> <lSuccess>
Cargar cabecera Harbour. - hbshell_uninclude( <cHeader> ) -> <lSuccess>
Descargar cabecera Harbour. - hbshell_include_list() -> NIL
Muestra lista de cabecera Harbour cargada. - hbshell_ext_load( <cPackageName> ) -> <lSuccess>
Carga paquete. Similar a la directiva PP #request. - hbshell_ext_unload( <cPackageName> ) -> <lSuccess>
Descargar paquete. - hbshell_ext_get_list() -> <aPackages>
Lista de paquetes cargados - hbshell_DirBase() -> <cBaseDir>
hb_DirBase() no mapeado al script. - hbshell_ProgName() -> <cPath>
hb_ProgName() no mapeado al script.
Ejemplos para comenzar con hbmk2:
- Para ejecutar la consola interactiva (indicador 'punto')
$ hbmk2 . - Para ejecutar un script Harbour
$ hbmk2 myscript.hb [<parameter[s]>]
Ejemplos para construir y ejecutar un binario portable Harbour (tambien llamado script Harbour precompilado):
- A construir
$ hbmk2 -gh myscript.hb - Para ejecutar el resultado de mas arriba
$ hbmk2 myscript.hrb [<parameter[s]>]
Ejemplos para construir una aplicación Harbour
- Para construir un solo .prg
$ hbmk2 hello.prg - Para construir multiples fuentes .prg en una única aplicación en modo incremental
$ hbmk2 mymain.prg myfuncs.prg -inc - para construir una aplicación usando un archivo de projecto
$ hbmk2 myapp.hbp - Para construir una aplicación usando el modo incremental
$ hbmk2 myapp.hbp -inc - Para construir una aplicación que utiliza un paquete de contribución o un complemento que se envia con un archivo .hbc
$ hbmk2 myapp.prg hbct.hbc - Para construir una aplicación que utiliza una biblioteca pura
$ hbmk2 myapp.prg -lmylib -L<path_to_mylib> - Para construir una aplicación que utiliza un recurso Windows
$ hbmk2 mymain.prg myres.rc - Para construir una aplicación que enlaza con bibliotecas dinámicas Harbour
$ hbmk2 -shared myapp.prg - Para construir una aplicación desde todas las fuentes .prg y .c ubicadas en el subdirectorio 'fuente'
$ hbmk2 -omyapp src/*.prg src/*.c
Ejemplos para construir una librería estática Harbour
- Para construir librería 'mylib' desde las fuentes
$ hbmk2 -hblib mylibsrc.prg -omylib - Para construir librería 'mylib' desde las fuentes utilizando el modo incremental
$ hbmk2 -hblib mylibsrc.prg -omylib -inc
Códigos de salida ("errorlevels"):
- 0 sin error
- 1 plataforma desconocida
- 2 compilador desconocido
- 3 detección de Harbour fallida
- 5 no se pudo crear fragmento de código
- 6 falló en compilación (Harbour, compilador C, compilador de Recursos)
- 7 falló en ensamblado final (enlazador o administrador de bibliotecas)
- 8 no soportado
- 9 fallo al crear directorio de trabajo
- 19 ayuda
- 10 dependencia faltante o deshabilitada
- 20 Inicialización de plugin
- 30 anidamiento demasiado profundo
- 50 detención solicitada
- <otro> cuando la opción -run es utilizada, el código de salida será el retornado por el ejecutable destino
Notas:
-
<script> puede ser:
<@script> o <script.hbm>: comandos de opciones de línea en el archivo
<script.hbp>: comandos de opciones de línea en el archivo, también marca una nueva construcción destino si se especifica en la línea de comandos
<script.hbc>: archivo de configuración del paquete -
Un archivo fuente sin extensión cargará el archivo .hbp, si este .hbp existe en el directorio actual. De otra manera, se usará la extensión .prg.
-
Múltiples parámetros son aceptados -l, -L, -i y <script>.
-
las opciones regulares de compilador Harbour también son aceptadas.
(Verlos con la opción -harbourhelp) -
archivo de opciones hbmk.hbc en directorio de hbmk2 siempre es procesado si existe. En plataformas *nix este archivo es chequeado (en este orden) ~/.harbour, /etc/harbour, <base>/etc/harbour, <base>/etc antes de pasar a directorio de hbmk2.
-
hbmk.hbm hace script en el directorio actual siempre se procesa, si existe.
-
Se recomienda usar barras inclinadas en los valores de opciones de directorios, pero tambien se aceptan igualmente barras invertidas.
-
filtros para plataformas son aceptados en cada linea de archivo .hbc y con varias opciones.
Formato de filtro: {[!][<plataforma>|<compilador>|<cpu>|<palabra-clave>]}. Filtros pueden ser combinados usando los operadores '&', '|' y agrupados en parénteses. Ej.: {win}, {gcc}, {linux|darwin}, {win&!pocc}, {(win|linux)&!watcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin} -
La mayoría de las líneas .hbc (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, instfiles=, instpaths=, echo=) y sus parámetros de línea de comando correspondientes aceptarán variables macro. libpaths= tambien acepta %{hb_name} que se traduce al nombre del archivo .hbc buscado.
-
Tambien acepta Opciones de macros sustitución de comandos. Incluya comando dentro de ``, y, si el comando contiene espacios, también entre comillas dobles. F.e. "-cflag==`wx-config -cflags`", o ldflags={unix&gcc}"`wx-config --libs`".
-
Cuando se especifican múltiples opciones de tipo de construcción destino (-hblib, -hbdyn, etc.), solo se utilizará la primera, las demás serán ignoradas silenciosamente.
-
Bibliotecas y archivos objeto construidos con/para CA-Cl*pper no funcionaran con ninguna plataforma/compilador seleccionado.
-
Modos por defecto y soporte de características pueden variar por plataforma/compilador.
-
No se necesita GNU Make u otra utilidad 'make' específica de un compilador C y MSYS (en Windows) para ejecutar hbmk2.
-
. (punto) pasado como primer parámetro activará la consola interactiva Harbour.
-
el archivo .hb, .hrb o .dbf pasado como primer parámetro será ejecutado como un script Harbour. Si el nombre del archivo no contiene componentes de ruta, será buscado en el directorio de trabajo actual y en el PATH. Si no se especifica una extensión, se buscarán las extensiones .hb y .hrb en ese orden. Los archivos .dbf se abrirán automáticamente en modo compartido y el intérprete de comandos de Harbour será iniciado. Las extensiones no-estandar se autodetectarán para archivos de tipo fuente y scripts precompilados. Nota: para los scripts Harbour, la página de códigos (codepage) es establecida a UTF-8 por defecto. El archivo de cabecera principal 'hb.ch' es incluido (#include) automáticamente. El formato de fecha por defecto es el estandar ISO: yyyy-mm-dd. El GT por defecto es 'gtcgi', excepto que se detecten llamadas CUI de pantalla completa, en cuyo caso el GT 'gtwin' [*] se selecciona automáticamente (excepto para INIT PROCEDURESs).
-
Puede usar las teclas <Alt+V> en la consola interactiva Harbour para pegar texto del portapapeles.
-
Valores marcados con [*] pueden ser dependientes de la plataforma huésped o de la configuración. Esta ayuda ha sido generada en la plataforma huésped 'win' .
Valores suportados para <compiler> conforme a <platform> disponible:
- linux gcc, clang, icc, watcom, sunpro, open64
- darwin gcc, clang, icc
- win mingw, msvc, clang, bcc, bcc64, watcom, icc, pocc, xcc, mingw64, msvc64, msvcia64, iccia64, pocc64
- wce mingwarm, mingw, msvcarm, poccarm
- os2 gcc, gccomf, watcom
- dos djgpp, watcom
- bsd gcc, clang, pcc
- hpux gcc
- beos gcc
- qnx gcc
- android gcc, gccarm
- vxworks gcc, diab
- symbian gcc
- cygwin gcc
- minix clang, gcc
- aix gcc
- sunos gcc, sunpro
Licencia:
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
their web site at http://www.gnu.org/).
License extensions:
- This source code must be kept and distributed as part
of the Harbour package and/or the placement of the tool sources
and files must reflect that it is part of Harbour Project.
- Copyright information must always be presented by
projects including this tool or help text.
- Modified versions of the tool must clearly state this
fact on the copyright screen.
- Source code modifications shall always be made available
along with binaries.
- Help text and documentation is licensed under
Creative Commons Attribution-ShareAlike 3.0:
http://creativecommons.org/licenses/by-sa/3.0/
Autor:
- Viktor Szakats (vszakats.net/harbour)