diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 69a0e318b1..efaeff0f52 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,16 @@ The license applies to all entries newer than 2009-04-28. */ +2012-09-28 20:13 UTC+0200 Viktor Szakats (harbour syenar.net) + * contrib/hbpost.hbm + * contrib/make.hb + * INSTALL + + implemented 'install' option when building contribs + in standalone mode (aka when doing a partial [re]build). + Experimental, very lightly tested and the recommended + way remains to _avoid_ 'install' in all situations + and to use .hbc files to use packages. + 2012-09-28 18:17 UTC+0200 Viktor Szakats (harbour syenar.net) * include/box.ch * src/rtl/browse.prg diff --git a/harbour/INSTALL b/harbour/INSTALL index d681385988..aeb12a1893 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -240,11 +240,6 @@ HARBOUR cd contrib/ ../../bin///hbmk2 ../make.hb [clean] [custom hbmk2 options] - NOTE: 'install' doesn't work when doing a partial [re]build - at this time. To work this around, simply avoid 'install' - completely, do a complete rebuild or copy the created - lib(s) manually. - 3. HOW TO CREATE DISTRIBUTABLE PACKAGES ======================================= diff --git a/harbour/contrib/hbpost.hbm b/harbour/contrib/hbpost.hbm index 70e2ed2ca3..877c66e64b 100644 --- a/harbour/contrib/hbpost.hbm +++ b/harbour/contrib/hbpost.hbm @@ -86,7 +86,7 @@ -instfile=contrib:${_HB_CONTRIB_SUBDIR}*.txt -instfile=contrib_tests:${_HB_CONTRIB_SUBDIR}tests/*.* -# install +# install (GNU Make) {_HB_BUILD_INSTALL&_HB_INSTALL_LIB&hblib}-instpath=${_HB_INSTALL_LIB}/ {_HB_BUILD_INSTALL&_HB_INSTALL_BIN&hbexe}-instpath=${_HB_INSTALL_BIN}/ {_HB_BUILD_INSTALL&_HB_INSTALL_DYN&hbdyn}-instpath=${_HB_INSTALL_DYN}/ @@ -99,3 +99,15 @@ {_HB_BUILD_INSTALL&_HB_INSTALL_CONTRIB&hblib}-instpath=contrib:${_HB_INSTALL_CONTRIB}/${_HB_CONTRIB_SUBDIR} {_HB_BUILD_INSTALL&_HB_INSTALL_CONTRIB&hblib}-instpath=contrib_tests:${_HB_INSTALL_CONTRIB}/${_HB_CONTRIB_SUBDIR}/tests/ {_HB_BUILD_INSTALL}-instforce + +# install (standalone) +{_HB_BUILD_INSTALL_STDALONE&hblib}-instpath=${HB_LIB}/ +{_HB_BUILD_INSTALL_STDALONE&hbexe}-instpath=${HB_BIN}/ +{_HB_BUILD_INSTALL_STDALONE&hbdyn}-instpath=${HB_DYN}/ +{_HB_BUILD_INSTALL_STDALONE&hbdyn&(win|os2)&HB_INSTALL_3RDDYN='yes'}-instpath=depimplibsrc:${HB_DYN}/ +{_HB_BUILD_INSTALL_STDALONE&hblib}-instpath=inc:${HB_INC}/ +{_HB_BUILD_INSTALL_STDALONE}-instpath=implib:${HB_LIB}/ +{_HB_BUILD_INSTALL_STDALONE}-instpath=etc:${HB_ETC}/ +{_HB_BUILD_INSTALL_STDALONE}-instpath=man:${HB_MAN}/ +{_HB_BUILD_INSTALL_STDALONE&!(HB_INSTALL_IMPLIB='no')}-instpath=depimplib:${HB_LIB}/ +{_HB_BUILD_INSTALL_STDALONE}-instforce diff --git a/harbour/contrib/make.hb b/harbour/contrib/make.hb index ed494f11bc..04d11c81b7 100755 --- a/harbour/contrib/make.hb +++ b/harbour/contrib/make.hb @@ -27,12 +27,6 @@ * */ -/* NOTE: - - 'install' is ignored in stdalone mode. It would be needed to - replicate the install dir defaulting logic found in global.mk - to implement it. - */ - #pragma warninglevel=3 #pragma -km+ #pragma -ko+ @@ -147,12 +141,6 @@ PROCEDURE Standalone( aParams, hProjectList ) nAction := _ACT_INC ENDCASE - /* Strip install action */ - DO CASE - CASE nAction == _ACT_INC_REBUILD_INST ; nAction := _ACT_INC_REBUILD - CASE nAction == _ACT_INC_INST ; nAction := _ACT_INC - ENDCASE - /* Processing user options */ cOptionsUser := "" @@ -203,7 +191,7 @@ PROCEDURE Standalone( aParams, hProjectList ) /* Start building */ - build_projects( nAction, hProjectList, hProjectReqList, cOptionsUser ) + build_projects( nAction, hProjectList, hProjectReqList, cOptionsUser, .T. ) RETURN @@ -355,13 +343,13 @@ PROCEDURE GNUMake( aParams, hProjectList ) OutStd( hb_StrFormat( "! Started package %1$s...", hActions[ nAction ] ) + hb_eol() ) - build_projects( nAction, hProjectList, hProjectReqList, "" ) + build_projects( nAction, hProjectList, hProjectReqList, "", .F. ) OutStd( hb_StrFormat( "! Finished package %1$s...", hActions[ nAction ] ) + hb_eol() ) RETURN -STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOptionsUser ) +STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOptionsUser, lStdAlone ) LOCAL aPairList LOCAL aSortedList @@ -440,7 +428,7 @@ STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOption lInstall := nAction == _ACT_INC_INST .OR. ; nAction == _ACT_INC_REBUILD_INST - hb_setenv( "_HB_BUILD_INSTALL", iif( lInstall, "yes", NIL ) ) + hb_setenv( iif( lStdAlone, "_HB_BUILD_INSTALL_STDALONE", "_HB_BUILD_INSTALL" ), iif( lInstall, "yes", NIL ) ) /* Build the dependencies and primary targets in sorted order */