Blob Blame History Raw
#
# . ./build.vars and set -o errexit are assumed.
#

parse_with_pkg_name ${SCRIPT_FNAME%[0-9][0-9]*} ${2} ${PKG_BUILD_NAMES};
if ! is_build_script_done fetch; then
	if test_cmd pkg_${PKG_NAME}_fetch; then
		pkg_${PKG_NAME}_fetch;
	else
		if [ "${PKG_URL_TYPE:-wget}" = wget ]; then
			fetch "${PKG_URL}" ${PKG_SHA256SUM};
		else
			fetch_git ${PKG_SUBDIR} ${PKG_URL} "${PKG_GIT_ARGS_EXTRA}";
		fi;
	fi;
	set_build_script_done fetch -extract;
fi;
if test_cmd pkg_${PKG_NAME}_finish; then
	pkg_${PKG_NAME}_finish; exit 0;
elif [ "${PKG_URL_TYPE:-wget}" = wget ] &&\
! is_build_script_done extract; then
	rm_if_exists ${PKG_SUBDIR};
	if [ ${PKG_SUBDIR_CREATE:-0} -eq 1 ]; then
		mkdir ${PKG_SUBDIR};
	fi;
	if [ "${PKG_FNAME##*.tar.}" = "bz2" ]; then
		bunzip2 -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	elif [ "${PKG_FNAME##*.tar.}" = "gz" ]; then
		gunzip -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	elif [ "${PKG_FNAME##*.tar.}" = "xz" ]; then
		xz -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	elif [ "${PKG_FNAME##*.t}" = "bz2" ]; then
		bunzip2 -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	elif [ "${PKG_FNAME##*.t}" = "gz" ]; then
		gunzip -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	elif [ "${PKG_FNAME##*.t}" = "xz" ]; then
		xz -d < ${PKG_FNAME} | tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf -;
	else
		tar ${PKG_SUBDIR_CREATE:+-C ${PKG_SUBDIR}} -xf ${PKG_FNAME};
	fi;
	if test_cmd pkg_${PKG_NAME}_extract_post; then
		pkg_${PKG_NAME}_extract_post;
	fi;
	set_build_script_done extract -build_dir;
fi;
if [ -z "${PKG_BUILD_DIR}" ]; then
	set_build_dir ${PKG_SUBDIR} ${PKG_BUILD_TYPE:-native};
fi;
if ! is_build_script_done build_dir; then
	[ "${PKG_SUBDIR}" != "${PKG_BUILD_DIR}" ] &&\
		rm_if_exists -m ${PKG_BUILD_DIR};
	set_build_script_done build_dir -patch;
fi;
if ! is_build_script_done patch; then
	if [ ${PKG_AUTOGEN:-0} -eq 1 ]; then
		if [ -d ${PKG_SUBDIR}/build-aux ]; then
			install -m 0700 ${MIDIPIX_BUILD_PWD}/config.sub			\
				${PKG_SUBDIR}/build-aux;
		fi;
		if [ -x ${PKG_SUBDIR}/autogen.sh ]; then
			(cd ${PKG_SUBDIR} && ./autogen.sh) || exit 1;
		fi;
	elif [ ${PKG_AUTOCONF:-0} -eq 1 ]; then
		if [ -d ${PKG_SUBDIR}/build-aux ]; then
			install -m 0700 ${MIDIPIX_BUILD_PWD}/config.sub			\
				${PKG_SUBDIR}/build-aux;
		fi;
		if [ -r ${PKG_SUBDIR}/configure.ac ]; then
			(cd ${PKG_SUBDIR} && autoconf) || exit 1;
		fi;
	fi;
	for PATCH_FNAME in portage/${PKG_SUBDIR}.midipix.patch				\
			${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local.patch			\
			${MIDIPIX_BUILD_PWD}/${PKG_SUBDIR}.local@${BUILD_HNAME}.patch	\
			${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local.patch		\
			${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}.local@${BUILD_HNAME}.patch; do
		[ -r "${PATCH_FNAME}" ] &&\
			patch -b -d ${PKG_SUBDIR} -p1 < ${PATCH_FNAME};
	done; unset PATCH_FNAME;
	if [ -n "${PKG_PATCHES_EXTRA_URL}" ]; then
		apply_patches ${PKG_PATCHES_EXTRA_URL} ${PKG_SUBDIR};
		if [ -n "${PKG_PATCHES_EXTRA_MANIFEST}" ]; then
			compare_hash_manifest ${PKG_PATCHES_EXTRA_MANIFEST};
		fi;
	fi;
	[ -x ${PKG_SUBDIR}/configure ] &&			\
		cp portage/config.cache ${PKG_BUILD_DIR}/;
	if [ ${PKG_LIBTOOL_MIDIPIX:-0} -eq 1 ]; then
		cp portage/libtool.midipix ${PKG_SUBDIR}/;
		sed -i.orig -e "/^libdir=/s/libdir='/libdir='\$PKG_PREFIX\//"\
			${PKG_SUBDIR}/libtool.midipix;
		if [ ${PKG_LIBTOOL_MIDIPIX_FIX:-0} -eq 1 ]; then
			sed -i.orig.orig									\
				-e '/^\s\+test \"\$inst_prefix_dir\" = \"\$destdir\" && \\$/{s/^/#/;n;s/^/#/}'	\
				${PKG_SUBDIR}/libtool.midipix;
		fi;
	fi;
	set_build_script_done patch -configure;
fi;
cd ${PKG_BUILD_DIR};
if [ -x ../${PKG_SUBDIR}/configure ]\
&& ! is_build_script_done configure; then
	if test_cmd pkg_${PKG_NAME}_configure_pre; then
		pkg_${PKG_NAME}_configure_pre;
	fi;
	AR="${PKG_AR_CONFIGURE}" CC="${PKG_CC_CONFIGURE}"\
	CFLAGS="${PKG_CFLAGS_CONFIGURE}${PKG_CFLAGS_CONFIGURE_EXTRA:+ ${PKG_CFLAGS_CONFIGURE_EXTRA}}"\
	LDFLAGS="${PKG_LDFLAGS_CONFIGURE}${PKG_LDFLAGS_CONFIGURE_EXTRA:+ ${PKG_LDFLAGS_CONFIGURE_EXTRA}}"\
	../${PKG_SUBDIR}/configure				\
		${PKG_CONFIGURE_ARGS} ${PKG_CONFIGURE_ARGS_EXTRA};
	set_build_script_done configure clean -build;
else
	set_build_script_done clean;
fi;
if [ ${PKG_NO_CLEAN:-0} -eq 0 ]\
&& ! is_build_script_done clean; then
	make clean;
	set_build_script_done clean -build;
fi;
if ! is_build_script_done build; then
	if test_cmd pkg_${PKG_NAME}_build; then
		pkg_${PKG_NAME}_build;
	else
		if [ "${PKG_SLIBTOOL}" != "none" ]; then
			export MAKE="make LIBTOOL=${PKG_SLIBTOOL:-slibtool}";
		fi;
		run_cmd_unsplit make					\
			${PKG_MAKEFLAGS_BUILD}				\
			${PKG_MAKEFLAGS_BUILD_EXTRA}			\
			"${PKG_AR_BUILD:+AR=${PKG_AR_BUILD}}"		\
			"${PKG_CC_BUILD:+CC=${PKG_CC_BUILD}}"		\
			"${PKG_CFLAGS_BUILD:+CFLAGS=${PKG_CFLAGS_BUILD}}"\
			"${PKG_CFLAGS_BUILD_EXTRA:+CFLAGS+=${PKG_CFLAGS_BUILD_EXTRA}}"\
			"${PKG_LDFLAGS_BUILD:+LDFLAGS=${PKG_LDFLAGS_BUILD}}"\
			"${PKG_LDFLAGS_BUILD_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_BUILD_EXTRA}}"\
			"${PKG_RANLIB_BUILD:+RANLIB=${PKG_RANLIB_BUILD}}";
	fi;
	set_build_script_done build -install;
fi;
if ! is_build_script_done install; then
	if test_cmd pkg_${PKG_NAME}_install; then
		pkg_${PKG_NAME}_install;
	else
		run_cmd_unsplit make				\
			${PKG_MAKEFLAGS_INSTALL}		\
			${PKG_MAKEFLAGS_INSTALL_EXTRA}		\
			"${PKG_AR_INSTALL:+AR=${PKG_AR_INSTALL}}"\
			"${PKG_CC_INSTALL:+CC=${PKG_CC_INSTALL}}"\
			"${PKG_CC_INSTALL:+CC=${PKG_CC_INSTALL}}"\
			"${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}"\
			"${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}"\
			"${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}"\
			"${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}"\
			"${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}"\
			${PKG_INSTALL_TARGET:=install};
		if [ -n "${PKG_PREFIX_EXTRA}" ]; then
			run_cmd_unsplit make			\
				${PKG_MAKEFLAGS_INSTALL}	\
				${PKG_MAKEFLAGS_INSTALL_EXTRA}	\
				"${PKG_AR_INSTALL:+AR=${PKG_AR_INSTALL}}"\
				"${PKG_CC_INSTALL:+CC=${PKG_CC_INSTALL}}"\
				"${PKG_CC_INSTALL:+CC=${PKG_CC_INSTALL}}"\
				"${PKG_CFLAGS_INSTALL:+CFLAGS=${PKG_CFLAGS_INSTALL}}"\
				"${PKG_CFLAGS_INSTALL_EXTRA:+CFLAGS+=${PKG_CFLAGS_INSTALL_EXTRA}}"\
				"${PKG_LDFLAGS_INSTALL:+LDFLAGS=${PKG_LDFLAGS_INSTALL}}"\
				"${PKG_LDFLAGS_INSTALL_EXTRA:+LDFLAGS+=${PKG_LDFLAGS_INSTALL_EXTRA}}"\
				"${PKG_RANLIB_INSTALL:+RANLIB=${PKG_RANLIB_INSTALL}}"\
				${PKG_PREFIX_EXTRA}		\
				${PKG_INSTALL_TARGET:=install};
		fi;
		if test_cmd pkg_${PKG_NAME}_install_post; then
			pkg_${PKG_NAME}_install_post;
		fi;
	fi;
	find ${PKG_PREFIX}/lib -type f -name \*.la -exec rm -f {} \;
	if [ ${PKG_LIBFILES_FIX:-0} -eq 1 ]; then
		find . \( -name '*.so' -or -name '*.so.[0-9]'	\
			-or -name '*.so.[0-9].[0-9]' -or	\
			-name '*.so.[0-9].[0-9].[0-9]' \)	\
			-exec sh -c '				\
		SO_PNAME={}; SO_PNAME=${SO_PNAME#./};		\
		if [ "${SO_PNAME##*.}" = "so" ]; then		\
			SO_NAME=${SO_PNAME%%.*};		\
		else	SO_NAME=${SO_PNAME}; fi;		\
		echo perk -epdlltool ${SO_PNAME} \> ${SO_NAME}.def;					\
		perk -epdlltool ${SO_PNAME} > ${SO_NAME}.def;						\
		echo ${PKG_TARGET}-dlltool -l ${SO_NAME}.lib.a -D ${SO_PNAME} -d ${SO_NAME}.def;		\
		${PKG_TARGET}-dlltool -l ${SO_NAME}.lib.a -D ${SO_PNAME} -d ${SO_NAME}.def;			\
		echo cp ${SO_NAME}.lib.a '"${PKG_PREFIX}/lib"';						\
		cp ${SO_NAME}.lib.a '"${PKG_PREFIX}/lib" \;;

	fi;
	set_build_script_done install -finish;
fi;
set_build_script_done finish;

# vim:filetype=sh