summaryrefslogtreecommitdiff
path: root/make.sh
diff options
context:
space:
mode:
Diffstat (limited to 'make.sh')
-rwxr-xr-xmake.sh78
1 files changed, 72 insertions, 6 deletions
diff --git a/make.sh b/make.sh
index 969d5b838..639b862b9 100755
--- a/make.sh
+++ b/make.sh
@@ -58,6 +58,13 @@ function pkg:patch() {
pkg:libtool_ libtool
pkg:libtool_ ltmain.sh
+ if [ -f "debian/patches/series" ]; then
+ for diff in $(cut -d'#' -f1 < debian/patches/series); do
+ echo "patching with debian ${diff}..."
+ patch ${args:=-p1} < "debian/patches/${diff}"
+ done
+ fi
+
for diff in "${PKG_DATA}"/*.diff; do
if [[ ${diff} =~ .*/_[^/]*.diff$ ]]; then
continue;
@@ -67,6 +74,16 @@ function pkg:patch() {
echo "patching with ${diff}..."
patch ${args:=-p1} <"${diff}"
done
+
+ for diff in "${PKG_DATA}"/*.diff."${PKG_ARCH}"; do
+ if [[ ${diff} =~ .*/_[^/]*.diff.${PKG_ARCH}$ ]]; then
+ continue;
+ fi
+
+ args=$(cat ${diff%.diff}.args 2>/dev/null || true)
+ echo "patching with ${diff}..."
+ patch ${args:=-p1} <"${diff}"
+ done
}
export -f pkg:patch
@@ -93,7 +110,7 @@ function pkg:autoconf() {
patch -F 3 -r/dev/null "${m4}" "${PKG_BASE}/util/libtool.m4.diff" || true
done
- autoconf
+ autoconf
}
export -f pkg:autoconf
@@ -110,10 +127,13 @@ export -f pkg:libtool_
function pkg:setup() {
pkg:extract
- if [ -z ""*/ ]; then
- echo "Empty package??"
- exit 1
- fi
+ if [ -z ""*/ ]; then
+ echo "Empty package??"
+ exit 1
+ fi
+ if [ -d "debian" ]; then
+ mv debian "$(ls | grep -v debian)"
+ fi
cd */
pkg:patch
}
@@ -154,7 +174,7 @@ function pkg:install() {
export -f pkg:install
function pkg:extract() {
- for tgz in "${PKG_DATA}"/*.{tar.{gz,xz,bz2,lz},tgz}; do
+ for tgz in "${PKG_DATA}"/*.{tar.{gz,xz,bz2,lz,lzma},tgz}; do
tar -xf "${tgz}"
done
@@ -172,6 +192,47 @@ function pkg:usrbin() {
export -f pkg:usrbin
+function subpkg:stage_() {
+ shopt -s nullglob extglob
+ export PKG_PARENT="${PKG_NAME}"
+ for install in "${PKG_DATA}"/*.install; do
+ PKG_NAME="$(basename ${install} .install)"
+ . "${PKG_BASE}"/helper.sh
+ echo Staging subproject ${PKG_NAME}
+ IFS=$'\n' read -r -d '' -a PKG_DEB_GLOBS < ${install}
+ rm -rf "${PKG_DEST}"
+ for pkg_deb_glob in "${PKG_DEB_GLOBS[@]}"; do
+ for pkg_deb_file in "${PKG_PARENT_DEST}/"${pkg_deb_glob}; do
+ SRC_FILE="${pkg_deb_file}"
+ DST_FILE="${PKG_DEST}/${SRC_FILE/#${PKG_PARENT_DEST}*(\/)/}"
+ if [ -d "${pkg_deb_file}" ]; then
+ SRC_DIR="${SRC_FILE}"
+ DST_DIR="${DST_FILE}"
+ install -dvp "${SRC_DIR}" "${DST_DIR}"
+ cp -va "${SRC_DIR}" "${DST_DIR}"
+ else
+ SRC_DIR="$(dirname ${SRC_FILE})"
+ DST_DIR="$(dirname ${DST_FILE})"
+ if [ ! -d "${DST_DIR}" ]; then
+ install -dvp "${SRC_DIR}" "${DST_DIR}"
+ fi
+ cp -va "${SRC_FILE}" "${DST_FILE}"
+ fi
+ done
+ done
+ echo Staged subproject ${PKG_DEB_NAME}
+ done
+ echo done
+}
+
+export -f subpkg:stage_
+
+function subpkg:stage() {
+ ${FAKEROOT} bash -c "subpkg:stage_"
+}
+
+export -f subpkg:stage
+
cd "${PKG_WORK}"
"${PKG_BASE}/exec.sh" "${PKG_NAME}" . "${PKG_DATA}/make.sh"
@@ -201,6 +262,10 @@ rmdir_ "${PKG_DEST}/usr/local"
rmdir_ "${PKG_DEST}/usr/lib"
rmdir_ "${PKG_DEST}/usr"
+if grep -r "${PKG_BASE}" "${PKG_DEST}"; then
+ echo "WARNING - files contain ${PWD}"
+fi
+
if [[ -e "${PKG_BASE}/arch/${PKG_ARCH}/${PKG_CFTARG}/strip" ]]; then
. "${PKG_BASE}/arch/${PKG_ARCH}/${PKG_CFTARG}/strip"
fi
@@ -215,6 +280,7 @@ find "${PKG_DEST}" -type f -name '*.elc' -print0 | while read -r -d $'\0' bin; d
done
find "${PKG_DEST}" -type f -name '*.a' -print0 | while read -r -d $'\0' bin; do
+ chmod u+w "${bin}"
"${PKG_BASE}/util/arid" "${bin}"
done