X-Git-Url: https://hackdaworld.org/gitweb/?a=blobdiff_plain;f=scripts%2FBuild;h=41a2fa032ca019bfbdec44da23fc58433f46c6b2;hb=054c7ecaf04f6aa5157d2709d36e38b8ed2b2e28;hp=1500a9cfca05c061f90a7fa1600b68034f7f3f99;hpb=6ae193981fcc05dcc495b4bde92cb8fd290ee4dd;p=hdw-linux%2Fhdw-linux.git diff --git a/scripts/Build b/scripts/Build index 1500a9c..41a2fa0 100755 --- a/scripts/Build +++ b/scripts/Build @@ -150,15 +150,16 @@ echo "found $package config file ..." confopt="$confopt --datadir=$prefix/share" confopt="$confopt --infodir=$prefix/info" confopt="$confopt --mandir=$prefix/man" - confopt="$confopt --build=$hdw_arch_build" - confopt="$confopt --host=$hdw_arch_target" - # crosscompiling - [ "$hdw_crossbuild" != "0" ] && \ - confopt="$confopt --target=$hdw_arch_target" if [ "$hdw_status" -gt "1" ] ; then confopt="$confopt --localstatedir=$localstatedir" confopt="$confopt --sysconfdir=$sysconfdir" fi + # architecture specific stuff + confopt="$confopt --build=$hdw_arch_build" + confopt="$confopt --host=$hdw_arch_host" + # crosscompiling + [ "$package" = "gcc" -o "$package" = "binutils" ] && \ + confopt="$confopt --target=$hdw_arch_target" # buildfunctions pre_install() { @@ -315,35 +316,6 @@ echo "found $package config file ..." done fi - # build dependencies (just libs >= stage 3, default target hardcoded) - # still in development !! - if [ "$hdw_status" -ge "2" ] ; then - rm -f $root/var/adm/deps/build/$package - echo -n "calculating dependencies ... " - alldeps="" - for lib in `grep '\ -l[A-Za-z]' \ - $root/var/adm/logs/${hdw_status}-${priority}-$package.out`; do - if [ -n "`echo $lib | grep '^-l'`" ] ; then - lib=${lib//-l/lib} - for dep in `grep "/$lib\." \ - -r $root/var/adm/flists | \ - awk -F: '{ print $2 }'`; do - add=1 - for cmp in $alldeps; do - [ "$cmp" = "$dep" ] && add=0 - done - [ "$add" = "1" ] && \ - alldeps="$dep $alldeps" - done - fi - done - for dep in $alldeps; do - echo "$dep" >> $root/var/adm/deps/build/$package - done - echo "done" - touch $root/var/adm/deps/build/$package - fi - } # end of trap block @@ -369,10 +341,94 @@ echo "found $package config file ..." package ; \ print package ": " "var/adm/flists/" package append }' \ $root/flist.$package > $root/var/adm/flists/${package}${append} - [ "$hdw_status" -ge "3" ] && \ + # manually add dependency files, calculated after flist + if [ "$hdw_status" -ge "3" ] ; then echo "${package}: var/adm/deps/build/$package" >> \ $root/var/adm/flists/${package}${append} + echo "${package}: var/adm/deps/run/$package" >> \ + $root/var/adm/flists/${package}${append} + fi + # build/runtime dependencies (just libs >= stage 3, + # default is 'hardcoded') + # still in development !! + if [ "$hdw_status" -ge "3" ] ; then + # build deps + rm -f $root/var/adm/deps/build/$package + echo -n "calculating build dependencies ... " + alldeps="" + for lib in `grep '\ -l[A-Za-z]' \ + $root/var/adm/logs/${hdw_status}-${priority}-$package.out`; do + if [ -n "`echo $lib | grep '^-l'`" ] ; then + lib=${lib//-l/lib} + for dep in `grep "/$lib\." \ + -r $root/var/adm/flists | \ + awk -F: '{ print $2 }'`; do + add=1 + for cmp in $alldeps; do + [ "$cmp" = "$dep" ] && add=0 + done + [ "$add" = "1" ] && \ + alldeps="$dep $alldeps" + done + fi + done + for dep in $alldeps; do + echo "$dep" >> $root/var/adm/deps/build/$package + done + touch $root/var/adm/deps/build/$package + echo "done" + # runtime deps + rm -f $root/var/adm/deps/run/$package + echo -n "calculating runtime dependencies ... " + alldeps="" + for binary in `grep 'bin\/' \ + $root/var/adm/flists/${package}${append} | \ + awk '{ print $2 }'`; do + for rdep in `ldd $root/$binary 2>&1 | \ + awk '{ print $3 }' | \ + sed 's$/$$' | grep -v 'dynamic' | \ + grep -v '^ldd'`; do + for rpkg in `grep $rdep -r \ + $root/var/adm/flists | \ + grep -v $s1_prefix | \ + awk -F: '{ print $2 }'`; do + add=1 + for cmp in $alldeps; do + [ "$cmp" = "$rpkg" ] && add=0 + done + [ "$add" = "1" ] && \ + alldeps="$rpkg $alldeps" + done + done + done + for library in `grep 'lib\/.*.so.*' \ + $root/var/adm/flists/${package}${append} | \ + awk '{ print $2 }'`; do + for rdep in `ldd $root/$library 2>&1 | \ + awk '{ print $3 }' | \ + sed 's$/$$' | grep -v 'dynamic' | \ + grep -v '^ldd'`; do + for rpkg in `grep $rdep -r \ + $root/var/adm/flists | \ + grep -v $s1_prefix | \ + awk -F: '{ print $2 }'`; do + add=1 + for cmp in $alldeps; do + [ "$cmp" = "$rpkg" ] && add=0 + done + [ "$add" = "1" ] && \ + alldeps="$rpkg $alldeps" + done + done + done + for dep in $alldeps; do + echo "$dep" >> $root/var/adm/deps/run/$package + done + touch $root/var/adm/deps/run/$package + echo "done" + fi + # remove flist stuff rm .time_${package} rm flist.$package