2009-04-04 17:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* INSTALL
    * Minor.

  * utils/hbmk2/hbmk2.prg
    ! Fixed to add 'lib' prefix when -hblib option is used with 
      GCC family compilers.
    ! Fixed to not override compiler output when -hblib option is used.

  * contrib/hbqt/generator/hbqtgen.prg
  + contrib/hbqt/Makefile_gen
  * contrib/hbqt/Makefile
    + Added Makefile_gen which holds the generated part of 
      the Makefile. This way there is no (less) hidden make 
      logic inside hbqtgen.

  * config/wce/global.cf
    - Removed gtwin.
    ; TODO: Move GT inclusion logic to GT local Makefiles.
This commit is contained in:
Viktor Szakats
2009-04-04 15:06:55 +00:00
parent d72a0554f8
commit 0ae41f7a0e
7 changed files with 207 additions and 251 deletions

View File

@@ -8,6 +8,26 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-04-04 17:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* INSTALL
* Minor.
* utils/hbmk2/hbmk2.prg
! Fixed to add 'lib' prefix when -hblib option is used with
GCC family compilers.
! Fixed to not override compiler output when -hblib option is used.
* contrib/hbqt/generator/hbqtgen.prg
+ contrib/hbqt/Makefile_gen
* contrib/hbqt/Makefile
+ Added Makefile_gen which holds the generated part of
the Makefile. This way there is no (less) hidden make
logic inside hbqtgen.
* config/wce/global.cf
- Removed gtwin.
; TODO: Move GT inclusion logic to GT local Makefiles.
2009-04-03 15:33 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* harbour-wce-spec
* INSTALL
@@ -30,7 +50,7 @@
* source/vm/vmmt/Makefile
+ Added wce arch and mingwarm/msvcarm/poccarm support.
In parallel with old win/mingwce|msvcce|poccce support.
As soons as this new one work, the old one will be deleted.
As soons as this new one works, the old one will be deleted.
* make_gnu.bat
! Fixed to work like rest of targets for GCC family.

View File

@@ -43,7 +43,7 @@ HOW TO BUILD AND INSTALL HARBOUR
details. It's recommended to make sure no tools in your PATH
belonging to other C compilers are interfering with your setup.
For the list of supported compilers, please look up the
relevant section of this file.
relevant section in this file.
3.) Make sure to have GNU Make. Certain older versions and builds
are untested and may not work. We recommend the one distributed
by MinGW team. Use this link to get it:
@@ -74,8 +74,6 @@ HOW TO BUILD AND INSTALL HARBOUR
Windows with MinGW + msys
-------------------------
This is the recommended way to build with MinGW.
Make sure to have msys and MinGW properly configured.
msys should be put in PATH _before_ MinGW.

View File

@@ -8,7 +8,6 @@ HB_GT_LIST=\
gtcgi \
gtpca \
gtstd \
gtwin \
gtwvt \
gtgui \

View File

@@ -51,172 +51,7 @@ ifneq ($(strip $(HB_INC_QT_OK)),)
HB_USER_CFLAGS += $(foreach d, $(HB_INC_QT_OK), -I$(d))
CPP_SOURCES=\
hbqt_qabstractbutton.cpp \
hbqt_qabstractitemview.cpp \
hbqt_qabstractprintdialog.cpp \
hbqt_qabstractscrollarea.cpp \
hbqt_qabstractslider.cpp \
hbqt_qabstractspinbox.cpp \
hbqt_qaction.cpp \
hbqt_qapplication.cpp \
hbqt_qboxlayout.cpp \
hbqt_qbrush.cpp \
hbqt_qcalendarwidget.cpp \
hbqt_qcheckbox.cpp \
hbqt_qcolor.cpp \
hbqt_qcolordialog.cpp \
hbqt_qcombobox.cpp \
hbqt_qcommandlinkbutton.cpp \
hbqt_qcoreapplication.cpp \
hbqt_qdateedit.cpp \
hbqt_qdatetimeedit.cpp \
hbqt_qdial.cpp \
hbqt_qdialog.cpp \
hbqt_qdoublespinbox.cpp \
hbqt_qerrormessage.cpp \
hbqt_qfiledialog.cpp \
hbqt_qfocusframe.cpp \
hbqt_qfont.cpp \
hbqt_qfontcombobox.cpp \
hbqt_qfontdialog.cpp \
hbqt_qformlayout.cpp \
hbqt_qframe.cpp \
hbqt_qgroupbox.cpp \
hbqt_qhboxlayout.cpp \
hbqt_qinputdialog.cpp \
hbqt_qlabel.cpp \
hbqt_qlayout.cpp \
hbqt_qlayoutitem.cpp \
hbqt_qlcdnumber.cpp \
hbqt_qlineedit.cpp \
hbqt_qlistview.cpp \
hbqt_qmainwindow.cpp \
hbqt_qmenu.cpp \
hbqt_qmenubar.cpp \
hbqt_qmessagebox.cpp \
hbqt_qobject.cpp \
hbqt_qpaintdevice.cpp \
hbqt_qpagesetupdialog.cpp \
hbqt_qpainter.cpp \
hbqt_qpen.cpp \
hbqt_qprintdialog.cpp \
hbqt_qprintpreviewdialog.cpp \
hbqt_qprogressbar.cpp \
hbqt_qprogressdialog.cpp \
hbqt_qpushbutton.cpp \
hbqt_qradiobutton.cpp \
hbqt_qscrollarea.cpp \
hbqt_qscrollbar.cpp \
hbqt_qsizegrip.cpp \
hbqt_qslider.cpp \
hbqt_qspinbox.cpp \
hbqt_qsplitter.cpp \
hbqt_qtabbar.cpp \
hbqt_qtableview.cpp \
hbqt_qtablewidget.cpp \
hbqt_qtablewidgetitem.cpp \
hbqt_qtabwidget.cpp \
hbqt_qtextedit.cpp \
hbqt_qtimeedit.cpp \
hbqt_qtoolbar.cpp \
hbqt_qtoolbox.cpp \
hbqt_qtoolbutton.cpp \
hbqt_qtreeview.cpp \
hbqt_qtreewidget.cpp \
hbqt_qtreewidgetitem.cpp \
hbqt_qvboxlayout.cpp \
hbqt_qwebpage.cpp \
hbqt_qwidget.cpp \
hbqt_qwizard.cpp \
hbqt_qwebview.cpp \
hbqt_base.cpp \
hbqt_utils.cpp \
hbqt_slots.cpp \
moc_slots.cpp \
C_HEADERS=\
hbqt.h \
hbqt_slots.h \
#PRG_HEADERS=\
# hbqt.ch \
# hbqtextern.ch \
PRG_SOURCES=\
TQAbstractButton.prg \
TQAbstractItemView.prg \
TQAbstractPrintDialog.prg \
TQAbstractScrollArea.prg \
TQAbstractSlider.prg \
TQAbstractSpinBox.prg \
TQAction.prg \
TQBoxLayout.prg \
TQCalendarWidget.prg \
TQCheckBox.prg \
TQColorDialog.prg \
TQComboBox.prg \
TQCommandLinkButton.prg \
TQDateEdit.prg \
TQDateTimeEdit.prg \
TQDial.prg \
TQDialog.prg \
TQDoubleSpinBox.prg \
TQErrorMessage.prg \
TQFileDialog.prg \
TQFocusFrame.prg \
TQFontComboBox.prg \
TQFontDialog.prg \
TQFormLayout.prg \
TQFrame.prg \
TQGroupBox.prg \
TQHBoxLayout.prg \
TQInputDialog.prg \
TQLabel.prg \
TQLayout.prg \
TQLayoutItem.prg \
TQLCDNumber.prg \
TQLineEdit.prg \
TQListView.prg \
TQMainWindow.prg \
TQMenu.prg \
TQMenuBar.prg \
TQMessageBox.prg \
TQObject.prg \
TQPaintDevice.prg \
TQPageSetupDialog.prg \
TQPainter.prg \
TQPrintDialog.prg \
TQPrintPreviewDialog.prg \
TQProgressBar.prg \
TQProgressDialog.prg \
TQPushButton.prg \
TQRadioButton.prg \
TQScrollArea.prg \
TQScrollBar.prg \
TQSizeGrip.prg \
TQSlider.prg \
TQSpinBox.prg \
TQSplitter.prg \
TQTabBar.prg \
TQTableView.prg \
TQTableWidget.prg \
TQTableWidgetItem.prg \
TQTabWidget.prg \
TQTextEdit.prg \
TQTimeEdit.prg \
TQToolBar.prg \
TQToolBox.prg \
TQToolButton.prg \
TQTreeView.prg \
TQTreeWidget.prg \
TQTreeWidgetItem.prg \
TQVBoxLayout.prg \
TQWebPage.prg \
TQWidget.prg \
TQWizard.prg \
TQWebView.prg \
include Makefile_gen
include $(TOP)$(ROOT)config/header.cf
INSTALL_RULE_HEADERS := $(INSTALL_RULE)

View File

@@ -0,0 +1,170 @@
#
# $Id$
#
CPP_SOURCES=\
hbqt_qabstractbutton.cpp \
hbqt_qabstractitemview.cpp \
hbqt_qabstractprintdialog.cpp \
hbqt_qabstractscrollarea.cpp \
hbqt_qabstractslider.cpp \
hbqt_qabstractspinbox.cpp \
hbqt_qaction.cpp \
hbqt_qapplication.cpp \
hbqt_qboxlayout.cpp \
hbqt_qbrush.cpp \
hbqt_qcalendarwidget.cpp \
hbqt_qcheckbox.cpp \
hbqt_qcolor.cpp \
hbqt_qcolordialog.cpp \
hbqt_qcombobox.cpp \
hbqt_qcommandlinkbutton.cpp \
hbqt_qcoreapplication.cpp \
hbqt_qdateedit.cpp \
hbqt_qdatetimeedit.cpp \
hbqt_qdial.cpp \
hbqt_qdialog.cpp \
hbqt_qdoublespinbox.cpp \
hbqt_qerrormessage.cpp \
hbqt_qfiledialog.cpp \
hbqt_qfocusframe.cpp \
hbqt_qfont.cpp \
hbqt_qfontcombobox.cpp \
hbqt_qfontdialog.cpp \
hbqt_qformlayout.cpp \
hbqt_qframe.cpp \
hbqt_qgroupbox.cpp \
hbqt_qhboxlayout.cpp \
hbqt_qinputdialog.cpp \
hbqt_qlabel.cpp \
hbqt_qlayout.cpp \
hbqt_qlayoutitem.cpp \
hbqt_qlcdnumber.cpp \
hbqt_qlineedit.cpp \
hbqt_qlistview.cpp \
hbqt_qmainwindow.cpp \
hbqt_qmenu.cpp \
hbqt_qmenubar.cpp \
hbqt_qmessagebox.cpp \
hbqt_qobject.cpp \
hbqt_qpaintdevice.cpp \
hbqt_qpagesetupdialog.cpp \
hbqt_qpainter.cpp \
hbqt_qpen.cpp \
hbqt_qprintdialog.cpp \
hbqt_qprintpreviewdialog.cpp \
hbqt_qprogressbar.cpp \
hbqt_qprogressdialog.cpp \
hbqt_qpushbutton.cpp \
hbqt_qradiobutton.cpp \
hbqt_qscrollarea.cpp \
hbqt_qscrollbar.cpp \
hbqt_qsizegrip.cpp \
hbqt_qslider.cpp \
hbqt_qspinbox.cpp \
hbqt_qsplitter.cpp \
hbqt_qtabbar.cpp \
hbqt_qtableview.cpp \
hbqt_qtablewidget.cpp \
hbqt_qtablewidgetitem.cpp \
hbqt_qtabwidget.cpp \
hbqt_qtextedit.cpp \
hbqt_qtimeedit.cpp \
hbqt_qtoolbar.cpp \
hbqt_qtoolbox.cpp \
hbqt_qtoolbutton.cpp \
hbqt_qtreeview.cpp \
hbqt_qtreewidget.cpp \
hbqt_qtreewidgetitem.cpp \
hbqt_qvboxlayout.cpp \
hbqt_qwebpage.cpp \
hbqt_qwidget.cpp \
hbqt_qwizard.cpp \
hbqt_qwebview.cpp \
hbqt_base.cpp \
hbqt_utils.cpp \
hbqt_slots.cpp \
moc_slots.cpp \
C_HEADERS=\
hbqt.h \
hbqt_slots.h \
#PRG_HEADERS=\
# hbqt.ch \
# hbqtextern.ch \
PRG_SOURCES=\
TQAbstractButton.prg \
TQAbstractItemView.prg \
TQAbstractPrintDialog.prg \
TQAbstractScrollArea.prg \
TQAbstractSlider.prg \
TQAbstractSpinBox.prg \
TQAction.prg \
TQBoxLayout.prg \
TQCalendarWidget.prg \
TQCheckBox.prg \
TQColorDialog.prg \
TQComboBox.prg \
TQCommandLinkButton.prg \
TQDateEdit.prg \
TQDateTimeEdit.prg \
TQDial.prg \
TQDialog.prg \
TQDoubleSpinBox.prg \
TQErrorMessage.prg \
TQFileDialog.prg \
TQFocusFrame.prg \
TQFontComboBox.prg \
TQFontDialog.prg \
TQFormLayout.prg \
TQFrame.prg \
TQGroupBox.prg \
TQHBoxLayout.prg \
TQInputDialog.prg \
TQLabel.prg \
TQLayout.prg \
TQLayoutItem.prg \
TQLCDNumber.prg \
TQLineEdit.prg \
TQListView.prg \
TQMainWindow.prg \
TQMenu.prg \
TQMenuBar.prg \
TQMessageBox.prg \
TQObject.prg \
TQPaintDevice.prg \
TQPageSetupDialog.prg \
TQPainter.prg \
TQPrintDialog.prg \
TQPrintPreviewDialog.prg \
TQProgressBar.prg \
TQProgressDialog.prg \
TQPushButton.prg \
TQRadioButton.prg \
TQScrollArea.prg \
TQScrollBar.prg \
TQSizeGrip.prg \
TQSlider.prg \
TQSpinBox.prg \
TQSplitter.prg \
TQTabBar.prg \
TQTableView.prg \
TQTableWidget.prg \
TQTableWidgetItem.prg \
TQTabWidget.prg \
TQTextEdit.prg \
TQTimeEdit.prg \
TQToolBar.prg \
TQToolBox.prg \
TQToolButton.prg \
TQTreeView.prg \
TQTreeWidget.prg \
TQTreeWidgetItem.prg \
TQVBoxLayout.prg \
TQWebPage.prg \
TQWidget.prg \
TQWizard.prg \
TQWebView.prg \

View File

@@ -946,7 +946,7 @@ STATIC FUNCTION Build_Class( cWidget, cls_, doc_, cPathOut )
/*----------------------------------------------------------------------*/
STATIC FUNCTION Build_MakeFile( cpp_, prg_, cPathOut )
LOCAL cFile := cPathOut + s_PathSep + 'Makefile'
LOCAL cFile := cPathOut + s_PathSep + 'Makefile_gen'
LOCAL txt_:={}
LOCAL s
@@ -954,54 +954,6 @@ STATIC FUNCTION Build_MakeFile( cpp_, prg_, cPathOut )
aadd( txt_, "# $Id$ " )
aadd( txt_, "# " )
aadd( txt_, " " )
aadd( txt_, "ROOT = ../../ " )
aadd( txt_, " " )
aadd( txt_, "LIBNAME=hbqt " )
aadd( txt_, " " )
aadd( txt_, "ifeq ($(HB_WITH_QT),) " )
aadd( txt_, "HB_WITH_QT=yes " )
aadd( txt_, "ifeq ($(HB_ARCHITECTURE),dos) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_ARCHITECTURE),os2) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),mingw64) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),owatcom) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),bcc) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),pocc) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),pocc64) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),poccce) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "ifeq ($(HB_COMPILER),poccarm) " )
aadd( txt_, "HB_WITH_QT=no " )
aadd( txt_, "endif " )
aadd( txt_, "endif " )
aadd( txt_, " " )
aadd( txt_, "ifeq ($(HB_WITH_QT),yes) " )
aadd( txt_, " " )
aadd( txt_, "ifeq ($(HB_INC_QT),) " )
aadd( txt_, "ifeq ($(HB_XBUILD),) " )
aadd( txt_, "HB_INC_QT = /usr/include/qt4 /Developer/qt/include " )
aadd( txt_, "endif " )
aadd( txt_, "endif " )
aadd( txt_, " " )
aadd( txt_, "HB_INC_QT_OK += $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qglobal.h),$(d),))" )
aadd( txt_, " " )
aadd( txt_, "ifneq ($(strip $(HB_INC_QT_OK)),) " )
aadd( txt_, " " )
aadd( txt_, "HB_USER_CFLAGS += $(foreach d, $(HB_INC_QT_OK), -I$(d)) " )
aadd( txt_, " " )
aadd( txt_, "CPP_SOURCES=\ " )
@@ -1031,29 +983,6 @@ STATIC FUNCTION Build_MakeFile( cpp_, prg_, cPathOut )
NEXT
ENDIF
aadd( txt_, " " )
aadd( txt_, "include $(TOP)$(ROOT)config/header.cf " )
aadd( txt_, "INSTALL_RULE_HEADERS := $(INSTALL_RULE) " )
aadd( txt_, "include $(TOP)$(ROOT)config/lib.cf " )
aadd( txt_, " " )
aadd( txt_, "install:: " )
aadd( txt_, chr( 9 )+"$(INSTALL_RULE_HEADERS) " )
aadd( txt_, " " )
aadd( txt_, "else " )
aadd( txt_, "include $(TOP)$(ROOT)config/none.cf " )
aadd( txt_, "endif " )
aadd( txt_, "else " )
aadd( txt_, "include $(TOP)$(ROOT)config/none.cf " )
aadd( txt_, "endif " )
aadd( txt_, " " )
#if 0
aadd( txt_, "else " )
aadd( txt_, "include $(TOP)$(ROOT)config/none.cf " )
aadd( txt_, "endif " )
aadd( txt_, "else " )
aadd( txt_, "include $(TOP)$(ROOT)config/none.cf " )
aadd( txt_, "endif " )
aadd( txt_, " " )
#endif
RETURN CreateTarget( cFile, txt_ )

View File

@@ -266,6 +266,7 @@ FUNCTION Main( ... )
LOCAL cObjPrefix
LOCAL cObjExt
LOCAL cLibLibExt
LOCAL cLibLibPrefix := ""
LOCAL cLibObjPrefix
LOCAL cDynObjPrefix := NIL
LOCAL cLibPathPrefix
@@ -1227,6 +1228,7 @@ FUNCTION Main( ... )
( t_cARCH == "linux" .AND. t_cCOMP == "gcc" ) .OR. ;
( t_cARCH == "linux" .AND. t_cCOMP == "gpp" )
cLibLibPrefix := "lib"
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
@@ -1268,7 +1270,7 @@ FUNCTION Main( ... )
ENDIF
IF lStopAfterCComp
AAdd( s_aOPTC, "-c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
IF ! lCreateLib .AND. ! lCreateDyn .AND. ( Len( s_aPRG ) + Len( s_aC ) ) == 1
IF t_cARCH == "darwin"
AAdd( s_aOPTC, "-o {OO}" )
ELSE
@@ -1364,6 +1366,7 @@ FUNCTION Main( ... )
( t_cARCH == "wce" .AND. t_cCOMP == "mingwarm" ) .OR. ;
( t_cARCH == "win" .AND. t_cCOMP == "cygwin" )
cLibLibPrefix := "lib"
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
@@ -1405,7 +1408,7 @@ FUNCTION Main( ... )
ENDIF
IF lStopAfterCComp
AAdd( s_aOPTC, "-c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
IF ! lCreateLib .AND. ! lCreateDyn .AND. ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "-o{OO}" )
ENDIF
ELSE
@@ -1450,6 +1453,7 @@ FUNCTION Main( ... )
CASE t_cARCH == "os2" .AND. t_cCOMP == "gcc"
cLibLibPrefix := "lib"
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
@@ -1474,7 +1478,7 @@ FUNCTION Main( ... )
ENDIF
IF lStopAfterCComp
AAdd( s_aOPTC, "-c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
IF ! lCreateLib .AND. ! lCreateDyn .AND. ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "-o {OO}" )
ENDIF
ELSE
@@ -1487,6 +1491,7 @@ FUNCTION Main( ... )
CASE t_cARCH == "dos" .AND. t_cCOMP == "djgpp"
cLibLibPrefix := "lib"
cLibPrefix := "-l"
cLibExt := ""
cObjExt := ".o"
@@ -1508,7 +1513,7 @@ FUNCTION Main( ... )
ENDIF
IF lStopAfterCComp
AAdd( s_aOPTC, "-c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
IF ! lCreateLib .AND. ! lCreateDyn .AND. ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "-o{OO}" )
ENDIF
ELSE
@@ -1690,7 +1695,7 @@ FUNCTION Main( ... )
ENDIF
cLibPathPrefix := ""
cLibPathSep := ";"
IF lStopAfterCComp
IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "-o{OO}" )
ELSE
@@ -1775,7 +1780,7 @@ FUNCTION Main( ... )
AAdd( s_aOPTL, "/opt:icf" )
AAdd( s_aOPTL, "/manifest:no" )
ENDIF
IF lStopAfterCComp
IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn
AAdd( s_aOPTC, "-c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "-Fo{OO}" )
@@ -1871,7 +1876,7 @@ FUNCTION Main( ... )
IF s_lMT
AAdd( s_aOPTC, "/MT" )
ENDIF
IF lStopAfterCComp
IF lStopAfterCComp .AND. ! lCreateLib .AND. ! lCreateDyn
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "/Fo{OO}" )
ENDIF
@@ -2252,7 +2257,7 @@ FUNCTION Main( ... )
cOpt_Lib := StrTran( cOpt_Lib, "{LO}" , ArrayToList( ListCook( ArrayJoin( s_aOBJ, s_aOBJUSER ), cLibObjPrefix ) ) )
cOpt_Lib := StrTran( cOpt_Lib, "{LL}" , ArrayToList( s_aLIB ) )
cOpt_Lib := StrTran( cOpt_Lib, "{FA}" , GetEnv( "HB_USER_AFLAGS" ) + " " + ArrayToList( s_aOPTA ) )
cOpt_Lib := StrTran( cOpt_Lib, "{OL}" , PathSepToTarget( FN_ExtSet( s_cPROGNAME, cLibLibExt ) ) )
cOpt_Lib := StrTran( cOpt_Lib, "{OL}" , PathSepToTarget( FN_ExtSet( cLibLibPrefix + s_cPROGNAME, cLibLibExt ) ) )
cOpt_Lib := StrTran( cOpt_Lib, "{DL}" , ArrayToList( ListCook( s_aLIBPATH, cLibPathPrefix ), cLibPathSep ) )
cOpt_Lib := StrTran( cOpt_Lib, "{DB}" , s_cHB_BIN_INSTALL )