Changeset 473


Ignore:
Timestamp:
Oct 26, 2012, 1:28:17 AM (7 years ago)
Author:
ehem
Message:

Create USE_ALT_CONF. This might be worse, but I wanted the idea to be
considered, so everyone can take a look.

Location:
branches/contrib/plugins
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/contrib/plugins/example/Config.in

    r468 r473  
    2727# full override by the plugin.
    2828
     29## this config would be removed for USE_ALT_CONF
    2930config PLUGIN_EXAMPLE_ENABLE
    3031        bool "Support for new target example"
     
    3334
    3435config TARGET_example
     36#config PLUGIN_%_TARGET_example
    3537        bool "Target example"
    3638        depends PLUGIN_EXAMPLE_ENABLE
     39#       depends PLUGIN_%_ENABLE
    3740        help
    3841          Add support for target platform: example
     
    4245        depends TARGET_example
    4346        default TARGET_example_subsysB
     47#       depends PLUGIN_%_TARGET_example
     48#       default PLUGIN_%_TARGET_example_subsysB
    4449
    4550    config TARGET_example_subsysA
     51#    config PLUGIN_%_TARGET_subsysA
    4652            bool "Sub-System A"
    4753            help
     
    4955
    5056    config TARGET_example_subsysB
     57#    config PLUGIN_%_TARGET_subsysB
    5158            bool "Sub-System B"
    5259            help
     
    5461
    5562    config TARGET_example_subsysC
     63#    config PLUGIN_%_TARGET_subsysC
    5664            bool "Sub-System C"
    5765            help
     
    6169       
    6270config PLUGIN_EXAMPLE_OPTION_A
     71#config PLUGIN_%_OPTION_A
    6372        bool "Option A"
    6473        default y
    6574        depends PLUGIN_EXAMPLE_ENABLE
     75#       depends PLUGIN_%_ENABLE
    6676
    6777
  • branches/contrib/plugins/plugins.mk

    r471 r473  
    2222PLUGINS_AVAIL:=$(shell find $(PLUGINS_DIR) -maxdepth 1 -mindepth 1 -type d ! -name '.*' -printf '%f\n')
    2323
     24ifndef USE_ALT_CONF
    2425ifeq ($(PLUGIN),)
    2526        PLUGINS_ENAB=$(PLUGINS_AVAIL)
    2627else
    2728        PLUGINS_ENAB=$(PLUGIN)
     29endif
    2830endif
    2931
     
    3436PLUGIN_RULE = $(PLUGINS_DIR)/$(PLUGIN_NAME)
    3537
     38ifndef USE_ALT_CONF
    3639$(foreach PLUGIN_ID,$(shell seq $(words $(PLUGINS_ENAB))),\
    3740$(eval $(PLUGIN_VAR):=$(word $(PLUGIN_ID),$(PLUGINS_ENAB)))\
    3841$(eval -include $(addprefix $(PLUGINS_DIR)/,$(addsuffix /plugin.mk,$(PLUGIN_NAME)))))
     42
     43else
     44PLUGINS_COUNT := $(if $(CONFIG_PLUGINS_COUNT),$(CONFIG_PLUGINS_COUNT),0)
     45
     46PLUGINS_ENAB := $(foreach PLUGIN_ID,$(shell seq $(PLUGINS_COUNT)),\
     47        $(eval $(PLUGIN_VAR):=$(call qstrip,$(CONFIG_$(PLUGIN_VAR))))\
     48        $(if $(CONFIG_$(PLUGIN_VAR)_ENABLE),$(PLUGIN_NAME)\
     49                $(eval -include $(PLUGINS_DIR)/$(PLUGIN_NAME)/plugin.mk)))
     50endif
    3951
    4052PLUGIN_CONFIG_LINE = menu \"Plugin $${plugin_up}\"\n\
     
    4456OPENWRT_PATCH_DIRS += $(wildcard $(addprefix $(PLUGINS_DIR)/,$(addsuffix /openwrt,$(PLUGINS_ENAB))))
    4557
    46 plugins/generate-config: $(TMP_DIR)
    47         rm -f $(TOPDIR)/tmp/plugins-generated.in
     58plugins/generate-config: plugins/remove $(TMP_DIR)
     59        rm -f $(TMP_DIR)/plugins-generated.in
    4860        @for plugin in $(PLUGINS_AVAIL); \
    4961        do \
     
    5365        done
    5466        touch $@
     67
     68ifdef USE_ALT_CONF
     69plugins/generate-config: plugins/remove $(TMP_DIR)
     70        @gen=$(TMP_DIR)/plugins-generated.in ; \
     71        rm -f $${gen} ; \
     72        idx=0 ; \
     73        for plugin in $(PLUGINS_AVAIL) ; \
     74        do \
     75                idx=`expr $${idx} + 1` ; \
     76                echo "Generating config for plugin: $${plugin}" ; \
     77                echo "config PLUGIN_$${idx}_ENABLE" >> $${gen} ; \
     78                echo "  bool \"Enable $${plugin}\"" >> $${gen} ; \
     79                echo "  default y" >> $${gen} ; \
     80                echo "" >> $${gen} ; \
     81                echo "config PLUGIN_$${idx}" >> $${gen} ; \
     82                echo "  string" >> $${gen} ; \
     83                echo "  default \"$${plugin}\"" >> $${gen} ; \
     84                echo "" >> $${gen} ; \
     85                if [ -e "$(PLUGINS_DIR)/$${plugin}/Config.in" ] ; \
     86                then \
     87                        plugin_up=$$(echo $${plugin} | tr [a-z] [A-Z]) ; \
     88                        echo "if PLUGIN_$${idx}_ENABLE" >> $${gen} ; \
     89                        echo "menu \"Plugin $${plugin_up}\"" >> $${gen} ; \
     90                        sed -e's/\([^%]\)%\([^%]\)/\1'$${idx}'\2/g' \
     91                          -e's/^%\([^%]\)/'$${idx}'\1/' \
     92                          -e's/\([^%]\)%$$/\1'$${idx}'/' \
     93                          -es/\%\%/\%/g  < $(PLUGINS_DIR)/$${plugin}/Config.in \
     94                          >> $(PLUGINS_DIR)/plugins-generated.in ; \
     95                        echo "endmenu" >> $${gen} ; \
     96                        echo "endif" >> $${gen} ; \
     97                        echo "" >> $${gen} ; \
     98                fi ; \
     99        done ; \
     100        echo "config PLUGINS_COUNT" >> $${gen} ; \
     101        echo "  int" >> $${gen} ; \
     102        echo "  default \"$${idx}\"" >> $${gen} ; \
     103        touch $@
     104endif
    55105
    56106plugins/list:
     
    94144        touch $@
    95145
    96 
    97146plugins/clean:
    98147        [ -f plugins/apply ] && make -C $(TOPDIR) plugins/remove ; \
Note: See TracChangeset for help on using the changeset viewer.