Arnout Vandecappelle wrote:
As an aside, there may be a second issue: applets/Kbuild.src specifies the same
command for both include/applet_tables.h and include/NUM_APPLETS.h, but that
command will always generate both files. So if the rules for the two files are
launched in parallel, there is another problem. The easiest way to work around
that is to (arbitrarily) let include/NUM_APPLETS.h depend on
include/applet_tables.h with an empty command:

include/NUM_APPLETS.h: include/applet_tables.h ;

It's not entirely accurate, but in practice it works.
There is a perfectly valid syntax to express that one command generates more than one file:
diff --git a/applets/Kbuild.src b/applets/Kbuild.src
index b612399..5d4c53e 100644
--- a/applets/Kbuild.src
+++ b/applets/Kbuild.src
@@ -40,8 +40,5 @@ include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compress
 quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h
cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h

-include/applet_tables.h: applets/applet_tables
-       $(call cmd,gen_applet_tables)
-
-include/NUM_APPLETS.h: applets/applet_tables
+include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
        $(call cmd,gen_applet_tables)

This should also fix the problem with the parallel build. The original form would invoke the same command twice, maybe at the same time. The second form will invoke it only once.

The problem with include/NUM_APPLETS.h is that it is not rebuild by applets/Kbuild.src if include/NUM_APPLETS.h is removed, but include/applet_tables.h is not. This can be fixed by adding include/NUM_APPLETS.h to the dependencies of applets/usage_pod, although it is not really a dependency.
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to