]> hackdaworld.org Git - hdw-linux/hdw-linux.git/blob - scripts/Create-Binary
added lfs patch fro firefox
[hdw-linux/hdw-linux.git] / scripts / Create-Binary
1 #/bin/sh
2 #
3 # hdw - linux ./scripts/Create-Binary
4 #
5 # this script is used to create the binary packages
6 #
7
8 package=""
9 tar_name=""
10 my_root=""
11
12 while [ "$1" ] ; do
13         case "$1" in
14                 all)            package=all     ; shift 1 ;;
15                 -package)       package=$2      ; shift 2 ;;
16                 -tar-name)      tar_name=$2     ; shift 2 ;;
17                 -root)          my_root=$2      ; shift 2 ;;
18                 *)      
19         echo "usage: $0 -package <package> -tar-name <tarname> -root <root>"
20         exit 1 ;;
21         esac
22 done
23
24 # do we run?
25 if [ -z "$package" ] ; then
26         echo "no package specified"
27         exit 1
28 fi
29
30 # how to call the packaged tar file (no .tar.bz2 ending!)
31 [ -z "$tar_name" ] && tar_name="$package"
32
33 # get Config & set hdw_home_dir
34 . ./Config && hdw_home_dir=`pwd`
35
36 # which root to use?
37 [ ! -z "$my_root" ] && hdw_build_dir="$my_root" 
38
39 # create binary directory
40 if [ ! -z "$hdw_arch_opt" ]; then
41         bin_dir=${hdw_arch}-${hdw_arch_opt}
42 else
43         bin_dir=${hdw_arch}-generic
44 fi
45 mkdir -p binaries/$bin_dir
46
47 # single package
48 if [  "$package" != "all" ] ; then
49 if [ -d ./binaries/$bin_dir/${package} ] ; then
50         echo "$package binary already exists, skipped"
51         echo "(remove ./binaries/$bin_dir/$package to recreate it)"
52         exit 0
53 else
54         # does it exist?
55         if [ ! -f $hdw_build_dir/var/adm/flists/$package ] ; then
56                 echo "package not build (moved flist file?)"
57                 exit 0
58         else
59                 echo "creating binary tarball of $package"
60                 mkdir -p $hdw_home_dir/binaries/$bin_dir/$package &&
61                 cd $hdw_build_dir &&
62                 # which files do we need? - are we packaging linux?
63                 if [ "$package" = "linux" ] ; then
64                         fl_file="var/adm/flists/$package*"
65                 else
66                         fl_file="var/adm/flists/$package"
67                 fi
68                 cat $fl_file | awk '{ print $2 }' | \
69                 tar --no-recursion --use-compress-program=bzip2 \
70                 -cf $hdw_home_dir/binaries/$bin_dir/$package/$tar_name.tar.bz2 \
71                 -T -
72                 cp $hdw_build_dir/var/adm/flists/$package \
73                         $hdw_home_dir/binaries/$bin_dir/$package
74                 cd $hdw_home_dir
75                 echo "done"
76         fi
77 fi
78
79 elif [ "$package" = "all" ] ; then
80
81 ((counter=1))
82 for pkg in `ls -A $hdw_build_dir/var/adm/flists | grep -v '.stage1'`; do
83         ./scripts/Create-Binary -package $pkg -root $hdw_build_dir
84         ((counter+=1))
85 done
86
87 # add 00-dirtree, build in stage1
88 ./scripts/Create-Binary -package 00-dirtree.stage1 -tar-name 00-dirtree
89 ((counter+=1))
90
91 echo "created $counter binaries, done"
92 fi