Diffstat (limited to 'scripts/kconfig/Makefile.kernel') (more/less context) (ignore whitespace changes)
-rw-r--r-- | scripts/kconfig/Makefile.kernel | 52 |
1 files changed, 45 insertions, 7 deletions
diff --git a/scripts/kconfig/Makefile.kernel b/scripts/kconfig/Makefile.kernel index 22724a7..bae5e29 100644 --- a/scripts/kconfig/Makefile.kernel +++ b/scripts/kconfig/Makefile.kernel | |||
@@ -1,95 +1,133 @@ | |||
1 | ################# | 1 | ################# |
2 | # | 2 | # |
3 | # Shared Makefile for the various lkc executables: | 3 | # Shared Makefile for the various lkc executables: |
4 | # conf: Used for defconfig, oldconfig and related targets | 4 | # conf: Used for defconfig, oldconfig and related targets |
5 | # mconf: Used for the mconfig target. | 5 | # mconf: Used for the mconfig target. |
6 | # Utilizes the lxdialog package | 6 | # Utilizes the lxdialog package |
7 | # qconf: Used for the xconfig target | 7 | # qconf: Used for the xconfig target |
8 | # Based on QT which needs to be installed to compile it | 8 | # Based on QT which needs to be installed to compile it |
9 | # gconf: Used for the gconfig target | ||
10 | # Based on GTK which needs to be installed to compile it | ||
9 | # | 11 | # |
12 | ################# | ||
10 | 13 | ||
11 | # object files used by all lkc flavours | 14 | # object files used by all lkc flavours |
12 | libkconfig-objs := zconf.tab.o | 15 | libkconfig-objs := zconf.tab.o |
13 | 16 | ||
14 | host-progs:= conf mconf qconf | 17 | host-progs:= conf mconf qconf gconf |
15 | conf-objs:= conf.o libkconfig.so | 18 | conf-objs:= conf.o libkconfig.so |
16 | mconf-objs:= mconf.o libkconfig.so | 19 | mconf-objs:= mconf.o libkconfig.so |
17 | 20 | ||
18 | qconf-objs:= kconfig_load.o | 21 | ifeq ($(MAKECMDGOALS),$(obj)/qconf) |
19 | qconf-cxxobjs:= qconf.o | 22 | qconf-cxxobjs:= qconf.o |
23 | qconf-objs:= kconfig_load.o | ||
24 | endif | ||
20 | 25 | ||
21 | clean-files:= libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \ | 26 | ifeq ($(MAKECMDGOALS),$(obj)/gconf) |
22 | zconf.tab.c zconf.tab.h lex.zconf.c | 27 | gconf-objs:= gconf.o kconfig_load.o |
28 | endif | ||
23 | 29 | ||
24 | include $(TOPDIR)/Rules.make | 30 | clean-files:= libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \ |
31 | .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c | ||
25 | 32 | ||
26 | # generated files seem to need this to find local include files | 33 | # generated files seem to need this to find local include files |
27 | HOSTCFLAGS_lex.zconf.o:= -I$(src) | 34 | HOSTCFLAGS_lex.zconf.o:= -I$(src) |
28 | HOSTCFLAGS_zconf.tab.o:= -I$(src) | 35 | HOSTCFLAGS_zconf.tab.o:= -I$(src) |
29 | 36 | ||
30 | HOSTLOADLIBES_qconf= -L$(QTDIR)/lib -Wl,-rpath,$(QTDIR)/lib -l$(QTLIB) -ldl | 37 | HOSTLOADLIBES_qconf= -L$(QTDIR)/lib -Wl,-rpath,$(QTDIR)/lib -l$(QTLIB) -ldl |
31 | HOSTCXXFLAGS_qconf.o= -I$(QTDIR)/include | 38 | HOSTCXXFLAGS_qconf.o= -I$(QTDIR)/include |
32 | 39 | ||
33 | $(obj)/conf.o $(obj)/mconf.o $(obj)/qconf.o: $(obj)/zconf.tab.h | 40 | HOSTLOADLIBES_gconf= `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --libs` |
41 | HOSTCFLAGS_gconf.o= `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --cflags` | ||
42 | |||
43 | $(obj)/conf.o $(obj)/mconf.o $(obj)/qconf.o $(obj)/gconf.o: $(obj)/zconf.tab.h | ||
34 | 44 | ||
35 | $(obj)/qconf.o: $(obj)/.tmp_qtcheck | 45 | $(obj)/qconf.o: $(obj)/.tmp_qtcheck |
36 | 46 | ||
37 | ifeq ($(MAKECMDGOALS),$(obj)/qconf) | 47 | ifeq ($(MAKECMDGOALS),$(obj)/qconf) |
38 | MOC = $(QTDIR)/bin/moc | 48 | MOC = $(QTDIR)/bin/moc |
39 | -include $(obj)/.tmp_qtcheck | 49 | -include $(obj)/.tmp_qtcheck |
40 | 50 | ||
41 | # QT needs some extra effort... | 51 | # QT needs some extra effort... |
42 | $(obj)/.tmp_qtcheck: | 52 | $(obj)/.tmp_qtcheck: |
43 | @set -e; for d in $$QTDIR /usr/share/qt /usr/lib/qt3; do \ | 53 | @set -e; for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \ |
44 | if [ -f $$d/include/qconfig.h ]; then DIR=$$d; break; fi; \ | 54 | if [ -f $$d/include/qconfig.h ]; then DIR=$$d; break; fi; \ |
45 | done; \ | 55 | done; \ |
46 | if [ -z "$$DIR" ]; then \ | 56 | if [ -z "$$DIR" ]; then \ |
47 | echo "*"; \ | 57 | echo "*"; \ |
48 | echo "* Unable to find the QT installation. Please make sure that the"; \ | 58 | echo "* Unable to find the QT installation. Please make sure that the"; \ |
49 | echo "* QT development package is correctly installed and the QTDIR"; \ | 59 | echo "* QT development package is correctly installed and the QTDIR"; \ |
50 | echo "* environment variable is set to the correct location."; \ | 60 | echo "* environment variable is set to the correct location."; \ |
51 | echo "*"; \ | 61 | echo "*"; \ |
52 | false; \ | 62 | false; \ |
53 | fi; \ | 63 | fi; \ |
54 | LIB=qt; \ | 64 | LIB=qt; \ |
55 | if [ -f $$DIR/lib/libqt-mt.so ]; then LIB=qt-mt; fi; \ | 65 | if [ -f $$DIR/lib/libqt-mt.so ]; then LIB=qt-mt; fi; \ |
56 | echo "QTDIR=$$DIR" > $@; echo "QTLIB=$$LIB" >> $@; \ | 66 | echo "QTDIR=$$DIR" > $@; echo "QTLIB=$$LIB" >> $@; \ |
57 | if [ ! -x $$DIR/bin/moc -a -x /usr/bin/moc ]; then \ | 67 | if [ ! -x $$DIR/bin/moc -a -x /usr/bin/moc ]; then \ |
58 | echo "*"; \ | 68 | echo "*"; \ |
59 | echo "* Unable to find $$DIR/bin/moc, using /usr/bin/moc instead."; \ | 69 | echo "* Unable to find $$DIR/bin/moc, using /usr/bin/moc instead."; \ |
60 | echo "*"; \ | 70 | echo "*"; \ |
61 | echo "MOC=/usr/bin/moc" >> $@; \ | 71 | echo "MOC=/usr/bin/moc" >> $@; \ |
62 | fi | 72 | fi |
63 | endif | 73 | endif |
64 | 74 | ||
75 | $(obj)/gconf.o: $(obj)/.tmp_gtkcheck | ||
76 | |||
77 | ifeq ($(MAKECMDGOALS),$(obj)/gconf) | ||
78 | -include $(obj)/.tmp_gtkcheck | ||
79 | |||
80 | # GTK needs some extra effort, too... | ||
81 | $(obj)/.tmp_gtkcheck: | ||
82 | @if `pkg-config gtk+-2.0 gmodule-2.0 libglade-2.0 --exists`; then \ | ||
83 | if `pkg-config gtk+-2.0 --atleast-version=2.0.0`; then \ | ||
84 | touch $@; \ | ||
85 | else \ | ||
86 | echo "*"; \ | ||
87 | echo "* GTK+ is present but version >= 2.0.0 is required.";\ | ||
88 | echo "*"; \ | ||
89 | false; \ | ||
90 | fi \ | ||
91 | else \ | ||
92 | echo "*"; \ | ||
93 | echo "* Unable to find the GTK+ installation. Please make sure that"; \ | ||
94 | echo "* the GTK+ 2.0 development package is correctly installed..."; \ | ||
95 | echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \ | ||
96 | echo "*"; \ | ||
97 | false; \ | ||
98 | fi | ||
99 | endif | ||
100 | |||
65 | $(obj)/zconf.tab.o: $(obj)/lex.zconf.c | 101 | $(obj)/zconf.tab.o: $(obj)/lex.zconf.c |
66 | 102 | ||
67 | $(obj)/kconfig_load.o: $(obj)/lkc_defs.h | 103 | $(obj)/kconfig_load.o: $(obj)/lkc_defs.h |
68 | 104 | ||
69 | $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h | 105 | $(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h |
70 | 106 | ||
107 | $(obj)/gconf.o: $(obj)/lkc_defs.h | ||
108 | |||
71 | $(obj)/%.moc: $(src)/%.h | 109 | $(obj)/%.moc: $(src)/%.h |
72 | $(MOC) -i $< -o $@ | 110 | $(MOC) -i $< -o $@ |
73 | 111 | ||
74 | $(obj)/lkc_defs.h: $(src)/lkc_proto.h | 112 | $(obj)/lkc_defs.h: $(src)/lkc_proto.h |
75 | sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' | 113 | sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' |
76 | 114 | ||
77 | 115 | ||
78 | ### | 116 | ### |
79 | # The following requires flex/bison | 117 | # The following requires flex/bison |
80 | # By default we use the _shipped versions, uncomment the following line if | 118 | # By default we use the _shipped versions, uncomment the following line if |
81 | # you are modifying the flex/bison src. | 119 | # you are modifying the flex/bison src. |
82 | # LKC_GENPARSER := 1 | 120 | # LKC_GENPARSER := 1 |
83 | 121 | ||
84 | ifdef LKC_GENPARSER | 122 | ifdef LKC_GENPARSER |
85 | 123 | ||
86 | $(obj)/zconf.tab.c: $(obj)/zconf.y | 124 | $(obj)/zconf.tab.c: $(obj)/zconf.y |
87 | $(obj)/zconf.tab.h: $(obj)/zconf.tab.c | 125 | $(obj)/zconf.tab.h: $(obj)/zconf.tab.c |
88 | 126 | ||
89 | %.tab.c: %.y | 127 | %.tab.c: %.y |
90 | bison -t -d -v -b $* -p $(notdir $*) $< | 128 | bison -t -d -v -b $* -p $(notdir $*) $< |
91 | 129 | ||
92 | lex.%.c: %.l | 130 | lex.%.c: %.l |
93 | flex -P$(notdir $*) -o$@ $< | 131 | flex -P$(notdir $*) -o$@ $< |
94 | 132 | ||
95 | endif | 133 | endif |