summaryrefslogtreecommitdiff
path: root/scripts/config/Makefile
blob: 04e8330a01d5db18fd7ef8e790dbc3c725ad4405 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# ===========================================================================
# Kernel configuration targets
# These targets are used from top-level makefile

# ===========================================================================
# Shared Makefile for the various kconfig executables:
# conf:	  Used for defconfig, oldconfig and related targets
# mconf:  Used for the mconfig target.
#         Utilizes the lxdialog package
# object files used by all kconfig flavours

conf-objs	:= conf.o zconf.tab.o
mconf-objs	:= mconf.o zconf.tab.o

clean-files	:= lkc_defs.h qconf.moc .tmp_qtcheck \
		   .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c

all: conf mconf lxdialog

.PHONY: lxdialog
lxdialog:
	$(MAKE) -C lxdialog

conf: $(conf-objs)
mconf: $(mconf-objs)

clean:
	rm -f *.o $(clean-files) conf mconf
	$(MAKE) -C lxdialog clean

zconf.tab.o: lex.zconf.c zconf.hash.c

kconfig_load.o: lkc_defs.h

lkc_defs.h: $(src)/lkc_proto.h
	sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'

zconf.tab.c: zconf.y
lex.zconf.c: zconf.l
zconf.hash.c: zconf.gperf

%.tab.c: %.y
	bison -l -b $* -p $(notdir $*) $< && cp $@ $@_shipped || cp $@_shipped $@

lex.%.c: %.l
	flex -L -P$(notdir $*) -o$@ $< && cp $@ $@_shipped || cp $@_shipped $@

%.hash.c: %.gperf
	gperf < $< > $@ && cp $@ $@_shipped || cp $@_shipped $@