Annotation of qemu/roms/seabios/tools/kconfig/Makefile, revision 1.1.1.1

1.1       root        1: # ===========================================================================
                      2: # Kernel configuration targets
                      3: # These targets are used from top-level makefile
                      4: 
                      5: PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
                      6:        localmodconfig localyesconfig
                      7: 
                      8: ifdef KBUILD_KCONFIG
                      9: Kconfig := $(KBUILD_KCONFIG)
                     10: else
                     11: Kconfig := Kconfig
                     12: endif
                     13: 
                     14: xconfig: $(obj)/qconf
                     15:        $< $(Kconfig)
                     16: 
                     17: gconfig: $(obj)/gconf
                     18:        $< $(Kconfig)
                     19: 
                     20: menuconfig: $(obj)/mconf
                     21:        $< $(Kconfig)
                     22: 
                     23: config: $(obj)/conf
                     24:        $< --oldaskconfig $(Kconfig)
                     25: 
                     26: nconfig: $(obj)/nconf
                     27:        $< $(Kconfig)
                     28: 
                     29: oldconfig: $(obj)/conf
                     30:        $< --$@ $(Kconfig)
                     31: 
                     32: silentoldconfig: $(obj)/conf
                     33:        @echo "  Build Kconfig config file"
                     34:        $(Q)mkdir -p include/generated
                     35:        $(Q)$< --$@ $(Kconfig)
                     36: 
                     37: # if no path is given, then use src directory to find file
                     38: ifdef LSMOD
                     39: LSMOD_F := $(LSMOD)
                     40: ifeq ($(findstring /,$(LSMOD)),)
                     41:   LSMOD_F := $(objtree)/$(LSMOD)
                     42: endif
                     43: endif
                     44: 
                     45: localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
                     46:        $(Q)mkdir -p include/generated
                     47:        $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config
                     48:        $(Q)if [ -f .config ]; then                                     \
                     49:                        cmp -s .tmp.config .config ||                   \
                     50:                        (mv -f .config .config.old.1;                   \
                     51:                         mv -f .tmp.config .config;                     \
                     52:                         $(obj)/conf --silentoldconfig $(Kconfig);      \
                     53:                         mv -f .config.old.1 .config.old)               \
                     54:        else                                                            \
                     55:                        mv -f .tmp.config .config;                      \
                     56:                        $(obj)/conf --silentoldconfig $(Kconfig);       \
                     57:        fi
                     58:        $(Q)rm -f .tmp.config
                     59: 
                     60: localyesconfig: $(obj)/streamline_config.pl $(obj)/conf
                     61:        $(Q)mkdir -p include/generated
                     62:        $(Q)perl $< $(srctree) $(Kconfig) $(LSMOD_F) > .tmp.config
                     63:        $(Q)sed -i s/=m/=y/ .tmp.config
                     64:        $(Q)if [ -f .config ]; then                                     \
                     65:                        cmp -s .tmp.config .config ||                   \
                     66:                        (mv -f .config .config.old.1;                   \
                     67:                         mv -f .tmp.config .config;                     \
                     68:                         $(obj)/conf --silentoldconfig $(Kconfig);      \
                     69:                         mv -f .config.old.1 .config.old)               \
                     70:        else                                                            \
                     71:                        mv -f .tmp.config .config;                      \
                     72:                        $(obj)/conf --silentoldconfig $(Kconfig);       \
                     73:        fi
                     74:        $(Q)rm -f .tmp.config
                     75: 
                     76: # Create new linux.pot file
                     77: # Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
                     78: # The symlink is used to repair a deficiency in arch/um
                     79: update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
                     80:        $(Q)echo "  GEN config"
                     81:        $(Q)xgettext --default-domain=linux              \
                     82:            --add-comments --keyword=_ --keyword=N_      \
                     83:            --from-code=UTF-8                            \
                     84:            --files-from=tools/kconfig/POTFILES.in     \
                     85:            --output $(obj)/config.pot
                     86:        $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
                     87:        $(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
                     88:        $(Q)(for i in `ls arch/*/Kconfig`;               \
                     89:            do                                           \
                     90:                echo "  GEN $$i";                        \
                     91:                $(obj)/kxgettext $$i                     \
                     92:                     >> $(obj)/config.pot;               \
                     93:            done )
                     94:        $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
                     95:            --output $(obj)/linux.pot
                     96:        $(Q)rm -f arch/um/Kconfig.arch
                     97:        $(Q)rm -f $(obj)/config.pot
                     98: 
                     99: PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig
                    100: 
                    101: allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
                    102:        $< --$@ $(Kconfig)
                    103: 
                    104: PHONY += listnewconfig oldnoconfig savedefconfig defconfig
                    105: 
                    106: listnewconfig oldnoconfig: $(obj)/conf
                    107:        $< --$@ $(Kconfig)
                    108: 
                    109: savedefconfig: $(obj)/conf
                    110:        $< --$@=defconfig $(Kconfig)
                    111: 
                    112: defconfig: $(obj)/conf
                    113:        @echo "  Build default config"
                    114:        $(Q)$< --defconfig=/dev/null $(Kconfig)
                    115: 
                    116: # Help text used by make help
                    117: help:
                    118:        @echo  '  config          - Update current config utilising a line-oriented program'
                    119:        @echo  '  nconfig         - Update current config utilising a ncurses menu based program'
                    120:        @echo  '  menuconfig      - Update current config utilising a menu based program'
                    121:        @echo  '  xconfig         - Update current config utilising a QT based front-end'
                    122:        @echo  '  gconfig         - Update current config utilising a GTK based front-end'
                    123:        @echo  '  oldconfig       - Update current config utilising a provided .config as base'
                    124:        @echo  '  localmodconfig  - Update current config disabling modules not loaded'
                    125:        @echo  '  localyesconfig  - Update current config converting local mods to core'
                    126:        @echo  '  silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
                    127:        @echo  '  defconfig       - New config with default from ARCH supplied defconfig'
                    128:        @echo  '  savedefconfig   - Save current config as ./defconfig (minimal config)'
                    129:        @echo  '  allnoconfig     - New config where all options are answered with no'
                    130:        @echo  '  allyesconfig    - New config where all options are accepted with yes'
                    131:        @echo  '  allmodconfig    - New config selecting modules when possible'
                    132:        @echo  '  alldefconfig    - New config with all symbols set to default'
                    133:        @echo  '  randconfig      - New config with random answer to all options'
                    134:        @echo  '  listnewconfig   - List new options'
                    135:        @echo  '  oldnoconfig     - Same as silentoldconfig but set new symbols to n (unset)'
                    136: 
                    137: # lxdialog stuff
                    138: check-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
                    139: 
                    140: # Use recursively expanded variables so we do not call gcc unless
                    141: # we really need to do so. (Do not call gcc as part of make mrproper)
                    142: HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
                    143:                     -DLOCALE
                    144: 
                    145: # ===========================================================================
                    146: # Shared Makefile for the various kconfig executables:
                    147: # conf:          Used for defconfig, oldconfig and related targets
                    148: # nconf:  Used for the nconfig target.
                    149: #         Utilizes ncurses
                    150: # mconf:  Used for the menuconfig target
                    151: #         Utilizes the lxdialog package
                    152: # qconf:  Used for the xconfig target
                    153: #         Based on QT which needs to be installed to compile it
                    154: # gconf:  Used for the gconfig target
                    155: #         Based on GTK which needs to be installed to compile it
                    156: # object files used by all kconfig flavours
                    157: 
                    158: lxdialog := lxdialog/checklist.o lxdialog/util.o lxdialog/inputbox.o
                    159: lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
                    160: 
                    161: conf-objs      := conf.o  zconf.tab.o
                    162: mconf-objs     := mconf.o zconf.tab.o $(lxdialog)
                    163: nconf-objs     := nconf.o zconf.tab.o nconf.gui.o
                    164: kxgettext-objs := kxgettext.o zconf.tab.o
                    165: 
                    166: hostprogs-y := conf qconf gconf kxgettext
                    167: 
                    168: ifeq ($(MAKECMDGOALS),nconfig)
                    169:        hostprogs-y += nconf
                    170: endif
                    171: 
                    172: ifeq ($(MAKECMDGOALS),menuconfig)
                    173:        hostprogs-y += mconf
                    174: endif
                    175: 
                    176: ifeq ($(MAKECMDGOALS),xconfig)
                    177:        qconf-target := 1
                    178: endif
                    179: ifeq ($(MAKECMDGOALS),gconfig)
                    180:        gconf-target := 1
                    181: endif
                    182: 
                    183: 
                    184: ifeq ($(qconf-target),1)
                    185: qconf-cxxobjs  := qconf.o
                    186: qconf-objs     := kconfig_load.o zconf.tab.o
                    187: endif
                    188: 
                    189: ifeq ($(gconf-target),1)
                    190: gconf-objs     := gconf.o kconfig_load.o zconf.tab.o
                    191: endif
                    192: 
                    193: clean-files    := lkc_defs.h qconf.moc .tmp_qtcheck \
                    194:                   .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
                    195: clean-files     += mconf qconf gconf nconf
                    196: clean-files     += config.pot linux.pot
                    197: 
                    198: # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
                    199: PHONY += $(obj)/dochecklxdialog
                    200: $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
                    201: $(obj)/dochecklxdialog:
                    202:        $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
                    203: 
                    204: always := dochecklxdialog
                    205: 
                    206: # Add environment specific flags
                    207: HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
                    208: 
                    209: # generated files seem to need this to find local include files
                    210: HOSTCFLAGS_lex.zconf.o := -I$(src)
                    211: HOSTCFLAGS_zconf.tab.o := -I$(src)
                    212: 
                    213: HOSTLOADLIBES_qconf    = $(KC_QT_LIBS) -ldl
                    214: HOSTCXXFLAGS_qconf.o   = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
                    215: 
                    216: HOSTLOADLIBES_gconf    = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -ldl
                    217: HOSTCFLAGS_gconf.o     = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
                    218:                           -D LKC_DIRECT_LINK
                    219: 
                    220: HOSTLOADLIBES_mconf   = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
                    221: 
                    222: HOSTLOADLIBES_nconf    = -lmenu -lpanel -lncurses
                    223: $(obj)/qconf.o: $(obj)/.tmp_qtcheck
                    224: 
                    225: ifeq ($(qconf-target),1)
                    226: $(obj)/.tmp_qtcheck: $(src)/Makefile
                    227: -include $(obj)/.tmp_qtcheck
                    228: 
                    229: # QT needs some extra effort...
                    230: $(obj)/.tmp_qtcheck:
                    231:        @set -e; echo "  CHECK   qt"; dir=""; pkg=""; \
                    232:        if ! pkg-config --exists QtCore 2> /dev/null; then \
                    233:            echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \
                    234:            pkg-config --exists qt 2> /dev/null && pkg=qt; \
                    235:            pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
                    236:            if [ -n "$$pkg" ]; then \
                    237:              cflags="\$$(shell pkg-config $$pkg --cflags)"; \
                    238:              libs="\$$(shell pkg-config $$pkg --libs)"; \
                    239:              moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
                    240:              dir="$$(pkg-config $$pkg --variable=prefix)"; \
                    241:            else \
                    242:              for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
                    243:                if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
                    244:              done; \
                    245:              if [ -z "$$dir" ]; then \
                    246:                echo "*"; \
                    247:                echo "* Unable to find any QT installation. Please make sure that"; \
                    248:                echo "* the QT4 or QT3 development package is correctly installed and"; \
                    249:                echo "* either qmake can be found or install pkg-config or set"; \
                    250:                echo "* the QTDIR environment variable to the correct location."; \
                    251:                echo "*"; \
                    252:                false; \
                    253:              fi; \
                    254:              libpath=$$dir/lib; lib=qt; osdir=""; \
                    255:              $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
                    256:                osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
                    257:              test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
                    258:              test -f $$libpath/libqt-mt.so && lib=qt-mt; \
                    259:              cflags="-I$$dir/include"; \
                    260:              libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
                    261:              moc="$$dir/bin/moc"; \
                    262:            fi; \
                    263:            if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
                    264:              echo "*"; \
                    265:              echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
                    266:              echo "*"; \
                    267:              moc="/usr/bin/moc"; \
                    268:            fi; \
                    269:        else \
                    270:          cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \
                    271:          libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \
                    272:          binpath="\$$(shell pkg-config QtCore --variable=prefix)"; \
                    273:          moc="$$binpath/bin/moc"; \
                    274:        fi; \
                    275:        echo "KC_QT_CFLAGS=$$cflags" > $@; \
                    276:        echo "KC_QT_LIBS=$$libs" >> $@; \
                    277:        echo "KC_QT_MOC=$$moc" >> $@
                    278: endif
                    279: 
                    280: $(obj)/gconf.o: $(obj)/.tmp_gtkcheck
                    281: 
                    282: ifeq ($(gconf-target),1)
                    283: -include $(obj)/.tmp_gtkcheck
                    284: 
                    285: # GTK needs some extra effort, too...
                    286: $(obj)/.tmp_gtkcheck:
                    287:        @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then               \
                    288:                if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then                  \
                    289:                        touch $@;                                                               \
                    290:                else                                                                    \
                    291:                        echo "*";                                                       \
                    292:                        echo "* GTK+ is present but version >= 2.0.0 is required.";     \
                    293:                        echo "*";                                                       \
                    294:                        false;                                                          \
                    295:                fi                                                                      \
                    296:        else                                                                            \
                    297:                echo "*";                                                               \
                    298:                echo "* Unable to find the GTK+ installation. Please make sure that";   \
                    299:                echo "* the GTK+ 2.0 development package is correctly installed...";    \
                    300:                echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0.";                 \
                    301:                echo "*";                                                               \
                    302:                false;                                                                  \
                    303:        fi
                    304: endif
                    305: 
                    306: $(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
                    307: 
                    308: $(obj)/kconfig_load.o: $(obj)/lkc_defs.h
                    309: 
                    310: $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
                    311: 
                    312: $(obj)/gconf.o: $(obj)/lkc_defs.h
                    313: 
                    314: $(obj)/%.moc: $(src)/%.h
                    315:        $(KC_QT_MOC) -i $< -o $@
                    316: 
                    317: $(obj)/lkc_defs.h: $(src)/lkc_proto.h
                    318:        sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
                    319: 
                    320: # Extract gconf menu items for I18N support
                    321: $(obj)/gconf.glade.h: $(obj)/gconf.glade
                    322:        intltool-extract --type=gettext/glade $(obj)/gconf.glade
                    323: 
                    324: ###
                    325: # The following requires flex/bison/gperf
                    326: # By default we use the _shipped versions, uncomment the following line if
                    327: # you are modifying the flex/bison src.
                    328: # LKC_GENPARSER := 1
                    329: 
                    330: ifdef LKC_GENPARSER
                    331: 
                    332: $(obj)/zconf.tab.c: $(src)/zconf.y
                    333: $(obj)/lex.zconf.c: $(src)/zconf.l
                    334: $(obj)/zconf.hash.c: $(src)/zconf.gperf
                    335: 
                    336: %.tab.c: %.y
                    337:        bison -l -b $* -p $(notdir $*) $<
                    338:        cp $@ $@_shipped
                    339: 
                    340: lex.%.c: %.l
                    341:        flex -L -P$(notdir $*) -o$@ $<
                    342:        cp $@ $@_shipped
                    343: 
                    344: %.hash.c: %.gperf
                    345:        gperf < $< > $@
                    346:        cp $@ $@_shipped
                    347: 
                    348: endif
                    349: 
                    350: VPATH := $(srctree)
                    351: 
                    352: $(obj)/%:: $(src)/%_shipped
                    353:        $(Q)cat $< > $@
                    354: 
                    355: host-cobjs      := $(sort $(foreach m,$(hostprogs-y),$($(m)-objs)))
                    356: host-cobjs      := $(addprefix $(obj)/,$(host-cobjs))
                    357: hostprogs-y     := $(addprefix $(obj)/,$(hostprogs-y))
                    358: $(host-cobjs) : $(obj)/%.o : $(src)/%.c
                    359:        $(Q)$(HOSTCC) -I$(obj) -I$(srctree)/$(src) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) $(HOST_EXTRACFLAGS) -c -o $@ $<
                    360: $(hostprogs-y) : $(obj)/% : $(host-cobjs)
                    361:        $(Q)$(HOSTCC) $(HOSTLDFLAGS) -o $@ $(addprefix $(obj)/,$($(@F)-objs)) $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.