TODO: workaround for asserts
[wave300.git] / tools / kconfig / Makefile
blobe855254f6fc9bc4dd6fc6ea13f0ce3380a40fb0c
2 RM= rm -rf
3 CC= gcc
4 CXX= g++
6 CFLAGS= -O2 -c -MD -Wall -Wstrict-prototypes -fomit-frame-pointer
7 CXXFLAGS= -O2 -c -MD -Wall -fomit-frame-pointer
9 COMMON_SRC_DIR = .
10 COMMON_BIN_DIR = .
12 CONF_SRC_DIR = .
13 CONF_BIN_DIR = .
15 MCONF_SRC_DIR = .
16 MCONF_BIN_DIR = .
18 NCONF_SRC_DIR = .
19 NCONF_BIN_DIR = .
21 QCONF_SRC_DIR = .
22 QCONF_BIN_DIR = .
24 LXDIALOG_SRC_DIR = lxdialog
25 LXDIALOG_BIN_DIR = lxdialog
27 CONF_ELF = $(CONF_BIN_DIR)/conf
28 MCONF_ELF = $(MCONF_BIN_DIR)/mconf
29 NCONF_ELF = $(NCONF_BIN_DIR)/nconf
30 QCONF_ELF = $(QCONF_BIN_DIR)/qconf
32 zconf.tab.c: zconf.y
33 @bison -ozconf.tab.c -t -l zconf.y
34 @flex -ozconf.lex.c -L zconf.l
36 #########################
37 all: config menuconfig nconfig xconfig
39 menuconfig: $(MCONF_ELF)
41 nconfig: $(NCONF_ELF)
43 config: $(CONF_ELF)
45 xconfig: $(QCONF_ELF)
47 clean:
48 $(RM) $(MCONF_ELF) $(NCONF_ELF) $(CONF_ELF) $(QCONF_ELF) \
49 $(COMMON_OBJFILES) $(COMMON_DEPFILES) \
50 $(CONF_OBJFILES) $(CONF_DEPFILES) \
51 $(LXDIALOG_OBJFILES) $(LXDIALOG_DEPFILES) \
52 $(MCONF_OBJFILES) $(MCONF_DEPFILES) \
53 $(NCONF_OBJFILES) $(NCONF_DEPFILES) \
54 $(QCONF_OBJFILES) $(QCONF_DEPFILES) \
55 $(QCONF_CXXOBJFILES) $(QCONF_CXXDEPFILES) \
56 $(QCONF_BIN_DIR)/.tmp_qtcheck
58 ############################
59 # commonn source files
60 COMMON_SRCFILES = $(COMMON_SRC_DIR)/zconf.tab.c
62 COMMON_OBJFILES := $(COMMON_SRCFILES)
63 COMMON_OBJFILES := $(patsubst %.c,$(COMMON_BIN_DIR)/%.o,$(COMMON_OBJFILES))
65 COMMON_DEPFILES := $(COMMON_SRCFILES)
66 COMMON_DEPFILES := $(patsubst %.c,$(COMMON_BIN_DIR)/%.d,$(COMMON_DEPFILES))
68 ############################
69 # conf
70 CONF_SRCFILES = $(CONF_SRC_DIR)/conf.c
71 # zconf.tab.c
73 CONF_OBJFILES := $(CONF_SRCFILES)
74 CONF_OBJFILES := $(patsubst %.c,$(CONF_BIN_DIR)/%.o,$(CONF_OBJFILES))
76 CONF_DEPFILES := $(CONF_SRCFILES)
77 CONF_DEPFILES := $(patsubst %.c,$(CONF_BIN_DIR)/%.d,$(CONF_DEPFILES))
80 #########################
81 # mconf
82 MCONF_SRCFILES = $(MCONF_SRC_DIR)/mconf.c
83 # zconf.tab.c
85 MCONF_OBJFILES := $(MCONF_SRCFILES)
86 MCONF_OBJFILES := $(patsubst %.c, %.o, $(MCONF_OBJFILES))
88 MCONF_DEPFILES := $(MCONF_SRCFILES)
89 MCONF_DEPFILES := $(patsubst %.c, %.d, $(MCONF_DEPFILES))
91 MCONF_INCLUDES = -I/usr/include/ncurses
92 MCONF_DEFINES = -DLOCALE -DCURSES_LOC="<ncurses.h>"
93 MCONF_LIBS = -lncursesw -ldl -ltinfo
95 #########################
96 # nconf
97 NCONF_SRCFILES = $(NCONF_SRC_DIR)/nconf.c $(NCONF_SRC_DIR)/nconf.gui.c
98 # zconf.tab.c
100 NCONF_OBJFILES := $(NCONF_SRCFILES)
101 NCONF_OBJFILES := $(patsubst %.c, %.o, $(NCONF_OBJFILES))
103 NCONF_DEPFILES := $(NCONF_SRCFILES)
104 NCONF_DEPFILES := $(patsubst %.c, %.d, $(NCONF_DEPFILES))
106 NCONF_INCLUDES = -I/usr/include/ncurses
107 NCONF_DEFINES = -DLOCALE -DCURSES_LOC="<ncurses.h>"
108 NCONF_LIBS = -lncursesw -ldl -ltinfo -lmenu -lpanel
109 #NCONF_LIBS = -lncurses -ldl
111 ############################
112 # lxdialog
113 LXDIALOG_SRCFILES = $(LXDIALOG_SRC_DIR)/checklist.c \
114 $(LXDIALOG_SRC_DIR)/inputbox.c \
115 $(LXDIALOG_SRC_DIR)/menubox.c \
116 $(LXDIALOG_SRC_DIR)/textbox.c \
117 $(LXDIALOG_SRC_DIR)/util.c \
118 $(LXDIALOG_SRC_DIR)/yesno.c
120 LXDIALOG_OBJFILES := $(LXDIALOG_SRCFILES)
121 LXDIALOG_OBJFILES := $(patsubst %.c, %.o, $(LXDIALOG_OBJFILES))
123 LXDIALOG_DEPFILES := $(LXDIALOG_SRCFILES)
124 LXDIALOG_DEPFILES := $(patsubst %.c, %.d, $(LXDIALOG_SRCFILES))
127 ############################
128 # qconf
129 QCONF_SRCFILES = $(QCONF_SRC_DIR)/kconfig_load.c
130 # zconf.tab.c
133 QCONF_OBJFILES := $(QCONF_SRCFILES)
134 QCONF_OBJFILES := $(patsubst %.c, %.o, $(QCONF_OBJFILES))
136 QCONF_DEPFILES := $(QCONF_SRCFILES)
137 QCONF_DEPFILES := $(patsubst %.c, %.d, $(QCONF_SRCFILES))
139 QCONF_CXXSRCFILES = qconf.cc
141 QCONF_CXXOBJFILES := $(QCONF_CXXSRCFILES)
142 QCONF_CXXOBJFILES := $(patsubst %.cc, %.o, $(QCONF_CXXOBJFILES))
144 QCONF_CXXDEPFILES := $(QCONF_CXXSRCFILES)
145 QCONF_CXXDEPFILES := $(patsubst %.cc, %.d, $(QCONF_CXXSRCFILES))
147 QDEFINES= -DLKC_DIRECT_LINK -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -D_REENTRANT
149 ifeq ($(MAKECMDGOALS),xconfig)
150 -include $(QCONF_BIN_DIR)/.tmp_qtcheck
151 endif
153 ifeq ($(MAKECMDGOALS),all)
154 -include $(QCONF_BIN_DIR)/.tmp_qtcheck
155 endif
157 ifeq ($(MAKECMDGOALS),)
158 -include $(QCONF_BIN_DIR)/.tmp_qtcheck
159 endif
161 $(QCONF_BIN_DIR)/.tmp_qtcheck:
162 @set -e; echo " CHECK qt"; dir=""; pkg=""; \
163 pkg-config --exists qt 2> /dev/null && pkg=qt; \
164 pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
165 if [ -n "$$pkg" ]; then \
166 cflags="\$$(shell pkg-config $$pkg --cflags)"; \
167 libs="\$$(shell pkg-config $$pkg --libs)"; \
168 dir="$$(pkg-config $$pkg --variable=prefix)"; \
169 else \
170 for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
171 if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
172 done; \
173 if [ -z "$$dir" ]; then \
174 echo "*"; \
175 echo "* Unable to find the QT3 installation. Please make sure that"; \
176 echo "* the QT3 development package is correctly installed and"; \
177 echo "* either install pkg-config or set the QTDIR environment"; \
178 echo "* variable to the correct location."; \
179 echo "*"; \
180 false; \
181 fi; \
182 libpath=$$dir/lib; lib=qt; osdir=""; \
183 $(CXX) -print-multi-os-directory > /dev/null 2>&1 && \
184 osdir=x$$($(CXX) -print-multi-os-directory); \
185 test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
186 test -f $$libpath/libqt-mt.so && lib=qt-mt; \
187 cflags="-I$$dir/include"; \
188 libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
189 fi; \
190 echo "KC_QT_CFLAGS=$$cflags" > $@; \
191 echo "KC_QT_LIBS=$$libs" >> $@;
193 ############################
194 # compile common files (zconf.tab.c)
195 $(COMMON_OBJFILES): %.o: %.c
196 @echo '[$<]'
197 $(CC) $(CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
199 # compile "conf 'c'" files
200 $(CONF_OBJFILES): %.o: %.c
201 @echo '[$<]'
202 $(CC) $(CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
204 # compile "mconf 'c'" files
205 $(MCONF_OBJFILES): %.o: %.c
206 @echo '[$<]'
207 $(CC) $(MCONF_INCLUDES) $(MCONF_DEFINES) $(CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
209 # compile "nconf 'c'" files
210 $(NCONF_OBJFILES): %.o: %.c
211 @echo '[$<]'
212 $(CC) $(NCONF_INCLUDES) $(NCONF_DEFINES) $(CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
214 # compile "lxdialog 'c'" files
215 $(LXDIALOG_OBJFILES): %.o: %.c
216 @echo '[$<]'
217 $(CC) $(MCONF_INCLUDES) $(MCONF_DEFINES) $(CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
219 # compile "qconf 'c'" files
220 $(QCONF_OBJFILES): %.o: %.c
221 @echo '[$<]'
222 $(CC) $(CFLAGS) $(KC_QT_CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
224 # compile "qt 'c++'" files
225 $(QCONF_CXXOBJFILES): %.o: %.cc
226 @echo '[$<]'
227 $(CXX) $(QDEFINES) $(CXXFLAGS) $(KC_QT_CFLAGS) -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $<
229 ############################
230 # link .conf
231 $(CONF_ELF): $(COMMON_OBJFILES) $(CONF_OBJFILES)
232 @echo 'Linking $(CONF_ELF)'
233 $(CC) $(COMMON_OBJFILES) $(CONF_OBJFILES) -o $(CONF_ELF)
234 @echo
236 # link .mconf
237 $(MCONF_ELF): $(COMMON_OBJFILES) $(LXDIALOG_OBJFILES) $(MCONF_OBJFILES)
238 @echo 'Linking $(MCONF_ELF)'
239 $(CC) $(COMMON_OBJFILES) $(MCONF_OBJFILES) $(LXDIALOG_OBJFILES) $(MCONF_LIBS) -o $(MCONF_ELF)
240 @echo
242 # link .nconf
243 $(NCONF_ELF): $(COMMON_OBJFILES) $(NCONF_OBJFILES)
244 @echo 'Linking $(NCONF_ELF)'
245 $(CC) $(COMMON_OBJFILES) $(NCONF_OBJFILES) $(NCONF_LIBS) -o $(NCONF_ELF)
246 @echo
248 # link .qconf
249 $(QCONF_ELF): $(COMMON_OBJFILES) $(QCONF_OBJFILES) $(QCONF_CXXOBJFILES)
250 @echo 'Linking $(QCONF_ELF)'
251 $(CC) $(COMMON_OBJFILES) $(QCONF_OBJFILES) $(QCONF_CXXOBJFILES) $(KC_QT_LIBS) -o $(QCONF_ELF) -lstdc++
252 @echo
254 ############################
255 # dependencies
256 ifneq ($(strip $(COMMON_DEPFILES)),)
257 -include $(COMMON_DEPFILES)
258 endif
260 ifneq ($(strip $(CONF_DEPFILES)),)
261 -include $(CONF_DEPFILES)
262 endif
264 ifneq ($(strip $(MCONF_DEPFILES)),)
265 -include $(MCONF_DEPFILES)
266 endif
268 ifneq ($(strip $(NCONF_DEPFILES)),)
269 -include $(NCONF_DEPFILES)
270 endif
272 ifneq ($(strip $(QCONF_DEPFILES)),)
273 -include $(QCONF_DEPFILES)
274 endif
276 ifneq ($(strip $(LXDIALOG_DEPFILES)),)
277 -include $(LXDIALOG_DEPFILES)
278 endif