| #!/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" -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 grep "^$pkg:" $i > /dev/null ; then |
| found=1 |
| is_manual_target=1 |
| echo "<b>YES</b>" |
| else |
| echo "NO" |
| fi |
| echo "</td>" |
| |
| echo "<td>" |
| echo "<ul>" |
| 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 |
| if grep "\./configure" $i > /dev/null ; then |
| if [ $is_manual_host -ne 1 ] ; then |
| echo "<li>convert package to autotools ?</li>" |
| convert_to_autotools=$((convert_to_autotools+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>" |