# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package # BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE # BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT DOWNLOAD="https://github.com/vim/vim/archive/refs/tags/v${BPM_PKG_VERSION}.tar.gz" FILENAME="${DOWNLOAD##*/}" # The prepare function is executed in the root of the temp directory # This function is used for downloading files and putting them into the correct location prepare() { wget "$DOWNLOAD" tar -xvf "$FILENAME" --strip-components=1 -C "$BPM_SOURCE" cd "$BPM_SOURCE" # Define place for global vimrc file sed -E 's|^.*(#define SYS_.*VIMRC_FILE.*").*$|\1|g' -i src/feature.h sed -E 's|^.*(#define VIMRC_FILE.*").*$|\1|g' -i src/feature.h # Regenerate configure script cd src autoconf } # The build function is executed in the source directory # This function is used to compile the source code build() { ./configure --prefix=/usr \ --localstatedir=/var/lib/vim \ --with-features=huge \ --with-compiledby='Arch Linux' \ --with-wayland=no \ --enable-gpm \ --enable-acl \ --with-x=no \ --disable-gui \ --enable-multibyte \ --enable-cscope \ --enable-netbeans \ --enable-perlinterp=dynamic \ --enable-python3interp=dynamic \ --enable-rubyinterp=dynamic \ --enable-luainterp=dynamic \ --enable-tclinterp=dynamic make } # The package function is executed in the source directory # This function is used to move the compiled files into the output directory package() { make DESTDIR="$BPM_OUTPUT" install # Remove unused gvim desktop file rm "$BPM_OUTPUT"/usr/share/applications/gvim.desktop # Install package documentation mkdir -p "$BPM_OUTPUT"/usr/share/doc/ ln -sfv ../vim/vim91/doc "$BPM_OUTPUT"/usr/share/doc/vim # Install package license install -Dm644 "$BPM_SOURCE"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/vim/LICENSE }