Actually setting permissions. It helps if one remembers to 'git add' before doing...
[genkernel.git] / gen_compile.sh
old mode 100644 (file)
new mode 100755 (executable)
index 9594bee..40ba84e
@@ -31,8 +31,15 @@ compile_kernel_args() {
 compile_utils_args()
 {
        local ARGS
-
        ARGS=''
+
+       if [ -n "${UTILS_CROSS_COMPILE}" ]
+       then
+               UTILS_CC="${UTILS_CROSS_COMPILE}gcc"
+               UTILS_LD="${UTILS_CROSS_COMPILE}ld"
+               UTILS_AS="${UTILS_CROSS_COMPILE}as"
+       fi
+
        if [ "${UTILS_ARCH}" != '' ]
        then
                ARGS="ARCH=\"${UTILS_ARCH}\""
@@ -323,8 +330,26 @@ compile_kernel() {
 compile_busybox() {
        [ -f "${BUSYBOX_SRCTAR}" ] ||
                gen_die "Could not find busybox source tarball: ${BUSYBOX_SRCTAR}!"
-       [ -f "${BUSYBOX_CONFIG}" ] ||
-               gen_die "Cound not find busybox config file: ${BUSYBOX_CONFIG}!"
+
+       if [ -n "${BUSYBOX_CONFIG}" ]
+       then
+               [ -f "${BUSYBOX_CONFIG}" ] ||
+                       gen_die "Could not find busybox config file: ${BUSYBOX_CONFIG}"
+       elif isTrue "${NETBOOT}" && [ -f "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config")" ]
+       then
+               BUSYBOX_CONFIG="$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/netboot-busy-config")"
+       elif isTrue "${NETBOOT}" && [ -f "${GK_SHARE}/netboot/busy-config" ]
+       then
+               BUSYBOX_CONFIG="${GK_SHARE}/netboot/busy-config"
+       elif [ -f "$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config")" ]
+       then
+               BUSYBOX_CONFIG="$(arch_replace "${GK_SHARE}/arch/%%ARCH%%/busy-config")"
+       elif [ -f "${GK_SHARE}/defaults/busy-config" ]
+       then
+               BUSYBOX_CONFIG="${GK_SHARE}/defaults/busy-config"
+       else
+               gen_die "Could not find a busybox config file"
+       fi
 
        # Delete cache if stored config's MD5 does not match one to be used
        if [ -f "${BUSYBOX_BINCACHE}" ]
@@ -537,32 +562,40 @@ compile_fuse() {
                        gen_die 'Configuring fuse failed!'
                print_info 1 'fuse: >> Compiling...'
                MAKE=${UTILS_MAKE} compile_generic "" ""
-               print_info 1 'libfuse: >> Copying to cache...'
-               [ -f "${TEMP}/${FUSE_DIR}/lib/.libs/libfuse.so" ] ||
-                       gen_die 'libfuse.so does not exist!'
-               strip "${TEMP}/${FUSE_DIR}/lib/.libs/libfuse.so" ||
-                       gen_die 'Could not strip libfuse.so!'
-               cd "${TEMP}/${FUSE_DIR}/lib/.libs"
-               tar -cjf "${FUSE_BINCACHE}" libfuse*so* ||
-                       gen_die 'Could not create fuse bincache!'
+
+               # Since we're linking statically against libfuse, we don't need to cache the .so
+#              print_info 1 'libfuse: >> Copying to cache...'
+#              [ -f "${TEMP}/${FUSE_DIR}/lib/.libs/libfuse.so" ] ||
+#                      gen_die 'libfuse.so does not exist!'
+#              strip "${TEMP}/${FUSE_DIR}/lib/.libs/libfuse.so" ||
+#                      gen_die 'Could not strip libfuse.so!'
+#              cd "${TEMP}/${FUSE_DIR}/lib/.libs"
+#              tar -cjf "${FUSE_BINCACHE}" libfuse*so* ||
+#                      gen_die 'Could not create fuse bincache!'
 
                cd "${TEMP}"
-               rm -rf "${FUSE_DIR}" > /dev/null
+#              rm -rf "${FUSE_DIR}" > /dev/null
        fi
 }
 
 compile_unionfs_fuse() {
        if [ ! -f "${UNIONFS_FUSE_BINCACHE}" ]
        then
+
+               # We'll call compile_fuse() from here, since it's not needed directly by anything else
+               compile_fuse
+
                [ ! -f "${UNIONFS_FUSE_SRCTAR}" ] &&
                        gen_die "Could not find unionfs-fuse source tarball: ${UNIONFS_FUSE_SRCTAR}. Please place it there, or place another version, changing /etc/genkernel.conf as necessary!"
                cd "${TEMP}"
                rm -rf "${UNIONFS_FUSE_DIR}"
-               tar -zxpf "${UNIONFS_FUSE_SRCTAR}"
+               tar -jxpf "${UNIONFS_FUSE_SRCTAR}"
                [ ! -d "${UNIONFS_FUSE_DIR}" ] &&
                        gen_die "unionfs-fuse directory ${UNIONFS_FUSE_DIR} invalid"
                cd "${UNIONFS_FUSE_DIR}"
                print_info 1 'unionfs-fuse: >> Compiling...'
+               sed -i "/^\(CFLAGS\|CPPFLAGS\)/s:^\\(.*\\)$:\\1 -static -I${TEMP}/${FUSE_DIR}/include -L${TEMP}/${FUSE_DIR}/lib/.libs:" Makefile src/Makefile
+               sed -i "/^LIB = /s:^LIB = \(.*\)$:LIB = -static -L${TEMP}/${FUSE_DIR}/lib/.libs \1 -ldl -lrt:" Makefile src/Makefile
                MAKE=${UTILS_MAKE} compile_generic "" ""
                print_info 1 'unionfs-fuse: >> Copying to cache...'
                [ -f "${TEMP}/${UNIONFS_FUSE_DIR}/src/unionfs" ] ||