summary refs log tree commit diff
path: root/Src/zsh.mdd
blob: 56cd081e80479f42b2439571875b51955f68ba2c (plain) (blame)
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
name=zsh/main
link=static
load=yes
# load=static should replace use of alwayslink

nozshdep=1
alwayslink=1

# autobins not specified because of alwayslink

objects="builtin.o compat.o cond.o exec.o glob.o hashtable.o \
hist.o init.o input.o jobs.o lex.o linklist.o loop.o math.o \
mem.o module.o options.o params.o parse.o pattern.o prompt.o signals.o \
signames.o string.o subst.o text.o utils.o watch.o"

headers="../config.h system.h zsh.h sigcount.h signals.h \
prototypes.h hashtable.h ztype.h"

:<<\Make
@CONFIG_MK@

signames.c: signames1.awk signames2.awk ../config.h @SIGNAL_H@
	$(AWK) -f $(sdir)/signames1.awk @SIGNAL_H@ >sigtmp.c
	$(CPP) sigtmp.c >sigtmp.out
	$(AWK) -f $(sdir)/signames2.awk sigtmp.out > $@
	rm -f sigtmp.c sigtmp.out

sigcount.h: signames.c
	grep 'define.*SIGCOUNT' signames.c > $@

init.o: bltinmods.list zshpaths.h zshxmods.h

init.o params.o: version.h

version.h: $(sdir_top)/Config/version.mk
	echo '#define ZSH_VERSION "'$(VERSION)'"' > $@

zshpaths.h: Makemod $(CONFIG_INCS)
	@echo '#define MODULE_DIR "'$(MODDIR)'"' > zshpaths.h.tmp
	@if test x$(sitefndir) != xno; then \
	  echo '#define SITEFPATH_DIR "'$(sitefndir)'"' >> zshpaths.h.tmp; \
	fi
	@if test x$(fndir) != xno; then \
	  echo '#define FPATH_DIR "'$(fndir)'"' >> zshpaths.h.tmp; \
	  if test x$(FUNCTIONS_SUBDIRS) != x -a \
	  x$(FUNCTIONS_SUBDIRS) != xno; then \
	    fpath_tmp="`for f in $$FUNCTIONS_INSTALL; do \
	      echo $$f | sed s%/.*%%; \
	    done | sort | uniq`"; \
	    fpath_tmp="`echo $$fpath_tmp | sed 's/ /\", \"/g'`"; \
	    echo "#define FPATH_SUBDIRS { \"$$fpath_tmp\" }" \
	    >>zshpaths.h.tmp; \
	  fi; \
	fi
	@if cmp -s zshpaths.h zshpaths.h.tmp; then \
	    rm -f zshpaths.h.tmp; \
	    echo "\`zshpaths.h' is up to date." ; \
	else \
	    mv -f zshpaths.h.tmp zshpaths.h; \
	    echo "Updated \`zshpaths.h'." ; \
	fi

bltinmods.list: modules.stamp mkbltnmlst.sh $(dir_top)/config.modules
	srcdir='$(sdir)' CFMOD='$(dir_top)/config.modules' \
	  $(SHELL) $(sdir)/mkbltnmlst.sh $@

zshxmods.h: $(dir_top)/config.modules
	@echo "Creating \`$@'."
	@( \
	    for q_mod in `grep ' load=yes' $(dir_top)/config.modules | \
	      grep ' link=static' | sed -e '/^#/d' -e 's/ .*//' \
	        -e 's/^name=//' -e 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'`; do \
		test x$q_mod = xzshQsmain && continue; \
	        echo "#define LINKED_XMOD_$$q_mod 1"; \
	    done; \
	    for q_mod in `grep ' load=yes' $(dir_top)/config.modules | \
	      grep ' link=dynamic' | sed -e '/^#/d' -e 's/ .*//' \
	        -e 's/^name=//' -e 's,Q,Qq,g;s,_,Qu,g;s,/,Qs,g'`; do \
		test x$q_mod = x && continue; \
	        echo "#ifdef DYNAMIC"; \
		echo "# define UNLINKED_XMOD_$$q_mod 1"; \
		echo "#endif"; \
	    done; \
	) > $@

clean-here: clean.zsh
clean.zsh:
	rm -f sigcount.h signames.c bltinmods.list version.h zshpaths.h zshxmods.h

# This is not properly part of this module, but it is built as if it were.
main.o: main.c zsh.mdh main.epro
	$(CC) -c -I. $(CPPFLAGS) $(DEFS) $(CFLAGS) -o $@ $(sdir)/main.c

main.syms: $(PROTODEPS)
proto.zsh: main.epro
Make