* contrib/hbrun/hbrun.hbp
* ChangeLog.txt
* package/harbour-wce.spec.in
* package/harbour-win.spec.in
* package/harbour.spec
* package/mpkg_rpm_wce.sh
* package/mpkg_rpm_win.sh
* package/mpkg_rpm.sh
* package/mpkg_src.sh
* package/mpkg_ver.sh
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
* package/harb_osx.icns -> package/harbour.icns
* package/harb_win.ico -> package/harbour.ico
* package/harb_win.mft -> package/harbour.mft
* package/harb_win.rc -> package/harbour.rc
* utils/hbmk2/hbmk2.rc -> utils/hbmk2/harbour.rc
* sync more file renames with the 3.4 fork
NOTE: some projects used to rely on harb_win.ico. This will
not work anymore and these will need to be updated or even
better fixed to rely on it local .ico file instead.
* sync bash formatting and fixes. Formatting guidelines here
https://google.github.io/styleguide/shell.xml
* sync two hbmk2 macro names
180 lines
5.1 KiB
Bash
Executable File
180 lines
5.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# ---------------------------------------------------------------
|
|
# Copyright 2003 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
|
# simple script to build RPMs from Harbour sources
|
|
#
|
|
# See LICENSE.txt for licensing terms.
|
|
# ---------------------------------------------------------------
|
|
|
|
test_reqrpm() {
|
|
rpm -q --whatprovides "$1" >/dev/null 2>&1
|
|
}
|
|
|
|
NEED_RPM='make gcc binutils'
|
|
|
|
FORCE=''
|
|
|
|
LAST=''
|
|
while [ $# -gt 0 ]; do
|
|
if [ "$1" = '--force' ]; then
|
|
FORCE='yes'
|
|
else
|
|
INST_PARAM="${INST_PARAM} $1"
|
|
if [ "${LAST}" = '--with' ]; then
|
|
[ "$1" = 'mysql' ] && NEED_RPM="${NEED_RPM} mysql-devel"
|
|
[ "$1" = 'odbc' ] && NEED_RPM="${NEED_RPM} unixODBC-devel"
|
|
[ "$1" = 'pgsql' ] && NEED_RPM="${NEED_RPM} postgresql-devel"
|
|
[ "$1" = 'firebird' ] && NEED_RPM="${NEED_RPM} firebird-devel"
|
|
[ "$1" = 'freeimage' ] && NEED_RPM="${NEED_RPM} freeimage-devel"
|
|
[ "$1" = 'allegro' ] && NEED_RPM="${NEED_RPM} allegro-devel"
|
|
fi
|
|
fi
|
|
LAST="$1"
|
|
shift
|
|
done
|
|
|
|
if [ "$HB_WITH_ADS" != 'no' ]; then
|
|
if [ -f /usr/local/ads/acesdk/ace.h ] || \
|
|
[ -f "${HOME}/ads/acesdk/ace.h" ] || \
|
|
[ -f "${HB_WITH_ADS}/ace.h" ]; then
|
|
INST_PARAM="${INST_PARAM} --with ads"
|
|
fi
|
|
fi
|
|
if test_reqrpm 'allegro-devel' && \
|
|
[ "$HB_WITH_ALLEGRO" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with allegro"
|
|
fi
|
|
if test_reqrpm 'cairo-devel' && \
|
|
[ "$HB_WITH_CAIRO" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with cairo"
|
|
fi
|
|
if test_reqrpm 'libcups2-devel' && \
|
|
[ "$HB_WITH_CUPS" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with cups"
|
|
fi
|
|
if test_reqrpm 'curl-devel' && \
|
|
[ "$HB_WITH_CURL" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with curl"
|
|
fi
|
|
if test_reqrpm 'openssl' && \
|
|
[ "$HB_WITH_OPENSSL" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with openssl"
|
|
fi
|
|
if test_reqrpm 'firebird-devel' && \
|
|
[ "$HB_WITH_FIREBIRD" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with firebird"
|
|
fi
|
|
if test_reqrpm 'freeimage-devel' && \
|
|
[ "$HB_WITH_FREEIMAGE" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with freeimage"
|
|
fi
|
|
if test_reqrpm 'gd-devel' && \
|
|
[ "$HB_WITH_GD" != 'no' ]; then
|
|
v="$(rpm -q --whatprovides gd-devel --qf "%{VERSION}" | sed -e 's/[^0-9]*\([0-9]*\).*/\1/g')"
|
|
[ "$v" -ge 2 ] && INST_PARAM="${INST_PARAM} --with gd"
|
|
fi
|
|
if ( test_reqrpm 'MySQL-devel' || \
|
|
test_reqrpm 'mysql-devel' ) && \
|
|
[ "$HB_WITH_MYSQL" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with mysql"
|
|
fi
|
|
if ( test_reqrpm 'unixodbc-devel' || \
|
|
test_reqrpm 'unixODBC-devel' ) && \
|
|
[ "$HB_WITH_ODBC" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with odbc"
|
|
fi
|
|
if test_reqrpm 'postgresql-devel' && \
|
|
[ "$HB_WITH_PGSQL" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --with pgsql"
|
|
fi
|
|
|
|
if [ "${HB_BUILD_NOGPLLIB}" = 'yes' ]; then
|
|
INST_PARAM="${INST_PARAM} --without gpllib"
|
|
fi
|
|
if [ "${HB_BUILD_NOGPLLIB}" = 'yes' ] || \
|
|
[ "$HB_WITH_GPM" = 'no' ] || \
|
|
! test_reqrpm 'gpm-devel'; then
|
|
INST_PARAM="${INST_PARAM} --without gpm"
|
|
fi
|
|
if ! test_reqrpm 'XFree86-devel' && \
|
|
[ "$HB_WITH_X11" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --without X11"
|
|
fi
|
|
if ! test_reqrpm 'ncurses' || \
|
|
! test_reqrpm 'ncurses-devel' || \
|
|
[ "$HB_WITH_CURSES" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --without curses"
|
|
fi
|
|
if ! test_reqrpm 'slang' || \
|
|
! test_reqrpm 'slang-devel' || \
|
|
[ "$HB_WITH_SLANG" != 'no' ]; then
|
|
INST_PARAM="${INST_PARAM} --without slang"
|
|
fi
|
|
if ( [ ! -f /usr/include/zlib.h ] && \
|
|
[ ! -f /usr/local/include/zlib.h ] ) || \
|
|
[ "$HB_WITH_ZLIB" = 'local' ]; then
|
|
INST_PARAM="${INST_PARAM} --with localzlib"
|
|
fi
|
|
if ( [ ! -f /usr/include/pcre.h ] && \
|
|
[ ! -f /usr/local/include/pcre.h ] ) || \
|
|
[ "$HB_WITH_PCRE" = 'local' ]; then
|
|
INST_PARAM="${INST_PARAM} --with localpcre"
|
|
fi
|
|
if ( [ ! -f /usr/include/bzlib.h ] && \
|
|
[ ! -f /usr/local/include/bzlib.h ] ) || \
|
|
[ "$HB_WITH_BZIP2" = 'local' ]; then
|
|
INST_PARAM="${INST_PARAM} --with localbz2"
|
|
fi
|
|
|
|
TOINST_LST=''
|
|
for i in ${NEED_RPM}; do
|
|
test_reqrpm "$i" || TOINST_LST="${TOINST_LST} $i"
|
|
done
|
|
|
|
if [ -z "${TOINST_LST}" ] || [ "${FORCE}" = 'yes' ]; then
|
|
cd "$(dirname "$0")"
|
|
. ./mpkg_src.sh
|
|
stat="$?"
|
|
if [ -z "${hb_filename}" ]; then
|
|
echo "The script ./mpkg_src.sh didn't set archive name to \${hb_filename}"
|
|
exit 1
|
|
elif [ "${stat}" != 0 ]; then
|
|
echo 'Error during packing the sources in ./mpkg_src.sh'
|
|
exit 1
|
|
elif [ -f "${hb_filename}" ]; then
|
|
if [ "$(id -u)" != 0 ] && \
|
|
[ ! -f "${HOME}/.rpmmacros" ]; then
|
|
RPMDIR="${HOME}/RPM"
|
|
mkdir -p \
|
|
"${RPMDIR}/BUILD" \
|
|
"${RPMDIR}/RPMS" \
|
|
"${RPMDIR}/SOURCES" \
|
|
"${RPMDIR}/SPECS" \
|
|
"${RPMDIR}/SRPMS"
|
|
echo "%_topdir ${RPMDIR}" > "${HOME}/.rpmmacros"
|
|
else
|
|
RPMDIR=$(rpm --eval %_topdir)
|
|
fi
|
|
|
|
mv -f "${hb_filename}" "${RPMDIR}/SOURCES/"
|
|
cp harbour.spec "${RPMDIR}/SPECS/"
|
|
|
|
if which rpmbuild >/dev/null 2>&1; then
|
|
RPMBLD='rpmbuild'
|
|
else
|
|
RPMBLD='rpm'
|
|
fi
|
|
cd ${RPMDIR}/SPECS
|
|
${RPMBLD} -ba harbour.spec ${INST_PARAM}
|
|
else
|
|
echo "Cannot find archive file: ${hb_filename}"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo 'If you want to build Harbour compiler'
|
|
echo 'you have to install the folowing RPM files:'
|
|
echo "${TOINST_LST}"
|
|
exit 1
|
|
fi
|