From 2080c128485ffa419a337ae8791cda691ddb29f2 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 7 Jul 2010 18:42:26 +0000 Subject: [PATCH] 2010-07-07 20:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/make.hbs ! Fixed stdalone mode to create target in their usual GNU Make target dir. ! Fixed HB_BUILD_NAME handling. * INSTALL * utils/Makefile * config/postinst.hbs % Changed postinst to create .hbl file on its own behalf without calling hbi18n. --- harbour/ChangeLog | 14 +++++++++++++- harbour/INSTALL | 4 ++-- harbour/config/postinst.hbs | 5 ++--- harbour/contrib/make.hbs | 37 ++++++++++++++++++------------------- harbour/utils/Makefile | 2 +- 5 files changed, 36 insertions(+), 26 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 4a4b1f5388..e380aa27d2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,11 +16,23 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-07 20:41 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * contrib/make.hbs + ! Fixed stdalone mode to create target in their usual GNU Make + target dir. + ! Fixed HB_BUILD_NAME handling. + + * INSTALL + * utils/Makefile + * config/postinst.hbs + % Changed postinst to create .hbl file on its own behalf without + calling hbi18n. + 2010-07-07 10:49 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idesaveload.prg * contrib/hbide/idestylesheets.prg * contrib/hbide/setup.ui - + Implemented: application themes - a work-in-progress yet for + + Implemented: application themes - a work-in-progress yet for final implementation. Just have a fun to play with it currently. Next commit will see it to real fruitation. diff --git a/harbour/INSTALL b/harbour/INSTALL index b83a0e1e5c..daf03d7334 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -702,8 +702,8 @@ HARBOUR If you leave this value empty, the make system will try to autodetect it, so in practice all you have to do is to create a native build first (no 'install' required), then create the cross-build. If you set this value - manually, it may be useful to know that harbour, hbpp, hbmk2, hbrun, - hbi18n executables are required for a cross-build process to succeed. + manually, it may be useful to know that harbour, hbpp, hbmk2, hbrun + executables are required for a cross-build process to succeed. 7. DEBUGGING OPTIONS diff --git a/harbour/config/postinst.hbs b/harbour/config/postinst.hbs index 4c7c11ba12..443a9d33d6 100644 --- a/harbour/config/postinst.hbs +++ b/harbour/config/postinst.hbs @@ -97,9 +97,8 @@ PROCEDURE Main() FOR EACH tmp IN Directory( "utils" + hb_ps() + hb_osFileMask(), "D" ) IF "D" $ tmp[ F_ATTR ] .AND. !( tmp[ F_NAME ] == "." ) .AND. !( tmp[ F_NAME ] == ".." ) FOR EACH aFile IN Directory( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + "*.po" ) - mk_hb_processRun( PathSepToSelf( GetEnv( "HB_HOST_BIN_DIR" ) ) + hb_ps() + "hbi18n" +; - " -q -g -o" + PathSepToSelf( GetEnv( "HB_BIN_INSTALL" ) ) + hb_ps() + FN_ExtSet( aFile[ F_NAME ], ".hbl" ) +; - " " + PathSepToSelf( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + aFile[ F_NAME ] ) ) + mk_hbl( PathSepToSelf( "utils" + hb_ps() + tmp[ F_NAME ] + hb_ps() + aFile[ F_NAME ] ),; + PathSepToSelf( GetEnv( "HB_BIN_INSTALL" ) ) + hb_ps() + FN_ExtSet( aFile[ F_NAME ], ".hbl" ) ) NEXT ENDIF NEXT diff --git a/harbour/contrib/make.hbs b/harbour/contrib/make.hbs index 60c07a8c7d..b1eeeaa677 100755 --- a/harbour/contrib/make.hbs +++ b/harbour/contrib/make.hbs @@ -57,12 +57,14 @@ PROCEDURE Main( ... ) */ PROCEDURE StandAlone( ... ) + LOCAL cBase := "" + LOCAL cRoot := "../" + LOCAL aParams LOCAL aLibs LOCAL aFile LOCAL cType - LOCAL cBase := "" LOCAL cProject LOCAL cBaseOptions @@ -131,8 +133,6 @@ PROCEDURE StandAlone( ... ) ENDIF NEXT - hb_setenv( "HB_HOST_BIN_DIR", hb_DirBase() + ".." + hb_ps() + "bin" ) - FOR EACH cProject IN aLibs cType := hbmk2_project_type( cBase + cProject ) @@ -145,16 +145,16 @@ PROCEDURE StandAlone( ... ) SWITCH cType CASE "hblib" CASE "hbimplib" - cTargetDir := "${HB_LIB}" + cTargetDir := cRoot + "lib/${hb_plat}/${hb_comp}${hb_build}" EXIT CASE "hbdyn" - cTargetDir := "${HB_DYN}" + cTargetDir := cRoot + "bin/${hb_plat}/${hb_comp}${hb_build}" IF GetEnv( "HB_BUILD_SHARED" ) == "yes" cOptionsPre += " -shared" ENDIF EXIT CASE "hbexe" - cTargetDir := "${HB_BIN}" + cTargetDir := cRoot + "bin/${hb_plat}/${hb_comp}${hb_build}" IF GetEnv( "HB_BUILD_SHARED" ) == "yes" cOptionsPre += " -shared" ENDIF @@ -174,7 +174,7 @@ PROCEDURE StandAlone( ... ) ENDIF ENDIF - call_hbmk2( cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. ) + call_hbmk2( hb_DirBase() + cRoot + "bin" + hb_ps(), cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. ) NEXT ErrorLevel( 0 ) @@ -291,6 +291,7 @@ PROCEDURE GNUMake( ... ) LOCAL aList LOCAL cType + LOCAL cBinDir LOCAL cProject LOCAL cProjectDir LOCAL cInstallDirVar @@ -299,7 +300,6 @@ PROCEDURE GNUMake( ... ) LOCAL cBaseOptions LOCAL cOptionsPre LOCAL cOptionsPost - LOCAL lBuildName LOCAL cFilter LOCAL aFilter @@ -401,9 +401,6 @@ PROCEDURE GNUMake( ... ) ENDIF IF ! Empty( GetEnv( "HB_BUILD_NAME" ) ) cBaseOptions += " -build=" + GetEnv( "HB_BUILD_NAME" ) - lBuildName := .T. - ELSE - lBuildName := .F. ENDIF /* Clearing envvars that may interact with hbmk2 */ @@ -416,8 +413,8 @@ PROCEDURE GNUMake( ... ) /* Override hbmk2 autodetection */ hb_setenv( "HB_INSTALL_PREFIX", cRoot ) - hb_setenv( "HB_BIN_INSTALL", cRoot + "bin/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + iif( lBuildName, "/" + GetEnv( "HB_BUILD_NAME" ), "" ) ) - hb_setenv( "HB_LIB_INSTALL", cRoot + "lib/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + iif( lBuildName, "/" + GetEnv( "HB_BUILD_NAME" ), "" ) ) + hb_setenv( "HB_BIN_INSTALL", cRoot + "bin/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + GetEnv( "HB_BUILD_NAME" ) ) + hb_setenv( "HB_LIB_INSTALL", cRoot + "lib/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + GetEnv( "HB_BUILD_NAME" ) ) hb_setenv( "HB_DYN_INSTALL" ) hb_setenv( "HB_INC_INSTALL", cRoot + "include" ) @@ -439,6 +436,8 @@ PROCEDURE GNUMake( ... ) /* Start building */ + cBinDir := GetEnv( "HB_HOST_BIN_DIR" ) + hb_ps() + aAll := {; aImpLibs,; aLibsPass0,; @@ -516,7 +515,7 @@ PROCEDURE GNUMake( ... ) ENDIF ENDIF - call_hbmk2( cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. ) + call_hbmk2( cBinDir, cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. ) /* Highly experimental */ IF cType == "hblib" .AND. GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" .AND. ; @@ -543,7 +542,7 @@ PROCEDURE GNUMake( ... ) ENDIF ENDIF - call_hbmk2( cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .T. ) + call_hbmk2( cBinDir, cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .T. ) ENDIF ELSE /* OutStd( hb_StrFormat( "! project '%s' skipped", cProject ) + hb_eol() ) */ @@ -556,13 +555,11 @@ PROCEDURE GNUMake( ... ) RETURN -STATIC FUNCTION call_hbmk2( cProject, cTargetDir, cOptionsPre, cOptionsPost, lDyn ) +STATIC FUNCTION call_hbmk2( cBinDir, cProject, cTargetDir, cOptionsPre, cOptionsPost, lDyn ) LOCAL nErrorLevel LOCAL cDir, cName - hb_FNameSplit( cProject, @cDir, @cName ) - /* Keeping cmdline as short as possible. Also making sure that user settings do not interfere with the std build process. */ #if defined( __PLATFORM__DOS ) @@ -570,7 +567,9 @@ STATIC FUNCTION call_hbmk2( cProject, cTargetDir, cOptionsPre, cOptionsPost, lDy cOptionsPre := "" #endif - nErrorLevel := mk_hb_processRun( PathSepToSelf( GetEnv( "HB_HOST_BIN_DIR" ) ) + hb_ps() + "hbmk2" +; + hb_FNameSplit( cProject, @cDir, @cName ) + + nErrorLevel := mk_hb_processRun( PathSepToSelf( cBinDir ) + "hbmk2" +; " " + cOptionsPre +; " " + cProject +; cOptionsPost +; diff --git a/harbour/utils/Makefile b/harbour/utils/Makefile index 64bcecaed1..aac9d411b4 100644 --- a/harbour/utils/Makefile +++ b/harbour/utils/Makefile @@ -7,11 +7,11 @@ ROOT := ../ DIRS := \ hbrun \ hbmk2 \ - hbi18n \ ifneq ($(HB_BUILD_PARTS),compiler) DIRS += \ + hbi18n \ hbtest \ hbformat \