Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Merge branch 'devel'
[palacios.git] / kitten / scripts / kconfig / Makefile
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
7 xconfig: $(obj)/qconf
8         $< arch/$(ARCH)/Kconfig
9
10 gconfig: $(obj)/gconf
11         $< arch/$(ARCH)/Kconfig
12
13 menuconfig: $(obj)/mconf
14         $(Q)$(MAKE) $(build)=scripts/kconfig/lxdialog
15         $< arch/$(ARCH)/Kconfig
16
17 config: $(obj)/conf
18         $< arch/$(ARCH)/Kconfig
19
20 oldconfig: $(obj)/conf
21         $< -o arch/$(ARCH)/Kconfig
22
23 silentoldconfig: $(obj)/conf
24         $< -s arch/$(ARCH)/Kconfig
25
26 update-po-config: $(obj)/kxgettext
27         xgettext --default-domain=linux \
28           --add-comments --keyword=_ --keyword=N_ \
29           --files-from=scripts/kconfig/POTFILES.in \
30           --output scripts/kconfig/config.pot
31         $(Q)ln -fs Kconfig_i386 arch/um/Kconfig_arch
32         $(Q)for i in `ls arch/`; \
33         do \
34           scripts/kconfig/kxgettext arch/$$i/Kconfig \
35             | msguniq -o scripts/kconfig/linux_$${i}.pot; \
36         done
37         $(Q)msgcat scripts/kconfig/config.pot \
38           `find scripts/kconfig/ -type f -name linux_*.pot` \
39           --output scripts/kconfig/linux_raw.pot
40         $(Q)msguniq --sort-by-file scripts/kconfig/linux_raw.pot \
41             --output scripts/kconfig/linux.pot
42         $(Q)rm -f arch/um/Kconfig_arch
43         $(Q)rm -f scripts/kconfig/linux_*.pot scripts/kconfig/config.pot
44
45 PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
46
47 randconfig: $(obj)/conf
48         $< -r arch/$(ARCH)/Kconfig
49
50 allyesconfig: $(obj)/conf
51         $< -y arch/$(ARCH)/Kconfig
52
53 allnoconfig: $(obj)/conf
54         $< -n arch/$(ARCH)/Kconfig
55
56 allmodconfig: $(obj)/conf
57         $< -m arch/$(ARCH)/Kconfig
58
59 defconfig: $(obj)/conf
60 ifeq ($(KBUILD_DEFCONFIG),)
61         $< -d arch/$(ARCH)/Kconfig
62 else
63         @echo *** Default configuration is based on '$(KBUILD_DEFCONFIG)'
64         $(Q)$< -D arch/$(ARCH)/configs/$(KBUILD_DEFCONFIG) arch/$(ARCH)/Kconfig
65 endif
66
67 %_defconfig: $(obj)/conf
68         $(Q)$< -D arch/$(ARCH)/configs/$@ arch/$(ARCH)/Kconfig
69
70 # Help text used by make help
71 help:
72         @echo  '  config          - Update current config utilising a line-oriented program'
73         @echo  '  menuconfig      - Update current config utilising a menu based program'
74         @echo  '  xconfig         - Update current config utilising a QT based front-end'
75         @echo  '  gconfig         - Update current config utilising a GTK based front-end'
76         @echo  '  oldconfig       - Update current config utilising a provided .config as base'
77         @echo  '  randconfig      - New config with random answer to all options'
78         @echo  '  defconfig       - New config with default answer to all options'
79         @echo  '  allmodconfig    - New config selecting modules when possible'
80         @echo  '  allyesconfig    - New config where all options are accepted with yes'
81         @echo  '  allnoconfig     - New config where all options are answered with no'
82
83 # ===========================================================================
84 # Shared Makefile for the various kconfig executables:
85 # conf:   Used for defconfig, oldconfig and related targets
86 # mconf:  Used for the mconfig target.
87 #         Utilizes the lxdialog package
88 # qconf:  Used for the xconfig target
89 #         Based on QT which needs to be installed to compile it
90 # gconf:  Used for the gconfig target
91 #         Based on GTK which needs to be installed to compile it
92 # object files used by all kconfig flavours
93
94 hostprogs-y     := conf mconf qconf gconf kxgettext
95 conf-objs       := conf.o  zconf.tab.o
96 mconf-objs      := mconf.o zconf.tab.o
97 kxgettext-objs  := kxgettext.o zconf.tab.o
98
99 ifeq ($(MAKECMDGOALS),xconfig)
100         qconf-target := 1
101 endif
102 ifeq ($(MAKECMDGOALS),gconfig)
103         gconf-target := 1
104 endif
105
106
107 ifeq ($(qconf-target),1)
108 qconf-cxxobjs   := qconf.o
109 qconf-objs      := kconfig_load.o zconf.tab.o
110 endif
111
112 ifeq ($(gconf-target),1)
113 gconf-objs      := gconf.o kconfig_load.o zconf.tab.o
114 endif
115
116 clean-files     := lkc_defs.h qconf.moc .tmp_qtcheck \
117                    .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
118 subdir- += lxdialog
119
120 # Needed for systems without gettext
121 KBUILD_HAVE_NLS := $(shell \
122      if echo "\#include <libintl.h>" | $(HOSTCC) $(HOSTCFLAGS) -E - > /dev/null 2>&1 ; \
123      then echo yes ; \
124      else echo no ; fi)
125 ifeq ($(KBUILD_HAVE_NLS),no)
126 HOSTCFLAGS      += -DKBUILD_NO_NLS
127 endif
128
129 # generated files seem to need this to find local include files
130 HOSTCFLAGS_lex.zconf.o  := -I$(src)
131 HOSTCFLAGS_zconf.tab.o  := -I$(src)
132
133 HOSTLOADLIBES_qconf     = $(KC_QT_LIBS) -ldl
134 HOSTCXXFLAGS_qconf.o    = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
135
136 HOSTLOADLIBES_gconf     = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
137 HOSTCFLAGS_gconf.o      = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
138                           -D LKC_DIRECT_LINK
139
140 $(obj)/qconf.o: $(obj)/.tmp_qtcheck
141
142 ifeq ($(qconf-target),1)
143 $(obj)/.tmp_qtcheck: $(src)/Makefile
144 -include $(obj)/.tmp_qtcheck
145
146 # QT needs some extra effort...
147 $(obj)/.tmp_qtcheck:
148         @set -e; echo "  CHECK   qt"; dir=""; pkg=""; \
149         pkg-config --exists qt 2> /dev/null && pkg=qt; \
150         pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
151         if [ -n "$$pkg" ]; then \
152           cflags="\$$(shell pkg-config $$pkg --cflags)"; \
153           libs="\$$(shell pkg-config $$pkg --libs)"; \
154           moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
155           dir="$$(pkg-config $$pkg --variable=prefix)"; \
156         else \
157           for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
158             if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
159           done; \
160           if [ -z "$$dir" ]; then \
161             echo "*"; \
162             echo "* Unable to find the QT installation. Please make sure that"; \
163             echo "* the QT development package is correctly installed and"; \
164             echo "* either install pkg-config or set the QTDIR environment"; \
165             echo "* variable to the correct location."; \
166             echo "*"; \
167             false; \
168           fi; \
169           libpath=$$dir/lib; lib=qt; osdir=""; \
170           $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
171             osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
172           test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
173           test -f $$libpath/libqt-mt.so && lib=qt-mt; \
174           cflags="-I$$dir/include"; \
175           libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
176           moc="$$dir/bin/moc"; \
177         fi; \
178         if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
179           echo "*"; \
180           echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
181           echo "*"; \
182           moc="/usr/bin/moc"; \
183         fi; \
184         echo "KC_QT_CFLAGS=$$cflags" > $@; \
185         echo "KC_QT_LIBS=$$libs" >> $@; \
186         echo "KC_QT_MOC=$$moc" >> $@
187 endif
188
189 $(obj)/gconf.o: $(obj)/.tmp_gtkcheck
190
191 ifeq ($(gconf-target),1)
192 -include $(obj)/.tmp_gtkcheck
193
194 # GTK needs some extra effort, too...
195 $(obj)/.tmp_gtkcheck:
196         @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then               \
197                 if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then                  \
198                         touch $@;                                                               \
199                 else                                                                    \
200                         echo "*";                                                       \
201                         echo "* GTK+ is present but version >= 2.0.0 is required.";     \
202                         echo "*";                                                       \
203                         false;                                                          \
204                 fi                                                                      \
205         else                                                                            \
206                 echo "*";                                                               \
207                 echo "* Unable to find the GTK+ installation. Please make sure that";   \
208                 echo "* the GTK+ 2.0 development package is correctly installed...";    \
209                 echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0.";                 \
210                 echo "*";                                                               \
211                 false;                                                                  \
212         fi
213 endif
214
215 $(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
216
217 $(obj)/kconfig_load.o: $(obj)/lkc_defs.h
218
219 $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
220
221 $(obj)/gconf.o: $(obj)/lkc_defs.h
222
223 $(obj)/%.moc: $(src)/%.h
224         $(KC_QT_MOC) -i $< -o $@
225
226 $(obj)/lkc_defs.h: $(src)/lkc_proto.h
227         sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
228
229
230 ###
231 # The following requires flex/bison/gperf
232 # By default we use the _shipped versions, uncomment the following line if
233 # you are modifying the flex/bison src.
234 # LKC_GENPARSER := 1
235
236 ifdef LKC_GENPARSER
237
238 $(obj)/zconf.tab.c: $(src)/zconf.y
239 $(obj)/lex.zconf.c: $(src)/zconf.l
240 $(obj)/zconf.hash.c: $(src)/zconf.gperf
241
242 %.tab.c: %.y
243         bison -l -b $* -p $(notdir $*) $<
244         cp $@ $@_shipped
245
246 lex.%.c: %.l
247         flex -L -P$(notdir $*) -o$@ $<
248         cp $@ $@_shipped
249
250 %.hash.c: %.gperf
251         gperf < $< > $@
252         cp $@ $@_shipped
253
254 endif