ctags.rb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -0
- data/Rakefile +23 -0
- data/ctags.rb.gemspec +23 -0
- data/ext/.gitignore +3 -0
- data/ext/extconf.rb +15 -0
- data/ext/vendor/exuberant-ctags/.gitignore +6 -0
- data/ext/vendor/exuberant-ctags/.indent.pro +31 -0
- data/ext/vendor/exuberant-ctags/COPYING +340 -0
- data/ext/vendor/exuberant-ctags/EXTENDING.html +386 -0
- data/ext/vendor/exuberant-ctags/FAQ +371 -0
- data/ext/vendor/exuberant-ctags/INSTALL +215 -0
- data/ext/vendor/exuberant-ctags/INSTALL.oth +73 -0
- data/ext/vendor/exuberant-ctags/MAINTAINERS +88 -0
- data/ext/vendor/exuberant-ctags/Makefile.in +222 -0
- data/ext/vendor/exuberant-ctags/NEWS +871 -0
- data/ext/vendor/exuberant-ctags/README +73 -0
- data/ext/vendor/exuberant-ctags/ant.c +42 -0
- data/ext/vendor/exuberant-ctags/argproc.c +505 -0
- data/ext/vendor/exuberant-ctags/args.c +274 -0
- data/ext/vendor/exuberant-ctags/args.h +63 -0
- data/ext/vendor/exuberant-ctags/asm.c +387 -0
- data/ext/vendor/exuberant-ctags/asp.c +328 -0
- data/ext/vendor/exuberant-ctags/awk.c +81 -0
- data/ext/vendor/exuberant-ctags/basic.c +203 -0
- data/ext/vendor/exuberant-ctags/beta.c +321 -0
- data/ext/vendor/exuberant-ctags/c.c +2932 -0
- data/ext/vendor/exuberant-ctags/cobol.c +50 -0
- data/ext/vendor/exuberant-ctags/config.h.in +277 -0
- data/ext/vendor/exuberant-ctags/configure +7704 -0
- data/ext/vendor/exuberant-ctags/configure.ac +532 -0
- data/ext/vendor/exuberant-ctags/ctags.1 +1186 -0
- data/ext/vendor/exuberant-ctags/ctags.h +28 -0
- data/ext/vendor/exuberant-ctags/ctags.html +2087 -0
- data/ext/vendor/exuberant-ctags/ctags.spec +40 -0
- data/ext/vendor/exuberant-ctags/debug.c +113 -0
- data/ext/vendor/exuberant-ctags/debug.h +70 -0
- data/ext/vendor/exuberant-ctags/descrip.mms +68 -0
- data/ext/vendor/exuberant-ctags/dosbatch.c +42 -0
- data/ext/vendor/exuberant-ctags/e_amiga.h +24 -0
- data/ext/vendor/exuberant-ctags/e_djgpp.h +47 -0
- data/ext/vendor/exuberant-ctags/e_mac.h +143 -0
- data/ext/vendor/exuberant-ctags/e_msoft.h +76 -0
- data/ext/vendor/exuberant-ctags/e_os2.h +37 -0
- data/ext/vendor/exuberant-ctags/e_qdos.h +34 -0
- data/ext/vendor/exuberant-ctags/e_riscos.h +58 -0
- data/ext/vendor/exuberant-ctags/e_vms.h +31 -0
- data/ext/vendor/exuberant-ctags/eiffel.c +1352 -0
- data/ext/vendor/exuberant-ctags/entry.c +847 -0
- data/ext/vendor/exuberant-ctags/entry.h +103 -0
- data/ext/vendor/exuberant-ctags/erlang.c +189 -0
- data/ext/vendor/exuberant-ctags/flex.c +2243 -0
- data/ext/vendor/exuberant-ctags/fortran.c +2197 -0
- data/ext/vendor/exuberant-ctags/general.h +127 -0
- data/ext/vendor/exuberant-ctags/get.c +669 -0
- data/ext/vendor/exuberant-ctags/get.h +50 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/all-wcprops +47 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/entries +112 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/README.txt.svn-base +5 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regcomp.c.svn-base +3818 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.c.svn-base +74 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex.h.svn-base +575 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.c.svn-base +1713 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regex_internal.h.svn-base +773 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/.svn/text-base/regexec.c.svn-base +4338 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/README.txt +5 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regcomp.c +3818 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex.c +74 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex.h +575 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.c +1713 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regex_internal.h +773 -0
- data/ext/vendor/exuberant-ctags/gnu_regex/regexec.c +4338 -0
- data/ext/vendor/exuberant-ctags/html.c +49 -0
- data/ext/vendor/exuberant-ctags/jscript.c +1572 -0
- data/ext/vendor/exuberant-ctags/keyword.c +258 -0
- data/ext/vendor/exuberant-ctags/keyword.h +34 -0
- data/ext/vendor/exuberant-ctags/lisp.c +139 -0
- data/ext/vendor/exuberant-ctags/lregex.c +704 -0
- data/ext/vendor/exuberant-ctags/lua.c +133 -0
- data/ext/vendor/exuberant-ctags/mac.c +273 -0
- data/ext/vendor/exuberant-ctags/magic.diff +21 -0
- data/ext/vendor/exuberant-ctags/main.c +584 -0
- data/ext/vendor/exuberant-ctags/main.h +32 -0
- data/ext/vendor/exuberant-ctags/maintainer.mak +476 -0
- data/ext/vendor/exuberant-ctags/make.c +217 -0
- data/ext/vendor/exuberant-ctags/matlab.c +44 -0
- data/ext/vendor/exuberant-ctags/mk_bc3.mak +46 -0
- data/ext/vendor/exuberant-ctags/mk_bc5.mak +49 -0
- data/ext/vendor/exuberant-ctags/mk_djg.mak +18 -0
- data/ext/vendor/exuberant-ctags/mk_manx.mak +65 -0
- data/ext/vendor/exuberant-ctags/mk_mingw.mak +31 -0
- data/ext/vendor/exuberant-ctags/mk_mpw.mak +130 -0
- data/ext/vendor/exuberant-ctags/mk_mvc.mak +40 -0
- data/ext/vendor/exuberant-ctags/mk_os2.mak +104 -0
- data/ext/vendor/exuberant-ctags/mk_qdos.mak +100 -0
- data/ext/vendor/exuberant-ctags/mk_sas.mak +63 -0
- data/ext/vendor/exuberant-ctags/mkinstalldirs +40 -0
- data/ext/vendor/exuberant-ctags/ocaml.c +1842 -0
- data/ext/vendor/exuberant-ctags/options.c +1842 -0
- data/ext/vendor/exuberant-ctags/options.h +155 -0
- data/ext/vendor/exuberant-ctags/parse.c +677 -0
- data/ext/vendor/exuberant-ctags/parse.h +129 -0
- data/ext/vendor/exuberant-ctags/parsers.h +63 -0
- data/ext/vendor/exuberant-ctags/pascal.c +267 -0
- data/ext/vendor/exuberant-ctags/perl.c +382 -0
- data/ext/vendor/exuberant-ctags/php.c +237 -0
- data/ext/vendor/exuberant-ctags/python.c +771 -0
- data/ext/vendor/exuberant-ctags/qdos.c +106 -0
- data/ext/vendor/exuberant-ctags/read.c +569 -0
- data/ext/vendor/exuberant-ctags/read.h +116 -0
- data/ext/vendor/exuberant-ctags/readtags.c +959 -0
- data/ext/vendor/exuberant-ctags/readtags.h +252 -0
- data/ext/vendor/exuberant-ctags/rexx.c +39 -0
- data/ext/vendor/exuberant-ctags/routines.c +891 -0
- data/ext/vendor/exuberant-ctags/routines.h +134 -0
- data/ext/vendor/exuberant-ctags/ruby.c +408 -0
- data/ext/vendor/exuberant-ctags/scheme.c +111 -0
- data/ext/vendor/exuberant-ctags/sh.c +115 -0
- data/ext/vendor/exuberant-ctags/slang.c +41 -0
- data/ext/vendor/exuberant-ctags/sml.c +212 -0
- data/ext/vendor/exuberant-ctags/sort.c +230 -0
- data/ext/vendor/exuberant-ctags/sort.h +32 -0
- data/ext/vendor/exuberant-ctags/source.mak +122 -0
- data/ext/vendor/exuberant-ctags/sql.c +2112 -0
- data/ext/vendor/exuberant-ctags/strlist.c +281 -0
- data/ext/vendor/exuberant-ctags/strlist.h +54 -0
- data/ext/vendor/exuberant-ctags/tcl.c +116 -0
- data/ext/vendor/exuberant-ctags/tex.c +524 -0
- data/ext/vendor/exuberant-ctags/verilog.c +340 -0
- data/ext/vendor/exuberant-ctags/vhdl.c +835 -0
- data/ext/vendor/exuberant-ctags/vim.c +636 -0
- data/ext/vendor/exuberant-ctags/vstring.c +232 -0
- data/ext/vendor/exuberant-ctags/vstring.h +85 -0
- data/ext/vendor/exuberant-ctags/yacc.c +40 -0
- data/lib/ctags/exuberant.rb +45 -0
- data/lib/ctags/version.rb +3 -0
- data/lib/ctags.rb +6 -0
- data/test/test_ctags.rb +24 -0
- metadata +233 -0
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
# $Id: maintainer.mak 722 2009-07-09 16:10:35Z dhiebert $
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 1996-2009, Darren Hiebert
|
|
4
|
+
#
|
|
5
|
+
# Development makefile for Exuberant Ctags. Also used to build releases.
|
|
6
|
+
# Requires GNU make.
|
|
7
|
+
|
|
8
|
+
OBJEXT := o
|
|
9
|
+
|
|
10
|
+
include source.mak
|
|
11
|
+
|
|
12
|
+
DSOURCES := $(SOURCES) debug.c
|
|
13
|
+
|
|
14
|
+
VERSION_FILES:= ctags.h ctags.1 NEWS
|
|
15
|
+
|
|
16
|
+
LIB_FILES := readtags.c readtags.h
|
|
17
|
+
|
|
18
|
+
ENVIRONMENT_MAKEFILES := \
|
|
19
|
+
mk_bc3.mak mk_bc5.mak mk_djg.mak mk_manx.mak mk_mingw.mak \
|
|
20
|
+
mk_mpw.mak mk_mvc.mak mk_os2.mak mk_qdos.mak mk_sas.mak \
|
|
21
|
+
|
|
22
|
+
COMMON_FILES := COPYING EXTENDING.html FAQ INSTALL.oth MAINTAINERS NEWS README \
|
|
23
|
+
$(ENVIRONMENT_MAKEFILES) source.mak \
|
|
24
|
+
$(DSOURCES) $(HEADERS) $(LIB_FILES) \
|
|
25
|
+
$(ENVIRONMENT_SOURCES) $(ENVIRONMENT_HEADERS)
|
|
26
|
+
|
|
27
|
+
UNIX_FILES := $(COMMON_FILES) \
|
|
28
|
+
.indent.pro INSTALL configure.ac \
|
|
29
|
+
Makefile.in maintainer.mak \
|
|
30
|
+
descrip.mms mkinstalldirs magic.diff \
|
|
31
|
+
ctags.spec ctags.1
|
|
32
|
+
|
|
33
|
+
REGEX_DIR := gnu_regex
|
|
34
|
+
|
|
35
|
+
WIN_FILES := $(COMMON_FILES) $(VERSION_FILES)
|
|
36
|
+
|
|
37
|
+
SVN_FILES := $(UNIX_FILES)
|
|
38
|
+
|
|
39
|
+
DEP_DIR := .deps
|
|
40
|
+
|
|
41
|
+
OBJECTS := $(patsubst %.c,%.o,$(notdir $(SOURCES)))
|
|
42
|
+
DOBJECTS := $(patsubst %.c,%.od,$(notdir $(DSOURCES)))
|
|
43
|
+
DEPS := $(patsubst %.c,$(DEP_DIR)/%.d,$(notdir $(SOURCES)))
|
|
44
|
+
|
|
45
|
+
WARNINGS := -Wall -W -Wpointer-arith -Wcast-align -Wwrite-strings \
|
|
46
|
+
-Wmissing-prototypes -Wmissing-declarations \
|
|
47
|
+
-Wnested-externs -Wcast-qual -Wshadow -pedantic \
|
|
48
|
+
-Wstrict-prototypes \
|
|
49
|
+
# -Wtraditional -Wconversion -Werror
|
|
50
|
+
|
|
51
|
+
PRODUCER := Darren B. Hiebert
|
|
52
|
+
EMAIL := dhiebert@users.sourceforge.net
|
|
53
|
+
CTAGS_WEBSITE := http://ctags.sourceforge.net
|
|
54
|
+
RPM_ROOT := rpms
|
|
55
|
+
RPM_ABS_ROOT := $(PWD)/$(RPM_ROOT)
|
|
56
|
+
WINDOWS_DIR := win32
|
|
57
|
+
RELEASE_DIR := releases
|
|
58
|
+
CTAGS_WEBDIR := website
|
|
59
|
+
win_version = $(subst .,,$(version))
|
|
60
|
+
HOST_ARCH := $(shell uname -p)
|
|
61
|
+
|
|
62
|
+
ifneq ($(findstring $(HOST_ARCH),i386 i686),)
|
|
63
|
+
COMP_ARCH := -march=i686
|
|
64
|
+
endif
|
|
65
|
+
|
|
66
|
+
CC := gcc
|
|
67
|
+
INCLUDE := -I.
|
|
68
|
+
DEFS := -DHAVE_CONFIG_H
|
|
69
|
+
COMP_FLAGS := $(INCLUDE) $(DEFS) $(CFLAGS)
|
|
70
|
+
PROF_OPT := -O3 $(COMP_ARCH)
|
|
71
|
+
#OPT := $(PROF_OPT) -fomit-frame-pointer
|
|
72
|
+
OPT := $(PROF_OPT)
|
|
73
|
+
DCFLAGS := $(COMP_FLAGS) -DDEBUG -DINTERNAL_SORT
|
|
74
|
+
LD := gcc
|
|
75
|
+
LDFLAGS :=
|
|
76
|
+
RPM_FLAGS := -O3 $(COMP_ARCH)
|
|
77
|
+
|
|
78
|
+
AUTO_GEN := configure config.h.in
|
|
79
|
+
CONFIG_GEN := config.cache config.log config.status config.run config.h Makefile
|
|
80
|
+
PROF_GEN := gmon.out
|
|
81
|
+
COV_GEN := *.da *.gcov
|
|
82
|
+
|
|
83
|
+
UNIX2DOS := perl -pe 's/(\r\n|\n|\r)/\r\n/g'
|
|
84
|
+
MAN2HTML := tbl | groff -Wall -mtty-char -mandoc -Thtml -c
|
|
85
|
+
|
|
86
|
+
#
|
|
87
|
+
# Targets
|
|
88
|
+
#
|
|
89
|
+
default: all
|
|
90
|
+
ifeq ($(findstring clean,$(MAKECMDGOALS)),)
|
|
91
|
+
ifeq ($(wildcard config.h),)
|
|
92
|
+
ctags dctags ctags.prof ctags.cov:
|
|
93
|
+
$(MAKE) config.h
|
|
94
|
+
$(MAKE) $(MAKECMDGOALS)
|
|
95
|
+
else
|
|
96
|
+
all: dctags tags syntax.vim
|
|
97
|
+
|
|
98
|
+
-include $(DEPS) $(DEP_DIR)/readtags.d
|
|
99
|
+
|
|
100
|
+
#
|
|
101
|
+
# Executable targets
|
|
102
|
+
#
|
|
103
|
+
ctags: $(OBJECTS)
|
|
104
|
+
@ echo "-- Linking $@"
|
|
105
|
+
@ $(LD) -o $@ $(LDFLAGS) $^
|
|
106
|
+
|
|
107
|
+
dctags: $(DOBJECTS) debug.od
|
|
108
|
+
@ echo "-- Building $@"
|
|
109
|
+
$(LD) -o $@ $(LDFLAGS) $^
|
|
110
|
+
|
|
111
|
+
ctags.prof: $(SOURCES) $(HEADERS) Makefile
|
|
112
|
+
$(CC) -pg $(PROF_OPT) $(COMP_FLAGS) $(WARNINGS) $(SOURCES) -o $@
|
|
113
|
+
|
|
114
|
+
ctags.cov: $(SOURCES) $(HEADERS) Makefile
|
|
115
|
+
$(CC) -fprofile-arcs -ftest-coverage $(COMP_FLAGS) $(WARNINGS) $(SOURCES) -o $@
|
|
116
|
+
|
|
117
|
+
gcov: $(SOURCES:.c=.c.gcov)
|
|
118
|
+
|
|
119
|
+
readtags: readtags.[ch]
|
|
120
|
+
$(CC) -g $(COMP_FLAGS) -DDEBUG -DREADTAGS_MAIN -o $@ readtags.c
|
|
121
|
+
|
|
122
|
+
readtags.o: readtags.c readtags.h
|
|
123
|
+
$(CC) $(COMP_FLAGS) -c readtags.c
|
|
124
|
+
|
|
125
|
+
etyperef: etyperef.o keyword.o routines.o strlist.o vstring.o
|
|
126
|
+
$(CC) -o $@ $^
|
|
127
|
+
|
|
128
|
+
etyperef.o: eiffel.c
|
|
129
|
+
$(CC) -DTYPE_REFERENCE_TOOL $(OPT) $(COMP_FLAGS) -o $@ -c $<
|
|
130
|
+
|
|
131
|
+
endif
|
|
132
|
+
endif
|
|
133
|
+
|
|
134
|
+
#
|
|
135
|
+
# Support targets
|
|
136
|
+
#
|
|
137
|
+
FORCE:
|
|
138
|
+
|
|
139
|
+
config.h.in: configure.ac
|
|
140
|
+
autoheader
|
|
141
|
+
@ touch $@
|
|
142
|
+
|
|
143
|
+
configure: configure.ac
|
|
144
|
+
autoconf
|
|
145
|
+
|
|
146
|
+
config.status: configure
|
|
147
|
+
./config.status --recheck
|
|
148
|
+
|
|
149
|
+
config.h: config.h.in config.status
|
|
150
|
+
./config.status
|
|
151
|
+
touch $@
|
|
152
|
+
|
|
153
|
+
depclean:
|
|
154
|
+
rm -f $(DEPS)
|
|
155
|
+
|
|
156
|
+
profclean:
|
|
157
|
+
rm -f $(PROF_GEN)
|
|
158
|
+
|
|
159
|
+
gcovclean:
|
|
160
|
+
rm -f $(COV_GEN)
|
|
161
|
+
|
|
162
|
+
clean: depclean profclean gcovclean clean-test
|
|
163
|
+
rm -f *.[ois] *.o[dm] ctags dctags ctags*.exe readtags etyperef \
|
|
164
|
+
ctags.man ctags.html ctags.prof ctags.cov *.bb *.bbg tags TAGS syntax.vim
|
|
165
|
+
|
|
166
|
+
distclean: clean
|
|
167
|
+
rm -f $(CONFIG_GEN)
|
|
168
|
+
|
|
169
|
+
maintainer-clean maintclean: distclean
|
|
170
|
+
rm -f $(AUTO_GEN)
|
|
171
|
+
|
|
172
|
+
%.man: %.1 Makefile
|
|
173
|
+
tbl $< | groff -Wall -mtty-char -mandoc -Tascii -c | sed 's/.//g' > $@
|
|
174
|
+
|
|
175
|
+
%.html: %.1 Makefile
|
|
176
|
+
cat $< | $(MAN2HTML) > $@
|
|
177
|
+
|
|
178
|
+
tags: $(DSOURCES) $(HEADERS) $(LIB_FILES) Makefile *.mak
|
|
179
|
+
@ echo "-- Building tag file"
|
|
180
|
+
@ ctags *
|
|
181
|
+
|
|
182
|
+
#
|
|
183
|
+
# Create a Vim syntax file for all typedefs
|
|
184
|
+
#
|
|
185
|
+
syntax: syntax.vim
|
|
186
|
+
syntax.vim: $(DSOURCES) $(HEADERS) $(LIB_FILES)
|
|
187
|
+
@ echo "-- Generating syntax file"
|
|
188
|
+
@ ctags --c-types=cgstu --file-scope -o- $^ |\
|
|
189
|
+
awk '{print $$1}' | sort -u | fmt |\
|
|
190
|
+
awk '{printf("syntax keyword Typedef\t%s\n", $$0)}' > $@
|
|
191
|
+
|
|
192
|
+
#
|
|
193
|
+
# Testing
|
|
194
|
+
#
|
|
195
|
+
-include testing.mak
|
|
196
|
+
|
|
197
|
+
#
|
|
198
|
+
# Help
|
|
199
|
+
#
|
|
200
|
+
help:
|
|
201
|
+
@ echo "Major targets:"
|
|
202
|
+
@ echo "default : Build dctags, with debugging support"
|
|
203
|
+
@ echo "ctags : Build optimized binary"
|
|
204
|
+
@ echo "help-release: Print help on releasing ctags"
|
|
205
|
+
|
|
206
|
+
#
|
|
207
|
+
# Release management
|
|
208
|
+
#
|
|
209
|
+
|
|
210
|
+
help-release:
|
|
211
|
+
@ echo "1. make release-svn-X.Y"
|
|
212
|
+
@ echo "2. make release-source-X.Y"
|
|
213
|
+
@ echo "3. move ctags-X.Y.tar.gz to Linux"
|
|
214
|
+
@ echo "4. On Linux: Extract tar; make -f maintainer.mak release-rpm-X.Y"
|
|
215
|
+
@ echo "5. On Windows: cd $(WINDOWS_DIR)/winXY; nmake -f mk_mvc.mak ctags.exe mostlyclean"
|
|
216
|
+
@ echo "6. make version=X.Y win-zip"
|
|
217
|
+
@ echo "7. make website-X.Y"
|
|
218
|
+
|
|
219
|
+
.SECONDARY:
|
|
220
|
+
|
|
221
|
+
RPM_ARCH := i386
|
|
222
|
+
RPM_SUBDIRS := BUILD SOURCES SPECS SRPMS RPMS
|
|
223
|
+
RPM_DIRS := $(addprefix $(RPM_ROOT)/,$(RPM_SUBDIRS))
|
|
224
|
+
|
|
225
|
+
$(RELEASE_DIR)/ctags-%-1.$(RPM_ARCH).rpm: \
|
|
226
|
+
$(RPM_ROOT)/RPMS/$(RPM_ARCH)/ctags-%-1.$(RPM_ARCH).rpm \
|
|
227
|
+
| $(RELEASE_DIR)
|
|
228
|
+
ln -f $< $@
|
|
229
|
+
chmod 644 $@
|
|
230
|
+
|
|
231
|
+
$(RELEASE_DIR)/ctags-%-1.src.rpm: \
|
|
232
|
+
$(RPM_ROOT)/SRPMS/ctags-%-1.src.rpm \
|
|
233
|
+
| $(RELEASE_DIR)
|
|
234
|
+
ln -f $< $@
|
|
235
|
+
chmod 644 $@
|
|
236
|
+
|
|
237
|
+
$(eval $(RPM_DIRS) $(RELEASE_DIR): ; mkdir -p $$@)
|
|
238
|
+
|
|
239
|
+
$(RPM_ROOT)/SRPMS/ctags-%-1.src.rpm \
|
|
240
|
+
$(RPM_ROOT)/RPMS/$(RPM_ARCH)/ctags-%-1.$(RPM_ARCH).rpm: \
|
|
241
|
+
$(RPM_ROOT)/SOURCES/ctags-%.tar.gz \
|
|
242
|
+
$(RPM_ROOT)/SPECS/ctags-%.spec \
|
|
243
|
+
| $(RPM_DIRS)
|
|
244
|
+
rpmbuild --define '_topdir $(RPM_ABS_ROOT)' --define 'optflags $(RPM_FLAGS)' --define 'packager $(PRODUCER) $(CTAGS_WEBSITE)' -ba $(RPM_ROOT)/SPECS/ctags-$*.spec
|
|
245
|
+
rm -fr $(RPM_ROOT)/BUILD/ctags-$*
|
|
246
|
+
|
|
247
|
+
$(RPM_ROOT)/rpmrc: rpmmacros maintainer.mak
|
|
248
|
+
echo "optflags: $(RPM_ARCH) $(RPM_FLAGS)" > $@
|
|
249
|
+
echo "macrofiles: $(PWD)/rpmmacros" >> $@
|
|
250
|
+
|
|
251
|
+
$(RPM_ROOT)/rpmmacros: maintainer.mak
|
|
252
|
+
echo "%_topdir $(RPM_ABS_ROOT)" > $@
|
|
253
|
+
echo '%_gpg_name "$(PRODUCER) <$(EMAIL)>"' >> $@
|
|
254
|
+
echo "%packager $(PRODUCER) $(CTAGS_WEBSITE)" >> $@
|
|
255
|
+
echo "%_i18ndomains %{nil}" >> $@
|
|
256
|
+
echo "%debug_package %{nil}" >> $@
|
|
257
|
+
|
|
258
|
+
$(RPM_ROOT)/SPECS/ctags-%.spec: ctags.spec | $(RPM_ROOT)/SPECS
|
|
259
|
+
sed -e "s/@VERSION@/$*/" ctags.spec > $(RPM_ROOT)/SPECS/ctags-$*.spec
|
|
260
|
+
|
|
261
|
+
$(RPM_ROOT)/SOURCES/ctags-%.tar.gz: $(RELEASE_DIR)/ctags-%.tar.gz | $(RPM_ROOT)/SOURCES
|
|
262
|
+
ln -f $< $@
|
|
263
|
+
|
|
264
|
+
$(RELEASE_DIR)/ctags-%.tar.gz: $(UNIX_FILES) | $(RELEASE_DIR)
|
|
265
|
+
@ echo "---------- Building tar ball"
|
|
266
|
+
if [ -d $(@D)/dirs/ctags-$* ]; then rm -fr $(@D)/dirs/ctags-$*; fi
|
|
267
|
+
mkdir -p $(@D)/dirs/ctags-$*
|
|
268
|
+
cp -pr $(UNIX_FILES) $(REGEX_DIR) $(@D)/dirs/ctags-$*/
|
|
269
|
+
sed -e 's/\(PROGRAM_VERSION\) "\([^ ]*\)"/\1 "$*"/' ctags.h > $(@D)/dirs/ctags-$*/ctags.h
|
|
270
|
+
sed -e 's/"\(Version\) \([^ ]*\)"/"\1 $*"/' ctags.1 > $(@D)/dirs/ctags-$*/ctags.1
|
|
271
|
+
sed -e 's/\(Current Version:\) [^ ]*/\1 $*/' -e 's/@VERSION@/$*/' -e "s/@DATE@/`date +'%d %b %Y'`/" NEWS > $(@D)/dirs/ctags-$*/NEWS
|
|
272
|
+
(cd $(@D)/dirs/ctags-$* ;\
|
|
273
|
+
chmod 644 * ;\
|
|
274
|
+
chmod 755 mkinstalldirs ;\
|
|
275
|
+
chmod 755 $(REGEX_DIR) ;\
|
|
276
|
+
chmod 644 $(REGEX_DIR)/* ;\
|
|
277
|
+
autoheader ;\
|
|
278
|
+
chmod 644 config.h.in ;\
|
|
279
|
+
autoconf ;\
|
|
280
|
+
chmod 755 configure ;\
|
|
281
|
+
rm -fr autom4te.cache ;\
|
|
282
|
+
cat ctags.1 | $(MAN2HTML) > ctags.html ;\
|
|
283
|
+
)
|
|
284
|
+
cd $(@D)/dirs && tar -zcf ../$(@F) ctags-$*
|
|
285
|
+
chmod 644 $@
|
|
286
|
+
|
|
287
|
+
clean-rpm:
|
|
288
|
+
rm -fr $(RPM_ROOT)
|
|
289
|
+
|
|
290
|
+
ifneq ($(findstring win-,$(MAKECMDGOALS)),)
|
|
291
|
+
ifeq ($(version),,)
|
|
292
|
+
$(error $(MAKECMDGOALS) target requires value for 'version')
|
|
293
|
+
endif
|
|
294
|
+
endif
|
|
295
|
+
|
|
296
|
+
check-version-%:
|
|
297
|
+
@ if [ -z "$(version)" ]; then echo "target requires value for 'version'" >&2; exit 1; fi
|
|
298
|
+
|
|
299
|
+
$(WINDOWS_DIR)/ctags$(win_version): \
|
|
300
|
+
$(RELEASE_DIR)/ctags-$(version).tar.gz maintainer.mak \
|
|
301
|
+
| $(WINDOWS_DIR)
|
|
302
|
+
@ echo "---------- Building Win32 release directory"
|
|
303
|
+
rm -fr "$(WINDOWS_DIR)/ctags$(win_version)"
|
|
304
|
+
mkdir -p "$(WINDOWS_DIR)/ctags$(win_version)"
|
|
305
|
+
for file in $(WIN_FILES) ctags.html; do \
|
|
306
|
+
$(UNIX2DOS) < "$(RELEASE_DIR)/dirs/ctags-$(version)/$${file}" > $@/$${file} ;\
|
|
307
|
+
done
|
|
308
|
+
mkdir $@/$(REGEX_DIR)
|
|
309
|
+
for file in $(REGEX_DIR)/*; do \
|
|
310
|
+
$(UNIX2DOS) < "$${file}" > $@/$(REGEX_DIR)/`basename $${file}` ;\
|
|
311
|
+
done
|
|
312
|
+
chmod 644 $@/*
|
|
313
|
+
chmod 755 $@/$(REGEX_DIR)
|
|
314
|
+
chmod 644 $@/$(REGEX_DIR)/*
|
|
315
|
+
|
|
316
|
+
$(RELEASE_DIR)/ctags%.zip: \
|
|
317
|
+
check-version-% \
|
|
318
|
+
$(WINDOWS_DIR)/ctags% \
|
|
319
|
+
$(WINDOWS_DIR)/ctags%/ctags.exe
|
|
320
|
+
cd $(WINDOWS_DIR) && zip -r ../$@ ctags$*
|
|
321
|
+
|
|
322
|
+
win-source: $(WINDOWS_DIR)/ctags$(win_version)
|
|
323
|
+
|
|
324
|
+
win-zip: $(RELEASE_DIR)/ctags$(win_version).zip
|
|
325
|
+
|
|
326
|
+
release-win-%:
|
|
327
|
+
$(MAKE) version="$*" win-source
|
|
328
|
+
|
|
329
|
+
release-tar-%: $(RELEASE_DIR)/ctags-%.tar.gz
|
|
330
|
+
:
|
|
331
|
+
|
|
332
|
+
release-rpm-%: \
|
|
333
|
+
$(RELEASE_DIR)/ctags-%-1.$(RPM_ARCH).rpm \
|
|
334
|
+
$(RELEASE_DIR)/ctags-%-1.src.rpm
|
|
335
|
+
:
|
|
336
|
+
|
|
337
|
+
release-source-%: $(RELEASE_DIR)/ctags-%.tar.gz
|
|
338
|
+
$(MAKE) version="$*" win-source
|
|
339
|
+
|
|
340
|
+
release-bin-%: release-rpm-%
|
|
341
|
+
$(MAKE) version="$*" win-zip
|
|
342
|
+
|
|
343
|
+
$(WINDOWS_DIR):
|
|
344
|
+
mkdir -p $@
|
|
345
|
+
|
|
346
|
+
#
|
|
347
|
+
# Web site files
|
|
348
|
+
#
|
|
349
|
+
website-%: website-man-% website-index-% website-news-% \
|
|
350
|
+
$(CTAGS_WEBDIR)/EXTENDING.html
|
|
351
|
+
:
|
|
352
|
+
|
|
353
|
+
website-man-%: ctags.1 Makefile
|
|
354
|
+
@ echo "---------- Generating $(CTAGS_WEBDIR)/ctags.html"
|
|
355
|
+
umask 022 ; \
|
|
356
|
+
sed -e 's/"\(Version\) \([^ ]*\)"/"\1 $*"/' ctags.1 |\
|
|
357
|
+
$(MAN2HTML) > $(CTAGS_WEBDIR)/ctags.html
|
|
358
|
+
|
|
359
|
+
website-index-%: index.html Makefile
|
|
360
|
+
@ echo "---------- Generating $(CTAGS_WEBDIR)/index.html"
|
|
361
|
+
umask 022 ; \
|
|
362
|
+
sed -e "s/@VERSION@/$*/g" \
|
|
363
|
+
-e "s/@DOS_VERSION@/`echo $* | sed 's/\.//g'`/g" \
|
|
364
|
+
-e "s/@DATE@/`date +'%d %B %Y'`/" \
|
|
365
|
+
$< > $(CTAGS_WEBDIR)/index.html
|
|
366
|
+
|
|
367
|
+
website-news-%: NEWS maintainer.mak
|
|
368
|
+
@ echo "---------- Generating $(CTAGS_WEBDIR)/news.html"
|
|
369
|
+
umask 022 ; \
|
|
370
|
+
sed -e 's/\(Current Version:\) [^ ]*/\1 $*/' \
|
|
371
|
+
-e 's/@VERSION@/$*/' \
|
|
372
|
+
-e "s/@DATE@/`date +'%d %b %Y'`/" \
|
|
373
|
+
-e 's/</\</g' -e 's/>/\>/g' \
|
|
374
|
+
-e 's@^Current Version:.*$$@<html><head><title>Exuberant Ctags: Change Notes</title></head><body><h1>Change Notes</h1><pre>@' \
|
|
375
|
+
-e 's@\(^ctags-.* (.*)\)$$@<b>\1</b>@' \
|
|
376
|
+
-e 's@^vim:.*$$@</pre><hr><a href="http:index.html">Back to <strong>Exuberant Ctags</strong></a></body></html>@' \
|
|
377
|
+
$< > $(CTAGS_WEBDIR)/news.html
|
|
378
|
+
|
|
379
|
+
$(CTAGS_WEBDIR)/EXTENDING.html: EXTENDING.html
|
|
380
|
+
@ echo "---------- Generating $(CTAGS_WEBDIR)/EXTENDING.html"
|
|
381
|
+
cp $< $@ && chmod 644 $@
|
|
382
|
+
|
|
383
|
+
#
|
|
384
|
+
# SVN management
|
|
385
|
+
#
|
|
386
|
+
svn_url := https://ctags.svn.sourceforge.net/svnroot/ctags
|
|
387
|
+
|
|
388
|
+
release-svn-%: svn-tagcheck-%
|
|
389
|
+
@ echo "---------- Tagging release $*"
|
|
390
|
+
svn copy -m'Release of ctags-$*' $(svn_url)/trunk $(svn_url)/tags/ctags-$*
|
|
391
|
+
|
|
392
|
+
rerelease-svn-%:
|
|
393
|
+
@ echo "---------- Tagging release $*"
|
|
394
|
+
svn remove -m'Regenerating release of ctags-$*' $(svn_url)/tags/ctags-$*
|
|
395
|
+
svn copy -m'Release of ctags-$*' $(svn_url)/trunk $(svn_url)/tags/ctags-$*
|
|
396
|
+
|
|
397
|
+
svn-tagcheck-%:
|
|
398
|
+
if svn list $(svn_url)/tags/ | grep -q 'ctags-$*/$$' >/dev/null 2>&1 ;then \
|
|
399
|
+
echo "ctags-$* already exists; use rerelease-$*" >&2 ;\
|
|
400
|
+
exit 1 ;\
|
|
401
|
+
fi
|
|
402
|
+
|
|
403
|
+
svn-files:
|
|
404
|
+
@ls -1 $(SVN_FILES)
|
|
405
|
+
|
|
406
|
+
#
|
|
407
|
+
# Dependency file generation
|
|
408
|
+
#
|
|
409
|
+
$(DEPS): %.c maintainer.mak
|
|
410
|
+
@ if [ ! -d $(DEP_DIR) ] ;then mkdir -p $(DEP_DIR) ;fi
|
|
411
|
+
@ $(CC) -M $(DCFLAGS) $< | sed 's/\($*\.o\)\([ :]\)/\1 $*.od $(@F)\2/g' > $@
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
%.inc: %.c Makefile
|
|
415
|
+
-@ $(CC) -MM $(DCFLAGS) $<
|
|
416
|
+
|
|
417
|
+
#
|
|
418
|
+
# Compilation rules
|
|
419
|
+
#
|
|
420
|
+
%.o %.od: gnu_regex/%.c
|
|
421
|
+
# @ echo "-- Compiling $<"
|
|
422
|
+
$(CC) $(CFLAGS) -D__USE_GNU -Dbool=int -Dfalse=0 -Dtrue=1 -I$(REGEX_DIR) $(OPT) -c $<
|
|
423
|
+
|
|
424
|
+
%.o: %.c
|
|
425
|
+
@ echo "-- Compiling $<"
|
|
426
|
+
@ $(CC) $(COMP_FLAGS) -DEXTERNAL_SORT $(OPT) $(WARNINGS) -Wuninitialized -c $<
|
|
427
|
+
|
|
428
|
+
%.od: %.c
|
|
429
|
+
@ echo "-- Compiling (debug) $<"
|
|
430
|
+
@ $(CC) -g $(DCFLAGS) $(WARNINGS) -o $*.od -c $<
|
|
431
|
+
|
|
432
|
+
%.i: %.c FORCE
|
|
433
|
+
$(CC) $(DCFLAGS) $(WARNINGS) -Wuninitialized -O -E $< > $@
|
|
434
|
+
|
|
435
|
+
%.ic: %.c FORCE
|
|
436
|
+
$(CC) $(DCFLAGS) $(WARNINGS) -Wuninitialized -O -E $< | sed '/^[ ]*$/d' > $@
|
|
437
|
+
|
|
438
|
+
%.s: %.c FORCE
|
|
439
|
+
$(CC) $(DCFLAGS) $(WARNINGS) -S $< > $@
|
|
440
|
+
|
|
441
|
+
readtags.err: DCFLAGS += -DREADTAGS_MAIN
|
|
442
|
+
|
|
443
|
+
%.err: %.c
|
|
444
|
+
@ $(CC) $(DCFLAGS) $(WARNINGS) -Wuninitialized -O -c $<
|
|
445
|
+
@ rm $*.o
|
|
446
|
+
|
|
447
|
+
%.c.gcov: %.da
|
|
448
|
+
@ gcov $*.c
|
|
449
|
+
|
|
450
|
+
%.sproto: %.c
|
|
451
|
+
@ genproto -s -m __ARGS $<
|
|
452
|
+
|
|
453
|
+
%.proto: %.c
|
|
454
|
+
@ genproto -e -m __ARGS $<
|
|
455
|
+
|
|
456
|
+
# Print out the value of a variable
|
|
457
|
+
# From http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=0&Board=cmbasics&Number=28829
|
|
458
|
+
print-%:
|
|
459
|
+
@echo $* = $($*)
|
|
460
|
+
|
|
461
|
+
# Print out the expanded values of all variables
|
|
462
|
+
# From http://www.cmcrossroads.com/ubbthreads/showflat.php?Cat=0&Number=29581
|
|
463
|
+
.PHONY: print-vars
|
|
464
|
+
print-vars:
|
|
465
|
+
@$(foreach V,$(sort $(.VARIABLES)), \
|
|
466
|
+
$(if $(filter-out environment% default automatic, \
|
|
467
|
+
$(origin $V)),$(warning $V=$($V))))
|
|
468
|
+
|
|
469
|
+
# Print out the declared values of all variables
|
|
470
|
+
.PHONY: print-vars-decl
|
|
471
|
+
print-vars-decl:
|
|
472
|
+
@$(foreach V,$(sort $(.VARIABLES)), \
|
|
473
|
+
$(if $(filter-out environment% default automatic, \
|
|
474
|
+
$(origin $V)),$(warning $V=$(value $V))))
|
|
475
|
+
|
|
476
|
+
# vi:ts=4 sw=4
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* $Id: make.c 681 2008-10-12 22:43:00Z dhiebert $
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) 2000-2005, Darren Hiebert
|
|
5
|
+
*
|
|
6
|
+
* This source code is released for free distribution under the terms of the
|
|
7
|
+
* GNU General Public License.
|
|
8
|
+
*
|
|
9
|
+
* This module contains functions for generating tags for makefiles.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* INCLUDE FILES
|
|
14
|
+
*/
|
|
15
|
+
#include "general.h" /* must always come first */
|
|
16
|
+
|
|
17
|
+
#include <string.h>
|
|
18
|
+
#include <ctype.h>
|
|
19
|
+
|
|
20
|
+
#include "options.h"
|
|
21
|
+
#include "parse.h"
|
|
22
|
+
#include "read.h"
|
|
23
|
+
#include "vstring.h"
|
|
24
|
+
|
|
25
|
+
/*
|
|
26
|
+
* DATA DEFINITIONS
|
|
27
|
+
*/
|
|
28
|
+
typedef enum {
|
|
29
|
+
K_MACRO
|
|
30
|
+
} shKind;
|
|
31
|
+
|
|
32
|
+
static kindOption MakeKinds [] = {
|
|
33
|
+
{ TRUE, 'm', "macro", "macros"}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* FUNCTION DEFINITIONS
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
static int nextChar (void)
|
|
41
|
+
{
|
|
42
|
+
int c = fileGetc ();
|
|
43
|
+
if (c == '\\')
|
|
44
|
+
{
|
|
45
|
+
c = fileGetc ();
|
|
46
|
+
if (c == '\n')
|
|
47
|
+
c = fileGetc ();
|
|
48
|
+
}
|
|
49
|
+
return c;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static void skipLine (void)
|
|
53
|
+
{
|
|
54
|
+
int c;
|
|
55
|
+
do
|
|
56
|
+
c = nextChar ();
|
|
57
|
+
while (c != EOF && c != '\n');
|
|
58
|
+
if (c == '\n')
|
|
59
|
+
fileUngetc (c);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static int skipToNonWhite (void)
|
|
63
|
+
{
|
|
64
|
+
int c;
|
|
65
|
+
do
|
|
66
|
+
c = nextChar ();
|
|
67
|
+
while (c != '\n' && isspace (c));
|
|
68
|
+
return c;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static boolean isIdentifier (int c)
|
|
72
|
+
{
|
|
73
|
+
return (boolean)(c != '\0' && (isalnum (c) || strchr (".-_", c) != NULL));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static void readIdentifier (const int first, vString *const id)
|
|
77
|
+
{
|
|
78
|
+
int c = first;
|
|
79
|
+
vStringClear (id);
|
|
80
|
+
while (isIdentifier (c))
|
|
81
|
+
{
|
|
82
|
+
vStringPut (id, c);
|
|
83
|
+
c = nextChar ();
|
|
84
|
+
}
|
|
85
|
+
fileUngetc (c);
|
|
86
|
+
vStringTerminate (id);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static void skipToMatch (const char *const pair)
|
|
90
|
+
{
|
|
91
|
+
const int begin = pair [0], end = pair [1];
|
|
92
|
+
const unsigned long inputLineNumber = getInputLineNumber ();
|
|
93
|
+
int matchLevel = 1;
|
|
94
|
+
int c = '\0';
|
|
95
|
+
|
|
96
|
+
while (matchLevel > 0)
|
|
97
|
+
{
|
|
98
|
+
c = nextChar ();
|
|
99
|
+
if (c == begin)
|
|
100
|
+
++matchLevel;
|
|
101
|
+
else if (c == end)
|
|
102
|
+
--matchLevel;
|
|
103
|
+
else if (c == '\n')
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
if (c == EOF)
|
|
107
|
+
verbose ("%s: failed to find match for '%c' at line %lu\n",
|
|
108
|
+
getInputFileName (), begin, inputLineNumber);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static void findMakeTags (void)
|
|
112
|
+
{
|
|
113
|
+
vString *name = vStringNew ();
|
|
114
|
+
boolean newline = TRUE;
|
|
115
|
+
boolean in_define = FALSE;
|
|
116
|
+
boolean in_rule = FALSE;
|
|
117
|
+
boolean variable_possible = TRUE;
|
|
118
|
+
int c;
|
|
119
|
+
|
|
120
|
+
while ((c = nextChar ()) != EOF)
|
|
121
|
+
{
|
|
122
|
+
if (newline)
|
|
123
|
+
{
|
|
124
|
+
if (in_rule)
|
|
125
|
+
{
|
|
126
|
+
if (c == '\t')
|
|
127
|
+
{
|
|
128
|
+
skipLine (); /* skip rule */
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
else
|
|
132
|
+
in_rule = FALSE;
|
|
133
|
+
}
|
|
134
|
+
variable_possible = (boolean)(!in_rule);
|
|
135
|
+
newline = FALSE;
|
|
136
|
+
}
|
|
137
|
+
if (c == '\n')
|
|
138
|
+
newline = TRUE;
|
|
139
|
+
else if (isspace (c))
|
|
140
|
+
continue;
|
|
141
|
+
else if (c == '#')
|
|
142
|
+
skipLine ();
|
|
143
|
+
else if (c == '(')
|
|
144
|
+
skipToMatch ("()");
|
|
145
|
+
else if (c == '{')
|
|
146
|
+
skipToMatch ("{}");
|
|
147
|
+
else if (c == ':')
|
|
148
|
+
{
|
|
149
|
+
variable_possible = TRUE;
|
|
150
|
+
in_rule = TRUE;
|
|
151
|
+
}
|
|
152
|
+
else if (variable_possible && isIdentifier (c))
|
|
153
|
+
{
|
|
154
|
+
readIdentifier (c, name);
|
|
155
|
+
if (strcmp (vStringValue (name), "endef") == 0)
|
|
156
|
+
in_define = FALSE;
|
|
157
|
+
else if (in_define)
|
|
158
|
+
skipLine ();
|
|
159
|
+
else if (strcmp (vStringValue (name), "define") == 0 &&
|
|
160
|
+
isIdentifier (c))
|
|
161
|
+
{
|
|
162
|
+
in_define = TRUE;
|
|
163
|
+
c = skipToNonWhite ();
|
|
164
|
+
readIdentifier (c, name);
|
|
165
|
+
makeSimpleTag (name, MakeKinds, K_MACRO);
|
|
166
|
+
skipLine ();
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
if (strcmp(vStringValue (name), "export") == 0 &&
|
|
170
|
+
isIdentifier (c))
|
|
171
|
+
{
|
|
172
|
+
c = skipToNonWhite ();
|
|
173
|
+
readIdentifier (c, name);
|
|
174
|
+
}
|
|
175
|
+
c = skipToNonWhite ();
|
|
176
|
+
if (strchr (":?+", c) != NULL)
|
|
177
|
+
{
|
|
178
|
+
boolean append = (boolean)(c == '+');
|
|
179
|
+
if (c == ':')
|
|
180
|
+
in_rule = TRUE;
|
|
181
|
+
c = nextChar ();
|
|
182
|
+
if (c != '=')
|
|
183
|
+
fileUngetc (c);
|
|
184
|
+
else if (append)
|
|
185
|
+
{
|
|
186
|
+
skipLine ();
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
if (c == '=')
|
|
191
|
+
{
|
|
192
|
+
makeSimpleTag (name, MakeKinds, K_MACRO);
|
|
193
|
+
in_rule = FALSE;
|
|
194
|
+
skipLine ();
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else
|
|
199
|
+
variable_possible = FALSE;
|
|
200
|
+
}
|
|
201
|
+
vStringDelete (name);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
extern parserDefinition* MakefileParser (void)
|
|
205
|
+
{
|
|
206
|
+
static const char *const patterns [] = { "[Mm]akefile", "GNUmakefile", NULL };
|
|
207
|
+
static const char *const extensions [] = { "mak", "mk", NULL };
|
|
208
|
+
parserDefinition* const def = parserNew ("Make");
|
|
209
|
+
def->kinds = MakeKinds;
|
|
210
|
+
def->kindCount = KIND_COUNT (MakeKinds);
|
|
211
|
+
def->patterns = patterns;
|
|
212
|
+
def->extensions = extensions;
|
|
213
|
+
def->parser = findMakeTags;
|
|
214
|
+
return def;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* vi:set tabstop=4 shiftwidth=4: */
|