Commit Graph

1800 Commits

Author SHA1 Message Date
Viktor Szakats
a64a5ff52f 2010-07-30 16:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed RTE when using post-process command on systems without
      implib functionality. Recent regression.
    % Fixed bad performance in default -head=partial mode, which made
      it slower than -head=full. Now they are on par, so maybe -head=full
      should be made the default and partial mode deleted.
    ; Thanks to Przemek for bug reports.

  * include/hbset.h
  * include/hbgtcore.h
  * include/hbapi.h
    + Added some HB_EXPORT flags.
2010-07-30 14:10:16 +00:00
Viktor Szakats
ed0d4ffa61 2010-07-30 14:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed ${hb_workdynsub} macro not returning correct value.
    ! Fixed to install implibs when -instforce is used and targets are
      up to date.
    + Added -implib=<dir> option to control placement of implibs generated
      in -hbdyn and -hbexe modes. (by default it's the output dir for
      main target)
    + Added autodetection of hbmaindllp lib and this case generate little 
      stub posted by Przemek on the list earlier this year, and in this 
      case also enabling linkage of shared Harbour lib in -shared mode.
      NOTE: Pls check this, this solution is Windows centric, but until
            I know this is the correct track I didn't want to extend it.
            Przemek can you take a look at it?
    * Changed the install group name to "depimplib" for implibs generated 
      for dependencies, and use "implib" group for implibs generated for 
      our own targets. This is needed to be able to control them 
      separately, since we don't necessarily want to install "depimplib" 
      while we always want to install "implib"s.

  * contrib/make.hbs
  * contrib/hbpost.hbm
    * Updated list of TODOs
    * HB_BUILD_CONTRIB_DLL changed to HB_BUILD_CONTRIB_DYN
    + HB_BUILD_CONTRIB_DYN now works also in stdalone mode.
    % Moved HB_BUILD_CONTRIB_DYN related options to hbpost.hbm
    + Added -shared and -lmaindllp options to dynamic lib build mode.
    * Changed dependency implib install target to have 'depimplib'
      prefix to differenciate from -hbdyn implib install target.
    + Added -implib=<dir> option to tell hbmk2 to create implibs
      in lib dir in -hbdyn mode.
    + Added install target for implibs generated in -hbdyn mode.
    ; All this means that now by setting HB_BUILD_CONTRIB_DYN=yes,
      a dynamic version will be build of the libs, import lib
      placed in lib dir, dynamic lib placed into dynamic lib dir
      (bin on non-*nix platforms, lib on *nix platforms).
      IOW, now HB_BUILD_CONTRIB_DYN=yes should work, at least on
      win and wce. I didn't make functional tests though.
      Please review/test it.
2010-07-30 12:05:15 +00:00
Viktor Szakats
a3f42e8991 2010-07-30 00:08 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* debian/dirs
    ! Deleted doc/en dir.

  * doc/Makefile
  - doc/whatsnew.txt
  + NEWS
  * COPYING
  * doc/howtorel.txt
  * debian/changelog
  * package/mpkg_win.nsi
  * package/winuni/mpkg_win_uni.bat
  * package/winuni/mpkg_win_uni.nsi
    * Renamed doc/whatsnew.txt to /NEWS

  * debian/copyright
    * Updated with COPYING content.

  * package/harbour.spec
    ! Fixed to include doc/* instead of doc/*.txt.

  * utils/hbrun/hbrun.prg
    - Deleted envvar method of passing dirbase to scripts.

  * contrib/make.hbs
    + Using HBRUN_DIRBASE() function instead of envvar trick.
      Maybe some more generic named value passing would be better.

  * contrib/Makefile
    ! Using '-' prefix when running hbrun instead of '+', to not
      cause fatal breakage in build stage if make.hbs contains
      something which previous build of hbrun didn't offer.

  * config/global.mk
    - HB_INSTALL_PREFIX will not default anymore to source root
      dir (on non-*nix systems) to avoid FAQ where installation
      fails because of former install into source root, causing
      old contrib headers to ovveride current ones and breaking
      build. Please note that 'install' is truly optional with
      current builds, so only use it for what it was designed.
      Pls should if some things fail with empty HB_INSTALL_PREFIX
      and requesting 'install' anyway.

  * contrib/xhb/xhbat.c
    ! Applied this fix to Harbour:
      2010-07-29 12:28 UTC-0430 Ron Pinkas <ron.pinkas/at/xharbour.com>
        * source/rtl/at.c
          + Added missing extended strings support, to hb_AtSkipStrings()
2010-07-29 22:10:21 +00:00
Viktor Szakats
642c252c54 2010-07-29 17:31 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
  * utils/hbrun/hbrun.hbp
  * utils/hbrun/Makefile
    - Deleted "burn-in" trick to tell hbrun where to find the 
      Harbour include dirs. We need to find something universally 
      useful (portable).
2010-07-29 15:31:47 +00:00
Viktor Szakats
903294787a 2010-07-29 13:54 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* debian/rules
  * src/pp/Makefile
  * src/dynlib/mt/Makefile
  * src/dynlib/Makefile
  * package/harbour-win.spec
  * package/harbour-wce.spec
  * package/harbour.spec
  * contrib/make.hbs
  * utils/hbmk2/hbmk2.1
  * utils/hbmk2/hbmk2.prg
  * utils/hbrun/hbrun.prg
  * utils/hbrun/hbrun.hbp
  * utils/hbrun/Makefile
  * doc/gmake.txt
  * config/postinst.hbs
  * config/global.mk
  * config/lib.mk
  * config/bin.mk
  * config/header.mk
  * config/dyn.mk
  * config/doc.mk
  * INSTALL
    * Renamed install dir control envvars to be in the same
      "namespace": (INCOMPATIBLE if you used to manually
      configure these)
      HB_BIN_INSTALL -> HB_INSTALL_BIN
      HB_LIB_INSTALL -> HB_INSTALL_LIB
      HB_DYN_INSTALL -> HB_INSTALL_DYN
      HB_INC_INSTALL -> HB_INSTALL_INC
      HB_DOC_INSTALL -> HB_INSTALL_DOC
      HB_MAN_INSTALL -> HB_INSTALL_MAN
      HB_ETC_INSTALL -> HB_INSTALL_ETC

  * contrib/hbide/idemisc.prg
    - Deleted unused code.
2010-07-29 11:58:25 +00:00
Viktor Szakats
67e483e6d8 2010-07-29 13:12 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    + Added public function HBRUN_DIRBASE() which returns the
      same value as envvar __HBRUN__DIRBASE, but this one looks
      a superior interface between scripts and runner environment.
      Pls comment.

  * contrib/make.hbs
  * contrib/hbpost.hbm
    * Updated TODO list.
    * Renamed internal _HB_*_INSTALL vars to _HB_INSTALL_*
    ; TODO: Do the same in Harbour with HB_*_INSTALL envvars.
2010-07-29 11:12:47 +00:00
Viktor Szakats
d33310b9fb 2010-07-29 12:52 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Changed pkg-config based dependency detection to only consider
      a given component present, if there is -I option present
      among the returned options. This should fix false positive
      cups detection, though I've yet to try it.
      Maybe it'd be even better to make detection even more robust
      by checking for the key header on the found headers paths
      when using pkg-config based detection.
2010-07-29 10:53:12 +00:00
Viktor Szakats
3d884b5706 2010-07-29 10:44 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    + Making available original hbrun location using __HBRUN__DIRBASE
      envvar. This information is lost when doing the argshift trick,
      pls shout if you see a better solution for it (or any concerns
      with this one).

  * contrib/make.hbs
    + Will now use unified method for both stdalone and GNU Make to 
      find out the location of hbmk2. It will look for it in the same 
      dir as of hbrun's.

  * config/postinst.hbs
    * Converting bash to .prg in progress.

  * INSTALL
    + Documented Mac OS X architecture flags.
2010-07-29 08:44:34 +00:00
Viktor Szakats
6a387e5244 2010-07-28 18:30 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added -instforce option which will force the target to be 
      copied to -instpath even if it was up to date. This is to
      make it in sync with GNU Make behaviour, where single 
      'make install' will copy everything regardless of being 
      up to date or not.

  * contrib/hbpost.hbm
    + Added -instforce to make it in sync with old GNU Make 
      behavior. Such case is exploited by .rpm generation, and 
      this is the reason why the contrib libs weren't 
      appearing in target lib dir.

  * config/postinst.hbs
    + Added two .so related TOFIXes.

  * mpkg_src.sh
    + Changed to always delete temp file bin/hb_flst.tmp containing
      a list of all source files. (anyone knows why was it left there?)
2010-07-28 16:31:03 +00:00
Viktor Szakats
96c2594c24 2010-07-28 17:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* package/harbour.spec
    * Minor in comment.
    * Temply commented adding .so files in the lib/ root (without harbour postfix)

  * contrib/make.hbs
  * contrib/hbpost.hbm
    + Added support for HB_MAN_INSTALL, HB_ETC_INSTALL.

  * utils/hbmk2/hbmk2.prg
    + Enabled multi-input compilation for *nix gcc family. This means that
      all C source files will be now compiled in one gcc invokation, instead
      of compiling them one by one.
    % PATHNORMALIZE(): delete unused function.
    % ISDRIVESPEC() converted to macro _ISDRIVESPEC().

  * config/postinst.hbs
    + Added code to create ld config file.
    + Added commented original bash code to create .so links which I cannot
      understand. Anyone to jump in?
    + Added PathNormalize() function from hbmk2.
    + Changed back DirBuild() to always normalize path before creating it
      (to filter out potential ".." and "." dirs from it). Required for
      ld creation.

  * config/global.mk
    * HB_ETC_INSTALL is now format equally on all *nix platforms to have a
      'harbour' subdir. Required to work well with ld creation logic in postinst.hbs.
2010-07-28 15:42:23 +00:00
Viktor Szakats
783c4433c9 2010-07-27 22:40 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/postinst.hbs
    + Added more feedback.
    * Internal cleanups.
    + Changed to always copy to etc if there is target dir defined.
    ! Fixed typo in man copying.

  * config/global.mk
    + Added logic to setup dirs for *nix package creation.
      Fixing .tgz creation to work like before.
    * Changed to only set HB_MAN_INSTALL if installing to sysloc.

  * utils/hbmk2/hbmk2.prg
  * config/postinst.hbs
    ! Fixed DirBuild() function when crearing absolute paths without
      a drive letter. It created dir in current dir on non-*nix and
      didn't do anything while returning success on *nix.

  ; Now mpkg_tgz.sh replacement is about finished.
    It's pbly not 100% the same still, so pls review it.
2010-07-27 20:42:01 +00:00
Viktor Szakats
1db9c12b0b 2010-07-27 15:32 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    ! Typo in prev.
2010-07-27 13:33:06 +00:00
Viktor Szakats
838ec31a96 2010-07-27 12:44 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added new plugin APIs:
      - hbmk2_AddInput_OBJ()
      - hbmk2_PathFromWorkdirToCWD()
      - hbmk2_CWD()
    + Changed to not abort processing if there are no input files, but
      there are custom plugin input parameter.

  + bin/hbmk_l2d.hbs
    + Added rough plugin to convert static libs to dynamic libs
      on platforms supporting 'ar' tool (and of course the notion
      of such conversion). This is meant to replace functionality
      provided by bash script hb-mkdyn.sh.
      Pls find cmdline example in the script header.

  * config/postinst.hbs
    + Now installs hbmk_l2d.hbs

  - bin/hb-mkdyn.sh
    - Deleted hb-mkdyn speciality shell tool to convert static
      libs to dynamic ones.

  - bin/postinst.sh
    - Deleted, it only started hb-mkdyn.sh, which was just deleted.

  * Makefile
    - Do not run postinst.sh anymore.
2010-07-27 10:45:27 +00:00
Viktor Szakats
aa960ef3c0 2010-07-26 22:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
- mpkg_deb.sh
    - Deleted wrapper script. Pls use the method documented in
      INSTALL to build .deb files.

  * utils/hbmk2/hbmk2.prg
    * Minor change in output for better clarity.
2010-07-26 20:34:57 +00:00
Viktor Szakats
bd90e07276 2010-07-26 20:43 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* debian/rules
  * harbour.spec
  * config/instsh.mk
    * Do not use HB_INST_PKGPREF.

  * harbour.spec
    + Use HB_MAN_INSTALL

  * config/global.mk
    + Added HB_MAN_INSTALL and HB_ETC_INSTALL
    + PKG_NAME is now filled in little bit different way for
      *nix systems to emulate old mpkg_tgz.sh logic.

  * bin/postinst.sh
    - Deleted no more used subroutines.
    - Deleted mk_hblibso() function.
      - it maintained loca list of contribs which breaks the
        effort of contrib "plug-in" system
      - it contained lots of platform dependent build details in
        hard to maintain bash shell code.
      ; If someone needs this functionality pls try to integrate
        it in hbmk2 or write a .hbs script in modular fashion
        (not contrib names). I cannot tell what exactly was the functionality
        implemented there though. Maybe rewriting it locally is also an
        option.
    ! Do not use HB_INST_PKGPREF.

  * config/postinst.hbs
    + Rewritten mpkg_tgz.sh logic in .prg code. This logic is
      finally in it's proper place.
    + Implemented copying of man files on *nix systems.
    ; NOTE: Not tested at all, it was hard enough to rewrite it,
            pls help on finishing and debugging it. See TODOs in
            source. Previous replicated with some differences.

  - mpkg_tgz.sh
    - Deleted. Now implemented in postinst.sh.
      Build Harbour with HB_BUILD_PKG=yes to try it.

  * INSTALL
    + Added HB_MAN_INSTALL and HB_ETC_INSTALL
    + Updated .tgz binary instructions (now same on all platforms)

  * utils/hbrun/hbrun.prg
  * utils/hbrun/hbrun.hbp
  * utils/hbrun/Makefile
    * Renamed include dir control var.
    * Change so that now simple HB_INC_INSTALL value will
      trigger burn-in of header location.
    + Added logic to only use burnt-in header location if
      it is an absolute path.
    ! Synced .hbp file with this feature.
    ; NOTE: This is still non-portable and error
            prone solution. Pls see my thought on dev list
            about possible solutions to use precompiled
            Harbour headers compiled right into the executable.
2010-07-26 18:44:08 +00:00
Viktor Szakats
46f7e48f29 2010-07-26 12:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/tests/wvtqt.hbp
  * contrib/hbxbp/tests/wvtqt.hbp
    ! Added missing SVN header.
    % Cleanup.

  * INSTALL
  * contrib/hbpost.hbm
  * config/global.mk
    * Changed HB_BUILD_IMPLIB to HB_INSTALL_IMPLIB to reflect
      new meaning after recent changes. With new build system
      the implibs are always created in lib working dir, and
      this setting only controls whether to copy it to final
      install directory. The default is still 'no'. Setting it
      to yes is only recommended if the installation will be
      used in local environment (3rd party .dlls) only. IOW
      never set this to yes when creating a build for other
      users (f.e. for distribution).
      INCOMPATIBLE if you used this setting, pls change it now.

  * INSTALL
    + Documented HB_STATIC_* options.

  * contrib/make.hbs
    * Updated TODO list.

  * src/debug/debugger.prg
  * src/rtl/dirscan.prg
  * tests/wcecon.prg
  * contrib/xhb/traceprg.prg
  * contrib/hbqt/tests/wvtqt.hbp
  * contrib/hbqt/generator2/hbqtgen2.prg
  * contrib/hbxbp/tests/demoxbp.prg
  * contrib/hbxbp/tests/dialogqt.prg
  * contrib/hbxbp/tests/wvtqt.hbp
  * contrib/hbhpdf/tests/harupdf.prg
  * contrib/gtwvg/tests/wvgtbrowser.prg
  * contrib/gtwvg/tests/wvgwvtclasses.prg
  * contrib/hbtip/tests/dbtohtml.prg
  * contrib/hbtip/mail.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idetools.prg
  * contrib/hbide/idesources.prg
  * contrib/hbide/hbide.prg
  * examples/uhttpd2/umain.prg
  * examples/hbvpdf/tests/pdf_demo.prg
  * examples/httpsrv/uhttpd.prg
  * examples/httpsrv/cgifunc.prg
  * examples/httpsrv/modules/tableservletdb.prg
  * examples/httpsrv/session.prg
    * HB_OSPATHSEPARATOR() -> HB_PS()
    % Delete temp vars along the way.

  * utils/hbmk2/hbmk2.prg
    + Generalized internals for support for older Harbour and
      xhb versions.
    + Added -hb20 option. (thanks for asking for it so nicely ;)
2010-07-26 10:36:23 +00:00
Viktor Szakats
6b758c4f6d 2010-07-25 10:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/xhb/hbcompat.ch
    + Added xhb translations for hb_eol() and hb_ps().

  * contrib/make.hbs
    - Deleted SetCancel().

  * src/debug/tbrwtext.prg
  * src/debug/debugger.prg
  * src/rtl/errsys.prg
  * src/rtl/profiler.prg
  * src/rtl/hbini.prg
  * src/rtl/treport.prg
  * src/rtl/tpersist.prg
  * src/rtl/hbi18n2.prg
  * src/rtl/ttextlin.prg
  * src/rtl/teditor.prg
  * src/rdd/usrrdd/rdds/logrdd.prg
  * tests/hbpptest/hbpptest.prg
  * tests/longstr2.prg
  * tests/cdow.prg
  * tests/output.prg
  * tests/dirtest.prg
  * tests/tstdbi.prg
  * tests/speedold.prg
  * tests/dates3.prg
  * tests/set_test.prg
  * tests/rto_get.prg
  * tests/cpinfo.prg
  * tests/speedtst.prg
  * tests/dates.prg
  * tests/set_num.prg
  * tests/rto_tb.prg
  * tests/testhtml.prg
  * tests/round.prg
  * tests/dates2.prg
  * tests/dates4.prg
  * tests/version.prg
  * tests/seconds.prg
  * tests/gtkeys.prg
  * tests/adirtest.prg
  * include/simpleio.ch
  * include/assert.ch
  * contrib/hbct/tests/tab.prg
  * contrib/hbct/tests/expomant.prg
  * contrib/xhb/traceprg.prg
  * contrib/xhb/hblog.prg
  * contrib/xhb/dumpvar.prg
  * contrib/xhb/dbgfx.prg
  * contrib/xhb/xhberr.prg
  * contrib/xhb/cstruct.prg
  * contrib/hbqt/generator/hbqtgen.prg
  * contrib/hbqt/hbqt_errorsys.prg
  * contrib/hbqt/generator2/hbqtgen2.prg
  * contrib/hbxpp/hbxpp.ch
  * contrib/hbnetio/utils/netiosrv.prg
  * contrib/hbnetio/utils/rpcdemo.hbs
  * contrib/hbnetio/utils/netiocmd.prg
  * contrib/hbpgsql/tests/dbf2pg.prg
  * contrib/hbmisc/tests/readfile.prg
  * contrib/hbmisc/tests/testhbf.prg
  * contrib/hbtip/thtml.prg
  * contrib/hbtip/client.prg
  * contrib/hbwin/tests/testsim.prg
  * contrib/hbwin/tests/testole.prg
  * contrib/hbwin/tests/testsvc.prg
  * contrib/hbssl/tests/bio.prg
  * contrib/hbssl/tests/pem.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/idethemes.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/idedocwriter.prg
  * contrib/hbide/hbide.ch
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idehome.prg
  * contrib/hbide/ideshortcuts.prg
  * utils/hbformat/hbformat.prg
  * utils/hbmk2/hbmk2.prg
  * utils/hbi18n/hbi18n.prg
  * utils/hbtest/hbtest.prg
  * examples/hbextern/hbextern.prg
  * examples/uhttpd2/umain.prg
  * examples/guestbk/inifiles.prg
  * examples/guestbk/testcgi.prg
  * examples/httpsrv/uhttpd.prg
  * examples/hscript/hscript.prg
    * hb_osnewline() -> hb_eol()
      (deleting temp variables and temp pp macros used in the past
      to workaround the long typing of the old function name)
    * Some formatting along the way in tests dir.

  * src/rtl/errsys.prg
    - Deleted usage of ISNIL(). It's a quite pointless macro.

  * src/rtl/errsys.prg
  * src/rtl/listbox.prg
  * src/rtl/profiler.prg
  * src/rtl/treport.prg
  * src/rtl/tpersist.prg
  * src/rtl/tgetlist.prg
  * src/rtl/teditor.prg
    % DO CASE -> SWITCH

  * src/rtl/alert.prg
    * Replaced DEFAULT TO with simple NIL check.

  * src/compiler/gencc.c
    * Formatting of generated code.

  * contrib/hbide/ideedit.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/idethemes.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/idedocwriter.prg
  * contrib/hbide/hbide.ch
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idehome.prg
  * contrib/hbide/ideshortcuts.prg
    * hb_osPathSeparator() (and static variable) -> hb_ps()
2010-07-25 08:45:50 +00:00
Viktor Szakats
3b6e247f8f 2010-07-23 17:34 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* harbour-win-spec
  * harbour-wce-spec
  * harbour.spec
    * HB_CONTRIBLIBS -> HB_BUILD_CONTRIBS

  * contrib/make.hbs
    ! Adjusted wording in log output.

  * utils/hbmk2/hbmk2.prg
    ! Fixed bad regression caused by extending filters to
      all options. I reverted it. It has a killer effect
      without huge benefit. Maybe it will be implemented
      differently in the future.
      The user effect of the regression was that libs were
      created in bin dir.
    * Cleaned some variable names passed to plugins.

  * utils/hbmk2/examples/plug_tpl.hbs
    + Added comment about requirement of reentrancy.
2010-07-23 15:36:22 +00:00
Viktor Szakats
319d515799 2010-07-23 13:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    - Deleted handling of .hbi extension.
    - Deleted -target and -alltarget cmdline options as an
      effort for simplification. Now all cmdline options apply
      to all targets.
    + .hbp file references will now be executed as sub-projects,
      using an internal recursive call to the hbmk2 engine.
      This means that projects can now be embedded. INCOMPATIBLE
      if someone used .hbp file references inside other make
      files. If you want to create common settings in a separate
      file, always use .hbm extension.
      Pls note that sub-projects will inherit all cmdline options
      of original hbmk2 invocation.
    + Added ${hb_targetname} macro to return the parent project
      name.
    + Added ${hb_targettype} macro. Returning target type.
    + Changed -run option to only run the top level project.
    + Changed --hbinfo to return a flat list of information
      about all projects involved. Currently the main project
      is the last one in the list (order of execution).
    + Filters can now be used also for file inclusion and -skip
      options (which means they can now be used for all possible
      cmdline and .hbm/.hbp options)
    ! Fixed the way automatic cmdline options based on
      hbmk2's own filename are created. From now -hbcmp, -hblnk,
      -hbcc, -rtlink, -xhb, -hb10 will be added to the left side
      of the existing option (to precede everything else), while
      the rest (f.e. -hblib, -hbexe, -hbdyn) will be added last.
    ; NOTE: Quite heavy changes so pls expect (and report) any
            regressions. Most probably there will be room for
            tweaks here and there to make the new cascading build
            feature as smooth as possible.

  * contrib/make.hbs
    % Internally simplified since now the handling of sub-projects
      is the job of hbmk2 and .hbp make files.
    + In standalone mode it will now detect the name of the project
      in current dir, so the codepaths are much similar to the
      GNU Make mode now and stdalone mode will also rely on pkglist,
      instead of trying to detect what to build on its own.
    + Not require pkglist to list any sub-projects anymore, now
      it's simple list of main .hbp files.
    + Changed along with hbmk2 to deal with multiple project
      information returned by --hbinfo.
    + Avoid using the word "contrib", use "package" instead.

  * contrib/pkglist
    * Simplified to a mere list of main .hbp files for packages.

  * utils/hbrun/hbrun.prg
  * contrib/make.hbs
  * config/postinst.hbs
    * PathSepToSelf() rewritten to not make assumptions about
      __PLATFORM__* macro vs hb_ps() value, instead use hb_ps()
      value to decide what to do.

  * utils/hbrun/hbrun.prg
    ! Fixed to not save the (empty) history after each non-interactive
      session.

  * config/win/cygwin.mk
    ! Fixed to add z and pcre libs if the locally hosted ones
      aren't used.

  * contrib/hbqt/generator/hbqtgen.prg
    ! Fixed OS names in doc output.
    * Formatting.

  * contrib/gtalleg/gtalleg.hbm
  * contrib/gtalleg/gtalleg.hbp
  * contrib/gtalleg/gtallegs.hbp
  * contrib/hbcurl/hbcurl.hbm
  * contrib/hbcurl/hbcurl.hbp
  * contrib/hbcurl/hbcurls.hbp
  * contrib/hbtip/hbtip.hbm
  * contrib/hbtip/hbtip.hbp
  * contrib/hbtip/hbtipssl.hbp
  * contrib/hbssl/hbssl.hbm
  * contrib/hbssl/hbssl.hbp
  * contrib/hbssl/hbssls.hbp
  * contrib/hbqt/hbqt_common.hbm
  - contrib/hbqt/hbqt.hbm
  + contrib/hbqt/filelist.hbm
  * contrib/hbqt/hbqt.hbp
  * contrib/hbqt/hbqts.hbp
  * contrib/hbqt/hbqtgui.hbp
  * contrib/hbqt/hbqtguis.hbp
  * contrib/hbqt/hbqtcore.hbp
  * contrib/hbqt/hbqtcores.hbp
  * contrib/hbqt/hbqtnetwork.hbp
  * contrib/hbqt/hbqtnetworks.hbp
  - contrib/hbqt/gtqtc/gtqtc.hbm
  + contrib/hbqt/gtqtc/filelist.hbm
  * contrib/hbqt/gtqtc/gtqtc.hbp
  * contrib/hbqt/gtqtc/gtqtcs.hbp
  * contrib/hbqt/qtwebkit/hbqtwebkit.hbp
  * contrib/hbqt/qtwebkit/hbqtwebkits.hbp
  * contrib/hbqt/qtdesigner/hbqtdesigner.hbp
  * contrib/hbqt/qtdesigner/hbqtdesigners.hbp
  * contrib/hbqt/hbqscintilla/hbqscintilla.hbp
    * Cleanup along with latest changes:
      Using ${hb_targetname} instead of ${hb_name}, so it's safe to
      use it inside .hbm file, instead of replicating them in every
      .hbp file.
    + Now primary .hbp project files always reference the sub-project
      .hbp files:
         - hbqt
           + hbqts
           + hbqtcore
             + hbqtcores
           + hbqtgui
             + hbqtguis
           + hbqtnetwork
             + hbqtnetworks
      Which means that 'hbmk2 hbqt.hbp' will rebuild the whole
      stuff (all libs, and even static libs if requested) in one pass.
    * Renamed some file for more uniform layout.
2010-07-23 11:08:33 +00:00
Viktor Szakats
29bb18fba1 2010-07-22 16:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
- contrib/hbqt/hbqt_hbdbfmodel.cpp
  * contrib/hbqt/generator/qt45.qtp
  - contrib/hbqt/qth/HBDbfModel.qth
  - contrib/hbqt/qtcore/THBDbfModel.prg
  * contrib/hbqt/qtcore/filelist.hbm
  - contrib/hbqt/qtcore/HBDbfModel.cpp
  - contrib/hbqt/doc/en/class_hbdbfmodel.txt
  * contrib/hbqt/hbqt.h
  - contrib/hbqt/hbqt_hbdbfmodel.h
  * contrib/hbqt/hbqt_garbage.h
  * contrib/hbqt/hbqt.hbm
    - Deleted now obsolete DBFMODEL.

  * src/rtl/gtcrs/gtcrs.h
    * Minor formatting. (from patch by Tamas Tevesz)

  * config/detect.mk
    ! Fixed autodetection of curses under Cygwin.
      Requires Cygwin sh shell to work.
      Patch by Tamas Tevesz.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    * Minor.
2010-07-22 14:59:03 +00:00
Viktor Szakats
08efbcb882 2010-07-22 00:54 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed stupid error not allowing to add the same install
      path for multiple groups.
    ! Fixed to not create workdir in --hbinfo mode.
    % Do not install twice the implibs defined in dependencies.

  * contrib/make.hbs
    + Make sure to disable envvars influencing build options
      also in stdalone mode.
2010-07-21 22:58:42 +00:00
Viktor Szakats
dde5e86839 2010-07-21 20:37 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/stuff.c
    ! Fixed GPF in STUFF() when HB_SIZE is signed value.
      (HB_SIZE_SIGNED mode)

  * contrib/make.hbs
    % Normalized some dirs to give cleaner and shorter output.
    + Shows HB_BUILD_CONTRIBS value.
    ! Fixed to only generate doc once for multi-hbp packages (HBQT f.e.).
    % Internal cleanups.

  * contrib/hbqt/hbmk2_plugin_qt.hbs
    + Honor HB_WITH_QT also on OS/2.
    * Internal. Feedback is still not perfect.

  * utils/hbmk2/hbmk2.prg
    + Normalize implib source dirs, -o dirs, -workdir dirs.
    + Implibs automatically generated for dependencies are now put
      in the 'implib' install target category, so they can be controlled
      separately.

  * contrib/hbpost.hbm
    ! Fixed to only install new automatic implibs when HB_BUILD_IMPLIB=yes.
    ; TODO: Rename this setting to HB_INSTALL_IMPLIB (or some better
            name). Now implib are always made, this setting only controls
            whether to install them (f.e. we don't want to install them
            when creating package for distribution).
    - Deleted stuff belonging to stdalone -hbimplib targets. This
      method is deprecated inside contrib area.

  * config/global.mk
    - Do not show HB_CONTRIBLIBS value anymore.
2010-07-21 18:40:16 +00:00
Viktor Szakats
2090585ee1 2010-07-21 14:46 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/hbmk2_plugin_qt.hbs
    + Do not pollute output with meaningless error message, when 
      HB_WITH_QT=no is used.

  * contrib/hbpgsql/postgres.c
    ! Fixed msvc C mode warning. (this one is valid, though I 
      couldn't find out why this is only reported in C mode, 
      there are also some other seemingly unfixable warnings 
      reported in C mode.)

  * contrib/hbpre.hbm
    + Will now enable C++ mode by default for msvc compilers, 
      to stay in since with GNU Make behavior.

  * utils/hbmk2/hbmk2.prg
    ! Fixed to not rebase dirs passed to -deptimplibs options.
    ! Fixed to stay silent but still fail when dependencies
      are forcefully disabled.
    ! Reorganized msvc compiler version dependent options to
      better handle the case when no compiler version is present
      (to go with the less risky option in such case)

  * config/global.mk
    + Added msvc64 and msvcia64 version detection.
    * Renamed one variable to avoid being same as new hbmk2 macro.

  * config/postinst.hbs
    * Minor in feedback text.
2010-07-21 12:46:54 +00:00
Viktor Szakats
062c7e464e 2010-07-21 11:28 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Tackled watcom target platform autodetection to be in
      sync with global.mk. Whole autodetection should be
      rewritten in hbmk2 (it's an old TODO).
    ! Fixed to not show error when trying to create implibs 
      defined in dep spec on platform that don't support it.

  * contrib/make.hbs
    - Deleted one TODO.

  * ChangeLog
    ! Typos in prev. Add note new 'option names tentative' yet.
2010-07-21 09:30:58 +00:00
Viktor Szakats
a58605eabc 2010-07-21 10:14 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added mingw/mingw64 version detection. Not very extensively
      tested.
    + Added -depimplibs=, -depimplibd cmdline options, and depimplibs=
      and depimplibd .hbc options. They serve to configure automatic
      (without stdalone .hbi file using -hbimplib) import library
      generation for dependencies. The internal logic is the same,
      but now implibs can be generated for multiple dependencies
      at once, using pure .hbp files (or eveb .hbc for that matter).
    + Filters now also support '<' and '>' operators.
    + Filters will now expand internal macros before looking for
      envvars.
    + Added HB_COMP_VER macro, returning compiler version.
    ! Fixed to handle "*.hbs" passed as option.
    ! Fixed to do entry detection also for .hbs files.

  * contrib/make.hbs
    - Temply disabled .hbi handling, now it's done by .hbp files.
    ! Refixed to skip hbhrb/hbppo projects in stdalone mode.

  * contrib/hbqt/tests/testbrow.prg
    * Updated with Bacco's 'testedit.prg' sent to the list.
    * Formatting. (pls try to format it like this)

  * contrib/hbpost.hbm
    + Enabled 'dynamicbase' and 'nxcompat' exe generation flags
      for newer versions of msvc and mingw, to be in sync with
      our GNU Make settings (and safety).

  * contrib/xhb/hbcompat.ch
    ! Fixed some wrong xhb to Harbour translations reported by Rossine.

  * contrib/hbide/hbide.hbp
    % Deleted -gc3. It made the executable 2MBs larger.
      Pls report any performance problems after this
      change.

  * contrib/gtalleg/gtalleg.hbp
  * contrib/hbblat/hbblat.hbp
  * contrib/hbcairo/hbcairo.hbp
  * contrib/hbcurl/hbcurl.hbp
  * contrib/hbfbird/hbfbird.hbp
  * contrib/hbfimage/hbfimage.hbp
  * contrib/hbgd/hbgd.hbp
  * contrib/hbhpdf/hbhpdf.hbp
  * contrib/hbmysql/hbmysql.hbp
  * contrib/hbpgsql/hbpgsql.hbp
  * contrib/hbssl/hbssl.hbp
  * contrib/rddads/rddads.hbp
  * contrib/sddfb/sddfb.hbp
  * contrib/sddmy/sddmy.hbp
  * contrib/sddoci/sddoci.hbp
  * contrib/sddpg/sddpg.hbp
    + Added new switches to enabled automatic import library
      generation without .hbi files.
      Please note that this means that now HB_WITH_BLAT will
      have to be set from now on for hbblat lib.

  * config/global.mk
    * Minor.

  * config/win/watcom.mk
    ! Fixed to add .exe extension to watcom tools to make it work
      in wine-based cross build situations. [pls note that watcom
      can create cross builds using its native tools, so this is
      just the cherry on top :)]
      Patch provided by Tamas Tevesz.
2010-07-21 08:15:55 +00:00
Viktor Szakats
618d38b205 2010-07-19 21:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/make.hbs
  * contrib/hbpre.hbm
    + Will now automatically rebuild all dependent contribs.
      So f.e. when building hbide, it will automatically update
      hbqt then hbxbp. Pls note that extra hbmk2 options passed
      at the cmdline are only applied to primary target.
    + Will now automatically sort the list of contribs in order
      of dependency.
      [ there is quite interesting tree parsing/building and
      topological sorting employed. ]
    + Added log message at the end of the build process.
    + Standalone mode will now launch raw hbmk2 session if
      anything non-option and non-GNU control keyword is passed
      to it (f.e. a .hbp or a .prg). In such case it will act
      as plain hbmk2 call.
    ! Fixed -quiet keyword to be really quiet (should be on the
      cmdline for that effect).
    + Added GPL2 license header.

  * contrib/Makefile
    % Greatly simplified.

  * contrib/hbqt/hbmk2_plugin_qt.hbs
    + Changed to do all tool detection in init 'pre_all' stage,
      and return an error if anything is missing. This allows
      hbmk2 to gracefully end the build process in such case.

  * utils/hbmk2/hbmk2.prg
    + hbmk2 will now gracefully exit with errorlevel 20 if
      any plugins return error at 'pre_all' stage.
    + --hbinfo will now return whether incremental mode is
      enabled for a project.
    + Plugins can now return at 'init' stage, in such case
      the plugin will be instantly unloaded.
    + hbmk2 will now display the stage where error is reported
      by plugins.
    * Experimental trick added: On win/wce/os2/dos platforms,
      if no explicit dependency location path was set by user
      (using HB_WITH_*) and there was no locally hosted location
      specified either, hbmk2 will show a warning instead of
      an error.
    + Added new internal variable to store implib extension.
      (OS/2 supports .imp as such extension, although hbmk2
      does not yet)
    + Replaced os2/gcc -implib method with a new post cmd method
      (instead of using --out-implib mingw-like option which
      doesn't exist in OS/2). Thanks Maurilio for tests and
      information.

  * INSTALL
    + Added more visibility and more clear wording to TROUBLESHOOTING
      section reference in top of INSTALL doc.
    + Numbered items in TROUBLESHOOTING section so that they can be
      easily referred to.
    + Added new TROUBLESHOOTING suggestion (somewhat redundant)
      to first try to remove any special build options.

  * Makefile
    + Never attempt to run postinst.bat and postinst.cmd.

  * ChangeLog
    * Changes marked as DONE.
2010-07-19 19:04:29 +00:00
Viktor Szakats
8840326106 2010-07-18 12:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Will now append a _dll postfix in -hbdyn mode (and _exe in -hbexe mode)
      to implib generated when -implib option is used. This is needed
      to make it not collide with statis libraries generated in parallel.
    + Added technique with which even the fatal borland C compiler can
      tricked to create implibs with custom names. I didn't test it
      very much, I just hope the implib is equivalent with the one
      generated directly by linker. For borland users I recommend to
      switch to a modern compiler.
    + Will now also install implib if -instpath is specified and
      -implib is used on platforms that it's supported.
    ! Fixed to escape filenames in post-build command (strip on some
      platforms and now implib).

  * contrib/make.hbs
    + Enabled -implib hbmk2 option in HB_BUILD_CONTRIB_DLL=yes mode.
    * Disabled debug stuff.
2010-07-18 10:10:33 +00:00
Viktor Szakats
9e5eb6af23 2010-07-18 1:04 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/postinst.hbs
    * Changed to only create .hbd documentation file for the
      core. This is to ensure separation of components.

  * contrib/Makefile
    - Deleted old Makefile-based build logic in contrib area,
      now this make file does nothing else than passing the
      control to make.hbs Harbour script.

  * contrib/make.hbs
  * contrib/hbpre.hbm
  * contrib/hbpost.hbm
    % Moved -instpath options to hbpost.hbm to save cmdline length.
    % Moved HB_BUILD_SHARED control logic from make.hbs to hbpost.hbm
    ! -warn option moved to hbpre from hbpost, so libs can override it
      (can be important for external code)
    + Will now compile .hbd binary documentation in 'install' phase
      and copy it to HB_DOC_INSTALL.
    * Internal pathsep cleanup.
    ! Fixed to accept 'install'/'clean' regardless of casing.
    + Now accepts HB_BUILD_CONTRIBS instead of HB_CONTRIBLIBS
      (though old envvar still work for while)
    + Log feedback now show the build action executed.
    + Added more TODOs.

  * INSTALL
    * Documented the change to HB_BUILD_CONTRIBS from HB_CONTRIBLIBS.

  * utils/hbmk2/hbmk2.prg
    + Will now automatically recognize HB_BUILD_NAME envvar and
      convert it to -build= cmdline option.

  * contrib/hbodbc/todbc.prg
  * contrib/hbodbc/odbcold.c
  * contrib/hbodbc/odbc.c
    * Renamed SQLSTOD to HB_ODBCSTOD
    * Renamed SQLSETNUMLEN to HB_ODBCSETNUMLEN.
    * Old names are deprecated with HB_LEGACY_LEVEL3.
      If you happen to use these function names, pls update to
      the new ones ASAP.
2010-07-18 09:04:59 +00:00
Viktor Szakats
1b5ddd6c72 2010-07-17 21:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/Makefile
    + Enabled to build all contribs using hbmk2 from now on.

      This is huge step, but in fact a zillion little ones in
      the last 2 years, and it means that contribs now rely on
      hbmk2 and hbmk2 make files (.hbp and .hbc) to be build and
      used respectively. For implibs, .hbi is used. The whole
      process is orchestrated by a script written in Harbour: make.hbs. 
      With this change GNU Make is retired when it comes to contrib
      area. This new hbmk2 based system gives us much flexibility,
      many complicated build situations can now be potentially
      handled, while also making the contrib area fully modular,
      since they don't depend even on /config GNU Make system anymore.
      This means that any external contribs having hbmk2 make files
      are easy to import and any Harbour contribs are easy to detach 
      from our SVN. It also allows to include more features (f.e. 
      executables) in final distros. Executables hosted in the 
      contrib area have the great advantage that they can use any 
      other contrib libs (so far we were limited to core features 
      for exes). It also allows to dynamically add extra contribs 
      (or delete existing ones) on a per distro basis, so f.e. 
      certain builders can create their own binary distro with 
      a standard core and extra set of contribs. New system also 
      makes it possible to build dynamic libs from contribs. It's 
      also easier to move locally hosted external projects inside 
      the contrib tree, even as a subdir inside the contrib that 
      requires it (f.e. minizip, bz2 or sqlite). This can make 
      these projects fully self-contained.

      Some things are not perfect yet, f.e. I'm still fighting
      with cmdline length (relevant in MS-DOS) and the "in-place"
      build (I call "in-place" build when you build only one
      contrib at a time, like when issuing win-make inside a
      contrib subdir) will certainly need some getting used to,
      and maybe even some refinement in make.hbs. I've yet to
      implement automatic dependency detection and tree-sorting
      so that everything automatically builds in right order of
      dependency. Such thing can even be added for "in-place"
      build mode, and f.e. building hbide can automatically
      launch hbqt and hbxbp builds. BTW I retained the 
      "header-copy-on-install" method, but I'm not sure it's 
      right solution, anyhow we still have time to think about 
      a better one.

      If everything goes fine, the GNU Makefiles in contrib
      area will be gone, so there won't be any redundancy again.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + -stop cmdline option now accepts a message it displays before stopping.
    + skip= .hbc command will now stop if there is text in its parameter.
      INCOMPATIBLE: So far -skip only skipped if 'on' was passed as value,
      now it will always skip. This means this command always has to be used
      along a filter. If the filter evaluates, skip will happen, if not it
      won't.
    + Added stop= .hbc command which will halt complete build process,
      similarly to -stop cmdline option. It also supports text to be
      displayed.

  * contrib/hbqt/hbqt.hbc
    + Will now stop with a screen message if this component is tried
      to be used on unsupported platform.

  * contrib/hbwin/hbolesrv.hbc
  * examples/hbsqlit2/hbsqlit2.hbp
  * examples/gtwvw/gtwvw.hbp
    * Changed to use new hbmk2 -stop facilities.

  * src/rtl/filesys.c
    + Missed two casts from previous commit.

  - examples/gtwvw/Makefile
    - Deleted.
2010-07-17 19:51:18 +00:00
Viktor Szakats
a93ad12a66 2010-07-17 14:59 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* ChangeLog
    * Updated VxWorks notes in 2010-07-16 18:22 UTC+0200 Viktor Szakats

  * include/hbsetup.h
    * Enabled HB_USE_SHARELOCKS_OFF for VxWorks. This fixes creation
      of plain .dbf files, _but_ it will make a weird bug surface
      when creating .dbf+.dbt: The content of the .dbt file is
      written into the .dbf and the .dbt is kept as a zero length
      file. Przemek if you read this, do you have any idea what
      this could be?

  * src/rtl/hbgtcore.c
  * src/rtl/gtsys.c
    ! Fixed to set default GT for vxworks also in hbgtcore. Made NOTE
      in source that needs to be kept in sync. This finally fixes
      the uninitialized GT error.
    * Reset default vxworks GT to GTSTD instead of GTCGI.

  * utils/hbmk2/hbmk2.prg
    * Minor.
2010-07-17 13:05:21 +00:00
Viktor Szakats
24fa6d0dd3 2010-07-17 11:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    % Won't anymore do dependency check on system headers found on
      autodetected dependency locations. This has the upside that
      now hbmk2 f.e. won't traverse the deep header structures of
      QT, greatly enhancing build performance. The downside is
      that now libs won't be automatically rebuilt if such dependency 
      is updated (f.e. after upgrading to a new version of QT). 
      Pls speak up if you have an opinion on this, maybe
      using other solution or to control this behavior using
      a global or dependency level switch.
2010-07-17 09:38:09 +00:00
Viktor Szakats
a60270521e 2010-07-17 09:45 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
  * utils/hbmk2/hbmk2.prg
    + Added pcc to few places (with experimental status).
2010-07-17 07:46:43 +00:00
Viktor Szakats
302211f9af 2010-07-16 18:22 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* external/minizip/minizip.dif
    + Updated after latest changed by Tamas Tevesz. Thanks a lot!

  * utils/hbmk2/hbmk2.prg
    + Added support for vxworks/diab compiler.

  * utils/hbtest/hbtest.prg
    + Added my name to the copyright header.

  * config/global.mk
    ! Fixed to only assign *nix specific default value HB_INSTALL_PREFIX
      on *nix hosts (only a problem when doing *nix cross-builds _from_
      non-*nix systems).

  * utils/hbmk2/hbmk2.prg
  * config/vxworks/gcc.mk
  * config/vxworks/diab.mk
    + Added minimal support for HB_BUILD_SHARED=yes for vxworks targets.
      For diab it just won't find the harbour .so (see comment for more)
      For gcc it links okay, though it's detected as kernel task, so
      current support is most probably not right.

  * config/vxworks/diab.mk
    * Minor change to sync one C compiler option with VxWorks Workbench
      generated one.

  ; NOTE: By this change Harbour VxWorks base port is finished. Besides
          being an interesting excercise, it helped to develope new
          non-*nix to *nix cross building codepaths, tweak Harbour for
          "headless" (w/o terminal) OSes, and to break the ground for
          target CPU selection inside one target platform.
          Harbour builds cleanly using both vxworks/gcc and vxworks/diab,
          and compiler tools plus non-MT utils run properly as well.

          Obviously I made few functional tests, but from the experiences
          of the port effort, these are the remaining areas:
             - reporting bug(s) to Wind River (particularly the one
               breaking hvm.c compilation, requiring HB_LONG_LONG_OFF
               forcage, causing other unnecessary limits and hbtest
               failures)
             - serial I/O needs to be implemented using VxWorks specific
               sioLib API
             - 'fork' has to be replaced.
             - sockets were not tested, anyhow they are supposed to work.
             - termios is missing, so large parts of GTSTD and GTTRM are
               disabled on this platform.
             - ARM/MIPS CPU support needs to be added to hbatomic.h
             - HB_LIBLOAD() and friends need to be implemented, but I hit
               walls here.
             - MT apps GPFs, this needs to be fixed probably inside our
               code, but it's possible some build options are needed which
               I missed all along.
             - HB_SHARED_MODE=yes needs further tweaking.
2010-07-16 16:23:45 +00:00
Viktor Szakats
e000a6a0b4 2010-07-16 15:15 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbinit.h
    ! Fix to prev. Missed another 'static' qualifier.
    ; Now hbtest runs OK on vxworks/diab. (there are more
      errors though due to HB_LONG_LONG_OFF)

  * utils/hbmk2/hbmk2.prg
    ! Fixed to not request GTTRM in vxworks builds.
2010-07-16 13:16:40 +00:00
Viktor Szakats
9be35ea982 2010-07-16 14:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbrun/hbrun.prg
    ! Fixed to show error in GTCGI mode instead of going into 
      an infinite loop.
2010-07-16 12:52:30 +00:00
Viktor Szakats
df891b8377 2010-07-16 13:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbtest/hbtest.prg
  * utils/hbtest/rt_hvm.prg
  * utils/hbtest/rt_hvma.prg
  * utils/hbtest/rt_stra.prg
  * utils/hbtest/rt_vars.ch
    - Disabled long string tests for vxworks. They fail because of
      memory exhaustion.
    ! Fixes to prev.
    ; Now hbtest runs OK on vxworks/gcc.

  * config/global.mk
    + Now defines __PLATFORM__VXWORKS for cross-builds.
    ! Fixed typo in lastly added __PLATFORM__ redefinition.

  * INSTALL
    + Added vxworks/diab example.
2010-07-16 11:59:29 +00:00
Viktor Szakats
03a15d50b5 2010-07-16 13:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbtest/hbtest.prg
  * utils/hbtest/rt_hvm.prg
  * utils/hbtest/rt_hvma.prg
  * utils/hbtest/rt_stra.prg
  * utils/hbtest/rt_vars.ch
    + Enabled GTCGI for Harbour builds. This makes it independent
      for GTs, to there is better chance to run it. Now it also
      works on VxWorks.
    + Will now detect .dbf creation failure and continue gracefully
      with a message and skipping all related tests.

  * src/rtl/hbsocket.c
  * external/minizip/ioapi.h
  * include/hbthread.h
    + Added/cleaned hacks to avoid collision between VxWorks's own
      system types.

  * external/minizip/ioapi.h
    ! Disabled 64-bit FSIO for whole VxWorks.

  * config/vxworks/gcc.mk
  * config/vxworks/diab.mk
  * config/vxworks/global.mk
    + _VX_CPU is now defined in vxworks/global.mk.

  * src/common/hbarch.c
    ! Fixed hb_put_le_uint64() definition to match declaration.

  * include/hbdefs.h
    ! Fixed compatibility type definitions in HB_LONG_LONG_OFF mode.

  * include/hbsetup.h
    + Added bzero() declaration hack for vxworks.

  * include/hbinit.h
    + Added support for diag compiler init function.
      It requires the constructor to have public visibility.

  * src/common/hbver.c
    + Changed to always display x.x.x.x format verison no for diab.
      (in generic way).

  * INSTALL
    * Updated list of CPUs supported by vxworks.
2010-07-16 11:34:05 +00:00
Viktor Szakats
c7445e0bae 2010-07-16 08:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/common/hbver.c
    * Formatting.

  * config/vxworks/diab.mk
    ! Refined tweak added to make hbsocket compile. I overdid
      it, causing other breakage.
    ! Fixed dynlib generation to cope with Windows cmdline
      length limits.
    + Added proper dynlib generation rule.

  * config/vxworks/gcc.mk
  * config/vxworks/global.mk
    + HB_CCPOSTFIX setup made common to all compilers, because
      it's needed for 'strip' call.

  * utils/hbmk2/hbmk2.prg
    + Some vxworks environment setup made common to all compilers.

  * harbour-win-spec
  * harbour-wce-spec
    ! Deleted hbmk.hbc references.

  ; Patches by Tamas Tevesz:

  * harbour.spec
    ! Fixes to make it work.

  * external/minizip/minizip.dif
    * Updated.

  * INSTALL.
    * Nevermind.
2010-07-16 06:11:26 +00:00
Viktor Szakats
f1fdb9b02c 2010-07-16 00:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/vxworks/diab.mk
    + Implemented support for Wind River Compiler.
      Incomplete yet, as I couldn't test each build
      feature due to errors in earlier build stages.

  * src/common/hbver.c
    + Added fourth version number level.
    + Added version detection for Wind River Compiler (diag).
    * Formatting.

  * src/common/hbprintf.c
  * external/minizip/ioapi.h
    + Fixes for Wind River Compiler (diag)

  * src/rtl/hbdyn.c
    ! Dirty fix to compile in HB_LONG_LONG_OFF mode.
      Przemek if you see this, can you take a look at it if 
      it's right or at least not terribly off?

  * include/hbsetup.h
    ! Temporary hack for Wind River Compiler to use
      HB_LONG_LONG_OFF, otherwise the compiler crashes with
      internal error in hvm.c (without hvmall and optimizations
      also). Now, this flag caused another slew of problems,
      so as it looks now support for this compiler cannot
      be added:
         "../../../hvm.c", line 9827: internal compiler error (etoa:1000): - Failed allocating register pair
         please contact support@windriver.com */

  * include/hbinit.h
    + Enabled Wind River compiler to use the GCC init mode.
      (didn't actually test it, but it compiles)

  * utils/hbmk2/hbmk2.prg
    + Added new debug switch -debugpars to get a list of
      input parameters processed by hbmk2.
    + Synced automatic HB_CCPOSTFIX configuration based on cpu
      setting with GNU Make logic.

  * config/vxworks/gcc.mk
    * Cleanups.
    + Added more CPU postfixes.

  * INSTALL
    * Minor convenience added to prev.
2010-07-15 22:32:24 +00:00
Viktor Szakats
83c7f46c13 2010-07-15 21:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    ! vxWorks casing.
    + Added vxworks/gcc/arm example.

  * utils/hbmk2/hbmk2.prg
    % -DARMEL no more defined for vxworks/gcc/arm. It turns
      out it's a predefined macro.

  * config/global.mk
    ! Fixed HB_CPU autodetection after prev change.

  * INSTALL
    ; NOTE: After previous change HB_CCPOSTINST is automatically
            set on vxworks/gcc.

  * config/vxworks/libs.mk
  * config/vxworks/gcc.mk
    + Tried to enable dynlibhb, didn't succeed, see comments.

  * config/vxworks/gcc.mk
    % Deleted unnecessary compile time macros.

  ; TOFIX: vxworks HB_BUILD_SHARED=yes is broken. harbour .so
           is not found. Couldn't find out why.
  ; TOFIX: vxworks/gcc/arm hbatomic.h needs support added.
           arm harbour and hbpp builds fine.
2010-07-15 19:53:56 +00:00
Viktor Szakats
c0217a93ef 2010-07-15 20:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added experimental -cpu option. (not at the level
      of comp/plat internally, as there won't be separate
      subdir open for different cpu builds created in parallel)
    + Added some untested support for vxworks/gcc/arm.

  * utils/hbmk2/hbmk2.hbp
    + Synced with Makefile.

  * config/global.mk
    ! Fixed to default HB_CPU value to x86 for vxworks.
    + Exports HB_CPU.

  * config/vxworks/libs.mk
  * config/vxworks/gcc.mk
    + Added experimental support to select arm target by
      using HB_CPU=arm.

  * config/wce/msvcarm.mk
    ! Missed re-xmastree changed done now. (for pre GNU Make 3.81 compatibility)
2010-07-15 18:24:46 +00:00
Viktor Szakats
da9890f57e 2010-07-15 19:20 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbthread.h
    ! Hacked around collision between vxWorks headers.

  * ChangeLog
    ! Fixed casing of vxWorks.

  * utils/hbmk2/hbmk2.prg
    + Added vxworks/gcc libpaths.
    ! Fixed vxworks/gcc system lib list.
    ! Fixed ar to have postfix.
    ; All these are syncs with GNU Make.

  * src/rtl/hbsocket.c
    ! Typos in previous vxworks patchs.

  * config/global.mk
    ! Fixed forming automatic HB_INSTALL_PREFIX value in *nix cross-build
      situations. (it's still wrong as it assumes nix->win cross-builds)

  ; Now vxworks/gcc/x86 build is clean.
    There are iTODOs left, and
    - this particular class of warnings, which seems
      to be a bug down the <pthread.h> system header:
         hbnetio\netiocli.c:155: warning: missing initializer
         hbnetio\netiocli.c:155: warning: (near initialization for 's_netioMtx.mutexAttr.mutexAttrType')
    - also this, each time FD_ZERO() and friends are used:
         warning: implicit declaration of function 'bzero'
    - "argument n of 'x' differ in signedness" and "discards qualifiers from pointer target type"
      warnings in hbsocket.c code.

  ; TOFIX:
       - Unrecoverable error 9998: Harbour terminal (GT) initialization failure
         when running hbtest.
       - GPF when running hbmk2 and hbrun. (hbformat, hbi18 startup fine)
2010-07-15 17:21:15 +00:00
Viktor Szakats
00cd9e92f3 2010-07-15 16:57 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
  + config/vxworks
  + config/vxworks/libs.mk
  + config/vxworks/gcc.mk
  + config/vxworks/diab.mk
  + config/vxworks/global.mk
    + Started experimental VxWorks port.
    ; NOTE: VxWorks port was made possible by Wind River Systems Inc.,
            who were so kind to mail me a full VxWorks development
            environment, for the purpose of porting Harbour to this
            platform. Thank you very much guys.

            [ The free license is valid for one month, so if anyone
            is interested in helping in this project, I can help with
            real tests, builds and information. BTW, the devenv is
            Eclipse based plus cmdline, running on Windows (available
            for Linux and Solaris, too) and the target VxWorks exes
            run in a virtual environment. ]

  * config/global.mk
    + Added autodetection of VxWorks platform.

  * utils/hbmk2/hbmk2.prg
    + Added VxWorks support. It's incomplete yet.
    ! Fixed to quote *nix/gcc compiler family in
      Windows-host cross-platform situations.

  * src/vm/thread.c
  * src/common/hbgete.c
  * src/common/hbffind.c
  * src/common/hbtrace.c
  * src/common/hbdate.c
  * src/rtl/gtstd/gtstd.c
  * src/rtl/gttrm/Makefile
  * src/rtl/hbsocket.c
  * src/rtl/filesys.c
  * src/rtl/diskspac.c
  * src/rtl/cputime.c
  * src/rtl/disksphb.c
  * src/rtl/gtpca/gtpca.c
  * src/rtl/net.c
  * src/rtl/hbproces.c
  * src/rtl/gtsys.c
  * src/rtl/hbcom.c
  * external/zlib/inflate.c
  * external/jpeg/jmorecfg.h
  * external/pcre/Makefile
  * include/hbapifs.h
  * include/hbthread.h
  * include/hbdefs.h
  * include/hbsetup.h
  * contrib/xhb/hboutdbg.c
  * contrib/xhb/hbsyslog.c
  * contrib/xhb/hbserv.c
    + vxworks/gcc port. First phase.
    ; Please review.
    ; NOTE: - vxworks has no termios, for serial comm
              support it has sioLib.h.
            - vxworks supports another C compiler, which
              was not tested yet.
            - vxworks supports lots of CPUs, only x86 was
              tested yet.
            - There are still mutex related warnings to sort out.
            - Some parts had to disabled, like HB_LIB*() functionality.
    ; TODO: Regenarate .difs in external/.

  * src/vm/hashfunc.c
    * Silenced warnings shown by vxworks/gcc.
2010-07-15 15:02:33 +00:00
Viktor Szakats
533b75b205 2010-07-14 12:25 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/Makefile
  * utils/hbmk2/hbmk2.prg
    + Added build time configuration for GPM (on Linux) and
      WATT (on MS-DOS) builds. This makes hbmk.hbc generation
      (at 'install' phase) unnecessary, which means that now
      'install' is not required on _any_ platforms and scenarios
      to use hbmk2. Since hbmk2 is now used to build contribs,
      this is now also a reqiurement.
    ; Please test, I didn't make any Linux, MS-DOS build tests 
      after this change.

  * config/postinst.hbs
    - Deleted hbmk.hbc creation. Now this logic is included in
      hbmk2 at build-time on Linux and MS-DOS build which have
      GPM lib and WATT lib detected respectively.

  * contrib/hbct/numline.c
    * HB_ISIZ variables renamed.
2010-07-14 10:27:06 +00:00
Viktor Szakats
ec5c6619dc 2010-07-14 10:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
  + tests/utf8at.prg
    + Added hb_cdpUTF8StringAt()
    ; Patch by Carlos Bacco. Many thanks!

  * include/hbextern.ch
  * include/hbapicdp.h
  * src/rtl/cdpapi.c
  * src/rtl/cdpapihb.c
    ; my modifications to above patch:
    - Using HB_BOOL instead of int for flag value.
    % HB_UTF8AT(), HB_UTF8RAT() optimized to use hb_param(),
      plus optimized out variables.
    ! HB_UTF8AT(), HB_UTF8RAT() fixed 'nEnd < nStart' case.
    ! Some formatting.
    + Added new functions to hbextern.ch.

  * tests/utf8at.prg
    * Changed to use UTF8 string as base.
    * Avoiding "OEM" and "ANSI" Microsoft misleading terms,
      using standard CP names instead.
    ! Using HB_TRANSLATE() to convert between CPs (instead
      of non-portable, Windows-only HB_OEMTOANSI()/HB_ANSITOOEM()
      functions).
    * Formatting.
    * Using '?' instead of QOUT(), plus added simpleio.ch to
      allow redirection of output.

  * contrib/make.hbs
    * Minor step to make dependency evaluation and automatic
      sorting of components for build.

  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added -vcshead support for Monotone version control
      software.
    % Cleaned and optimized "in dir" C compiler run mode.
      (currently used by mingw)
    ! Fixed "in dir" C compiler run mode when using -jobs=
      option for multithreaded builds.
    % Little optimization to --hbinfo option.
2010-07-14 08:14:32 +00:00
Viktor Szakats
b981168cf6 2010-07-13 16:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed to rebase -I dirs also, when using new in-dir mingw
      (experimental) call method.

  * contrib/hbmzip/hbmzip.c
  * contrib/hbbz2/hbbz2.c
  * contrib/hbmemio/memio.c
  * contrib/hbxpp/xppopc.c
  * contrib/hbmisc/strfmt.c
  * contrib/hbmisc/stringsx.c
  * contrib/hbtip/utils.c
    * HB_SIZE/HB_ISIZ variables renamed.

  * contrib/hbmemio/memio.c
    * HB_ULONG -> HB_SIZE in missing places.

  * contrib/hbtip/utils.c
  * contrib/hbtip/thtml.prg
    * PSTRCOMPI() function renamed to __TIP_PSTRCOMPI()
      INCOMPATIBLE: If someone by any chance used this internal
                    worker function in user code, pls update the name.
    % __TIP_PSTRCOMPI(): optimization.
2010-07-13 14:03:07 +00:00
Viktor Szakats
29cd12b694 2010-07-13 12:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbdoc.prg
  * include/hbextern.ch
    + Added __HBDOC_TOSOURCE( <aEntry> ) which is able to
      rebuild original HBDOC source from memory variable.
      ATM language information is lost in the process, this
      will have to be solved in the future.

  * utils/hbmk2/hbmk2.prg
    + Added experimental optimization to mingw build, where the
      compiler is called only once to compile all files. Since
      gcc doesn't have a switch for that, it's done in tricky
      way by changing directory and recalculating source dir
      relative from workdir. Now it's active by default, pls
      report any build errors, especially in multithreaded mode.

  * contrib/hbqt/generator/hbqtgen.prg
    * Cleanups

  * contrib/hbwin/win_shell.c
    ! Reverted previous patch 2010-07-13 08:55, it broke mingw builds.
2010-07-13 10:04:06 +00:00
Viktor Szakats
39a1464cc8 2010-07-12 21:38 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed to not generate implibs in --hbinfo mode.

  * contrib/make.hbs
    % Minor.
2010-07-12 19:39:05 +00:00
Viktor Szakats
7f9fb4c0ee 2010-07-12 20:39 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    ! Fixed to honor -stop option in -hbimplib mode.
    ! Fixed --hbinfo when there is missing dependency.

  * contrib/hbmysql/hbmysql.hbi
  * contrib/gtalleg/gtalleg.hbi
  * contrib/sddmy/sddmy.hbi
  * contrib/sddfb/sddfb.hbi
  * contrib/hbblat/hbblat.hbi
  * contrib/hbfbird/hbfbird.hbi
  * contrib/sddpg/sddpg.hbi
  * contrib/hbcurl/hbcurl.hbi
  * contrib/hbhpdf/hbhpdf.hbi
  * contrib/hbpgsql/hbpgsql.hbi
  * contrib/rddads/rddads.hbi
  * contrib/hbfimage/hbfimage.hbi
  * contrib/hbgd/hbgd.hbi
  * contrib/sddoci/sddoci.hbi
  * contrib/hbcairo/hbcairo.hbi
  * contrib/hbssl/hbssl.hbi
    + Added -stop option in case HB_WITH_* var is empty.
      This helps reducing some clutter in build log output.

  * contrib/make.hbs
    ! Fixed to clear target type detection result from previous
      contrib (even though such case cannot happen if hbmk2
      does it's job right)

  * contrib/hbdoc2/gentpl.prg
  * contrib/hbdoc2/gentxt.prg
  * contrib/hbdoc2/tmplates.prg
  * contrib/hbdoc2/genxml.prg
  * contrib/hbdoc2/genhtml.prg
  * contrib/hbdoc2/hbdoc2.prg
  * contrib/hbdoc2/hbdoc2.ch
    % Peeling off unused code and other cleanup work.
      (didn't retest)
2010-07-12 18:43:19 +00:00
Viktor Szakats
96e069c19e 2010-07-12 18:44 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/hbextern.ch
  * src/rtl/Makefile
  + src/rtl/hbdoc.prg
    + Added __HBDOC_LOADDIR() internal RTL function to read
      NFDOC formatted documentation source directories into
      memory. The result will be a list of hashes which contain
      the raw content of doc files. The function does format
      validation (but not content) and add all agreed-on metadata
      to the hashes.
      It's a start and I hope others can join to create new
      layers of function for below functionality:
         - doc content validation
         - pre-formatting
         - output generators
      The goal is to avoid local solutions and standardize
      the format.

  + tests/hbdoctst.prg
    + Added small test app which will find and parse all
      documentation inside the Harbour source tree and
      save them in .hbd (serialized doc hash) format.
      Such .hdb files can be generated by the build process
      in the future, so tools like HBIDE can use the content
      to display intellisense or built-in help.
    ; TODO: HBQT doc/html should be removed as it's 
            hbdoc tools' job to convert HBDOC source 
            format to html or whatever else format needed.

  * harbour.spec
  * debian/rules
  - doc/man
  + src/pp/hbpp.1
  + src/main/harbour.1
  + utils/hbmk2/hbmk2.1
  + utils/hbtest/hbtest.1
  + utils/hbrun/hbrun.1
    * Moved man doc files to their own component dirs.

  * doc/Makefile
  * doc/en/Makefile
  + doc/clipper.txt
  - doc/en/clipper.txt
    * Moved non-NFDOC formatted doc file to doc dir.

  * doc/en/Makefile
    ! Fixed missing 1stread.txt

  * doc/en/hb_apigt.txt
  * doc/en/hbinet.txt
  * doc/en/tbrowse.txt
  * doc/en/hb_apifs.txt
    ! Fixed NFDOC non-standard entries.

  * bin/hbxpatch.hbs
    ! Fixed detecting dirs. (could cause errors only in rare cases)

  * contrib/hbdoc2/tmplates.prg
    * Formatting.
2010-07-12 16:47:24 +00:00