#!/bin/bash # Copyright (C) 2009 by Thomas Petazzoni <thomas.petazzoni@free-electrons.com> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # This script generates an HTML file that contains a report about all # Buildroot packages, their usage of the different package # infrastructure and possible cleanup actions # # Run the script from the Buildroot toplevel directory: # # ./scripts/pkg-stats > /tmp/pkg.html # echo "<head> <style type=\"text/css\"> table { width: 100%; } td { border: 1px solid black; } td.centered { text-align: center; } </style> </head> <a href=\"#results\">Results</a><br/> <table> <tr> <td rowspan=\"2\">Id</td> <td rowspan=\"2\">Package</td> <td colspan=\"2\" class=\"centered\">AUTOTARGETS</td> <td colspan=\"2\" class=\"centered\">GENTARGETS</td> <td colspan=\"2\" class=\"centered\">manual</td> <td rowspan=\"2\" class=\"centered\">Actions</td> </tr> <tr> <td class=\"centered\">host</td> <td class=\"centered\">target</td> <td class=\"centered\">host</td> <td class=\"centered\">target</td> <td class=\"centered\">host</td> <td class=\"centered\">target</td> </tr>" convert_to_generic_target=0 convert_to_generic_host=0 convert_to_autotools=0 cnt=1 for i in $(find package/ -name '*.mk') ; do if test $i = "package/mtd/mtd.mk" -o \ $i = "package/java/java.mk" -o \ $i = "package/database/database.mk" -o \ $i = "package/editors/editors.mk" -o \ $i = "package/games/games.mk" -o \ $i = "package/multimedia/multimedia.mk" -o \ $i = "package/customize/customize.mk" -o \ $i = "package/gnuconfig/gnuconfig.mk" -o \ $i = "package/x11r7/x11r7.mk" ; then echo "skipping $i" 1>&2 continue fi found=0 echo "<tr>" echo "<td>$cnt</td>" cnt=$((cnt+1)) echo "<td>$i</td>" is_auto_host=0 is_auto_target=0 is_pkg_target=0 is_pkg_host=0 is_manual_target=0 is_manual_host=0 echo "<td class=\"centered\">" if grep -E "\(call AUTOTARGETS,[^,]*,[^,]*,host\)" $i > /dev/null ; then is_auto_host=1 echo "<b>YES</b>" else echo "NO" fi echo "<td class=\"centered\">" if grep -E "\(call AUTOTARGETS,[^,]*,[^,]*(,target|)\)" $i > /dev/null ; then found=1 is_auto_target=1 echo "<b>YES</b>" else echo "NO" fi echo "</td>" echo "<td class=\"centered\">" if grep -E "\(call GENTARGETS,[^,]*,[^,]*,host\)" $i > /dev/null ; then found=1 is_pkg_host=1 echo "<b>YES</b>" else echo "NO" fi echo "</td>" echo "<td class=\"centered\">" if grep -E "\(call GENTARGETS,[^,]*,[^,]*(,target|)\)" $i > /dev/null ; then found=1 is_pkg_target=1 echo "<b>YES</b>" else echo "NO" fi echo "</td>" pkg=$(basename $i) pkg=${pkg%.mk} echo "<td class=\"centered\">" if grep "^host-$pkg:" $i > /dev/null ; then found=1 is_manual_host=1 echo "<b>YES</b>" else echo "NO" fi echo "</td>" echo "<td class=\"centered\">" if test $is_pkg_target -eq 0 -a $is_auto_target -eq 0 ; then found=1 is_manual_target=1 echo "<b>YES</b>" else echo "NO" fi echo "</td>" echo "<td>" echo "<ul>" if grep "/configure" $i > /dev/null ; then echo "<li>convert package to autotools ?</li>" convert_to_autotools=$((convert_to_autotools+1)) else if [ $is_manual_target -eq 1 ]; then echo "<li>convert to generic target</li>" convert_to_generic_target=$((convert_to_generic_target+1)) fi if [ $is_manual_host -eq 1 ]; then echo "<li>convert to generic host</li>" convert_to_generic_host=$((convert_to_generic_host+1)) fi fi if [ $found -eq 0 ] ; then echo "<li>look manually</li>" fi echo "</ul>" echo "</td>" echo "</tr>" done echo "</table>" echo "<table>" echo "<tr>" echo "<td>Packages to convert to generic target</td>" echo "<td>$convert_to_generic_target</td>" echo "</tr>" echo "<tr>" echo "<td>Packages to convert to generic host</td>" echo "<td>$convert_to_generic_host</td>" echo "</tr>" echo "<tr>" echo "<td>Packages to convert to autotools</td>" echo "<td>$convert_to_autotools</td>" echo "</tr>" echo "<tr>" echo "<td>TOTAL</td>" echo "<td>$cnt</td>" echo "</tr>" echo "</table>"