Changeset 74374 in vbox for trunk/src/VBox/Additions/linux
- Timestamp:
- Sep 19, 2018 4:08:07 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/linux/export_modules.sh
r69500 r74374 17 17 # 18 18 19 export LC_ALL=C 20 19 21 # The below is GNU-specific. See VBox.sh for the longer Solaris/OS X version. 20 22 TARGET=`readlink -e -- "${0}"` || exit 1 21 23 MY_DIR="${TARGET%/[!/]*}" 22 24 23 if [ -z "$ 1" ]; then25 if [ -z "${1}" ] || { [ "x${1}" = x--folder ] && [ -z "${2}" ]; }; then 24 26 echo "Usage: $0 <filename.tar.gz>" 25 echo " Export VirtualBox kernel modules to <filename.tar.gz>" 27 echo " Export VirtualBox kernel modules to <filename.tar.gz>." 28 echo "Usage: $0 --folder <folder>" 29 echo " Copy VirtualBox kernel module source to <folder>." 26 30 exit 1 27 31 fi 28 32 29 PATH_TMP="`cd \`dirname $1\`; pwd`/.vbox_modules" 30 PATH_OUT=$PATH_TMP 31 FILE_OUT="`cd \`dirname $1\`; pwd`/`basename $1`" 33 if test "x${1}" = x--folder; then 34 PATH_OUT="${2}" 35 else 36 PATH_OUT="`cd \`dirname $1\`; pwd`/.vbox_modules" 37 FILE_OUT="`cd \`dirname $1\`; pwd`/`basename $1`" 38 fi 32 39 PATH_ROOT="`cd ${MY_DIR}/../../../..; pwd`" 33 40 PATH_LOG=/tmp/vbox-export-guest.log … … 51 58 52 59 # Temporary path for creating the modules, will be removed later 53 mkdir $PATH_TMP|| exit 160 mkdir -p $PATH_OUT || exit 1 54 61 55 62 # Create auto-generated version file, needed by all modules 56 echo "#ifndef ___version_generated_h___" > $PATH_ TMP/version-generated.h57 echo "#define ___version_generated_h___" >> $PATH_ TMP/version-generated.h58 echo "" >> $PATH_ TMP/version-generated.h59 echo "#define VBOX_VERSION_MAJOR $VBOX_VERSION_MAJOR" >> $PATH_ TMP/version-generated.h60 echo "#define VBOX_VERSION_MINOR $VBOX_VERSION_MINOR" >> $PATH_ TMP/version-generated.h61 echo "#define VBOX_VERSION_BUILD $VBOX_VERSION_BUILD" >> $PATH_ TMP/version-generated.h62 echo "#define VBOX_VERSION_STRING_RAW \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_ TMP/version-generated.h63 echo "#define VBOX_VERSION_STRING \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_ TMP/version-generated.h64 echo "#define VBOX_API_VERSION_STRING \"${VBOX_VERSION_MAJOR}_${VBOX_VERSION_MINOR}\"" >> $PATH_ TMP/version-generated.h65 echo "#define VBOX_PRIVATE_BUILD_DESC \"Private build with export_modules\"" >> $PATH_ TMP/version-generated.h66 echo "" >> $PATH_ TMP/version-generated.h67 echo "#endif" >> $PATH_ TMP/version-generated.h63 echo "#ifndef ___version_generated_h___" > $PATH_OUT/version-generated.h 64 echo "#define ___version_generated_h___" >> $PATH_OUT/version-generated.h 65 echo "" >> $PATH_OUT/version-generated.h 66 echo "#define VBOX_VERSION_MAJOR $VBOX_VERSION_MAJOR" >> $PATH_OUT/version-generated.h 67 echo "#define VBOX_VERSION_MINOR $VBOX_VERSION_MINOR" >> $PATH_OUT/version-generated.h 68 echo "#define VBOX_VERSION_BUILD $VBOX_VERSION_BUILD" >> $PATH_OUT/version-generated.h 69 echo "#define VBOX_VERSION_STRING_RAW \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_OUT/version-generated.h 70 echo "#define VBOX_VERSION_STRING \"$VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD\"" >> $PATH_OUT/version-generated.h 71 echo "#define VBOX_API_VERSION_STRING \"${VBOX_VERSION_MAJOR}_${VBOX_VERSION_MINOR}\"" >> $PATH_OUT/version-generated.h 72 echo "#define VBOX_PRIVATE_BUILD_DESC \"Private build with export_modules\"" >> $PATH_OUT/version-generated.h 73 echo "" >> $PATH_OUT/version-generated.h 74 echo "#endif" >> $PATH_OUT/version-generated.h 68 75 69 76 # Create auto-generated revision file, needed by all modules 70 echo "#ifndef __revision_generated_h__" > $PATH_ TMP/revision-generated.h71 echo "#define __revision_generated_h__" >> $PATH_ TMP/revision-generated.h72 echo "" >> $PATH_ TMP/revision-generated.h73 echo "#define VBOX_SVN_REV $VBOX_SVN_REV" >> $PATH_ TMP/revision-generated.h74 echo "" >> $PATH_ TMP/revision-generated.h75 echo "#endif" >> $PATH_ TMP/revision-generated.h77 echo "#ifndef __revision_generated_h__" > $PATH_OUT/revision-generated.h 78 echo "#define __revision_generated_h__" >> $PATH_OUT/revision-generated.h 79 echo "" >> $PATH_OUT/revision-generated.h 80 echo "#define VBOX_SVN_REV $VBOX_SVN_REV" >> $PATH_OUT/revision-generated.h 81 echo "" >> $PATH_OUT/revision-generated.h 82 echo "#endif" >> $PATH_OUT/revision-generated.h 76 83 77 84 # Create auto-generated product file, needed by all modules 78 echo "#ifndef ___product_generated_h___" > $PATH_ TMP/product-generated.h79 echo "#define ___product_generated_h___" >> $PATH_ TMP/product-generated.h80 echo "" >> $PATH_ TMP/product-generated.h81 echo "#define VBOX_VENDOR \"$VBOX_VENDOR\"" >> $PATH_ TMP/product-generated.h82 echo "#define VBOX_VENDOR_SHORT \"$VBOX_VENDOR_SHORT\"" >> $PATH_ TMP/product-generated.h83 echo "" >> $PATH_ TMP/product-generated.h84 echo "#define VBOX_PRODUCT \"$VBOX_PRODUCT\"" >> $PATH_ TMP/product-generated.h85 echo "#define VBOX_C_YEAR \"$VBOX_C_YEAR\"" >> $PATH_ TMP/product-generated.h86 echo "" >> $PATH_ TMP/product-generated.h87 echo "#endif" >> $PATH_ TMP/product-generated.h85 echo "#ifndef ___product_generated_h___" > $PATH_OUT/product-generated.h 86 echo "#define ___product_generated_h___" >> $PATH_OUT/product-generated.h 87 echo "" >> $PATH_OUT/product-generated.h 88 echo "#define VBOX_VENDOR \"$VBOX_VENDOR\"" >> $PATH_OUT/product-generated.h 89 echo "#define VBOX_VENDOR_SHORT \"$VBOX_VENDOR_SHORT\"" >> $PATH_OUT/product-generated.h 90 echo "" >> $PATH_OUT/product-generated.h 91 echo "#define VBOX_PRODUCT \"$VBOX_PRODUCT\"" >> $PATH_OUT/product-generated.h 92 echo "#define VBOX_C_YEAR \"$VBOX_C_YEAR\"" >> $PATH_OUT/product-generated.h 93 echo "" >> $PATH_OUT/product-generated.h 94 echo "#endif" >> $PATH_OUT/product-generated.h 88 95 89 96 # vboxguest (VirtualBox guest kernel module) 90 mkdir $PATH_ TMP/vboxguest || exit 197 mkdir $PATH_OUT/vboxguest || exit 1 91 98 for f in $FILES_VBOXGUEST_NOBIN; do 92 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxguest/`echo $f|cut -d'>' -f2`"99 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxguest/`echo $f|cut -d'>' -f2`" 93 100 done 94 101 for f in $FILES_VBOXGUEST_BIN; do 95 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxguest/`echo $f|cut -d'>' -f2`"102 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxguest/`echo $f|cut -d'>' -f2`" 96 103 done 97 104 98 105 # vboxsf (VirtualBox guest kernel module for shared folders) 99 mkdir $PATH_ TMP/vboxsf || exit 1106 mkdir $PATH_OUT/vboxsf || exit 1 100 107 for f in $FILES_VBOXSF_NOBIN; do 101 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxsf/`echo $f|cut -d'>' -f2`"108 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxsf/`echo $f|cut -d'>' -f2`" 102 109 done 103 110 for f in $FILES_VBOXSF_BIN; do 104 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxsf/`echo $f|cut -d'>' -f2`"111 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxsf/`echo $f|cut -d'>' -f2`" 105 112 done 106 113 107 114 # vboxvideo (VirtualBox guest kernel module for drm support) 108 mkdir $PATH_ TMP/vboxvideo || exit 1115 mkdir $PATH_OUT/vboxvideo || exit 1 109 116 for f in $FILES_VBOXVIDEO_DRM_NOBIN; do 110 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxvideo/`echo $f|cut -d'>' -f2`"117 install -D -m 0644 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxvideo/`echo $f|cut -d'>' -f2`" 111 118 done 112 119 for f in $FILES_VBOXVIDEO_DRM_BIN; do 113 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_ TMP/vboxvideo/`echo $f|cut -d'>' -f2`"120 install -D -m 0755 `echo $f|cut -d'=' -f1` "$PATH_OUT/vboxvideo/`echo $f|cut -d'>' -f2`" 114 121 done 115 sed -f $PATH_VBOXVIDEO/indent.sed -i $PATH_ TMP/vboxvideo/*.[ch]122 sed -f $PATH_VBOXVIDEO/indent.sed -i $PATH_OUT/vboxvideo/*.[ch] 116 123 117 124 # convenience Makefile 118 install -D -m 0644 $PATH_LINUX/Makefile "$PATH_ TMP/Makefile"125 install -D -m 0644 $PATH_LINUX/Makefile "$PATH_OUT/Makefile" 119 126 120 127 # Only temporary, omit from archive 121 rm $PATH_TMP/version-generated.h 122 rm $PATH_TMP/revision-generated.h 123 rm $PATH_TMP/product-generated.h 128 rm $PATH_OUT/version-generated.h 129 rm $PATH_OUT/revision-generated.h 130 rm $PATH_OUT/product-generated.h 131 132 # If we are exporting to a folder then stop now. 133 test "x${1}" = x--folder && exit 0 124 134 125 135 # Do a test build 126 136 echo Doing a test build, this may take a while. 127 make -C $PATH_ TMP> $PATH_LOG 2>&1 &&128 make -C $PATH_ TMPclean >> $PATH_LOG 2>&1 ||137 make -C $PATH_OUT > $PATH_LOG 2>&1 && 138 make -C $PATH_OUT clean >> $PATH_LOG 2>&1 || 129 139 echo "Warning: test build failed. Please check $PATH_LOG" 130 140 131 141 # Create the archive 132 tar -czf $FILE_OUT -C $PATH_ TMP. || exit 1142 tar -czf $FILE_OUT -C $PATH_OUT . || exit 1 133 143 134 144 # Remove the temporary directory 135 rm -r $PATH_ TMP145 rm -r $PATH_OUT 136 146
Note:
See TracChangeset
for help on using the changeset viewer.