From 6a7efb03ecba0ce61699f9c2c3e7c56fbc494ae0 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 22 May 2010 15:52:18 +0000 Subject: [PATCH] 2010-05-22 17:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * harbour-win-spec * harbour-wce-spec * harbour.spec - Deleted references to hb-mkslib. * bin/hb-func.sh * bin/postinst.sh * Moved functions to postinst. --- harbour/ChangeLog | 10 ++ harbour/bin/hb-func.sh | 220 --------------------------------------- harbour/bin/postinst.sh | 220 +++++++++++++++++++++++++++++++++++++++ harbour/harbour-wce-spec | 1 - harbour/harbour-win-spec | 1 - harbour/harbour.spec | 3 +- 6 files changed, 231 insertions(+), 224 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index a3f98f9fb2..49fd7bb8e9 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,16 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-05-22 17:51 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + * harbour-win-spec + * harbour-wce-spec + * harbour.spec + - Deleted references to hb-mkslib. + + * bin/hb-func.sh + * bin/postinst.sh + * Moved functions to postinst. + 2010-05-22 17:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * bin/hb-func.sh * bin/postinst.sh diff --git a/harbour/bin/hb-func.sh b/harbour/bin/hb-func.sh index eb1ffa1235..9b4663fd59 100755 --- a/harbour/bin/hb-func.sh +++ b/harbour/bin/hb-func.sh @@ -63,25 +63,6 @@ get_hbver_win() echo "${MAJOR}${MINOR}" } -get_hbver_so() -{ - local hb_ver hb_rootdir - - hb_rootdir="${1-.}" - if [ "${HB_PLATFORM}" = "win" ] || \ - [ "${HB_PLATFORM}" = "wce" ]; then - hb_ver=`get_hbver_win "${hb_rootdir}"` - if [ "${HB_COMPILER}" = "mingw64" ]; then - hb_ver="${hb_ver}-x64" - elif [ "${HB_COMPILER}" = "mingwarm" ]; then - hb_ver="${hb_ver}-wce-arm" - fi - else - hb_ver=`get_hbver "${hb_rootdir}"` - fi - echo "${hb_ver}" -} - get_hbverstat() { local FVER VERSTAT hb_rootdir @@ -91,204 +72,3 @@ get_hbverstat() VERSTAT=`sed -e '/HB_VER_STATUS/ !d' -e 's/[^\"]*\"\([^\"]*\).*/\1/g' "${FVER}"` echo "${VERSTAT}" } - -get_solibname() -{ - local name - - name="${HB_SHAREDLIB_NAME}" - [ -z "${name}" ] && name="harbour" - echo "${name}" -} - -mk_hbgetlibs() -{ - local libs - - if [ -z "$@" ] - then - libs="" - if [ "$HB_PLATFORM" != "wce" ] - then - libs="$libs gtwin" - fi - echo "hbextern hbvm hbpp hbrtl hbrdd rddfpt rddcdx rddnsx rddntx hbhsx hbsix hbusrrdd hbmacro hbcommon hblang hbcpage gtcrs gtsln gtxvt gtxwc gtcgi gtstd gtpca gttrm $libs gtwvt gtgui gtdos gtos2 hbdebug profiler hbcplr hbpcre hbzlib" - else - echo "$@" - fi -} - -mk_hblibso() -{ - local LIBS LIBSMT l lm ll ld dir hb_rootdir hb_ver hb_libs full_lib_name full_lib_name_mt linker_options linker_mtoptions gpm lib_ext lib_pref lib_suff - - dir=`pwd` - name=`get_solibname` - hb_rootdir="${1-.}" - - hb_ver=`get_hbver_so "${hb_rootdir}"` - hb_libs=`mk_hbgetlibs "$2"` - if [ -n "${HB_USER_DLL_ADDONS}" ]; then - hb_libs="${hb_libs} ${HB_USER_DLL_ADDONS}" - fi - [ -z "${HB_GT_LIB}" ] && HB_GT_LIB="gtstd" - - (cd ${HB_INST_PKGPREF}${HB_LIB_INSTALL} - LIBS="" - LIBSMT="" - gpm="${HB_HAS_GPM}" - if [ "${HB_PLATFORM}" = "beos" ]; then - linker_options="-L/system/lib -lroot -lnetwork" - else - linker_options="-lm" - fi - linker_mtoptions="" - if [ "${HB_USER_CFLAGS//-DHB_POSIX_REGEX/}" != "${HB_USER_CFLAGS}" ]; then - hb_libs="${hb_libs//hbpcre/}" - elif [ -z "${HB_HAS_PCRE_LOCAL}" ]; then - linker_options="-lpcre ${linker_options}" - hb_libs="${hb_libs//hbpcre/}" - fi - if [ -z "${HB_HAS_ZLIB_LOCAL}" ]; then - linker_options="-lz ${linker_options}" - hb_libs="${hb_libs//hbzlib/}" - fi - if [ "${HB_COMPILER}" = "mingw" ] || [ "${HB_COMPILER}" = "mingw64" ]; then - linker_options="${linker_options} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lws2_32" - elif [ "${HB_COMPILER}" = "mingwarm" ]; then - linker_options="${linker_options} -lwininet -lws2 -lcommdlg -lcommctrl -luuid -lole32 -loleaut32" - elif [ "${HB_COMPILER}" = "djgpp" ]; then - linker_options="${linker_options}" - elif [ "${HB_PLATFORM}" = "linux" ]; then - linker_options="${linker_options} -ldl -lrt" - linker_mtoptions="${linker_mtoptions} -lpthread" - elif [ "${HB_PLATFORM}" = "sunos" ]; then - linker_options="${linker_options} -lrt -lsocket -lnsl -lresolv" - linker_mtoptions="${linker_mtoptions} -lpthread" - elif [ "${HB_PLATFORM}" = "hpux" ]; then - linker_options="${linker_options} -lrt" - linker_mtoptions="${linker_mtoptions} -lpthread" - elif [ "${HB_PLATFORM}" = "bsd" ]; then - linker_options="$-L/usr/local/lib {linker_options}" - linker_mtoptions="${linker_mtoptions} -lpthread" - elif [ "${HB_PLATFORM}" = "darwin" ]; then - linker_options="-L/sw/lib -L/opt/local/lib ${linker_options}" - linker_mtoptions="${linker_mtoptions} -lpthread" - fi - - for l in ${hb_libs} - do - case $l in - hbdebug|profiler|hbcplr|hbodbc|gtalleg|rddads) ;; - *) - ls="lib${l}.a" - if [ -f lib${l}mt.a ] - then - lm="lib${l}mt.a" - else - lm="${ls}" - fi - if [ -f $lm ] - then - LIBSMT="$LIBSMT $lm" - fi - if [ -f $ls ] - then - LIBS="$LIBS $ls" - if [ "${l}" = gtcrs ]; then - if [ "${HB_PLATFORM}" = "sunos" ] || \ - [ "${HB_PLATFORM}" = "bsd" ]; then - linker_options="$linker_options -lcurses" - else - linker_options="$linker_options -lncurses" - fi - elif [ "${l}" = gtsln ]; then - linker_options="$linker_options -lslang" - elif [ "${l}" = gtxwc ]; then - [ -d "/usr/X11R6/lib64" ] && \ - linker_options="$linker_options -L/usr/X11R6/lib64" - [ -d "/usr/X11R6/lib" ] && \ - linker_options="$linker_options -L/usr/X11R6/lib" - linker_options="$linker_options -lX11" - fi - if [ -n "${gpm}" ] && ( [ "${l}" = gtcrs ] || \ - [ "${l}" = gtsln ] || [ "${l}" = gttrm ] ); then - linker_options="$linker_options -lgpm" - gpm="" - fi - fi - ;; - esac - done - if [ "${HB_PLATFORM}" = "darwin" ]; then - lib_ext=".dylib" - lib_pref="lib" - lib_suff=".${hb_ver}${lib_ext}" - elif [ "${HB_PLATFORM}" = "win" ] || \ - [ "${HB_PLATFORM}" = "wce" ]; then - lib_ext=".dll" - lib_pref="" - lib_suff="-${hb_ver}${lib_ext}" - elif [ "${HB_PLATFORM}" = "hpux" ]; then - lib_ext=".sl" - lib_pref="lib" - lib_suff="-${hb_ver}${lib_ext}" - else - lib_ext=".so" - lib_pref="lib" - lib_suff="-${hb_ver}${lib_ext}" - fi - full_lib_name="${lib_pref}${name}${lib_suff}" - full_lib_name_mt="${lib_pref}${name}mt${lib_suff}" - hb_mkdyn="${HB_INST_PKGPREF}${HB_BIN_INSTALL}/${HB_TOOLS_PREF-hb}-mkdyn" - if [ -n "${HB_USER_DLL_ADDONS}" ]; then - echo "Making ${full_lib_name}..." - ${hb_mkdyn} ${full_lib_name} ${LIBS} ${linker_options} - if [ "${LIBS}" != "${LIBSMT}" ]; then - echo "Making ${full_lib_name_mt}..." - ${hb_mkdyn} ${full_lib_name_mt} ${LIBSMT} ${linker_mtoptions} ${linker_options} - fi - fi - for l in ${full_lib_name} ${full_lib_name_mt} - do - if [ -f $l ] - then - ll=${l%${lib_suff}}${lib_ext} - ln -sf $l $ll - if [ "${HB_PLATFORM}" = "win" ] || \ - [ "${HB_PLATFORM}" = "wce" ]; then - if [ "${HB_PLATFORM}" = "${HB_HOST_PLAT}" ]; then - (cd "$dir" - mv "${HB_INST_PKGPREF}${HB_LIB_INSTALL}/$l" "${HB_INST_PKGPREF}${HB_BIN_INSTALL}" - mv "${HB_INST_PKGPREF}${HB_LIB_INSTALL}/$ll" "${HB_INST_PKGPREF}${HB_BIN_INSTALL}") - fi - else - case $HB_LIB_INSTALL in - /usr/lib/${name}|/usr/lib64/${name}|/usr/local/lib/${name}|/usr/local/lib64/${name}) - ln -sf ${name}/$l ../$ll - ln -sf ${name}/$l ../$l - ;; - /usr/local/${name}/lib) - ld="/usr/lib" - if [ -n "${HB_INST_PKGPREF}" ] || [ -w $ld ] - then - mkdir -p ${HB_INST_PKGPREF}$ld - ln -sf ../local/${name}/lib/$l ${HB_INST_PKGPREF}$ld/$ll - ln -sf ../local/${name}/lib/$l ${HB_INST_PKGPREF}$ld/$l - fi - ;; - *) - ;; - esac - ld="/etc/ld.so.conf.d" - if [ -d $ld ] && ( [ -n "${HB_INST_PKGPREF}" ] || [ -w $ld ] ) - then - mkdir -p ${HB_INST_PKGPREF}$ld - echo "$HB_LIB_INSTALL" > ${HB_INST_PKGPREF}/$ld/${name}.conf - fi - fi - fi - done - ) - #export LD_LIBRARY_PATH="${HB_INST_PKGPREF}$HB_LIB_INSTALL:$LD_LIBRARY_PATH" -} diff --git a/harbour/bin/postinst.sh b/harbour/bin/postinst.sh index 8eecfccb70..1590150946 100755 --- a/harbour/bin/postinst.sh +++ b/harbour/bin/postinst.sh @@ -12,6 +12,226 @@ # See COPYING for licensing terms. # --------------------------------------------------------------- +get_solibname() +{ + local name + + name="${HB_SHAREDLIB_NAME}" + [ -z "${name}" ] && name="harbour" + echo "${name}" +} + +get_hbver_so() +{ + local hb_ver hb_rootdir + + hb_rootdir="${1-.}" + if [ "${HB_PLATFORM}" = "win" ] || \ + [ "${HB_PLATFORM}" = "wce" ]; then + hb_ver=`get_hbver_win "${hb_rootdir}"` + if [ "${HB_COMPILER}" = "mingw64" ]; then + hb_ver="${hb_ver}-x64" + elif [ "${HB_COMPILER}" = "mingwarm" ]; then + hb_ver="${hb_ver}-wce-arm" + fi + else + hb_ver=`get_hbver "${hb_rootdir}"` + fi + echo "${hb_ver}" +} + +mk_hbgetlibs() +{ + local libs + + if [ -z "$@" ] + then + libs="" + if [ "$HB_PLATFORM" != "wce" ] + then + libs="$libs gtwin" + fi + echo "hbextern hbvm hbpp hbrtl hbrdd rddfpt rddcdx rddnsx rddntx hbhsx hbsix hbusrrdd hbmacro hbcommon hblang hbcpage gtcrs gtsln gtxvt gtxwc gtcgi gtstd gtpca gttrm $libs gtwvt gtgui gtdos gtos2 hbdebug profiler hbcplr hbpcre hbzlib" + else + echo "$@" + fi +} + +mk_hblibso() +{ + local LIBS LIBSMT l lm ll ld dir hb_rootdir hb_ver hb_libs full_lib_name full_lib_name_mt linker_options linker_mtoptions gpm lib_ext lib_pref lib_suff + + dir=`pwd` + name=`get_solibname` + hb_rootdir="${1-.}" + + hb_ver=`get_hbver_so "${hb_rootdir}"` + hb_libs=`mk_hbgetlibs "$2"` + if [ -n "${HB_USER_DLL_ADDONS}" ]; then + hb_libs="${hb_libs} ${HB_USER_DLL_ADDONS}" + fi + [ -z "${HB_GT_LIB}" ] && HB_GT_LIB="gtstd" + + (cd ${HB_INST_PKGPREF}${HB_LIB_INSTALL} + LIBS="" + LIBSMT="" + gpm="${HB_HAS_GPM}" + if [ "${HB_PLATFORM}" = "beos" ]; then + linker_options="-L/system/lib -lroot -lnetwork" + else + linker_options="-lm" + fi + linker_mtoptions="" + if [ "${HB_USER_CFLAGS//-DHB_POSIX_REGEX/}" != "${HB_USER_CFLAGS}" ]; then + hb_libs="${hb_libs//hbpcre/}" + elif [ -z "${HB_HAS_PCRE_LOCAL}" ]; then + linker_options="-lpcre ${linker_options}" + hb_libs="${hb_libs//hbpcre/}" + fi + if [ -z "${HB_HAS_ZLIB_LOCAL}" ]; then + linker_options="-lz ${linker_options}" + hb_libs="${hb_libs//hbzlib/}" + fi + if [ "${HB_COMPILER}" = "mingw" ] || [ "${HB_COMPILER}" = "mingw64" ]; then + linker_options="${linker_options} -luser32 -lwinspool -lgdi32 -lcomctl32 -ladvapi32 -lcomdlg32 -lole32 -loleaut32 -luuid -lws2_32" + elif [ "${HB_COMPILER}" = "mingwarm" ]; then + linker_options="${linker_options} -lwininet -lws2 -lcommdlg -lcommctrl -luuid -lole32 -loleaut32" + elif [ "${HB_COMPILER}" = "djgpp" ]; then + linker_options="${linker_options}" + elif [ "${HB_PLATFORM}" = "linux" ]; then + linker_options="${linker_options} -ldl -lrt" + linker_mtoptions="${linker_mtoptions} -lpthread" + elif [ "${HB_PLATFORM}" = "sunos" ]; then + linker_options="${linker_options} -lrt -lsocket -lnsl -lresolv" + linker_mtoptions="${linker_mtoptions} -lpthread" + elif [ "${HB_PLATFORM}" = "hpux" ]; then + linker_options="${linker_options} -lrt" + linker_mtoptions="${linker_mtoptions} -lpthread" + elif [ "${HB_PLATFORM}" = "bsd" ]; then + linker_options="$-L/usr/local/lib {linker_options}" + linker_mtoptions="${linker_mtoptions} -lpthread" + elif [ "${HB_PLATFORM}" = "darwin" ]; then + linker_options="-L/sw/lib -L/opt/local/lib ${linker_options}" + linker_mtoptions="${linker_mtoptions} -lpthread" + fi + + for l in ${hb_libs} + do + case $l in + hbdebug|profiler|hbcplr|hbodbc|gtalleg|rddads) ;; + *) + ls="lib${l}.a" + if [ -f lib${l}mt.a ] + then + lm="lib${l}mt.a" + else + lm="${ls}" + fi + if [ -f $lm ] + then + LIBSMT="$LIBSMT $lm" + fi + if [ -f $ls ] + then + LIBS="$LIBS $ls" + if [ "${l}" = gtcrs ]; then + if [ "${HB_PLATFORM}" = "sunos" ] || \ + [ "${HB_PLATFORM}" = "bsd" ]; then + linker_options="$linker_options -lcurses" + else + linker_options="$linker_options -lncurses" + fi + elif [ "${l}" = gtsln ]; then + linker_options="$linker_options -lslang" + elif [ "${l}" = gtxwc ]; then + [ -d "/usr/X11R6/lib64" ] && \ + linker_options="$linker_options -L/usr/X11R6/lib64" + [ -d "/usr/X11R6/lib" ] && \ + linker_options="$linker_options -L/usr/X11R6/lib" + linker_options="$linker_options -lX11" + fi + if [ -n "${gpm}" ] && ( [ "${l}" = gtcrs ] || \ + [ "${l}" = gtsln ] || [ "${l}" = gttrm ] ); then + linker_options="$linker_options -lgpm" + gpm="" + fi + fi + ;; + esac + done + if [ "${HB_PLATFORM}" = "darwin" ]; then + lib_ext=".dylib" + lib_pref="lib" + lib_suff=".${hb_ver}${lib_ext}" + elif [ "${HB_PLATFORM}" = "win" ] || \ + [ "${HB_PLATFORM}" = "wce" ]; then + lib_ext=".dll" + lib_pref="" + lib_suff="-${hb_ver}${lib_ext}" + elif [ "${HB_PLATFORM}" = "hpux" ]; then + lib_ext=".sl" + lib_pref="lib" + lib_suff="-${hb_ver}${lib_ext}" + else + lib_ext=".so" + lib_pref="lib" + lib_suff="-${hb_ver}${lib_ext}" + fi + full_lib_name="${lib_pref}${name}${lib_suff}" + full_lib_name_mt="${lib_pref}${name}mt${lib_suff}" + hb_mkdyn="${HB_INST_PKGPREF}${HB_BIN_INSTALL}/${HB_TOOLS_PREF-hb}-mkdyn" + if [ -n "${HB_USER_DLL_ADDONS}" ]; then + echo "Making ${full_lib_name}..." + ${hb_mkdyn} ${full_lib_name} ${LIBS} ${linker_options} + if [ "${LIBS}" != "${LIBSMT}" ]; then + echo "Making ${full_lib_name_mt}..." + ${hb_mkdyn} ${full_lib_name_mt} ${LIBSMT} ${linker_mtoptions} ${linker_options} + fi + fi + for l in ${full_lib_name} ${full_lib_name_mt} + do + if [ -f $l ] + then + ll=${l%${lib_suff}}${lib_ext} + ln -sf $l $ll + if [ "${HB_PLATFORM}" = "win" ] || \ + [ "${HB_PLATFORM}" = "wce" ]; then + if [ "${HB_PLATFORM}" = "${HB_HOST_PLAT}" ]; then + (cd "$dir" + mv "${HB_INST_PKGPREF}${HB_LIB_INSTALL}/$l" "${HB_INST_PKGPREF}${HB_BIN_INSTALL}" + mv "${HB_INST_PKGPREF}${HB_LIB_INSTALL}/$ll" "${HB_INST_PKGPREF}${HB_BIN_INSTALL}") + fi + else + case $HB_LIB_INSTALL in + /usr/lib/${name}|/usr/lib64/${name}|/usr/local/lib/${name}|/usr/local/lib64/${name}) + ln -sf ${name}/$l ../$ll + ln -sf ${name}/$l ../$l + ;; + /usr/local/${name}/lib) + ld="/usr/lib" + if [ -n "${HB_INST_PKGPREF}" ] || [ -w $ld ] + then + mkdir -p ${HB_INST_PKGPREF}$ld + ln -sf ../local/${name}/lib/$l ${HB_INST_PKGPREF}$ld/$ll + ln -sf ../local/${name}/lib/$l ${HB_INST_PKGPREF}$ld/$l + fi + ;; + *) + ;; + esac + ld="/etc/ld.so.conf.d" + if [ -d $ld ] && ( [ -n "${HB_INST_PKGPREF}" ] || [ -w $ld ] ) + then + mkdir -p ${HB_INST_PKGPREF}$ld + echo "$HB_LIB_INSTALL" > ${HB_INST_PKGPREF}/$ld/${name}.conf + fi + fi + fi + done + ) + #export LD_LIBRARY_PATH="${HB_INST_PKGPREF}$HB_LIB_INSTALL:$LD_LIBRARY_PATH" +} + if [ -z "$HB_PLATFORM" ] || [ -z "$HB_COMPILER" ] || \ [ -z "$HB_BIN_INSTALL" ] || \ [ -z "$HB_INC_INSTALL" ] || \ diff --git a/harbour/harbour-wce-spec b/harbour/harbour-wce-spec index e65ebeae82..04592405fa 100644 --- a/harbour/harbour-wce-spec +++ b/harbour/harbour-wce-spec @@ -246,7 +246,6 @@ rm -fR $RPM_BUILD_ROOT %doc doc/%{readme} %{_bindir}/%{hb_pref}-mkdyn -%{_bindir}/%{hb_pref}-mkslib %{_bindir}/%{hb_pref}-build %{_bindir}/%{hb_pref}cc %{_bindir}/%{hb_pref}cmp diff --git a/harbour/harbour-win-spec b/harbour/harbour-win-spec index aed385fb35..7fc8465a0f 100644 --- a/harbour/harbour-win-spec +++ b/harbour/harbour-win-spec @@ -246,7 +246,6 @@ rm -fR $RPM_BUILD_ROOT %doc doc/%{readme} %{_bindir}/%{hb_pref}-mkdyn -%{_bindir}/%{hb_pref}-mkslib %{_bindir}/%{hb_pref}-build %{_bindir}/%{hb_pref}cc %{_bindir}/%{hb_pref}cmp diff --git a/harbour/harbour.spec b/harbour/harbour.spec index 484ed1d9ef..d22a6a9f5d 100644 --- a/harbour/harbour.spec +++ b/harbour/harbour.spec @@ -581,7 +581,6 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/harbour %{_bindir}/hbpp %{_bindir}/hb-mkdyn -%{_bindir}/hb-mkslib %{_bindir}/%{hb_pref}-build %{_bindir}/%{hb_pref}cc %{_bindir}/%{hb_pref}cmp @@ -752,7 +751,7 @@ rm -rf $RPM_BUILD_ROOT * Wed Apr 30 2003 Przemyslaw Czerpak - new tool "%{hb_pref}-build" (%{hb_pref}cmp, %{hb_pref}lnk, %{hb_pref}mk) added - compiler/linker wrapper. -- new tool "hb-mkslib" (build shared libraries from static ones and object +- new tool "hb-mkdyn" (build shared libraries from static ones and object files). - shared libraries added. - binary package divided.