add possibility to set default .config values
[openwrt.git] / scripts / config / Makefile
1 # ===========================================================================
2 # OpenWrt configuration targets
3 # These targets are used from top-level makefile
4
5 # ===========================================================================
6 # Shared Makefile for the various kconfig executables:
7 # conf:   Used for defconfig, oldconfig and related targets
8 # mconf:  Used for the mconfig target.
9 #         Utilizes the lxdialog package
10 # object files used by all kconfig flavours
11
12
13 # Platform specific fixes
14 #
15 # FreeBSD
16 export CFLAGS+=-DKBUILD_NO_NLS
17
18 conf-objs       := conf.o zconf.tab.o
19 mconf-objs      := mconf.o zconf.tab.o
20
21 clean-files     := lkc_defs.h qconf.moc .tmp_qtcheck \
22                    .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
23
24 all: conf mconf lxdialog/lxdialog
25
26 lxdialog/lxdialog:
27         $(MAKE) -C lxdialog
28
29 conf: $(conf-objs)
30 mconf: $(mconf-objs) 
31
32 clean:
33         rm -f *.o $(clean-files) conf mconf
34         $(MAKE) -C lxdialog clean
35
36 zconf.tab.o: lex.zconf.c zconf.hash.c confdata.c
37
38 kconfig_load.o: lkc_defs.h
39
40 lkc_defs.h: $(src)/lkc_proto.h
41         sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
42
43 zconf.tab.c: zconf.y
44 lex.zconf.c: zconf.l
45 zconf.hash.c: zconf.gperf
46
47 %.tab.c: %.y
48         cp $@_shipped $@ || bison -l -b $* -p $(notdir $*) $<
49
50 lex.%.c: %.l
51         cp $@_shipped $@ || flex -L -P$(notdir $*) -o$@ $<
52
53 %.hash.c: %.gperf
54         cp $@_shipped $@ || gperf < $< > $@