php8/macros.php

97 lines
2.8 KiB
PHP

# macros.php file
# macros for module building. handle with care.
#
# Interface versions exposed by PHP:
#
%php_core_api @PHP_APIVER@
%php_zend_api @PHP_ZENDVER@
# Useful php macros (from Christian Wittmer <chris@computersalat.de>)
#
%__php /usr/bin/php
%__phpize /usr/bin/phpize
%__php_config /usr/bin/php-config
%php_version %(%{__php_config} --version)
%php_cfgdir %(%{__php_config} --ini-dir)
%php_extdir %(%{__php_config} --extension-dir)
# pear related macros
%__pear /usr/bin/pear
%php_peardir %(%{__pear} config-get php_dir)
# %pear_xmldir should be replaced by %php_pearxmldir
%pear_xmldir /var/lib/pear
%php_pearxmldir /var/lib/pear
%pear_phpdir %(%{__pear} config-get php_dir 2> /dev/null || echo undefined)
%pear_docdir %(%{__pear} config-get doc_dir 2> /dev/null || echo undefined)
%pear_testdir %(%{__pear} config-get test_dir 2> /dev/null || echo undefined)
%pear_datadir %(%{__pear} config-get data_dir 2> /dev/null || echo undefined)
%pear_cfgdir %(%{__pear} config-get cfg_dir 2> /dev/null || echo undefined)
%pear_wwwdir %(%{__pear} config-get www_dir 2> /dev/null || echo undefined)
%pear_metadir %(%{__pear} config-get metadata_dir 2> /dev/null || echo undefined)
# pecl related macros
%__pecl /usr/bin/pecl
%pecl_phpdir %(%{__pecl} config-get php_dir 2> /dev/null || echo undefined)
%pecl_docdir %(%{__pecl} config-get doc_dir 2> /dev/null || echo undefined)
%pecl_testdir %(%{__pecl} config-get test_dir 2> /dev/null || echo undefined)
%pecl_datadir %(%{__pecl} config-get data_dir 2> /dev/null || echo undefined)
# macro: php_pear_gen_filelist
# do the rpmlint happy filelist generation
# with %dir in front of directories
%php_pear_gen_filelist(n)\
FILES=%{name}.files\
# fgen_dir func\
# IN: dir\
fgen_dir(){\
%{__cat} >> $FILES << EOF\
%dir ${1}\
EOF\
}\
# fgen_file func\
# IN: file\
fgen_file(){\
%{__cat} >> $FILES << EOF\
${1}\
EOF\
}\
# check for files in %{php_peardir}\
RES=`find ${RPM_BUILD_ROOT}%{php_peardir} -maxdepth 1 -type f`\
if [ -n "$RES" ]; then\
for file in $RES; do\
fgen_file "%{php_peardir}/$(basename ${file})"\
done\
fi\
\
# get all dirs into array\
base_dir="${RPM_BUILD_ROOT}%{php_peardir}/"\
for dir in `find ${base_dir} -type d | sort`; do\
if [ "$dir" = "${base_dir}" ]; then\
continue\
else\
el=`echo $dir | %{__awk} -F"${base_dir}" '{print $2}'`\
all_dir=(${all_dir[@]} $el)\
fi\
done\
\
# build filelist\
for i in ${all_dir[@]}; do\
if [ -d ${base_dir}/${i} ]; then\
RES=`find "${base_dir}/${i}" -maxdepth 1 -type f`\
if [ -n "$RES" ]; then\
fgen_dir "%{php_peardir}/${i}"\
for file in $RES; do\
fgen_file "%{php_peardir}/${i}/$(basename ${file})"\
done\
else\
fgen_dir "%{php_peardir}/${i}"\
fi\
fi\
done\
# add xml file\
fgen_file "%php_pearxmldir/%{pear_name}.xml"\
#