From 65f22b4baa3ce89cbda7b6c3e377c50ad6d9d673 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 4 Jun 2009 21:01:13 +0000 Subject: [PATCH] 2009-06-04 23:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg + Added support for hbcs= lins in .hbc files. This means they can now be embedded. Filters and macros are accepted, extension optional, .hbc will be added. ! Fixed wrongly calculated embedding level, counting now made simpler. + Added warning message if embedding level reached the maximum, instead of just ignoring the to be embedded files. * COPYING + Added utils/hbmk2 to the COMPILER LICENSE section. - Deleted OLD HARBOUR LICENSE section. * source/lang/msgeu.c * source/lang/msgsr852.c * source/lang/msgsriso.c * source/lang/msgsliso.c * source/lang/msgslwin.c * source/lang/msgsl437.c * source/lang/msgsl852.c * Changed copyright to new Harbour license by group (silent) consent. Copyright holders kept intact, if that's a problem for anyone in the future, we shall delete these files from the repository and retranslate (or do whatever else we decide), notice however that msgsr*.c and msgsl*.c files were only containing translations for month and day names. msgeu.c contained translation work spanning to 40 strings. * source/compiler/hbusage.c * Updated Lorenzo Fiorini's e-mail address in credit list. --- harbour/COPYING | 38 +-------------- harbour/ChangeLog | 34 +++++++++++++- harbour/source/compiler/hbusage.c | 2 +- harbour/source/lang/msgeu.c | 41 +++++++++++----- harbour/source/lang/msgsl437.c | 43 +++++++++++------ harbour/source/lang/msgsl852.c | 41 +++++++++++----- harbour/source/lang/msgsliso.c | 41 +++++++++++----- harbour/source/lang/msgslwin.c | 41 +++++++++++----- harbour/source/lang/msgsr852.c | 41 +++++++++++----- harbour/source/lang/msgsriso.c | 41 +++++++++++----- harbour/utils/hbmk2/hbmk2.prg | 77 ++++++++++++++++++++++--------- 11 files changed, 294 insertions(+), 146 deletions(-) diff --git a/harbour/COPYING b/harbour/COPYING index b8ba622b97..8548cc4b07 100644 --- a/harbour/COPYING +++ b/harbour/COPYING @@ -2,7 +2,7 @@ THE HARBOUR PROJECT COMPILER LICENSE ==================================== Note: This license applies to most of the files in the source/compiler - directory. + and utils/hbmk2 directories. 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 @@ -66,42 +66,6 @@ whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice. -THE OLD HARBOUR PROJECT LIBRARY LICENSE -======================================= - -Note: This license only applies to the following files: - - source/lang/msgeu.c - source/lang/msgsl437.c - source/lang/msgsl852.c - source/lang/msgsliso.c - source/lang/msgslwin.c - source/lang/msgsr852.c - source/lang/msgsriso.c - -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, with one exception: - -The exception is that if you link the Harbour Runtime Library (HRL) -and/or the Harbour Virtual Machine (HVM) with other files to produce -an executable, this does not by itself cause the resulting executable -to be covered by the GNU General Public License. Your use of that -executable is in no way restricted on account of linking the HRL -and/or HVM code into it. - -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/). - - THE HARBOUR PROJECT CONTRIB LICENSE =================================== diff --git a/harbour/ChangeLog b/harbour/ChangeLog index feb6c27db8..994f864243 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,38 @@ past entries belonging to these authors: Viktor Szakats. */ +2009-06-04 23:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + + Added support for hbcs= lins in .hbc files. This means + they can now be embedded. Filters and macros are accepted, + extension optional, .hbc will be added. + ! Fixed wrongly calculated embedding level, counting now made + simpler. + + Added warning message if embedding level reached the maximum, + instead of just ignoring the to be embedded files. + + * COPYING + + Added utils/hbmk2 to the COMPILER LICENSE section. + - Deleted OLD HARBOUR LICENSE section. + + * source/lang/msgeu.c + * source/lang/msgsr852.c + * source/lang/msgsriso.c + * source/lang/msgsliso.c + * source/lang/msgslwin.c + * source/lang/msgsl437.c + * source/lang/msgsl852.c + * Changed copyright to new Harbour license by group (silent) + consent. Copyright holders kept intact, if that's a problem + for anyone in the future, we shall delete these files from + the repository and retranslate (or do whatever else we + decide), notice however that msgsr*.c and msgsl*.c files + were only containing translations for month and day names. + msgeu.c contained translation work spanning to 40 strings. + + * source/compiler/hbusage.c + * Updated Lorenzo Fiorini's e-mail address in credit list. + 2009-06-04 17:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * INSTALL + Change section title from: @@ -36,7 +68,7 @@ 2009-06-04 15:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg - ! Fixed to make pos= files relativ to .hbc container location. + ! Fixed to make pos= files relative to .hbc container location. ! Fixed to not macro process pos= entries, because it breaks ${lng} macros. + Added -debugi18n messages for .po update. diff --git a/harbour/source/compiler/hbusage.c b/harbour/source/compiler/hbusage.c index e323caa486..f44d812656 100644 --- a/harbour/source/compiler/hbusage.c +++ b/harbour/source/compiler/hbusage.c @@ -220,7 +220,7 @@ void hb_compPrintCredits( HB_COMP_DECL ) "Jose Lalin \n" "Kwon, Oh-Chul \n" "Leslee Griffith \n" - "Lorenzo Fiorini \n" + "Lorenzo Fiorini \n" "Luis Krause Mantilla \n" "Luiz Rafael Culik \n" "Manuel Ruiz \n" diff --git a/harbour/source/lang/msgeu.c b/harbour/source/lang/msgeu.c index ca71d0978d..a80ffed28a 100644 --- a/harbour/source/lang/msgeu.c +++ b/harbour/source/lang/msgeu.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgsl437.c b/harbour/source/lang/msgsl437.c index 103e24576f..42e657a16f 100644 --- a/harbour/source/lang/msgsl437.c +++ b/harbour/source/lang/msgsl437.c @@ -7,20 +7,13 @@ * Language Support Module (SL437) * * Copyright 2000 Davor Siklic + * Copyright 2003 Mitja Podgornik * www - http://www.harbour-project.org - * 2003 Mitja Podgornik * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -28,9 +21,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgsl852.c b/harbour/source/lang/msgsl852.c index 13e7ea5fbf..b302a243fb 100644 --- a/harbour/source/lang/msgsl852.c +++ b/harbour/source/lang/msgsl852.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgsliso.c b/harbour/source/lang/msgsliso.c index d79f54de34..7569b978fc 100644 --- a/harbour/source/lang/msgsliso.c +++ b/harbour/source/lang/msgsliso.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgslwin.c b/harbour/source/lang/msgslwin.c index 05af1a496e..28768f6331 100644 --- a/harbour/source/lang/msgslwin.c +++ b/harbour/source/lang/msgslwin.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgsr852.c b/harbour/source/lang/msgsr852.c index 33f6c2d821..9e96d7b859 100644 --- a/harbour/source/lang/msgsr852.c +++ b/harbour/source/lang/msgsr852.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/source/lang/msgsriso.c b/harbour/source/lang/msgsriso.c index 3762571eef..e80236b0bd 100644 --- a/harbour/source/lang/msgsriso.c +++ b/harbour/source/lang/msgsriso.c @@ -11,15 +11,8 @@ * * 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, with one exception: - * - * The exception is that if you link the Harbour Runtime Library (HRL) - * and/or the Harbour Virtual Machine (HVM) with other files to produce - * an executable, this does not by itself cause the resulting executable - * to be covered by the GNU General Public License. Your use of that - * executable is in no way restricted on account of linking the HRL - * and/or HVM code into it. + * the Free Software Foundation; either version 2, 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 @@ -27,9 +20,33 @@ * 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/). + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. * */ diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 34c4eec453..d4b356495b 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -165,6 +165,9 @@ REQUEST hbmk_KEYW #define _HBMK_CFG_NAME "hbmk.cfg" #define _HBMK_AUTOHBM_NAME "hbmk.hbm" +#define _HBMK_NEST_MAX 10 +#define _HBMK_HEAD_NEST_MAX 10 + #define _WORKDIR_BASE_ ".hbmk" #define _WORKDIR_DEF_ ( _WORKDIR_BASE_ + hb_osPathSeparator() + hbmk[ _HBMK_cARCH ] + hb_osPathSeparator() + hbmk[ _HBMK_cCOMP ] ) @@ -507,7 +510,6 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) LOCAL lSysLoc LOCAL cPrefix LOCAL cPostfix - LOCAL nEmbedLevel LOCAL cCCEXT_mingw LOCAL lSkipBuild := .F. @@ -1208,8 +1210,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) IF ! hbmk[ _HBMK_lQuiet ] hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing local make script: %1$s" ), _HBMK_AUTOHBM_NAME ) ) ENDIF - nEmbedLevel := 1 - HBM_Load( hbmk, aParams, _HBMK_AUTOHBM_NAME, @nEmbedLevel ) + HBM_Load( hbmk, aParams, _HBMK_AUTOHBM_NAME, 1 ) ENDIF /* Collect all command line parameters */ @@ -1226,13 +1227,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) DEFAULT s_cFIRST TO s_aOBJUSER[ 1 ] ENDIF ELSE - nEmbedLevel := 1 - HBM_Load( hbmk, aParams, cParam, @nEmbedLevel ) /* Load parameters from script file */ + HBM_Load( hbmk, aParams, cParam, 1 ) /* Load parameters from script file */ ENDIF CASE Lower( FN_ExtGet( cParam ) ) == ".hbm" .OR. ; Lower( FN_ExtGet( cParam ) ) == ".hbp" - nEmbedLevel := 1 - HBM_Load( hbmk, aParams, cParam, @nEmbedLevel ) /* Load parameters from script file */ + HBM_Load( hbmk, aParams, cParam, 1 ) /* Load parameters from script file */ OTHERWISE AAdd( aParams, { cParam, "", 0 } ) ENDCASE @@ -1640,7 +1639,7 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 ) hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing: %1$s" ), cParam ) ) ENDIF - HBC_ProcessOne( hbmk, cParam ) + HBC_ProcessOne( hbmk, cParam, 1 ) CASE FN_ExtGet( cParamL ) == ".prg" @@ -3873,7 +3872,7 @@ STATIC FUNCTION FindNewerHeaders( hbmk, cFileName, cParentDir, tTimeParent, lInc RETURN .F. ENDIF - IF nEmbedLevel > 10 + IF nEmbedLevel > _HBMK_HEAD_NEST_MAX RETURN .F. ENDIF @@ -4578,7 +4577,7 @@ STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly ) IF ! hbmk[ _HBMK_lQuiet ] hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing configuration: %1$s" ), cFileName ) ) ENDIF - HBC_ProcessOne( hbmk, cFileName ) + HBC_ProcessOne( hbmk, cFileName, 1 ) EXIT ENDIF NEXT @@ -4590,7 +4589,7 @@ STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly ) IF ! hbmk[ _HBMK_lQuiet ] hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing: %1$s" ), cFileName ) ) ENDIF - HBC_ProcessOne( hbmk, cFileName ) + HBC_ProcessOne( hbmk, cFileName, 1 ) ENDIF NEXT ENDIF @@ -4599,10 +4598,13 @@ STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly ) #define _EOL Chr( 10 ) -STATIC PROCEDURE HBC_ProcessOne( hbmk, cFileName ) - LOCAL cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */ +STATIC PROCEDURE HBC_ProcessOne( hbmk, cFileName, nEmbedLevel ) + LOCAL cFile LOCAL cLine LOCAL cItem + LOCAL tmp + + cFile := MemoRead( cFileName ) /* NOTE: Intentionally using MemoRead() which handles EOF char. */ IF ! hb_osNewLine() == _EOL cFile := StrTran( cFile, hb_osNewLine(), _EOL ) @@ -4632,6 +4634,35 @@ STATIC PROCEDURE HBC_ProcessOne( hbmk, cFileName ) ENDIF NEXT + CASE Lower( Left( cLine, Len( "hbcs=" ) ) ) == "hbcs=" ; cLine := SubStr( cLine, Len( "hbcs=" ) + 1 ) + FOR EACH cItem IN hb_ATokens( cLine,, .T. ) + IF nEmbedLevel < _HBMK_NEST_MAX + + cItem := PathProc( MacroProc( hbmk, StrStripQuote( cItem ), FN_DirGet( cFileName ) ), FN_DirGet( cFileName ) ) + + IF Empty( FN_ExtGet( cItem ) ) + cItem := FN_ExtSet( cItem, ".hbc" ) + ENDIF + + IF ! hb_FileExists( cItem ) + FOR EACH tmp IN hbmk[ _HBMK_aLIBPATH ] + IF hb_FileExists( DirAddPathSep( tmp ) + FN_NameExtGet( cItem ) ) + cItem := DirAddPathSep( tmp ) + FN_NameExtGet( cItem ) + EXIT + ENDIF + NEXT + ENDIF + + IF hbmk[ _HBMK_lInfo ] + hbmk_OutStd( hbmk, hb_StrFormat( I_( "Processing: %1$s" ), cItem ) ) + ENDIF + + HBC_ProcessOne( hbmk, cItem, nEmbedLevel + 1 ) + ELSE + hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Cannot nest deeper in %1$s" ), cFileName ) ) + ENDIF + NEXT + CASE Lower( Left( cLine, Len( "libpaths=" ) ) ) == "libpaths=" ; cLine := SubStr( cLine, Len( "libpaths=" ) + 1 ) FOR EACH cItem IN hb_ATokens( cLine,, .T. ) cItem := PathSepToTarget( hbmk, PathProc( MacroProc( hbmk, StrStripQuote( cItem ), FN_DirGet( cFileName ) ), FN_DirGet( cFileName ) ) ) @@ -4873,7 +4904,7 @@ STATIC FUNCTION ValueIsF( cString ) RETURN cString == "no" .OR. ; cString == "0" /* Compatibility */ -STATIC PROCEDURE HBM_Load( hbmk, aParams, cFileName, /* @ */ nEmbedLevel ) +STATIC PROCEDURE HBM_Load( hbmk, aParams, cFileName, nEmbedLevel ) LOCAL cFile LOCAL cLine LOCAL cParam @@ -4896,19 +4927,21 @@ STATIC PROCEDURE HBM_Load( hbmk, aParams, cFileName, /* @ */ nEmbedLevel ) IF ! Empty( cParam ) DO CASE CASE ( Len( cParam ) >= 1 .AND. Left( cParam, 1 ) == "@" ) - IF nEmbedLevel < 10 + IF nEmbedLevel < _HBMK_NEST_MAX cParam := SubStr( cParam, 2 ) IF Empty( FN_ExtGet( cParam ) ) cParam := FN_ExtSet( cParam, ".hbm" ) ENDIF - nEmbedLevel++ - HBM_Load( hbmk, aParams, PathProc( cParam, cFileName ), @nEmbedLevel ) /* Load parameters from script file */ + HBM_Load( hbmk, aParams, PathProc( cParam, cFileName ), nEmbedLevel + 1 ) /* Load parameters from script file */ + ELSE + hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Cannot nest deeper in %1$s" ), cFileName ) ) ENDIF CASE Lower( FN_ExtGet( cParam ) ) == ".hbm" .OR. ; Lower( FN_ExtGet( cParam ) ) == ".hbp" - IF nEmbedLevel < 10 - nEmbedLevel++ - HBM_Load( hbmk, aParams, PathProc( cParam, cFileName ), @nEmbedLevel ) /* Load parameters from script file */ + IF nEmbedLevel < _HBMK_NEST_MAX + HBM_Load( hbmk, aParams, PathProc( cParam, cFileName ), nEmbedLevel + 1 ) /* Load parameters from script file */ + ELSE + hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Cannot nest deeper in %1$s" ), cFileName ) ) ENDIF OTHERWISE AAdd( aParams, { cParam, cFileName, cLine:__enumIndex() } ) @@ -6006,9 +6039,9 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) hb_StrFormat( I_( "%1$s option file in hbmk directory is always processed if it exists. On *nix platforms ~/.harbour, /etc/harbour, /etc/harbour, /etc are checked (in that order) before the hbmk directory. The file format is the same as .hbc." ), _HBMK_CFG_NAME ),; hb_StrFormat( I_( "%1$s make script in current directory is always processed if it exists." ), _HBMK_AUTOHBM_NAME ),; I_( ".hbc config files in current dir are automatically processed." ),; - I_( ".hbc options (they should come in separate lines): libs=[], gt=[gtname], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], libpaths=[paths], pos=[.po files], incpaths=[paths], inctrypaths=[paths], instpaths=[paths], gui|mt|shared|nulrdd|debug|opt|map|strip|run|inc=[yes|no], compr=[yes|no|def|min|max], head=[off|partial|full], echo=\nLines starting with '#' char are ignored" ),; + I_( ".hbc options (they should come in separate lines): libs=[], hbcs=[<.hbc file[s]>], gt=[gtname], prgflags=[Harbour flags], cflags=[C compiler flags], resflags=[resource compiler flags], ldflags=[linker flags], libpaths=[paths], pos=[.po files], incpaths=[paths], inctrypaths=[paths], instpaths=[paths], gui|mt|shared|nulrdd|debug|opt|map|strip|run|inc=[yes|no], compr=[yes|no|def|min|max], head=[off|partial|full], 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)&!owatcom}, {unix&mt&gui}, -cflag={win}-DMYDEF, -stop{dos}, -stop{!allwin}, {allpocc|allgcc|allmingw|unix}, {allmsvc}, {x86|x86_64|ia64|arm}, {debug|nodebug|gui|std|mt|st|xhb}" ),; - I_( "Certain .hbc lines (prgflags=, cflags=, ldflags=, libpaths=, inctrypaths=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_self}, ${hb_arch}, ${hb_comp}, ${hb_cpu}, ${}" ),; + I_( "Certain .hbc lines (libs=, hbcs=, prgflags=, cflags=, ldflags=, libpaths=, inctrypaths=, instpaths=, echo=) and corresponding command line parameters will accept macros: ${hb_root}, ${hb_self}, ${hb_arch}, ${hb_comp}, ${hb_cpu}, ${}" ),; I_( "Defaults and feature support vary by architecture/compiler." ) } DEFAULT lLong TO .F.