1ACLOCAL_AMFLAGS = -I m4 2#AM_CPPFLAGS = -I$(top_builddir)/gnulib -I$(top_srcdir)/gnulib 3GNULIB_DIR = gnulib 4GNULIB_CPPFLAGS = -I$(top_builddir)/$(GNULIB_DIR) -I$(top_srcdir)/$(GNULIB_DIR) 5GNULIB_LIBS = $(GNULIB_DIR)/libgnu.a $(LIBPTHREAD) 6$(GNULIB_LIBS): 7 $(MAKE) -C $(GNULIB_DIR) all 8SUBDIRS = $(GNULIB_DIR) . man 9 10include $(top_srcdir)/source.mak 11 12PACKCC_FILES = misc/packcc/.gitignore \ 13 misc/packcc/README.md \ 14 misc/packcc/LICENSE \ 15 misc/packcc/src/packcc.c \ 16 \ 17 $(NULL) 18 19EXTRA_DIST = README.md autogen.sh \ 20 misc/optlib2c \ 21 .ctags.d/exclusion.ctags .dir-locals.el .editorconfig .gdbinit .gitignore \ 22 .indent.pro .uncrustify.cfg \ 23 misc/ctags-optlib-mode.el \ 24 misc/mk-interactive-request.sh misc/roundtrip misc/tinst \ 25 $(PACKCC_FILES) \ 26 misc/validators/validator-jq \ 27 misc/validators/validator-KNOWN-INVALIDATION \ 28 misc/validators/validator-NONE \ 29 misc/validators/validator-puppet \ 30 $(WIN32_HEADS) $(WIN32_SRCS) mk_mingw.mak mk_mvc.mak \ 31 win32/mkstemp/COPYING.MinGW-w64-runtime.txt \ 32 win32/ctags.rc win32/ctags.exe.manifest win32/resource.h \ 33 win32/ctags_vs2013.sln \ 34 win32/ctags_vs2013.vcxproj win32/ctags_vs2013.vcxproj.filters \ 35 win32/ctags_vs2013.vcxproj.in win32/ctags_vs2013.vcxproj.filters.in \ 36 win32/GNUmakefile \ 37 win32/gen-repoinfo.bat \ 38 misc/txt2cstr \ 39 $(PEG_INPUT) $(OPTLIB2C_INPUT) $(OPTLIB2C_PCRE2_INPUT) $(TXT2CSTR_INPUT) \ 40 docs Tmain Units m4/gnulib-cache.m4 41 42CLEANFILES = 43MOSTLYCLEANFILES = 44MAINTAINERCLEANFILES = autom4te.cache 45 46# for distcheck 47clean-local: 48 @if test "$(top_srcdir)" != "$(top_builddir)"; then \ 49 rm -rf $(OPTLIB2C_SRCS) $(OPTLIB2C_PCRE2_SRCS); \ 50 rm -rf $(TXT2CSTR_SRCS); \ 51 else \ 52 $(MAKE) -C docs clean; \ 53 fi 54 55maintainer-clean-local: 56 rm -rf .deps misc/packcc/.dirstamp 57 58bin_PROGRAMS = ctags 59noinst_LIBRARIES = 60noinst_LIBRARIES += libctags.a 61noinst_LIBRARIES += libutil.a 62 63noinst_PROGRAMS = 64 65# packcc always uses native compiler even when cross-compiling. 66# packcc cannot use the standard Automake rule. 67PACKCC_CPPFLAGS_FOR_BUILD = -fsigned-char 68if HAVE_STRNLEN_FOR_BUILD 69PACKCC_CPPFLAGS_FOR_BUILD += -DPCC_USE_SYSTEM_STRNLEN 70endif 71 72PACKCC = $(top_builddir)/packcc$(BUILD_EXEEXT) 73CLEANFILES += $(PACKCC) 74 75cc4b_verbose = $(cc4b_verbose_@AM_V@) 76cc4b_verbose_ = $(cc4b_verbose_@AM_DEFAULT_V@) 77cc4b_verbose_0 = @echo CC4BUILD " $@"; 78$(PACKCC): $(srcdir)/$(PACKCC_SRC) 79 $(cc4b_verbose)$(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(PACKCC_CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ $(srcdir)/$(PACKCC_SRC) 80 81if USE_READCMD 82bin_PROGRAMS+= readtags 83readtags_CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/main -I$(srcdir)/libreadtags 84if ENABLE_DEBUGGING 85readtags_CPPFLAGS+= $(DEBUG_CPPFLAGS) 86endif 87readtags_CFLAGS = $(COVERAGE_CFLAGS) $(WARNING_CFLAGS) 88dist_readtags_SOURCES = $(READTAGS_SRCS) $(READTAGS_HEADS) 89readtags_CPPFLAGS += $(GNULIB_CPPFLAGS) 90readtags_CPPFLAGS += -DREADTAGS_DSL -I$(srcdir)/dsl 91readtags_LDADD = 92readtags_LDADD += $(GNULIB_LIBS) 93readtags_LDADD += libutil.a 94dist_readtags_SOURCES += $(READTAGS_DSL_SRCS) $(READTAGS_DSL_HEADS) 95endif 96 97if HAVE_PCRE2 98PARSER_SRCS += $(PCRE2_SRCS) $(OPTLIB2C_PCRE2_SRCS) 99PARSER_HEADS += $(PCRE2_HEADS) 100endif 101 102if HAVE_LIBXML 103PARSER_SRCS += $(XML_SRCS) 104PARSER_HEADS += $(XML_HEADS) 105endif 106 107if HAVE_JANSSON 108LIB_SRCS += $(JANSSON_SRCS) 109LIB_HEADS += $(JANSSON_HEADS) 110endif 111 112if HAVE_LIBYAML 113PARSER_SRCS += $(YAML_SRCS) 114PARSER_HEADS += $(YAML_HEADS) 115endif 116 117PARSER_HEADS += $(PEG_EXTRA_HEADS) 118 119libutil_a_CPPFLAGS = -I$(srcdir) -I$(srcdir)/main 120libutil_a_CFLAGS = 121libutil_a_CFLAGS += $(EXTRA_CFLAGS) 122libutil_a_CFLAGS += $(WARNING_CFLAGS) 123libutil_a_CFLAGS += $(COVERAGE_CFLAGS) 124if ENABLE_DEBUGGING 125libutil_a_CPPFLAGS+= $(DEBUG_CPPFLAGS) 126endif 127dist_libutil_a_SOURCES = $(UTIL_HEADS) $(UTIL_SRCS) 128 129libctags_a_CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/main -I$(srcdir)/dsl -I$(srcdir)/peg -DHAVE_PACKCC 130if ENABLE_DEBUGGING 131libctags_a_CPPFLAGS+= $(DEBUG_CPPFLAGS) 132endif 133if HAVE_STRNLEN 134libctags_a_CPPFLAGS += -DUSE_SYSTEM_STRNLEN 135endif 136libctags_a_CPPFLAGS+= $(GNULIB_CPPFLAGS) 137libctags_a_CPPFLAGS+= -DHAVE_REPOINFO_H 138 139libctags_a_CFLAGS = 140libctags_a_CFLAGS += $(EXTRA_CFLAGS) 141libctags_a_CFLAGS += $(WARNING_CFLAGS) 142libctags_a_CFLAGS += $(COVERAGE_CFLAGS) 143libctags_a_CFLAGS += $(CGCC_CFLAGS) 144libctags_a_CFLAGS += $(LIBXML_CFLAGS) 145libctags_a_CFLAGS += $(JANSSON_CFLAGS) 146libctags_a_CFLAGS += $(LIBYAML_CFLAGS) 147libctags_a_CFLAGS += $(SECCOMP_CFLAGS) 148libctags_a_CFLAGS += $(PCRE2_CFLAGS) 149 150nodist_libctags_a_SOURCES = $(REPOINFO_HEADS) $(PEG_SRCS) $(PEG_HEADS) 151BUILT_SOURCES = $(REPOINFO_HEADS) 152CLEANFILES += $(REPOINFO_HEADS) $(PEG_SRCS) $(PEG_HEADS) 153EXTRA_libctags_a_DEPENDENCIES = $(GNULIB_LIBS) 154$(REPOINFO_SRCS): $(REPOINFO_HEADS) 155repoinfo_verbose = $(repoinfo_verbose_@AM_V@) 156repoinfo_verbose_ = $(repoinfo_verbose_@AM_DEFAULT_V@) 157repoinfo_verbose_0 = @echo REPOINFO " $@"; 158if BUILD_IN_GIT_REPO 159GEN_REPOINFO = $(srcdir)/misc/gen-repoinfo 160$(REPOINFO_HEADS): FORCE 161 $(repoinfo_verbose)$(GEN_REPOINFO) $@ 162FORCE: 163else 164$(REPOINFO_HEADS): 165 $(repoinfo_verbose)echo > $@ 166endif 167 168SUFFIXES= 169 170if RUN_OPTLIB2C 171optlib2c_verbose = $(optlib2c_verbose_@AM_V@) 172optlib2c_verbose_ = $(optlib2c_verbose_@AM_DEFAULT_V@) 173optlib2c_verbose_0 = @echo OPTLIB2C " $@"; 174OPTLIB2C = $(srcdir)/misc/optlib2c 175OPTLIB2C_DIR = optlib 176SUFFIXES += .ctags 177.ctags.c: 178 $(optlib2c_verbose)$(OPTLIB2C) $< > $@ 179$(OPTLIB2C_SRCS): $(OPTLIB2C) Makefile 180if HAVE_PCRE2 181$(OPTLIB2C_PCRE2_SRCS): $(OPTLIB2C) Makefile 182endif 183endif 184 185if RUN_TXT2CSTR 186txt2cstr_verbose = $(txt2cstr_verbose_@AM_V@) 187txt2cstr_verbose_ = $(txt2cstr_verbose_@AM_DEFAULT_V@) 188txt2cstr_verbose_0 = @echo TXT2CSTR " $@"; 189TXT2CSTR = $(srcdir)/misc/txt2cstr 190TXT2CSTR_DIR = main 191SUFFIXES += .ps 192.ps.c: 193 $(txt2cstr_verbose)$(TXT2CSTR) $< > $@ 194$(TXT2CSTR_SRCS): $(TXT2CSTR) Makefile 195endif 196 197packcc_verbose = $(packcc_verbose_@AM_V@) 198packcc_verbose_ = $(packcc_verbose_@AM_DEFAULT_V@) 199packcc_verbose_0 = @echo PACKCC " $@"; 200SUFFIXES += .peg 201.peg.c: 202 $(packcc_verbose)$(PACKCC) -o $(top_builddir)/peg/$(*F) "$<" 203.peg.h: 204 $(packcc_verbose)$(PACKCC) -o $(top_builddir)/peg/$(*F) "$<" 205# You cannot use $(PACKCC) as a target name here. 206$(PEG_SRCS) $(PEG_HEADS): $(PACKCC) Makefile 207dist_libctags_a_SOURCES = $(ALL_LIB_HEADS) $(ALL_LIB_SRCS) 208 209ctags_CPPFLAGS = $(libctags_a_CPPFLAGS) 210ctags_CFLAGS = $(libctags_a_CFLAGS) 211ctags_LDADD = libctags.a 212ctags_LDADD += $(GNULIB_LIBS) 213ctags_LDADD += $(LIBXML_LIBS) 214ctags_LDADD += $(JANSSON_LIBS) 215ctags_LDADD += $(LIBYAML_LIBS) 216ctags_LDADD += $(SECCOMP_LIBS) 217ctags_LDADD += $(ICONV_LIBS) 218ctags_LDADD += $(PCRE2_LIBS) 219dist_ctags_SOURCES = $(CMDLINE_HEADS) $(CMDLINE_SRCS) 220 221if HOST_MINGW 222RES_OBJ = win32/ctags.res.o 223ctags_LDADD += $(RES_OBJ) 224windres_verbose = $(windres_verbose_@AM_V@) 225windres_verbose_ = $(windres_verbose_@AM_DEFAULT_V@) 226windres_verbose_0 = @echo WINDRES " $@"; 227$(RES_OBJ): win32/ctags.rc win32/ctags.exe.manifest win32/resource.h 228 @mkdir -p $(builddir)/win32 229 $(windres_verbose)$(WINDRES) -o $@ -O coff $< 230MOSTLYCLEANFILES += $(RES_OBJ) 231endif 232 233noinst_PROGRAMS += mini-geany 234mini_geany_CPPFLAGS = $(libctags_a_CPPFLAGS) 235mini_geany_CFLAGS = $(libctags_a_CFLAGS) 236mini_geany_LDADD = libctags.a 237mini_geany_LDADD += $(GNULIB_LIBS) 238mini_geany_LDADD += $(LIBXML_LIBS) 239mini_geany_LDADD += $(JANSSON_LIBS) 240mini_geany_LDADD += $(LIBYAML_LIBS) 241mini_geany_LDADD += $(SECCOMP_LIBS) 242mini_geany_LDADD += $(ICONV_LIBS) 243mini_geany_LDADD += $(PCRE2_LIBS) 244mini_geany_SOURCES = $(MINI_GEANY_HEADS) $(MINI_GEANY_SRCS) 245 246bin_PROGRAMS += optscript 247optscript_CPPFLAGS = $(libctags_a_CPPFLAGS) 248optscript_CFLAGS = $(libctags_a_CFLAGS) 249optscript_LDADD = libctags.a 250# TODO: remove these dependencies from optscript command. 251optscript_LDADD += $(GNULIB_LIBS) 252optscript_LDADD += $(LIBXML_LIBS) 253optscript_LDADD += $(JANSSON_LIBS) 254optscript_LDADD += $(LIBYAML_LIBS) 255optscript_LDADD += $(SECCOMP_LIBS) 256optscript_LDADD += $(ICONV_LIBS) 257optscript_LDADD += $(PCRE2_LIBS) 258optscript_SOURCES = $(OPTSCRIPT_SRCS) 259 260if INSTALL_ETAGS 261install-exec-hook: 262 cd $(DESTDIR)$(bindir) && \ 263 $(LN_S) ctags$(EXEEXT) etags$(EXEEXT) 264 265uninstall-hook: 266 rm $(DESTDIR)$(bindir)/etags$(EXEEXT) 267endif 268 269dist-hook: 270 rm -rf $(distdir)/docs/_build 271 find $(distdir)/Tmain $(distdir)/Units \( \ 272 -name '*-actual.txt' -o -name '*-diff.txt' -o \ 273 -name '*.TMP' -o -name '*.tmp' -o -name '*~' -o \ 274 -name 'dist.m4' -o -name 'Makefile.am' -o \ 275 -name 'Makefile.in' -o -name 'Makefile' -o \ 276 -name 'BUNDLES' \) -exec rm -f {} + 277 278include $(top_srcdir)/makefiles/testing.mak 279 280include $(top_srcdir)/makefiles/help.mak 281