Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #
- # GENERAL INFO
- PKGNAME=`echo $1 | rev | cut -d/ -f1 | rev | sed s/.tar.gz// | sed s/.tar.bz2// | sed s/.zip//`
- SUFFIX=`echo $1 | sed s/$PKGNAME// | rev | cut -d/ -f1 | rev | sed s/^.//`
- ARCH=x86_64
- BUILD=1ftm
- TMP=/tmp/src2xzm
- SOURCE=$TMP/SOURCE
- WORK=$TMP/WORK
- TOGO=/root/paczki
- c='\e[36m'
- r='\e[38m'
- e=`tput sgr0`
- if [ ! -x /usr/bin/make ]; then
- echo
- echo -e "${r}please activate 005-devel module first..."$e
- echo
- exit 1
- fi
- if [ "$1" = "" -o "$1" = "--help" -o "$1" = "-h" -o "$1" = "-help" -o "$1" = "help" ]; then
- echo
- echo -e "${r}launch me as $0 path_to_source"$e
- echo
- exit 1
- fi
- if [ "$SUFFIX" = "tar.gz" -o "$SUFFIX" = "tar.bz2" -o "$SUFFIX" = "zip" ]; then
- echo
- echo -e "${c}$SUFFIX archive found, proceeding..."$e
- else
- echo
- echo -e "${r}only following archives are supported: tar.gz, tar.bz2 and zip"$e
- echo
- exit 1
- fi
- if [ -d $TMP ]; then
- echo
- echo -e "${r}clearing files from previous run"$e
- rm -r $TMP
- fi
- mkdir $TMP $SOURCE $WORK $TOGO 2>/dev/null
- # step 1: UNPACK SOURCE AND PREPARE PACKAGE
- if [ "$SUFFIX" = "zip" ]; then
- unzip -q $1 -d $SOURCE
- else
- tar xf $1 -C $SOURCE
- fi
- PKG=`ls $SOURCE`
- cd $SOURCE/$PKG
- case "$ARCH" in
- "i686") SLKCFLAGS="-O2 -march=i686 -mtune=i686" ;;
- "i486") SLKCFLAGS="-O2 -march=i486 -mtune=i686" ;; # or Os for reducing size
- "i386") SLKCFLAGS="-O2 -march=i386 -mcpu=i686" ;;
- "x86_64") SLKCFLAGS="-Os -march=x86-64 -fPIC" ;;
- "native") SLKCFLAGS="-O2 -march=native -mtune=native" ;;
- *) SLKCFLAGS="-O2" ;;
- esac
- echo
- echo -e "${c}please provide extra configuration parameters for this package,
- press enter to stick with default ones or type ? for listing availiable options
- Example:
- --enable-gtk"$e
- echo
- read answer
- echo
- if [ "$answer" = "?" ]; then
- ./configure --help
- echo
- echo -e "${c}please provide extra configuration options for this package or
- press enter to stick with default ones"$e
- echo
- read answer
- echo
- fi
- CONFIG=`echo $answer`
- #if [ -e 'Makefile' ]; then
- CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" MAKEOPTS="-j2" ./configure \
- --prefix=/usr \
- --disable-static \
- --libdir=/usr/lib64 \
- --mandir=/usr/man \
- $CONFIG
- --sysconfdir=/etc \
- --program-prefix="" \
- --program-suffix="" \
- --build=$ARCH-Slackware-linux
- #fi
- echo
- echo -e "${c}if configuration stage finished successfully then press enter to start
- compilation or press ctrl+c to exit"$e
- read
- echo
- make
- make install DESTDIR=$WORK
- # step 2: PACKAGE DESCRIPTION
- clear
- NAME=`echo $PKG | rev | cut -d- -f2- | rev`
- mkdir $WORK/install
- echo > ./file
- dialog --title "Please provide package description and press 'OK' to continue" \
- --editbox ./file 15 60 \
- 2>./desc
- cat ./desc | fmt -w $(( 80 - `echo $NAME | wc -c` - 3 )) | perl -pe "s/^/$NAME: /" > $WORK/install/slack-desc
- # step 3: STRIP BINARIES
- cd $WORK
- ( find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : \
- | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : \
- | xargs strip --strip-unneeded 2> /dev/null
- find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : \
- | xargs strip --strip-debug 2> /dev/null )
- # step 4: CREATE PACKAGE & CLEAN TMP
- if [ `find . | wc -l` -le 1 ]; then
- echo -e "${r}no files found!"$e
- else
- makepkg -l y -c n $TOGO/$PKG-$ARCH-$BUILD.txz
- rm -r $SOURCE $WORK
- fi
- # step 5: CREATE MODULE
- cd $TOGO
- txz2xzm $PKG-$ARCH-$BUILD.txz $PKG-$ARCH-$BUILD.xzm
- rm $PKG-$ARCH-$BUILD.txz
- # FINISH
- echo
- echo -e "${r}$PKG-$ARCH-$BUILD module is created in $TOGO directory."$e
- echo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement