OSDN Git Service

3cde22640b355fbe45639f99151b57f9e751bb3c
[uclinux-h8/uClibc.git] / extra / config / Makefile
1 top_srcdir ?= ../../
2
3 ifdef O
4 top_builddir ?= ../../
5 else
6 top_builddir = ../../
7 endif
8
9 include $(top_srcdir)Rules.mak
10 include $(top_srcdir)Makerules
11
12 # ugh
13 top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
14
15 srctree := $(top_srcdir)
16 src := extra/config
17 obj := $(top_builddir)$(src)
18
19 generated := $(patsubst %_shipped,%,$(wildcard *_shipped))
20 generated := $(addprefix $(obj)/,$(generated:.c=.o))
21
22 include $(top_srcdir)extra/config/Makefile.kconfig
23 PHONY += $(always)
24 chk-lxdialog := $(top_srcdir)$(src)/lxdialog/check-lxdialog.sh
25 check-lxdialog := cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog)
26 HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ccflags')
27 HOST_LOADLIBES   = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ldflags $(HOSTCC)')
28 HOST_EXTRACFLAGS += -DLOCALE
29 HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) -c '$(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)')
30
31 # do not create temporary object in the readonly srctree
32 $(obj)/dochecklxdialog:
33         $(Q)cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
34 HOSTCFLAGS_lex.zconf.o  := -I$(top_srcdir)$(src)
35 HOSTCFLAGS_zconf.tab.o  := -I$(top_srcdir)$(src)
36 conf-objs := $(addprefix $(obj)/,$(conf-objs))
37 mconf-objs := $(addprefix $(obj)/,$(mconf-objs))
38 kxgettext-objs := $(addprefix $(obj)/,$(kxgettext-objs))
39
40 ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
41 hostprogs-y += mconf
42 endif
43
44 #BUILD_CFLAGS-config = -W -Wall -pedantic
45 #BUILD_CFLAGS-lxdialog = -W -Wall -pedantic
46
47 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
48 host-csingle:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
49 host-cmulti := $(foreach m,$(__hostprogs),\
50            $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
51 host-cobjs  := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
52
53 conf mconf kxgettext: %: $(obj)/%
54 $(obj)/conf $(obj)/mconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOST_LOADLIBES)
55 $(obj)/conf: $(conf-objs)
56         $(hcompile.u)
57 $(obj)/mconf: $(mconf-objs)
58         $(hcompile.u)
59 $(obj)/kxgettext: $(kxgettext-objs)
60         $(hcompile.u)
61
62 $(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS=$(HOST_EXTRACFLAGS) \
63                                         $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F))
64
65 host-cobjs.nogen := $(filter-out $(generated),$(host-cobjs))
66 host-cobjs.generated := $(filter $(generated),$(host-cobjs))
67
68 $(host-cobjs.nogen): $(obj)/%.o: $(top_srcdir)$(src)/%.c
69         $(hcompile.o)
70 $(host-cobjs.generated): $(obj)/%.o: $(obj)/%.c
71         $(hcompile.o)
72
73 ifndef LKC_GENPARSER
74 $(obj)/%:: $(top_srcdir)$(src)/%_shipped
75         @$(disp_gen)
76         $(Q)cat $< > $@
77 endif
78 CLEAN_extra/config menuconfig_clean:
79         $(do_rm) $(clean-files) $(lxdialog) conf $(wildcard *.o)
80 distclean: CLEAN_extra/config
81         $(Q)$(RM) -r $(lxdialog) $(conf-objs) $(mconf-objs) \
82                 $(kxgettext-objs) \
83                 $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \
84                 .depend \
85                 $(top_builddir)include/config
86
87 FORCE:
88 .PHONY: FORCE clean distclean $(always)