X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=functions%2Fipkg;h=61ba49238cf1bef267b251d8b3f32193fb6f3200;hb=3a7d016a0246156de63a6f98bbf5be2e95230060;hp=9de17281c347bdb6239c9e02fab47b97db25ae18;hpb=60157f2c50d533839a848c05bb99e6fbf8d2da01;p=hvlinux.git diff --git a/functions/ipkg b/functions/ipkg index 9de1728..61ba492 100644 --- a/functions/ipkg +++ b/functions/ipkg @@ -24,8 +24,25 @@ unset -f hvconfig_cache unset -f hvconfig_post unset -f hvbuild_post +# Arg #1: Clean label for debug message (optional) +function dir_cleanup() +{ + # Removing old build directory (if any) + if [ -d ${LFS_TMP}/${PACKAGE} ]; then + echo "Removing ${1} source directory" + rm -rf ${LFS_TMP}/${PACKAGE} + fi + if [ -d ${LFS_TMP}/${PACKAGE}-build ]; then + echo "Removing ${1} build directory" + rm -rf ${LFS_TMP}/${PACKAGE}-build + fi +} + ipkg_decompress_package() { + # Removing old source and build directories (if any) + dir_cleanup "old" + echo "Decompressing package" decompress_package ${PACKAGE} @@ -39,26 +56,16 @@ ipkg_decompress_package() # Saving package source size in global variable. SOURCE_SIZE=$(du -h -s ${LFS_TMP}/${PACKAGE} | awk '{ print $1 }') - # Removing old build directory (if any) - if [ -d ${LFS_TMP}/${PACKAGE}-build ]; then - echo "Removing old build directory" - rm -rf ${LFS_TMP}/${PACKAGE}-build + # Creating build directory (if applicable). + if [ ! -d ${BUILD_DIR} ]; then + mkdir -p ${BUILD_DIR} fi - - # Creating build directory - mkdir -v ${LFS_TMP}/${PACKAGE}-build } # Default configure function hvconfig() { - if [ "x${IPKG_MODE}" = "xacnb" -o "x${IPKG_MODE}" = "xpm" ]; then - # Broken autoconf package that must build in source dir, or Perl module. - cd ${LFS_TMP}/${PACKAGE} - else - # Standard autoconf mode - cd ${LFS_TMP}/${PACKAGE}-build - fi + cd ${BUILD_DIR} if [ "x${IPKG_MODE}" = "xpm" ]; then # Configure Perl module. @@ -66,31 +73,30 @@ hvconfig() # accept the default configuration. perl Makefile.PL -n ${CONFIGURE_OPTS} else - if [ ! -f ${LFS_TMP}/${PACKAGE}/configure ]; then - if [ -f ${LFS_TMP}/${PACKAGE}/configure.in -o \ - -f ${LFS_TMP}/${PACKAGE}/configure.ac ]; then + if [ ! -f ${SRC_DIR}/configure ]; then + if [ -f ${SRC_DIR}/configure.in -o \ + -f ${SRC_DIR}/configure.ac ]; then # Try to automatically generate missing configure script. - autoreconf -vi + touch ${SRC_DIR}/{NEWS,README,AUTHORS} # Required files + autoreconf -vi ${SRC_DIR} fi fi # Standard configure script - ${LFS_TMP}/${PACKAGE}/configure ${CONFIGURE_OPTS} + ${SRC_DIR}/configure ${CONFIGURE_OPTS} fi } # Default build function hvbuild() { - if [ "x${IPKG_MODE}" = "xacnb" -o \ - "x${IPKG_MODE}" = "xnoac" -o \ - "x${IPKG_MODE}" = "xpm" ]; then - # Broken autoconf package that must build in source dir, or Perl module. - cd ${LFS_TMP}/${PACKAGE} - fi - ${HVMAKE} - ${HVMAKE} install + + if [ -n "${INSTALL_DIR}" ]; then + ${HVMAKE} DESTDIR=${INSTALL_DIR} install + else + ${HVMAKE} install + fi } # Default patch applying function @@ -106,21 +112,18 @@ ipkg_finish() cd ${SCRDIR} if [ "x${DECOMPRESS}" = "x1" ]; then + DU_FOLDERS="${LFS_TMP}/${PACKAGE}" + if [ -d ${LFS_TMP}/${PACKAGE}-build ]; then + DU_FOLDERS+=" ${LFS_TMP}/${PACKAGE}-build" + fi + # Saving package build size in global variable - BUILD_SIZE=$(du -h -s -c ${LFS_TMP}/${PACKAGE} ${LFS_TMP}/${PACKAGE}-build | grep total | awk '{ print $1 }') + BUILD_SIZE=$(du -h -s -c ${DU_FOLDERS} | grep total | \ + awk '{ print $1 }') # Some scripts need to preserve the source or build directory. They can # do so by renaming them. - if [ -d ${LFS_TMP}/${PACKAGE} ]; then - # Removing source directory - echo "Removing source directory" - rm -rf ${LFS_TMP}/${PACKAGE} - fi - if [ -d ${LFS_TMP}/${PACKAGE}-build ]; then - # Removing build directory - echo "Removing build directory" - rm -rf ${LFS_TMP}/${PACKAGE}-build - fi + dir_cleanup else BUILD_SIZE="Unknown" fi @@ -174,25 +177,20 @@ ipkg_script() if function_exists hvconfig_cache ; then echo "Running configure cache script" hvconfig_cache - CONFIGURE_OPTS="\ - ${CONFIGURE_OPTS} \ - --cache-file=${LFS_TMP}/${PACKAGE}-build/config.cache" + CONFIGURE_OPTS+=" --cache-file=${BUILD_DIR}/config.cache" fi - if [ -x ${LFS_TMP}/${PACKAGE}/configure ]; then + if [ -x ${SRC_DIR}/configure ]; then if [ "x${ENABLE_DEPENDENCY_TRACKING}" = "x0" ]; then # Add option --disable-dependency-tracking if supported - if cat ${LFS_TMP}/${PACKAGE}/configure | \ + if cat ${SRC_DIR}/configure | \ grep -q "disable-dependency-tracking"; then - CONFIGURE_OPTS="\ - ${CONFIGURE_OPTS} \ - --disable-dependency-tracking" + CONFIGURE_OPTS+=" --disable-dependency-tracking" fi fi # Remove option --sysconfdir=... if not supported - if ! cat ${LFS_TMP}/${PACKAGE}/configure | \ - grep -q "sysconfdir"; then + if ! cat ${SRC_DIR}/configure | grep -q "sysconfdir"; then # Split on space, one per line. # Remove line --sysconfdir=... # Join separate lines on one line @@ -219,6 +217,9 @@ ipkg_script() hvconfig_post fi + if [ -d ${BUILD_DIR} ]; then + cd ${BUILD_DIR} + fi hvbuild # Execute post-build function if applicable