Index: trunk/scconfig/Makefile =================================================================== --- trunk/scconfig/Makefile (revision 1326) +++ trunk/scconfig/Makefile (revision 1327) @@ -73,6 +73,8 @@ menucfg.o: menucfg.c $(CC) -c $(CFLAGS) -o menucfg.o menucfg.c +hooks.o: plugin_3state.h plugins.h + clean: rm $(OBJS) configure Index: trunk/scconfig/hooks.c =================================================================== --- trunk/scconfig/hooks.c (revision 1326) +++ trunk/scconfig/hooks.c (revision 1327) @@ -17,6 +17,8 @@ NULL, NULL }; +#include "plugin_3state.h" + const arg_auto_set_t disable_libs[] = { /* list of --disable-LIBs and the subtree they affect */ {"disable-gtk", "libs/gui/gtk2", arg_lib_nodes, "$do not compile the gtk HID"}, {"disable-lesstif", "libs/gui/lesstif2", arg_lib_nodes, "$do not compile the lesstif HID"}, @@ -31,91 +33,12 @@ {"buildin-gpmi", "/local/pcb/gpmi/buildin", arg_true, "$static link the gpmi plugin into the executable"}, {"plugin-gpmi", "/local/pcb/gpmi/buildin", arg_false, "$the gpmi plugin is a dynamic loadable"}, - {"disable-autoroute", "/local/pcb/autoroute/enable", arg_false, "$do not compile the autorouter"}, - {"buildin-autoroute", "/local/pcb/autoroute/buildin", arg_true, "$static link the autorouter plugin into the executable"}, - {"plugin-autoroute", "/local/pcb/autoroute/buildin", arg_false, "$the autorouter plugin is a dynamic loadable"}, +#undef plugin_def +#undef plugin_sep +#define plugin_def(name, desc, default_) plugin3_args(name, desc) +#define plugin_sep() +#include "plugins.h" - {"disable-autoplace", "/local/pcb/autoplace/enable", arg_false, "$do not compile the autoplace"}, - {"buildin-autoplace", "/local/pcb/autoplace/buildin", arg_true, "$static link the autoplace plugin into the executable"}, - {"plugin-autoplace", "/local/pcb/autoplace/buildin", arg_false, "$the autoplace plugin is a dynamic loadable"}, - - {"disable-vendordrill", "/local/pcb/vendordrill/enable", arg_false, "$do not compile the vendor drill mapping"}, - {"buildin-vendordrill", "/local/pcb/vendordrill/buildin", arg_true, "$static link the vendor drill mapping plugin into the executable"}, - {"plugin-vendordrill", "/local/pcb/vendordrill/buildin", arg_false, "$the vendor drill mapping plugin is a dynamic loadable"}, - - {"disable-puller", "/local/pcb/puller/enable", arg_false, "$do not compile the puller"}, - {"buildin-puller", "/local/pcb/puller/buildin", arg_true, "$static link the puller plugin into the executable"}, - {"plugin-puller", "/local/pcb/puller/buildin", arg_false, "$the puller plugin is a dynamic loadable"}, - - {"disable-import_edif", "/local/pcb/import_edif/enable", arg_false, "$do not compile the edif importer"}, - {"buildin-import_edif", "/local/pcb/import_edif/buildin", arg_true, "$static link the edif importer plugin into the executable"}, - {"plugin-import_edif", "/local/pcb/import_edif/buildin", arg_false, "$the edif importer plugin is a dynamic loadable"}, - - {"disable-djopt", "/local/pcb/djopt/enable", arg_false, "$do not compile the djopt"}, - {"buildin-djopt", "/local/pcb/djopt/buildin", arg_true, "$static link the djopt plugin into the executable"}, - {"plugin-djopt", "/local/pcb/djopt/buildin", arg_false, "$the djopt plugin is a dynamic loadable"}, - - {"disable-mincut", "/local/pcb/mincut/enable", arg_false, "$do not compile the mincut"}, - {"buildin-mincut", "/local/pcb/mincut/buildin", arg_true, "$static link the mincut plugin into the executable"}, - {"plugin-mincut", "/local/pcb/mincut/buildin", arg_false, "$the mincut plugin is a dynamic loadable"}, - - {"disable-toporouter", "/local/pcb/toporouter/enable", arg_false, "$do not compile the toporouter"}, - {"buildin-toporouter", "/local/pcb/toporouter/buildin", arg_true, "$static link the toporouter plugin into the executable"}, - {"plugin-toporouter", "/local/pcb/toporouter/buildin", arg_false, "$the toporouter plugin is a dynamic loadable"}, - - {"disable-oldactions", "/local/pcb/oldactions/enable", arg_false, "$do not compile the oldactions"}, - {"buildin-oldactions", "/local/pcb/oldactions/buildin", arg_true, "$static link the oldactions plugin into the executable"}, - {"plugin-oldactions", "/local/pcb/oldactions/buildin", arg_false, "$the oldactions plugin is a dynamic loadable"}, - - {"disable-fontmode", "/local/pcb/fontmode/enable", arg_false, "$do not compile the fontmode"}, - {"buildin-fontmode", "/local/pcb/fontmode/buildin", arg_true, "$static link the fontmode plugin into the executable"}, - {"plugin-fontmode", "/local/pcb/fontmode/buildin", arg_false, "$the fontmode plugin is a dynamic loadable"}, - - {"disable-legacy_func", "/local/pcb/legacy_func/enable", arg_false, "$do not compile the legacy functions"}, - {"buildin-legacy_func", "/local/pcb/legacy_func/buildin", arg_true, "$static link the legacy functions plugin into the executable"}, - {"plugin-legacy_func", "/local/pcb/legacy_func/buildin", arg_false, "$the legacy functions plugin is a dynamic loadable"}, - - {"disable-renumber", "/local/pcb/renumber/enable", arg_false, "$do not compile the renumber action"}, - {"buildin-renumber", "/local/pcb/renumber/buildin", arg_true, "$static link the renumber action into the executable"}, - {"plugin-renumber", "/local/pcb/renumber/buildin", arg_false, "$the renumber action is a dynamic loadable plugin"}, - - {"disable-stroke", "/local/pcb/stroke/enable", arg_false, "$do not compile libstroke gestures"}, - {"buildin-stroke", "/local/pcb/stroke/buildin", arg_true, "$static link libstroke gestures into the executable"}, - {"plugin-stroke", "/local/pcb/stroke/buildin", arg_false, "$libstroke gestures is a dynamic loadable plugin"}, - - {"disable-import_sch", "/local/pcb/import_sch/enable", arg_false, "$do not compile the import schematics action"}, - {"buildin-import_sch", "/local/pcb/import_sch/buildin", arg_true, "$static link the import schematics action into the executable"}, - {"plugin-import_sch", "/local/pcb/import_sch/buildin", arg_false, "$the import schematics action is a dynamic loadable plugin"}, - - {"disable-export_ps", "/local/pcb/export_ps/enable", arg_false, "$do not compile the postscript exporter"}, - {"buildin-export_ps", "/local/pcb/export_ps/buildin", arg_true, "$static link the postscript exporter into the executable"}, - {"plugin-export_ps", "/local/pcb/export_ps/buildin", arg_false, "$the postscript exporter is a dynamic loadable plugin"}, - - {"disable-export_lpr", "/local/pcb/export_lpr/enable", arg_false, "$do not compile the lpr printer"}, - {"buildin-export_lpr", "/local/pcb/export_lpr/buildin", arg_true, "$static link the lpr printer into the executable"}, - {"plugin-export_lpr", "/local/pcb/export_lpr/buildin", arg_false, "$the lpr printer is a dynamic loadable plugin"}, - - {"disable-export_gcode", "/local/pcb/export_gcode/enable", arg_false, "$do not compile the gcode exporter"}, - {"buildin-export_gcode", "/local/pcb/export_gcode/buildin", arg_true, "$static link the gcode exporter into the executable"}, - {"plugin-export_gcode", "/local/pcb/export_gcode/buildin", arg_false, "$the gcode exporter is a dynamic loadable plugin"}, - - {"disable-export_nelma", "/local/pcb/export_nelma/enable", arg_false, "$do not compile the nelma exporter"}, - {"buildin-export_nelma", "/local/pcb/export_nelma/buildin", arg_true, "$static link the nelma exporter into the executable"}, - {"plugin-export_nelma", "/local/pcb/export_nelma/buildin", arg_false, "$the nelma exporter is a dynamic loadable plugin"}, - - {"disable-export_png", "/local/pcb/export_png/enable", arg_false, "$do not compile the png exporter"}, - {"buildin-export_png", "/local/pcb/export_png/buildin", arg_true, "$static link the png exporter into the executable"}, - {"plugin-export_png", "/local/pcb/export_png/buildin", arg_false, "$the png exporter is a dynamic loadable plugin"}, - - {"disable-export_bom", "/local/pcb/export_bom/enable", arg_false, "$do not compile the bom exporter"}, - {"buildin-export_bom", "/local/pcb/export_bom/buildin", arg_true, "$static link the bom exporter into the executable"}, - {"plugin-export_bom", "/local/pcb/export_bom/buildin", arg_false, "$the bom exporter is a dynamic loadable plugin"}, - - {"disable-export_gerber", "/local/pcb/export_gerber/enable", arg_false, "$do not compile the gerber exporter"}, - {"buildin-export_gerber", "/local/pcb/export_gerber/buildin", arg_true, "$static link the gerber exporter into the executable"}, - {"plugin-export_gerber", "/local/pcb/export_gerber/buildin", arg_false, "$the gerber exporter is a dynamic loadable plugin"}, - - {NULL, NULL, NULL, NULL} }; @@ -127,14 +50,13 @@ printf("Usage: ./configure [options]\n"); printf("\n"); printf("options are:\n"); - printf(" --prefix=path change installation prefix from /usr to path\n"); + printf(" --prefix=path change installation prefix from /usr to path\n"); } static void help2(void) { printf("\n"); - printf("The --disable options will make ./configure to skip detection of the "); - printf("given feature and mark them \"not found\"."); + printf("Some of the --disable options will make ./configure to skip detection of the given feature and mark them \"not found\"."); printf("\n"); } @@ -149,7 +71,7 @@ } else if (strcmp(key, "help") == 0) { help1(); - arg_auto_print_options(stdout, " ", " ", disable_libs); + arg_auto_print_options(stdout, " ", " ", disable_libs); help2(); exit(0); } @@ -175,91 +97,12 @@ put("/local/pcb/gpmi/buildin", strue); put("/local/prefix", "/usr/local"); +#undef plugin_def +#undef plugin_sep +#define plugin_def(name, desc, default_) plugin3_default(name, default_) +#define plugin_sep() +#include "plugins.h" - db_mkdir("/local/pcb/autoroute"); - put("/local/pcb/autoroute/enable", strue); - put("/local/pcb/autoroute/buildin", strue); - - db_mkdir("/local/pcb/autoplace"); - put("/local/pcb/autoplace/enable", strue); - put("/local/pcb/autoplace/buildin", strue); - - db_mkdir("/local/pcb/vendordrill"); - put("/local/pcb/vendordrill/enable", strue); - put("/local/pcb/vendordrill/buildin", strue); - - db_mkdir("/local/pcb/puller"); - put("/local/pcb/puller/enable", strue); - put("/local/pcb/puller/buildin", strue); - - db_mkdir("/local/pcb/import_edif"); - put("/local/pcb/import_edif/enable", strue); - put("/local/pcb/import_edif/buildin", strue); - - db_mkdir("/local/pcb/djopt"); - put("/local/pcb/djopt/enable", strue); - put("/local/pcb/djopt/buildin", strue); - - db_mkdir("/local/pcb/mincut"); - put("/local/pcb/mincut/enable", strue); - put("/local/pcb/mincut/buildin", strue); - - db_mkdir("/local/pcb/toporouter"); - put("/local/pcb/toporouter/enable", strue); - put("/local/pcb/toporouter/buildin", strue); - - db_mkdir("/local/pcb/oldactions"); - put("/local/pcb/oldactions/enable", strue); - put("/local/pcb/oldactions/buildin", strue); - - db_mkdir("/local/pcb/fontmode"); - put("/local/pcb/fontmode/enable", strue); - put("/local/pcb/fontmode/buildin", strue); - - db_mkdir("/local/pcb/legacy_func"); - put("/local/pcb/legacy_func/enable", strue); - put("/local/pcb/legacy_func/buildin", strue); - - db_mkdir("/local/pcb/renumber"); - put("/local/pcb/renumber/enable", strue); - put("/local/pcb/renumber/buildin", strue); - - db_mkdir("/local/pcb/stroke"); - put("/local/pcb/stroke/enable", sfalse); - put("/local/pcb/stroke/buildin", strue); - - db_mkdir("/local/pcb/import_sch"); - put("/local/pcb/import_sch/enable", strue); - put("/local/pcb/import_sch/buildin", strue); - - db_mkdir("/local/pcb/export_ps"); - put("/local/pcb/export_ps/enable", strue); - put("/local/pcb/export_ps/buildin", strue); - - db_mkdir("/local/pcb/export_lpr"); - put("/local/pcb/export_lpr/enable", strue); - put("/local/pcb/export_lpr/buildin", strue); - - db_mkdir("/local/pcb/export_gcode"); - put("/local/pcb/export_gcode/enable", strue); - put("/local/pcb/export_gcode/buildin", strue); - - db_mkdir("/local/pcb/export_nelma"); - put("/local/pcb/export_nelma/enable", strue); - put("/local/pcb/export_nelma/buildin", strue); - - db_mkdir("/local/pcb/export_png"); - put("/local/pcb/export_png/enable", strue); - put("/local/pcb/export_png/buildin", strue); - - db_mkdir("/local/pcb/export_bom"); - put("/local/pcb/export_bom/enable", strue); - put("/local/pcb/export_bom/buildin", strue); - - db_mkdir("/local/pcb/export_gerber"); - put("/local/pcb/export_gerber/enable", strue); - put("/local/pcb/export_gerber/buildin", strue); - return 0; } @@ -323,10 +166,10 @@ if (want_gtk) want_glib = 1; - if (istrue(get("/local/pcb/toporouter/enable"))) + if (plug_is_enabled("toporouter")) want_glib = 1; - if (istrue(get("/local/pcb/puller/enable"))) + if (plug_is_enabled("puller")) want_glib = 1; if (want_glib) { @@ -336,11 +179,11 @@ report_repeat("WARNING: Since GLIB is not found, disabling the GTK HID...\n"); hook_custom_arg("disable-gtk", NULL); } - if (istrue(get("/local/pcb/toporouter/enable"))) { + if (plug_is_enabled("toporouter")) { report_repeat("WARNING: Since GLIB is not found, disabling the toporouter...\n"); hook_custom_arg("disable-toporouter", NULL); } - if (istrue(get("/local/pcb/puller/enable"))) { + if (plug_is_enabled("puller")) { report_repeat("WARNING: Since GLIB is not found, disabling the puller...\n"); hook_custom_arg("disable-puller", NULL); } @@ -397,8 +240,8 @@ } /* some internal dependencies */ - if (!istrue(get("/local/pcb/export_ps/enable")) || !istrue(get("/local/pcb/export_ps/buildin"))) { - if (istrue(get("/local/pcb/export_lpr/enable"))) { + if (!plug_is_buildin("export_ps")) { + if (plug_is_enabled("export_lpr")) { report_repeat("WARNING: disabling the lpr exporter because the ps exporter is not enabled as a buildin...\n"); hook_custom_arg("disable-export_lpr", NULL); } @@ -405,11 +248,11 @@ } if (!istrue(get("libs/gui/gd/presents"))) { - if (istrue(get("/local/pcb/export_nelma/enable"))) { + if (plug_is_enabled("export_nelma")) { report_repeat("WARNING: disabling the nelma exporter because libgd is not found or not configured...\n"); hook_custom_arg("disable-export_nelma", NULL); } - if (istrue(get("/local/pcb/export_png/enable"))) { + if (plug_is_enabled("export_png")) { report_repeat("WARNING: disabling the png exporter because libgd is not found or not configured...\n"); hook_custom_arg("disable-export_png", NULL); } @@ -460,26 +303,20 @@ return generr; } - -static void plugin_stat(const char *header, const char *path_prefix) +static void plugin_stat(const char *header, const char *path) { - char path_en[256], path_bi[256]; + const char *val = get(path); - sprintf(path_en, "%s/enable", path_prefix); - sprintf(path_bi, "%s/buildin", path_prefix); + printf("%-32s", header); - printf("%-32s", header); - if (node_istrue(path_en)) { - printf("yes "); - if (node_istrue(path_bi)) - printf("(buildin)\n"); - else - printf("(plugin)\n"); - } + if (val == NULL) + printf("??? (NULL)\n"); + else if (strcmp(val, sbuildin) == 0) + printf("yes (buildin)\n"); + else if (strcmp(val, splugin) == 0) + printf("yes (plugin)\n"); else printf("no\n"); - - } /* Runs after detection hooks, should generate the output (Makefiles, etc.) */ @@ -536,34 +373,15 @@ else printf("no\n"); - plugin_stat("Autorouter: ", "/local/pcb/autoroute"); - plugin_stat("Toporouter: ", "/local/pcb/toporouter"); - plugin_stat("Autoplace: ", "/local/pcb/autoplace"); - plugin_stat("Vendor drill mapping: ", "/local/pcb/vendordrill"); - plugin_stat("Puller: ", "/local/pcb/puller"); - plugin_stat("djopt: ", "/local/pcb/djopt"); - plugin_stat("Mincut: ", "/local/pcb/mincut"); - plugin_stat("renumber:", "/local/pcb/renumber"); - plugin_stat("old actions:", "/local/pcb/oldactions"); - plugin_stat("fontmode:", "/local/pcb/fontmode"); - plugin_stat("legacy functions:", "/local/pcb/legacy_func"); - plugin_stat("stroke:", "/local/pcb/stroke"); - printf("\n"); - plugin_stat("import_sch:", "/local/pcb/import_sch"); - plugin_stat("import_edif: ", "/local/pcb/import_edif"); - printf("\n"); - plugin_stat("export_gcode:", "/local/pcb/export_gcode"); - plugin_stat("export_nelma:", "/local/pcb/export_nelma"); - plugin_stat("export_png:", "/local/pcb/export_png"); - plugin_stat("export_bom:", "/local/pcb/export_bom"); - plugin_stat("export_gerber:", "/local/pcb/export_gerber"); - plugin_stat("export_ps:", "/local/pcb/export_ps"); - plugin_stat("export_lpr:", "/local/pcb/export_lpr"); +#undef plugin_def +#undef plugin_sep +#define plugin_def(name, desc, default_) plugin3_stat(name, desc) +#define plugin_sep() printf("\n"); +#include "plugins.h" if (repeat != NULL) printf("\n%s\n", repeat); - if (manual_config) printf("\n\n * NOTE: you may want to edit config.manual.h (user preferences) *\n"); } Index: trunk/scconfig/plugin_3state.h =================================================================== --- trunk/scconfig/plugin_3state.h (nonexistent) +++ trunk/scconfig/plugin_3state.h (revision 1327) @@ -0,0 +1,54 @@ +/* 3-state plugin system; possible states of each plugin, stored in + /local/pcb/PLUGIN_NAME/controls: + "disable" = do not compile it at all + "buildin" = enable, static link into the executabe + "plugin" = enable, make it a dynamic link library (runtime load plugin) +*/ + +#define sdisable "disable" +#define sbuildin "buildin" +#define splugin "plugin" + + +/* Macros to check the state */ + +#define plug_eq(name, val) \ + ((get("/local/pcb/" name "/controls") != NULL) && (strcmp(get("/local/pcb/" name "/controls"), val) == 0)) + +#define plug_is_enabled(name) (plug_eq(name, splugin) || plug_eq(name, sbuildin)) +#define plug_is_disabled(name) (plug_eq(name, sdisabled)) +#define plug_is_buildin(name) (plug_eq(name, sbuildin)) +#define plug_is_plugin(name) (plug_eq(name, splugin)) + +/* auto-set tables to change control to the desired value */ +const arg_auto_set_node_t arg_disable[] = { + {"controls", sdisable}, + {NULL, NULL} +}; + +const arg_auto_set_node_t arg_buildin[] = { + {"controls", sbuildin}, + {NULL, NULL} +}; + +const arg_auto_set_node_t arg_plugin[] = { + {"controls", splugin}, + {NULL, NULL} +}; + + +/* plugin_def implementation to create CLI args */ +#define plugin3_args(name, desc) \ + {"disable-" name, "/local/pcb/" name, arg_disable, "$do not compile " desc}, \ + {"buildin-" name, "/local/pcb/" name, arg_buildin, "$static link " desc " into the executable"}, \ + {"plugin-" name, "/local/pcb/" name, arg_plugin, "$" desc " is a dynamic loadable plugin"}, + + +/* plugin_def implementation to set default state */ +#define plugin3_default(name, default_) \ + db_mkdir("/local/pcb/" name); \ + put("/local/pcb/" name "/controls", default_); + +/* plugin_def implementation to print a report with the final state */ +#define plugin3_stat(name, desc) \ + plugin_stat(desc, "/local/pcb/" name "/controls"); Index: trunk/scconfig/plugins.h =================================================================== --- trunk/scconfig/plugins.h (nonexistent) +++ trunk/scconfig/plugins.h (revision 1327) @@ -0,0 +1,24 @@ +plugin_def("autoroute", "the original autorouter", sbuildin) +plugin_def("toporouter", "topological autorouter", sdisable) +plugin_def("autoplace", "auto place components", sbuildin) +plugin_def("vendordrill", "vendor drill mapping", sbuildin) +plugin_def("puller", "puller", sbuildin) +plugin_def("djopt", "djopt", sbuildin) +plugin_def("mincut", "minimal cut shorts", sbuildin) +plugin_def("renumber", "renumber action", sbuildin) +plugin_def("oldactions", "old/obsolete actions", sdisable) +plugin_def("fontmode", "font editor", sbuildin) +plugin_def("legacy_func", "legacy functions", sbuildin) +plugin_def("stroke", "libstroke gestures", sdisable) +plugin_sep() +plugin_def("import_sch", "import sch", sbuildin) +plugin_def("import_edif", "import edif", sbuildin) +plugin_sep() +plugin_def("export_gcode", "gcode exporter", sbuildin) +plugin_def("export_nelma", "nelma exporter", sbuildin) +plugin_def("export_png", "png/gif/jpg exporter", sbuildin) +plugin_def("export_bom", "bom exporter", sbuildin) +plugin_def("export_gerber", "gerber exporter", sbuildin) +plugin_def("export_lpr", "lpr exporter (printer)", sbuildin) +plugin_def("export_ps", "postscript exporter", sbuildin) + Index: trunk/src_plugins/autoplace/Plug.tmpasm =================================================================== --- trunk/src_plugins/autoplace/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/autoplace/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/autoplace/enable {} -append /local/pcb/autoplace/buildin {} - put /local/pcb/mod {autoplace} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/autoplace/autoplace.o $(PLUGDIR)/autoplace/action.o @] -if /local/pcb/autoplace/enable then - if /local/pcb/autoplace/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/autoplace/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/autoroute/Plug.tmpasm =================================================================== --- trunk/src_plugins/autoroute/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/autoroute/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/autoroute/enable {} -append /local/pcb/autoroute/buildin {} - put /local/pcb/mod {autoroute} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/autoroute/autoroute.o $(PLUGDIR)/autoroute/mtspace.o $(PLUGDIR)/autoroute/action.o $(PLUGDIR)/autoroute/vector.o @] -if /local/pcb/autoroute/enable then - if /local/pcb/autoroute/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/autoroute/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/djopt/Plug.tmpasm =================================================================== --- trunk/src_plugins/djopt/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/djopt/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/djopt/enable {} -append /local/pcb/djopt/buildin {} - put /local/pcb/mod {djopt} append /local/pcb/mod/OBJS [@ $(PLUGDIR)/djopt/djopt.o @] -if /local/pcb/djopt/enable then - if /local/pcb/djopt/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/djopt/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_bom/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_bom/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_bom/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/export_bom/enable {} -append /local/pcb/export_bom/buildin {} - put /local/pcb/mod {export_bom} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_bom/bom.o @] -if /local/pcb/export_bom/enable then - if /local/pcb/export_bom/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_bom/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_gcode/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_gcode/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_gcode/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/export_gcode/enable {} -append /local/pcb/export_gcode/buildin {} - put /local/pcb/mod {export_gcode} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_gcode/gcode.o $(PLUGDIR)/export_gcode/decompose.o $(PLUGDIR)/export_gcode/trace.o $(PLUGDIR)/export_gcode/curve.o @] -if /local/pcb/export_gcode/enable then - if /local/pcb/export_gcode/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_gcode/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_gerber/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_gerber/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_gerber/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/export_gerber/enable {} -append /local/pcb/export_gerber/buildin {} - put /local/pcb/mod {export_gerber} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_gerber/gerber.o @] -if /local/pcb/export_gerber/enable then - if /local/pcb/export_gerber/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_gerber/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_lpr/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_lpr/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_lpr/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/export_lpr/enable {} -append /local/pcb/export_lpr/buildin {} - put /local/pcb/mod {export_lpr} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_lpr/lpr.o @] -if /local/pcb/export_lpr/enable then - if /local/pcb/export_lpr/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_lpr/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_nelma/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_nelma/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_nelma/Plug.tmpasm (revision 1327) @@ -1,17 +1,10 @@ -append /local/pcb/export_nelma/enable {} -append /local/pcb/export_nelma/buildin {} - put /local/pcb/mod {export_nelma} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_nelma/nelma.o @] put /local/pcb/mod/LDFLAGS libs/gui/gd/ldflags put /local/pcb/mod/CFLAGS libs/gui/gd/cflags -if /local/pcb/export_nelma/enable then - if /local/pcb/export_nelma/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_nelma/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_png/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_png/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_png/Plug.tmpasm (revision 1327) @@ -1,17 +1,10 @@ -append /local/pcb/export_png/enable {} -append /local/pcb/export_png/buildin {} - put /local/pcb/mod {export_png} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_png/png.o @] put /local/pcb/mod/LDFLAGS libs/gui/gd/ldflags put /local/pcb/mod/CFLAGS libs/gui/gd/cflags -if /local/pcb/export_png/enable then - if /local/pcb/export_png/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_png/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/export_ps/Plug.tmpasm =================================================================== --- trunk/src_plugins/export_ps/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/export_ps/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/export_ps/enable {} -append /local/pcb/export_ps/buildin {} - put /local/pcb/mod {export_ps} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/export_ps/ps.o $(PLUGDIR)/export_ps/eps.o @] -if /local/pcb/export_ps/enable then - if /local/pcb/export_ps/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/export_ps/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/fontmode/Plug.tmpasm =================================================================== --- trunk/src_plugins/fontmode/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/fontmode/Plug.tmpasm (revision 1327) @@ -1,18 +1,8 @@ -append /local/pcb/fontmode/enable {} -append /local/pcb/fontmode/buildin {} - put /local/pcb/mod {fontmode} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/fontmode/fontmode.o @] -if /local/pcb/fontmode/enable then - if /local/pcb/fontmode/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/fontmode/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/import_edif/Plug.tmpasm =================================================================== --- trunk/src_plugins/import_edif/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/import_edif/Plug.tmpasm (revision 1327) @@ -1,16 +1,9 @@ -append /local/pcb/import_edif/enable {} -append /local/pcb/import_edif/buildin {} - put /local/pcb/mod {edif} append /local/pcb/mod/OBJS [@ $(PLUGDIR)/import_edif/edif.o @] append /local/pcb/YACC {edif} -if /local/pcb/import_edif/enable then - if /local/pcb/import_edif/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/import_edif/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/import_sch/Plug.tmpasm =================================================================== --- trunk/src_plugins/import_sch/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/import_sch/Plug.tmpasm (revision 1327) @@ -1,18 +1,8 @@ -append /local/pcb/import_sch/enable {} -append /local/pcb/import_sch/buildin {} - put /local/pcb/mod {import_sch} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/import_sch/import_sch.o @] -if /local/pcb/import_sch/enable then - if /local/pcb/import_sch/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/import_sch/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/legacy_func/Plug.tmpasm =================================================================== --- trunk/src_plugins/legacy_func/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/legacy_func/Plug.tmpasm (revision 1327) @@ -1,18 +1,8 @@ -append /local/pcb/legacy_func/enable {} -append /local/pcb/legacy_func/buildin {} - put /local/pcb/mod {legacy_func} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/legacy_func/legacy_func.o @] -if /local/pcb/legacy_func/enable then - if /local/pcb/legacy_func/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/legacy_func/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/mincut/Plug.tmpasm =================================================================== --- trunk/src_plugins/mincut/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/mincut/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/mincut/enable {} -append /local/pcb/mincut/buildin {} - put /local/pcb/mod {mincut} append /local/pcb/mod/OBJS [@ $(PLUGDIR)/mincut/rats_mincut.o $(PLUGDIR)/mincut/pcb-mincut/graph.o $(PLUGDIR)/mincut/pcb-mincut/solve.o @] -if /local/pcb/mincut/enable then - if /local/pcb/mincut/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/mincut/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/oldactions/Plug.tmpasm =================================================================== --- trunk/src_plugins/oldactions/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/oldactions/Plug.tmpasm (revision 1327) @@ -1,18 +1,8 @@ -append /local/pcb/oldactions/enable {} -append /local/pcb/oldactions/buildin {} - put /local/pcb/mod {oldactions} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/oldactions/oldactions.o @] -if /local/pcb/oldactions/enable then - if /local/pcb/oldactions/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/oldactions/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/puller/Plug.tmpasm =================================================================== --- trunk/src_plugins/puller/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/puller/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/puller/enable {} -append /local/pcb/puller/buildin {} - put /local/pcb/mod {puller} append /local/pcb/mod/OBJS [@ $(PLUGDIR)/puller/puller.o @] -if /local/pcb/puller/enable then - if /local/pcb/puller/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/puller/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/renumber/Plug.tmpasm =================================================================== --- trunk/src_plugins/renumber/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/renumber/Plug.tmpasm (revision 1327) @@ -1,18 +1,8 @@ -append /local/pcb/renumber/enable {} -append /local/pcb/renumber/buildin {} - put /local/pcb/mod {renumber} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/renumber/renumber.o @] -if /local/pcb/renumber/enable then - if /local/pcb/renumber/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/renumber/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/stroke/Plug.tmpasm =================================================================== --- trunk/src_plugins/stroke/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/stroke/Plug.tmpasm (revision 1327) @@ -1,19 +1,8 @@ -append /local/pcb/stroke/enable {} -append /local/pcb/stroke/buildin {} - put /local/pcb/mod {stroke} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/stroke/stroke.o @] -if /local/pcb/stroke/enable then - append /local/pcb/LDFLAGS {-lstroke} - if /local/pcb/stroke/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/stroke/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end - - - Index: trunk/src_plugins/toporouter/Plug.tmpasm =================================================================== --- trunk/src_plugins/toporouter/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/toporouter/Plug.tmpasm (revision 1327) @@ -1,26 +1,24 @@ -append /local/pcb/toporouter/enable {} -append /local/pcb/toporouter/buildin {} - put /local/pcb/mod {toporouter} put /local/pcb/mod/OBJS [@ $(PLUGDIR)/toporouter/toporouter.o @] + append /local/pcb/CFLAGS {-I../src_3rd/gts} -if /local/pcb/toporouter/enable then - -append /local/pcb/RULES [@ +put /local/pcb/toporouter_rules [@ ../src_3rd/gts/libgts.a: cd ../src_3rd/gts && make - @] - if /local/pcb/toporouter/buildin then +switch /local/pcb/toporouter/controls + case {buildin} + append /local/pcb/RULES /local/pcb/toporouter_rules append /local/pcb/LIBS { ../src_3rd/gts/libgts.a } append /local/pcb/EXEDEPS { ../src_3rd/gts/libgts.a } include {Makefile.in.mod/Buildin} - else + end; + case {plugin} + append /local/pcb/RULES /local/pcb/toporouter_rules append /local/pcb/toporouter/OBJS { ../src_3rd/gts/libgts.a } include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} + end + case {disable} include {Makefile.in.mod/Disable}; end; end Index: trunk/src_plugins/vendordrill/Plug.tmpasm =================================================================== --- trunk/src_plugins/vendordrill/Plug.tmpasm (revision 1326) +++ trunk/src_plugins/vendordrill/Plug.tmpasm (revision 1327) @@ -1,15 +1,8 @@ -append /local/pcb/vendordrill/enable {} -append /local/pcb/vendordrill/buildin {} - put /local/pcb/mod {vendordrill} append /local/pcb/mod/OBJS [@ $(PLUGDIR)/vendordrill/vendor.o @] -if /local/pcb/vendordrill/enable then - if /local/pcb/vendordrill/buildin then - include {Makefile.in.mod/Buildin} - else - include {Makefile.in.mod/Plugin} - end -else - include {Makefile.in.mod/Disable} +switch /local/pcb/vendordrill/controls + case {buildin} include {Makefile.in.mod/Buildin}; end; + case {plugin} include {Makefile.in.mod/Plugin}; end; + case {disable} include {Makefile.in.mod/Disable}; end; end