3 include $(top_srcdir)Rules.mak
4 include $(top_srcdir)Makerules
7 top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
13 srctree := $(top_srcdir)
15 obj := $(top_builddir)$(src)
17 generated := $(patsubst %_shipped,%,$(wildcard *_shipped))
18 generated := $(addprefix $(obj)/,$(generated:.c=.o))
20 include $(top_srcdir)extra/config/Makefile.kconfig
22 chk-lxdialog := $(top_srcdir)$(src)/lxdialog/check-lxdialog.sh
23 check-lxdialog := cd $(obj) && $(chk-lxdialog)
24 HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ccflags')
25 HOST_LOADLIBES = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ldflags $(HOSTCC)')
26 HOST_EXTRACFLAGS += -DLOCALE
27 HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) -c '$(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)')
29 # do not create temporary object in the readonly srctree
30 $(obj)/dochecklxdialog:
31 $(Q)cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
32 HOSTCFLAGS_lex.zconf.o := -I$(top_srcdir)$(src)
33 HOSTCFLAGS_zconf.tab.o := -I$(top_srcdir)$(src)
34 conf-objs := $(addprefix $(obj)/,$(conf-objs))
35 mconf-objs := $(addprefix $(obj)/,$(mconf-objs))
36 kxgettext-objs := $(addprefix $(obj)/,$(kxgettext-objs))
38 ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
42 #BUILD_CFLAGS-config = -W -Wall -pedantic
43 #BUILD_CFLAGS-lxdialog = -W -Wall -pedantic
45 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
46 host-csingle:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
47 host-cmulti := $(foreach m,$(__hostprogs),\
48 $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
49 host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
51 conf mconf kxgettext: %: $(obj)/%
52 $(obj)/conf $(obj)/mconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOST_LOADLIBES)
53 $(obj)/conf: $(conf-objs)
55 $(obj)/mconf: $(mconf-objs)
57 $(obj)/kxgettext: $(kxgettext-objs)
60 $(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS=$(HOST_EXTRACFLAGS) \
61 $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F))
63 host-cobjs.nogen := $(filter-out $(generated),$(host-cobjs))
64 host-cobjs.generated := $(filter $(generated),$(host-cobjs))
66 $(host-cobjs.nogen): $(obj)/%.o: $(top_srcdir)$(src)/%.c
68 $(host-cobjs.generated): $(obj)/%.o: $(obj)/%.c
72 $(obj)/%:: $(top_srcdir)$(src)/%_shipped
77 $(do_rm) $(clean-files) conf
79 $(do_rm) $(lxdialog) $(conf-objs) $(mconf-objs) \
81 $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \
83 $(do_rm) -r $(top_builddir)include/config
86 .PHONY: FORCE clean distclean $(always)