]> code.delx.au - gnu-emacs/blob - test/etags/make-src/Makefile
Handle Bug#23186
[gnu-emacs] / test / etags / make-src / Makefile
1 LATEST=17
2 RELEASELIST=pot@gnu.org xemacs-review@xemacs.org jcwren@jcwren.com sxemacs-devel@sxemacs.org
3
4 ADASRC=etags-test-for.ada 2ataspri.adb 2ataspri.ads waroquiers.ada
5 ASRC=empty.zz empty.zz.gz
6 CSRC=abbrev.c ../etags/h.h .//c.c torture.c getopt.h etags.c\
7 exit.c exit.strange_suffix sysdep.h tab.c\
8 emacs/src/gmalloc.c emacs/src/regex.h emacs/src/keyboard.c dostorture.c\
9 machsyscalls.c machsyscalls.h fail.c a/b/b.c
10 CPSRC=c.C abstract.C abstract.H cfront.H burton.cpp burton.cpp\
11 functions.cpp MDiagArray2.h Pctest.h Range.h\
12 screen.cpp screen.hpp conway.cpp conway.hpp clheir.cpp.gz clheir.hpp.gz fail.C
13 ELSRC=TAGTEST.EL emacs/lisp/progmodes/etags.el
14 ERLSRC=gs_dialog.erl lines.erl lists.erl
15 FORTHSRC=test-forth.fth
16 FSRC=entry.for entry.strange_suffix entry.strange
17 HTMLSRC=softwarelibero.html index.shtml algrthms.html software.html
18 JAVASRC=AWTEMul.java KeyEve.java SMan.java SysCol.java TG.java
19 LUASRC=allegro.lua
20 MAKESRC=Makefile
21 OBJCSRC=Subprocess.h Subprocess.m PackInsp.h PackInsp.m
22 OBJCPPSRC=SimpleCalc.H SimpleCalc.M
23 PASSRC=common.pas
24 PERLSRC=htlmify-cystic yagrip.pl kai-test.pl mirror.pl
25 PHPSRC=lce_functions.php ptest.php sendmail.php
26 PSSRC=rfc1245.ps
27 PROLSRC=ordsets.prolog natded.prolog
28 PYTSRC=server.py
29 TEXSRC=testenv.tex gzip.texi texinfo.tex nonewline.tex
30 YSRC=parse.y parse.c atest.y cccp.c cccp.y
31 SRCS=Makefile ${ADASRC} ${ASRC} ${CSRC} ${CPSRC} ${ELSRC} ${ERLSRC} ${FSRC}\
32 ${FORTHSRC} ${HTMLSRC} ${JAVASRC} ${LUASRC} ${MAKESRC} ${OBJCSRC}\
33 ${OBJCPPSRC} ${PASSRC} ${PHPSRC} ${PERLSRC} ${PSSRC} ${PROLSRC} ${PYTSRC}\
34 ${TEXSRC} ${YSRC}
35 NONSRCS=entry.strange lists.erl clheir.hpp.gz
36
37 VHDLFLAGS=--language=none --regex='/[ \t]*\(ARCHITECTURE\|CONFIGURATION\) +[^ ]* +OF/' --regex='/[ \t]*\(ATTRIBUTE\|ENTITY\|FUNCTION\|PACKAGE\( BODY\)?\|PROCEDURE\|PROCESS\|TYPE\)[ \t]+\([^ \t(]+\)/\3/'
38 COBOLFLAGS=--language=none --regex='/.......[a-zA-Z0-9-]+\./'
39 POSTSCRIPTFLAGS=--language=none --regex='#/[^ \t{]+#'
40 TCLFLAGS=--lang=none --regex='/proc[ \t]+\([^ \t]+\)/\1/'
41
42 GETOPTOBJS= #getopt.o getopt1.o
43 RXINCLUDE=-Iemacs/src
44 REGEXOBJS=regex.o
45
46 CHECKOBJS=chkmalloc.o chkxm.o
47 CHECKFLAGS=-DDEBUG -Wno-unused-function
48 OBJS=${GETOPTOBJS} ${REGEXOBJS} ${CHECKOBJS}
49 CPPFLAGS=${CHECKFLAGS} -DSTDC_HEADERS -DHAVE_GETCWD ${RXINCLUDE} -I.
50 LDFLAGS=#-static -lc_p
51 WARNINGS=-pedantic -Wall -Wpointer-arith -Winline -Wmissing-prototypes -Wmissing-declarations -Wunused -Wformat -Wno-switch -Wsign-compare -Wpointer-arith -Wshadow -Wstrict-prototypes
52 CFLAGS=${WARNINGS} -ansi -g3 # -pg -O
53 #CC=gcc-3.0
54 #TARGET_ARCH=
55 FASTCFLAGS=-O3 -finline-functions -ffast-math -funroll-loops
56 FASTCFLAGSWARN=${WARNINGS} -Werror ${FASTCFLAGS}
57
58 FILTER=grep -v '\.[Cchefy][lor]*,[1-9][0-9]*' || true
59 REGEX=/[ \t]*DEFVAR_[A-Z_ \t\n(]+"\([^"]+\)"/
60 xx="this line is here because of a fontlock bug
61
62 MAKE:=$(MAKE) --no-print-directory
63 RUN=time --quiet --format '%U + %S: %E'
64 RUN=
65 OPTIONS=--members --declarations --regex=@regexfile
66 ARGS=- < srclist
67
68 infiles = $(filter-out ${NONSRCS},${SRCS}) srclist regexfile
69
70 quiettest:
71 @rm -f /tmp/[0-9][0-9][0-9][0-9][0-9][0-9]malloc
72 @-$(MAKE) OPTIONS='--no-members' ${LATEST}ediff
73 @-$(MAKE) OPTIONS='--declarations --no-members' ${LATEST}ediff
74 @-$(MAKE) OPTIONS='--members' ${LATEST}ediff
75 @-$(MAKE) OPTIONS='--regex=@regexfile --no-members' ${LATEST}ediff
76 @-$(MAKE) OPTIONS='nonexistent --members --declarations --regex=@regexfile' ${LATEST}ediff
77 @-$(MAKE) ${LATEST}cdiff
78
79 test:
80 @rm -f /tmp/[0-9][0-9][0-9][0-9][0-9][0-9]malloc
81 @$(MAKE) OPTIONS='--no-members' ${LATEST}ediff
82 @$(MAKE) OPTIONS='--declarations --no-members' ${LATEST}ediff
83 @$(MAKE) OPTIONS='--members' ${LATEST}ediff
84 @$(MAKE) OPTIONS='--regex=@regexfile --no-members' ${LATEST}ediff
85 @$(MAKE) OPTIONS='nonexistent --members --declarations --regex=@regexfile' ${LATEST}ediff
86 @$(MAKE) ${LATEST}cdiff
87
88 ${CHECKOBJS}: CFLAGS=-g3 -DNULLFREECHECK=0
89
90 checker:
91 @rm -f /tmp/[0-9][0-9][0-9][0-9][0-9][0-9]malloc ${REGEXOBJS}
92 @env CHECKEROPTS="--trace --profile --Wfree-null" \
93 $(MAKE) CFLAGS= CHECKOBJS= CHECKFLAGS= CC=checkergcc ${LATEST}ediff
94 rm -f $REGEXOBJS
95
96 standalone:
97 rm -f etags ctags
98 @$(MAKE) etags "CPPFLAGS=-UVERSION"
99 @$(MAKE) ctags "CPPFLAGS=-UVERSION"
100
101 prof: ETAGS
102 prof -xgs etags
103
104 fastetags:
105 rm -f etags ${GETOPTOBJS} ${REGEXOBJS}
106 @$(MAKE) CHECKOBJS= CHECKFLAGS= etags "CFLAGS=-ansi ${FASTCFLAGSWARN}"
107
108 fastctags:
109 rm -f ctags ${GETOPTOBJS} ${REGEXOBJS}
110 @$(MAKE) CHECKOBJS= CHECKFLAGS= ctags "CFLAGS=-ansi ${FASTCFLAGSWARN}"
111
112 staticetags:
113 rm -f etags ${GETOPTOBJS} ${REGEXOBJS}
114 @$(MAKE) etags CHECKOBJS= CHECKFLAGS= REGEXOBJS= GETOPTOBJS= RXINCLUDE= "CFLAGS=${FASTCFLAGSWARN} -static"
115
116 rsynctofly:
117 rsync --exclude "*~" --exclude core --exclude etags -zauRv . fly:gnu/etags/
118
119 rsyncfromfly:
120 rsync --exclude "*~" --exclude core --exclude etags -zauRv fly:gnu/etags/ ../..
121
122 web ftp publish:
123 @-printf '\ttesting with debugging enabled...\n'; $(MAKE) quiettest
124 @-printf '\ttesting standalone...\n'; $(MAKE) standalone quiettest
125 @-printf '\ttesting fast versions...\n'; $(MAKE) fastetags fastctags quiettest
126 @$(MAKE) /home/www/pub/etags.c.gz
127 @$(MAKE) /home/www/pub/software/unix/etags.tar.gz
128
129 release distrib: web
130 cat xemacs-mail | /usr/sbin/sendmail -f pot@gnu.org ${RELEASELIST}
131 mv etags etags${LATEST}
132 mv ctags ctags${LATEST}
133
134 tags: TAGS
135
136 clean:
137 rm -f ${OBJS} etags ETAGS
138
139 srclist: Makefile
140 @for i in $(SRCS); do echo $$i; done > srclist
141 @echo srclist remade
142
143 regexfile: Makefile
144 @echo ' -- This is for GNU Emacs source files' > regexfile
145 @echo '${REGEX}' >> regexfile
146 @echo '{c}${REGEX}\\1/m' >> regexfile
147 @echo regexfile remade
148
149 /home/www/pub/etags.c.gz: etags.c
150 co -kv etags.c
151 gzip --best -c etags.c > $@
152
153 #/home/www/pub/software/unix/etags.tar.gz: Makefile staticetags etags.1.man ETAGS.EBNF ETAGS.README
154 # tar -hzcf $@ COPYING ChangeLog ETAGS.EBNF etags.c etags.1 etags.1.man etags
155
156 /home/www/pub/software/unix/etags.tar.gz: Makefile etags.1.man ETAGS.EBNF ETAGS.README maintaining.texi
157 tar -hzcf $@ COPYING ChangeLog ETAGS.EBNF ETAGS.README etags.c etags.1 etags.1.man maintaining.texi
158
159 regex.o: emacs/src/regex.c
160 $(CC) ${FASTCFLAGS} -c $?
161
162 getopt.o: emacs/lib-src/getopt.c
163 $(CC) ${FASTCFLAGS} -c $?
164
165 getopt1.o: emacs/lib-src/getopt1.c
166 $(CC) ${FASTCFLAGS} -c $?
167
168 etags: etags.c ${OBJS}
169 $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o etags etags.c ${OBJS}
170
171 ctags: etags.c ${OBJS}
172 $(CC) $(CFLAGS) $(CPPFLAGS) -DCTAGS $(LDFLAGS) -o ctags etags.c ${OBJS}
173
174 man manpage: etags.1.man
175
176 etags.1.man: etags.1
177 nroff -man -Tman etags.1 > $@
178
179 maintaining.info: maintaining.texi
180 makeinfo --force --no-split maintaining.texi
181
182 TAGS: etags.c
183 etags etags.c
184
185 %ediff: ETAGS% ETAGS ${infiles}
186 sdiff --suppress-common-lines --width=103 ETAGS$* ETAGS
187
188 oediff: OTAGS ETAGS ${infiles}
189 sdiff --suppress-common-lines --width=103 OTAGS ETAGS
190
191 %cdiff: CTAGS% CTAGS ${infiles}
192 sdiff --suppress-common-lines --width=103 CTAGS$* CTAGS
193
194 xdiff: ETAGS EXTAGS ${infiles}
195 sdiff --suppress-common-lines --width=103 ETAGS EXTAGS
196
197 ETAGS: FRC etags ${infiles}
198 ${RUN} ./etags ${OPTIONS} -o $@ ${ARGS}
199
200 ETAGS%: FRC etags% ${infiles}
201 ${RUN} etags$* ${OPTIONS} -o $@ ${ARGS}
202
203 ETAGS13 ETAGS14 ETAGS15: etags% ${infiles}
204 TEXTAGS=def:newcommand:newenvironment ${RUN} etags$* --regex=@regexfile} -o $@ ${ARGS}
205
206 ETAGS12: etags12 ${infiles}
207 ${RUN} etags12 --members -o $@ --regex='${REGEX}' ${ARGS}
208
209 OTAGS: oetags ${SRCS} srclist
210 ${RUN} ./oetags -o $@ -t ${ARGS}
211
212 CTAGS: ctags ${infiles}
213 ${RUN} ./ctags -o $@ --regex=@regexfile ${ARGS}
214
215 CTAGS%: ctags% ${infiles}
216 ${RUN} ctags$* -wtTd --globals --members -o $@ --regex=@regexfile ${ARGS}
217
218 CTAGS13 CTAGS14 CTAGS15: ctags% ${infiles}
219 TEXTAGS=def:newcommand:newenvironment ${RUN} ctags$* -wt -o $@ --regex='${REGEX}' ${ARGS}
220
221 EXTAGS: extags ${infiles} Makefile
222 ${RUN} ./extags -e --regex-c='${REGEX}' --c++-types=+x --c-types=+x --if0=yes --line-directives=yes -o $@ -L - < srclist
223
224 .PRECIOUS: ETAGS CTAGS ETAGS16 CTAGS16 ETAGS17 CTAGS17
225
226 FRC:;