| # |
| # Kbuild file for dash |
| # |
| |
| config-cppflags := -DBSD=1 -DSMALL -DJOBS=0 -DHAVE_CONFIG_H -DSHELL |
| config-cppflags += -DGLOB_BROKEN -DIFS_BROKEN |
| |
| EXTRA_KLIBCCFLAGS := -I$(srctree)/$(src) -I$(objtree)/$(obj) |
| EXTRA_KLIBCCFLAGS += -include $(srctree)/$(src)/config.h |
| EXTRA_KLIBCCFLAGS += $(config-cppflags) |
| |
| HOST_EXTRACFLAGS := $(config-cppflags) |
| |
| init-o-files := alias.o arith_yacc.o arith_yylex.o cd.o error.o eval.o exec.o expand.o \ |
| histedit.o input.o jobs.o mail.o main.o memalloc.o miscbltin.o \ |
| mystring.o options.o parser.o redir.o show.o trap.o output.o \ |
| bltin/printf.o system.o bltin/test.o var.o |
| |
| gen-o-files := builtins.o init.o nodes.o syntax.o |
| |
| sh-y := $(init-o-files) $(gen-o-files) |
| |
| hostprogs-y := mkinit mksyntax mknodes mksignames |
| gen-h-files := builtins.h nodes.h syntax.h token.h |
| |
| static-y := sh |
| |
| # The shared binary |
| shared-y := sh.shared |
| sh.shared-y := $(sh-y) |
| |
| # For cleaning |
| targets := sh sh.g sh.shared sh.shared.g $(gen-o-files) |
| |
| # explicit dependency for all generated files |
| $(addprefix $(obj)/, $(sh-y)): $(addprefix $(obj)/, $(gen-h-files)) |
| |
| # Generate token.h |
| targets += token.h |
| quiet_cmd_mktokens = GEN $@ |
| cmd_mktokens = sh $< > $@ |
| $(obj)/token.h: $(src)/mktokens |
| $(call if_changed,mktokens) |
| |
| # Generate builtins.def |
| targets += builtins.def |
| quiet_cmd_mkbuiltins_def = GEN $@ |
| cmd_mkbuiltins_def = $(HOSTCC) $(hostc_flags) -x c -E -o $@ $< |
| $(obj)/builtins.def: $(src)/builtins.def.in $(src)/config.h |
| $(call if_changed,mkbuiltins_def) |
| |
| # Generate builtins{.c + .h} |
| targets += builtins.c builtins.h |
| quiet_cmd_mkbuiltins = GEN $@ |
| cmd_mkbuiltins = mkdir -p $(obj)/bltin && cd $(obj) && \ |
| sh $(srctree)/$(src)/mkbuiltins builtins.def |
| $(obj)/builtins.c: $(src)/mkbuiltins $(obj)/builtins.def |
| $(call cmd,mkbuiltins) |
| |
| # side effect.. |
| $(obj)/builtins.h: $(obj)/builtins.c |
| $(Q): |
| |
| # Generate init.c |
| targets += init.c |
| init-c-files := $(addprefix $(srctree)/$(src)/, $(init-o-files:.o=.c)) |
| quiet_cmd_mkinit = GEN $@ |
| cmd_mkinit = cd $(obj) && ./mkinit $(init-c-files) |
| $(obj)/init.c: $(obj)/mkinit $(init-c-files) |
| $(call cmd,mkinit) |
| |
| # Generate nodes{.c + .h} |
| targets += nodes.c nodes.h |
| quiet_cmd_mknodes = GEN $@ |
| cmd_mknodes = cd $(obj) && ./mknodes $(srctree)/$(src)/nodetypes \ |
| $(srctree)/$(src)/nodes.c.pat |
| $(obj)/nodes.c: $(obj)/mknodes $(src)/nodetypes $(src)/nodes.c.pat |
| $(call cmd,mknodes) |
| |
| # side effect.. |
| $(obj)/nodes.h: $(obj)/nodes.c |
| $(Q): |
| |
| # Generate syntax{.c + .h} |
| targets += syntax.c syntax.h |
| quiet_cmd_mksyntax = GEN $@ |
| cmd_mksyntax = cd $(obj) && ./mksyntax |
| $(obj)/syntax.c: $(obj)/mksyntax |
| $(call cmd,mksyntax) |
| |
| # side effect.. |
| $(obj)/syntax.h: $(obj)/syntax.c |
| $(Q): |
| |
| # Targets to install |
| install-y := sh.shared |