OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [scripts/] [kconfig/] [Makefile] - Blame information for rev 79

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.