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.
This commit is contained in:
@@ -16,6 +16,35 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
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 11:26 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
- debian
|
||||
+ package/debian
|
||||
|
||||
@@ -48,14 +48,7 @@ include $(ROOT)config/dir.mk
|
||||
|
||||
ifneq ($(HB_NO_HBSCRIPT),yes)
|
||||
|
||||
ifeq ($(HB_SHELL),sh)
|
||||
HB_POSTINST := $(TOP)$(ROOT)bin/postinst.sh
|
||||
else
|
||||
HB_POSTINST :=
|
||||
endif
|
||||
|
||||
install::
|
||||
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)config/postinst.hbs,@$(ECHO) $(ECHOQUOTE)! Warning: hbrun not found, config/postinst.hbs skipped.$(ECHOQUOTE))
|
||||
$(if $(wildcard $(HB_POSTINST)),+$(HB_POSTINST),)
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Copyright 2003 Przemyslaw Czerpak <druzus@polbox.com>
|
||||
# simple script to build shared libraries from static ones and
|
||||
# object files
|
||||
#
|
||||
# See COPYING for licensing terms.
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
# HB_PLATFORM=""
|
||||
# HB_CCPREFIX=""
|
||||
# HB_CCPATH=""
|
||||
|
||||
if [ -n "${HB_PLATFORM}" ]
|
||||
then
|
||||
hb_plat="${HB_PLATFORM}"
|
||||
else
|
||||
hb_plat=`uname -s | tr -d "[-]" | tr '[A-Z]' '[a-z]' 2>/dev/null`
|
||||
fi
|
||||
|
||||
linker_options=""
|
||||
|
||||
case "$hb_plat" in
|
||||
*windows*|*mingw32*|msys*|cygwin*) hb_plat="win" ;;
|
||||
*os/2*) hb_plat="os2" ;;
|
||||
*dos) hb_plat="dos" ;;
|
||||
*bsd) hb_plat="bsd" ;;
|
||||
esac
|
||||
|
||||
case "$hb_plat" in
|
||||
darwin) SLIB_EXT=".dylib" ;;
|
||||
win) SLIB_EXT=".dll" ;;
|
||||
wce) SLIB_EXT=".dll" ;;
|
||||
os2) SLIB_EXT=".dll" ;;
|
||||
hpux) SLIB_EXT=".sl" ;;
|
||||
*) SLIB_EXT=".so" ;;
|
||||
esac
|
||||
|
||||
NAME="${1%${SLIB_EXT}}"
|
||||
LIB_NAME="${NAME##*/}"
|
||||
DSTDIR="${NAME%${LIB_NAME}}"
|
||||
[ -n "${DSTDIR}" ] || DSTDIR="./"
|
||||
|
||||
if [ $# -lt 2 ] || [ -z "${LIB_NAME}" ]
|
||||
then
|
||||
echo "usage: `basename $0` <target[${SLIB_EXT}]> [link options] src1.a .. srcN.a [obj1.o .. objN.o]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
shift
|
||||
|
||||
BASE=`echo ${LIB_NAME} | sed "s/\([^.-]*\)[.-][0-9.]*/\1/g"`
|
||||
VERSION="${LIB_NAME#${BASE}}"
|
||||
VERSION="${VERSION#[.-]}"
|
||||
REVIS="${VERSION}"
|
||||
MAJOR="${REVIS%%.*}"
|
||||
REVIS="${REVIS#${MAJOR}}"
|
||||
REVIS="${REVIS#.}"
|
||||
MINOR="${REVIS%%.*}"
|
||||
REVIS="${REVIS#${MINOR}}"
|
||||
REVIS="${REVIS#.}"
|
||||
REVIS="${REVIS%%.*}"
|
||||
[ -n "${MAJOR}" ] || MAJOR=2
|
||||
[ -n "${MINOR}" ] || MINOR=0
|
||||
[ -n "${REVIS}" ] || REVIS=0
|
||||
VERSION="${MAJOR}.${MINOR}.${REVIS}"
|
||||
|
||||
OTMPDIR=""
|
||||
dir=`pwd`
|
||||
|
||||
cleanup()
|
||||
{
|
||||
[ -z "${OTMPDIR}" ] || rm -fR "${OTMPDIR}"
|
||||
}
|
||||
|
||||
trap cleanup EXIT >/dev/null 2>&1
|
||||
|
||||
if [ "${SLIB_EXT}" != ".dylib" ]; then
|
||||
|
||||
OTMPDIR="/tmp/hb-mkdyn-$$"
|
||||
rm -fR "${OTMPDIR}"
|
||||
mkdir -p "${OTMPDIR}"
|
||||
cd "${OTMPDIR}"
|
||||
|
||||
for f in $*
|
||||
do
|
||||
case "${f}" in
|
||||
*.o)
|
||||
if [ "${f#/}" == "${f}" ]; then
|
||||
f="${dir}/${f}"
|
||||
fi
|
||||
if [ ! -r "${f}" ]; then
|
||||
echo "cannot read file: ${f}"
|
||||
exit 1
|
||||
fi
|
||||
cp "${f}" "${OTMPDIR}" || exit 1
|
||||
;;
|
||||
*.a)
|
||||
if [ "${f#/}" == "${f}" ]; then
|
||||
f="${dir}/${f}"
|
||||
fi
|
||||
if [ ! -r "${f}" ]; then
|
||||
echo "cannot read file: ${f}"
|
||||
exit 1
|
||||
fi
|
||||
d="${f%.a}"
|
||||
d="${f##*/}"
|
||||
mkdir $d
|
||||
cd $d
|
||||
${HB_CCPATH}${HB_CCPREFIX}ar -x "${f}" || exit 1
|
||||
cd ..
|
||||
;;
|
||||
*)
|
||||
linker_options="${linker_options} ${f}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
cd "${OTMPDIR}"
|
||||
OBJLST=`find . -name \*.o`
|
||||
fi
|
||||
|
||||
if [ "${SLIB_EXT}" = ".dylib" ]; then
|
||||
FULLNAME="${BASE}.${VERSION}${SLIB_EXT}"
|
||||
libtool -dynamic -install_name "${BASE}${SLIB_EXT}" \
|
||||
-compatibility_version ${MAJOR}.${MINOR} -current_version ${VERSION} \
|
||||
-flat_namespace -undefined warning -multiply_defined suppress -single_module ${HB_USER_DFLAGS} \
|
||||
-o "${DSTDIR}/${FULLNAME}" "$@" && \
|
||||
ln -sf "${FULLNAME}" "${DSTDIR}${BASE}.${MAJOR}${SLIB_EXT}" && \
|
||||
ln -sf "${FULLNAME}" "${DSTDIR}${BASE}${SLIB_EXT}"
|
||||
elif [ "${SLIB_EXT}" = ".dll" ]; then
|
||||
FULLNAME="${LIB_NAME}${SLIB_EXT}"
|
||||
if [ "$HB_COMPILER" = "mingwarm" ]; then
|
||||
SYSLIBS="-lws2"
|
||||
else
|
||||
SYSLIBS="-luser32 -lws2_32 -ladvapi32 -lgdi32"
|
||||
fi
|
||||
# -Wl,--output-def,testdll.def,--out-implib,libtestdll.a
|
||||
${HB_CCPATH}${HB_CCPREFIX}gcc -shared -o "${FULLNAME}" $OBJLST ${linker_options} ${HB_USER_DFLAGS} ${SYSLIBS} ${HB_DLLIBS} && \
|
||||
cd "${dir}" && \
|
||||
rm -f "${DSTDIR}${FULLNAME}" && \
|
||||
mv -f "${OTMPDIR}/${FULLNAME}" "${DSTDIR}${FULLNAME}"
|
||||
else
|
||||
#FULLNAME="${BASE}-${VERSION}${SLIB_EXT}"
|
||||
#FULLNAME="${BASE}{SLIB_EXT}.${VERSION}"
|
||||
FULLNAME="${LIB_NAME}${SLIB_EXT}"
|
||||
${HB_CCPATH}${HB_CCPREFIX}gcc -shared -o "${FULLNAME}" $OBJLST ${linker_options} ${HB_USER_DFLAGS} && \
|
||||
cd "${dir}" && \
|
||||
mv -f "${OTMPDIR}/${FULLNAME}" "${DSTDIR}${FULLNAME}"
|
||||
fi
|
||||
|
||||
stat="$?"
|
||||
[ $stat != 0 ] && cd "${dir}" && rm -f "${DSTDIR}${FULLNAME}"
|
||||
cleanup
|
||||
exit "${stat}"
|
||||
165
harbour/bin/hbmk_l2d.hbs
Normal file
165
harbour/bin/hbmk_l2d.hbs
Normal file
@@ -0,0 +1,165 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* hbmk2 plugin script, static lib to dynamic lib conversion for
|
||||
* environments supporting 'ar' tool.
|
||||
* Usage:
|
||||
* 'hbmk2 -hbdyn -pi=<libsrc.a> -plugin=hbmk_l2d.hbs -o<dynlibdst> -nohblib-'
|
||||
*
|
||||
* Copyright 2010 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* www - http://harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
* their web site at http://www.gnu.org/).
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma warninglevel=3
|
||||
|
||||
#define I_( x ) hb_i18n_gettext( x )
|
||||
|
||||
#if ! defined( __HBSCRIPT__HBRUN )
|
||||
|
||||
FUNCTION hbmk2_plugin_lib2dyn( hbmk2 )
|
||||
LOCAL cRetVal := ""
|
||||
|
||||
LOCAL cSrc
|
||||
|
||||
LOCAL cCommand
|
||||
LOCAL nError
|
||||
|
||||
LOCAL cStdOut
|
||||
LOCAL cLine
|
||||
|
||||
LOCAL cOldDir
|
||||
|
||||
SWITCH hbmk2[ "cSTATE" ]
|
||||
CASE "init"
|
||||
|
||||
hbmk2[ "vars" ][ "aOBJ_Src" ] := {}
|
||||
EXIT
|
||||
|
||||
CASE "pre_all"
|
||||
|
||||
/* Gather input parameters */
|
||||
|
||||
hbmk2[ "vars" ][ "aLIB_Src" ] := {}
|
||||
|
||||
FOR EACH cSrc IN hbmk2[ "params" ]
|
||||
SWITCH Lower( hbmk2_FNameExtGet( cSrc ) )
|
||||
CASE ".a"
|
||||
AAdd( hbmk2[ "vars" ][ "aLIB_Src" ], cSrc )
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
NEXT
|
||||
|
||||
FOR EACH cSrc IN hbmk2[ "vars" ][ "aLIB_Src" ]
|
||||
|
||||
cCommand := "ar" +;
|
||||
" -t" +;
|
||||
" " + hbmk2_FNameEscape( hbmk2_PathSepToTarget( hbmk2, cSrc ), hbmk2[ "nCmd_Esc" ], hbmk2[ "nCmd_FNF" ] )
|
||||
|
||||
IF hbmk2[ "lTRACE" ]
|
||||
IF ! hbmk2[ "lQUIET" ]
|
||||
hbmk2_OutStd( hbmk2, I_( "'ar' command:" ) )
|
||||
ENDIF
|
||||
hbmk2_OutStdRaw( cCommand )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk2[ "lDONTEXEC" ]
|
||||
IF ( nError := hb_processRun( cCommand,, @cStdOut ) ) != 0
|
||||
hbmk2_OutErr( hbmk2, hb_StrFormat( I_( "Error: Running 'ar' executable. %1$s" ), hb_ntos( nError ) ) )
|
||||
IF ! hbmk2[ "lQUIET" ]
|
||||
hbmk2_OutErrRaw( cCommand )
|
||||
ENDIF
|
||||
IF ! hbmk2[ "lIGNOREERROR" ]
|
||||
cRetVal := "error"
|
||||
EXIT
|
||||
ENDIF
|
||||
ELSE
|
||||
FOR EACH cLine IN hb_ATokens( StrTran( cStdOut, Chr( 13 ) ), Chr( 10 ) )
|
||||
IF ! Empty( cLine )
|
||||
cLine := hbmk2_FNameDirExtSet( hbmk2_FNameNameGet( cLine ), hbmk2[ "cWorkDir" ] )
|
||||
AAdd( hbmk2[ "vars" ][ "aOBJ_Src" ], cLine )
|
||||
hbmk2_AddInput_OBJ( hbmk2, cLine )
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
EXIT
|
||||
|
||||
CASE "pre_all"
|
||||
|
||||
EXIT
|
||||
|
||||
CASE "pre_link"
|
||||
|
||||
IF ! hbmk2[ "lCLEAN" ] .AND. ;
|
||||
! Empty( hbmk2[ "vars" ][ "aLIB_Src" ] )
|
||||
|
||||
FOR EACH cSrc IN hbmk2[ "vars" ][ "aLIB_Src" ]
|
||||
|
||||
cCommand := "ar" +;
|
||||
" -x" +;
|
||||
" " + hbmk2_FNameEscape( hbmk2_PathSepToTarget( hbmk2, hbmk2_PathNormalize( hbmk2_PathMakeAbsolute( cSrc, hbmk2_PathFromWorkdirToCWD( hbmk2 ) ) ) ), hbmk2[ "nCmd_Esc" ], hbmk2[ "nCmd_FNF" ] )
|
||||
|
||||
IF hbmk2[ "lTRACE" ]
|
||||
IF ! hbmk2[ "lQUIET" ]
|
||||
hbmk2_OutStd( hbmk2, I_( "'ar' command:" ) )
|
||||
ENDIF
|
||||
hbmk2_OutStdRaw( cCommand )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk2[ "lDONTEXEC" ]
|
||||
cOldDir := hbmk2_CWD()
|
||||
DirChange( hbmk2[ "cWorkDir" ] )
|
||||
IF ( nError := hb_processRun( cCommand ) ) != 0
|
||||
DirChange( cOldDir )
|
||||
hbmk2_OutErr( hbmk2, hb_StrFormat( I_( "Error: Running 'ar' executable. %1$s" ), hb_ntos( nError ) ) )
|
||||
IF ! hbmk2[ "lQUIET" ]
|
||||
hbmk2_OutErrRaw( cCommand )
|
||||
ENDIF
|
||||
IF ! hbmk2[ "lIGNOREERROR" ]
|
||||
cRetVal := "error"
|
||||
EXIT
|
||||
ENDIF
|
||||
ELSE
|
||||
DirChange( cOldDir )
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
|
||||
EXIT
|
||||
|
||||
CASE "pre_c"
|
||||
|
||||
EXIT
|
||||
|
||||
CASE "post_all"
|
||||
|
||||
IF ! hbmk2[ "lINC" ] .OR. hbmk2[ "lCLEAN" ]
|
||||
AEval( hbmk2[ "vars" ][ "aOBJ_Src" ], {| tmp | FErase( tmp ) } )
|
||||
ENDIF
|
||||
|
||||
EXIT
|
||||
|
||||
ENDSWITCH
|
||||
|
||||
RETURN cRetVal
|
||||
@@ -1,129 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# Copyright 2003 Przemyslaw Czerpak <druzus@priv.onet.pl>
|
||||
# simple script run after Harbour make install to finish install
|
||||
# process
|
||||
#
|
||||
# See COPYING for licensing terms.
|
||||
# ---------------------------------------------------------------
|
||||
|
||||
if [ -z "${__running_in_posix_sh__}" ]
|
||||
then
|
||||
__running_in_posix_sh__=1
|
||||
export __running_in_posix_sh__
|
||||
|
||||
[ -x /usr/bin/posix/sh ] && \
|
||||
exec /usr/bin/posix/sh "$0" ${1+"$@"}
|
||||
[ -x /usr/xpg4/bin/sh ] && \
|
||||
exec /usr/xpg4/bin/sh "$0" ${1+"$@"}
|
||||
|
||||
exec /bin/sh "$0" ${1+"$@"}
|
||||
fi
|
||||
|
||||
unset __running_in_posix_sh__
|
||||
|
||||
__builtin_which()
|
||||
{
|
||||
what="$1"
|
||||
ret=1
|
||||
oIFS="$IFS"
|
||||
IFS=:
|
||||
for pathcomp in $PATH
|
||||
do
|
||||
if [ -x "${pathcomp}"/"${what}" ]
|
||||
then
|
||||
ret=0
|
||||
echo "${pathcomp}"/"${what}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$oIFS"
|
||||
return $ret
|
||||
}
|
||||
|
||||
if [ -z "$HB_PLATFORM" ] || [ -z "$HB_COMPILER" ] || \
|
||||
[ -z "$HB_BIN_INSTALL" ] || \
|
||||
[ -z "$HB_INC_INSTALL" ] || \
|
||||
[ -z "$HB_LIB_INSTALL" ]
|
||||
then
|
||||
echo "The following envvars must be set:"
|
||||
echo " HB_PLATFORM"
|
||||
echo " HB_COMPILER"
|
||||
echo " HB_BIN_INSTALL"
|
||||
echo " HB_INC_INSTALL"
|
||||
echo " HB_LIB_INSTALL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
hb_root=`dirname "$0"`
|
||||
if [ "${hb_root}" = "." ]
|
||||
then
|
||||
hb_root=".."
|
||||
else
|
||||
hb_root=`dirname "${hb_root}"`
|
||||
fi
|
||||
if [ ! -f ${hb_root}/bin/hb-func.sh ] && [ -f ./bin/hb-func.sh ]
|
||||
then
|
||||
hb_root="."
|
||||
fi
|
||||
|
||||
. ${hb_root}/bin/hb-func.sh
|
||||
|
||||
__install="` __builtin_which install `"
|
||||
|
||||
# chmod 644 ${HB_INC_INSTALL}/*
|
||||
|
||||
if [ "$HB_COMPILER" = "gcc" ] || \
|
||||
[ "$HB_COMPILER" = "mingw" ] || \
|
||||
[ "$HB_COMPILER" = "mingw64" ] || \
|
||||
[ "$HB_COMPILER" = "mingwarm" ] || \
|
||||
[ "$HB_COMPILER" = "cygwin" ] || \
|
||||
[ "$HB_COMPILER" = "djgpp" ] || \
|
||||
[ "$HB_COMPILER" = "icc" ] || \
|
||||
[ "$HB_COMPILER" = "sunpro" ] || \
|
||||
[ "$HB_COMPILER" = "open64" ] || \
|
||||
[ "$HB_COMPILER" = "clang" ]
|
||||
then
|
||||
if [ -n "${HB_TOOLS_PREF}" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/${HB_TOOLS_PREF}-mkdyn"
|
||||
rm -f "${hb_mkdyn}"
|
||||
sed -e "s!^# HB_PLATFORM=\"\"\$!HB_PLATFORM=\"${HB_PLATFORM}\"!g" \
|
||||
-e "s!^# HB_CCPREFIX=\"\"\$![ -n \"\${HB_CCPREFIX}\" ] || HB_CCPREFIX=\"${HB_CCPREFIX}\"!g" \
|
||||
-e "s!^# HB_CCPATH=\"\"\$![ -n \"\${HB_CCPATH}\" ] || HB_CCPATH=\"${HB_CCPATH}\"!g" \
|
||||
"${hb_root}/bin/hb-mkdyn.sh" > "${hb_mkdyn}" && \
|
||||
chmod 755 "${hb_mkdyn}"
|
||||
elif [ "$HB_COMPILER" = "icc" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/hb-mkdyn"
|
||||
rm -f "${hb_mkdyn}"
|
||||
sed -e "s/gcc/icc/g" "${hb_root}/bin/hb-mkdyn.sh" > "${hb_mkdyn}" && \
|
||||
chmod 755 "${hb_mkdyn}"
|
||||
elif [ "$HB_COMPILER" = "sunpro" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/hb-mkdyn"
|
||||
rm -f "${hb_mkdyn}"
|
||||
lnopt=""
|
||||
[ "$HB_BUILD_OPTIM" = "no" ] || lnopt="-fast -xnolibmopt $lnopt"
|
||||
sed -e "s/gcc -shared/suncc -G ${lnopt} ${HB_ISAOPT}/g" \
|
||||
"${hb_root}/bin/hb-mkdyn.sh" > "${hb_mkdyn}" && \
|
||||
chmod 755 "${hb_mkdyn}"
|
||||
elif [ "$HB_COMPILER" = "open64" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/hb-mkdyn"
|
||||
rm -f "${hb_mkdyn}"
|
||||
sed -e "s/gcc/opencc/g" "${hb_root}/bin/hb-mkdyn.sh" > "${hb_mkdyn}" && \
|
||||
chmod 755 "${hb_mkdyn}"
|
||||
elif [ "${HB_PLATFORM}" = "sunos" ] || \
|
||||
[ "${HB_PLATFORM}" = "hpux" ] || \
|
||||
[ -z "${__install}" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/hb-mkdyn"
|
||||
rm -f "${hb_mkdyn}"
|
||||
cp "${hb_root}/bin/hb-mkdyn.sh" "${hb_mkdyn}" && \
|
||||
chmod 755 "${hb_mkdyn}"
|
||||
elif [ "${HB_PLATFORM}" != "dos" ]; then
|
||||
hb_mkdyn="${HB_BIN_INSTALL}/hb-mkdyn"
|
||||
# Without -c some OSes _move_ the file instead of copying it!
|
||||
${__install} -c -m 755 "${hb_root}/bin/hb-mkdyn.sh" "${hb_mkdyn}"
|
||||
fi
|
||||
fi
|
||||
@@ -73,7 +73,8 @@ PROCEDURE Main()
|
||||
hb_FCopy( "TODO" , GetEnv( "HB_INSTALL_PREFIX" ) + hb_ps() + "TODO" )
|
||||
|
||||
/* public Harbour scripts */
|
||||
FOR EACH tmp IN { "hbxpatch.hbs" }
|
||||
FOR EACH tmp IN { "hbmk_l2d.hbs" ,;
|
||||
"hbxpatch.hbs" }
|
||||
hb_FCopy( "bin" + hb_ps() + tmp, GetEnv( "HB_BIN_INSTALL" ) + hb_ps() + tmp )
|
||||
NEXT
|
||||
ENDIF
|
||||
@@ -174,7 +175,6 @@ PROCEDURE Main()
|
||||
|
||||
IF ! Empty( cBin_Tar )
|
||||
|
||||
|
||||
cTar_Name := GetEnv( "HB_PKGNAME" )
|
||||
IF ! Empty( tmp := unix_name() )
|
||||
cTar_Name += tmp
|
||||
|
||||
@@ -2641,7 +2641,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
ENDIF
|
||||
|
||||
/* Start doing the make process. */
|
||||
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lCreateImpLib ] .AND. ( Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) + Len( hbmk[ _HBMK_aCPP ] ) + Len( hbmk[ _HBMK_aOBJUSER ] ) + Len( l_aOBJA ) ) == 0
|
||||
IF ! hbmk[ _HBMK_lStopAfterInit ] .AND. ! hbmk[ _HBMK_lCreateImpLib ] .AND. ( Len( hbmk[ _HBMK_aPLUGINPars ] ) + Len( hbmk[ _HBMK_aPRG ] ) + Len( hbmk[ _HBMK_aC ] ) + Len( hbmk[ _HBMK_aCPP ] ) + Len( hbmk[ _HBMK_aOBJUSER ] ) + Len( l_aOBJA ) ) == 0
|
||||
hbmk_OutErr( hbmk, I_( "Error: No source files were specified." ) )
|
||||
IF hbmk[ _HBMK_lBEEP ]
|
||||
DoBeep( .F. )
|
||||
@@ -7180,6 +7180,7 @@ STATIC PROCEDURE PlugIn_Load( hbmk, cFileName )
|
||||
|
||||
/* Public functions accessible for plugins */
|
||||
|
||||
FUNCTION hbmk2_CWD() ; RETURN hb_pwd()
|
||||
FUNCTION hbmk2_FindInPath( ... ) ; RETURN FindInPath( ... )
|
||||
FUNCTION hbmk2_PathNormalize( ... ) ; RETURN PathNormalize( ... )
|
||||
FUNCTION hbmk2_PathMakeAbsolute( ... ) ; RETURN PathMakeAbsolute( ... )
|
||||
@@ -7230,6 +7231,13 @@ STATIC FUNCTION ctx_to_hbmk( ctx )
|
||||
ENDIF
|
||||
RETURN NIL
|
||||
|
||||
FUNCTION hbmk2_PathFromWorkdirToCWD( ctx )
|
||||
LOCAL hbmk := ctx_to_hbmk( ctx )
|
||||
IF hbmk != NIL
|
||||
RETURN DirAddPathSep( PathMakeRelative( PathNormalize( PathMakeAbsolute( hbmk[ _HBMK_cWorkDir ], hb_pwd() ) ), hb_pwd(), .T. ) )
|
||||
ENDIF
|
||||
RETURN ""
|
||||
|
||||
FUNCTION hbmk2_Macro( ctx, cString )
|
||||
LOCAL hbmk := ctx_to_hbmk( ctx )
|
||||
IF hbmk != NIL
|
||||
@@ -7289,6 +7297,13 @@ FUNCTION hbmk2_AddInput_RC( ctx, cFileName )
|
||||
ENDIF
|
||||
RETURN NIL
|
||||
|
||||
FUNCTION hbmk2_AddInput_OBJ( ctx, cFileName )
|
||||
LOCAL hbmk := ctx_to_hbmk( ctx )
|
||||
IF hbmk != NIL .AND. ISCHARACTER( cFileName )
|
||||
AAdd( hbmk[ _HBMK_aOBJUSER ], PathSepToSelf( cFileName ) )
|
||||
ENDIF
|
||||
RETURN NIL
|
||||
|
||||
FUNCTION hbmk2_AddInput_INSTFILE( ctx, cFileName, cGroup )
|
||||
LOCAL hbmk := ctx_to_hbmk( ctx )
|
||||
IF hbmk != NIL .AND. ISCHARACTER( cFileName )
|
||||
|
||||
Reference in New Issue
Block a user