Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8391288
Makefile.in
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
13 KB
Subscribers
None
Makefile.in
View Options
# This source code is released for free distribution under the terms
# of the GNU General Public License version 2 or (at your option) any
# later version.
#
# Makefile for UNIX-like platforms.
# These are the names of the installed programs, in case you wish to change
# them.
#
CTAGS_PROG = @ctags_name_executable@
ETAGS_PROG = @etags_name_executable@
# Set this to the path to your shell (must run Bourne shell commands).
#
SHELL = /bin/sh
# GNU Autoconf variables. These are set by the "configure" script when it
# runs.
#
exec_prefix = @exec_prefix@
datarootdir = @datarootdir@
prefix = @prefix@
bindir = @bindir@
srcdir = @srcdir@
libdir = @libdir@
incdir = @includedir@
mandir = @mandir@
datadir = @datadir@
pkgdatadir = @pkgdatadir@
sysconfdir = @sysconfdir@
pkgsysconfdir = @pkgsysconfdir@
libexecdir = @libexecdir@
pkglibexecdir = @pkglibexecdir@
SLINK = @LN_S@
STRIP = @STRIP@
ifdef SPARSE
SPARSEFLAGS=-Wsparse-all
CC = cgcc $(SPARSEFLAGS)
else
CC = @CC@
endif
DEFS = @DEFS@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@ $(COVERAGE_LDFLAGS)
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
TINST_ROOT=tinst-root
# If you cannot run the "configure" script to set the variables above, then
# uncomment the defines below and customize them for your environment. If
# your system does not support symbolic (soft) links, then remove the -s
# from SLINK.
#
#srcdir = .
#bindir = /usr/local/bin
#mandir = /usr/local/man
#SLINK = ln -s
#STRIP = strip
#CC = cc
#DEFS = -DHAVE_CONFIG_H
#CFLAGS = -O
#LDFLAGS=
ifdef COVERAGE
COVERAGE_CFLAGS=--coverage
COVERAGE_LDFLAGS=--coverage
endif
ALL_CFLAGS = $(CFLAGS) --std=gnu99 -Wall $(COVERAGE_CFLAGS)
DEBUG_CPPFLAGS ?= -DDEBUG
ALL_CPPFLAGS = $(CPPFLAGS) \
$(DEBUG_CPPFLAGS) \
-DDATADIR=\"$(pkgdatadir)\" \
-DPKGCONFDIR=\"$(pkgsysconfdir)\" \
-DPKGLIBEXECDIR=\"$(pkglibexecdir)\"
include $(srcdir)/source.mak
#
#--- You should not need to modify anything below this line. ---#
#
.SUFFIXES:
.SUFFIXES: .c .$(OBJEXT)
VPATH = $(srcdir) $(srcdir)/data/corpora \
$(srcdir)/data/optlib $(srcdir)/gnu_regex $(srcdir)/fnmatch
INSTALL = cp -p
INSTALL_PROG = $(INSTALL)
INSTALL_DATA = $(INSTALL)
READ_LIB = readtags.$(OBJEXT)
READ_INC = readtags.h
MANPAGE = ctags.1
AUTO_GEN = configure config.h.in
CONFIG_GEN = config.cache config.log config.status config.run config.h ctags.1 Makefile
#
# names for installed man pages
#
manext = 1
man1dir = $(mandir)/man1
CMAN = $(CTAGS_PROG).$(manext)
EMAN = $(ETAGS_PROG).$(manext)
#
# corpora files
#
corporadir = $(pkgdatadir)/corpora
pkgconf_corporadir = $(pkgsysconfdir)/corpora
CORPORA = ctags.ctags RFC1213-MIB.txt
#
# preload
#
preloaddir = $(pkgdatadir)/preload
pkgconf_preloaddir = $(pkgsysconfdir)/preload
PRELOAD_OPTLIB = \
\
coffee.ctags \
ctags.ctags \
gdbinit.ctags \
m4.ctags \
mib.ctags \
\
$(NULL)
DEFAULT_PRELOAD_FILE=default.ctags
#
# config files
#
optlibdir = $(pkgdatadir)/optlib
pkgconf_optlibdir = $(pkgsysconfdir)/optlib
OPTLIB = $(PRELOAD_OPTLIB)
#
# drivers
#
driversdir = $(pkglibexecdir)/drivers
DRIVERS = coffeetags
#
# destinations for installed files
#
CTAGS_EXEC = $(CTAGS_PROG)$(EXEEXT)
ETAGS_EXEC = $(ETAGS_PROG)$(EXEEXT)
READ_CMD = readtags$(EXEEXT)
DEST_CTAGS = $(bindir)/$(CTAGS_EXEC)
DEST_ETAGS = $(bindir)/$(ETAGS_EXEC)
DEST_READ_CMD = $(bindir)/$(READ_CMD)
DEST_READ_LIB = $(libdir)/$(READ_LIB)
DEST_READ_INC = $(incdir)/$(READ_INC)
DEST_CMAN = $(man1dir)/$(CMAN)
DEST_EMAN = $(man1dir)/$(EMAN)
#
# Silent/verbose commands
#
# when V is not set the output of commands is ommited or simplified
#
V ?= 0
SILENT = $(SILENT_$(V))
SILENT_0 = @
SILENT_1 =
V_CC = $(V_CC_$(V))
V_CC_0 = @echo [CC] $@;
V_CC_1 =
#
# primary rules
#
all: $(CTAGS_EXEC) $(READ_LIB) $(READ_CMD)
$(CTAGS_EXEC): $(OBJECTS)
$(V_CC) $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS)
$(READ_CMD): readtags.c readtags.h
$(V_CC) $(CC) -DREADTAGS_MAIN -I. -I$(srcdir) -I$(srcdir)/main $(DEFS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(srcdir)/readtags.c
$(OBJECTS): $(HEADERS) config.h Makefile
# Regenerate the Makefile whenever this file (it's source) changed. Any target
# should trigger this as it may affect their rules. This implementation only
# works with GNU make but should be harmless for other implementations.
%: Makefile
Makefile: Makefile.in config.status
$(SILENT) ./config.status --file $@
config.h: config.h.in config.status
$(SILENT) ./config.status --header $@
# Regenerate the build system whenever it changed
config.status: configure
$(SILENT) ./config.status --recheck
configure: configure.ac
$(SILENT) cd $(srcdir) && autoreconf -vi
#
# generic install rules
#
install: @install_targets@
install-strip: install
install-ctags: install-cbin install-cman
install-etags: install-ebin install-eman
INSTALLDIRS = $(bindir) $(man1dir) $(libdir) $(incdir) \
$(corporadir) $(optlibdir) $(preloaddir) $(driversdir) \
$(pkgconf_corporadir) $(pkgconf_optlibdir) $(pkgconf_preloaddir)
$(addprefix $(DESTDIR),$(INSTALLDIRS)):
$(srcdir)/mkinstalldirs $@
FORCE:
#
# install the executables
#
install-bin: install-cbin install-ebin install-lib install-cmd
install-cbin: $(DEST_CTAGS)
install-ebin: $(DEST_ETAGS)
install-lib: $(DEST_READ_LIB) $(DEST_READ_INC)
install-cmd: $(DEST_READ_CMD)
$(DEST_CTAGS): $(CTAGS_EXEC) $(DESTDIR)$(bindir) FORCE
$(INSTALL_PROG) $(CTAGS_EXEC) $(DESTDIR)$@ && chmod 755 $(DESTDIR)$@
$(DEST_ETAGS):
- if [ -x $(DESTDIR)$(DEST_CTAGS) ]; then \
cd $(DESTDIR)$(bindir) && $(SLINK) $(CTAGS_EXEC) $(ETAGS_EXEC); \
fi
#
# install the man pages
#
install-man: install-cman install-eman
install-cman: $(DEST_CMAN)
install-eman: $(DEST_EMAN)
$(DEST_CMAN): $(DESTDIR)$(man1dir) $(MANPAGE) FORCE
- $(INSTALL_DATA) $(MANPAGE) $(DESTDIR)$@ && chmod 644 $(DESTDIR)$@
$(DEST_EMAN):
- if [ -f $(DESTDIR)$(DEST_CMAN) ]; then \
cd $(DESTDIR)$(man1dir) && $(SLINK) $(CMAN) $(EMAN); \
fi
#
# install the library
#
$(DEST_READ_LIB): $(READ_LIB) $(DESTDIR)$(libdir) FORCE
$(INSTALL_PROG) $(READ_LIB) $(DESTDIR)$@ && chmod 644 $(DESTDIR)$@
$(DEST_READ_INC): $(READ_INC) $(DESTDIR)$(incdir) FORCE
$(INSTALL_PROG) $(READ_INC) $(DESTDIR)$@ && chmod 644 $(DESTDIR)$@
#
# install the readtags command
#
$(DEST_READ_CMD): $(READ_CMD) $(DESTDIR)$(bindir) FORCE
$(INSTALL_PROG) $(READ_CMD) $(DESTDIR)$@ && chmod 755 $(DESTDIR)$@
#
# install data
#
install-data: @install_data_targets@
install-data-corpora: $(addprefix data/corpora/,$(CORPORA)) $(DESTDIR)$(corporadir) $(DESTDIR)$(pkgconf_corporadir) FORCE
for c in $(CORPORA); do \
$(INSTALL_DATA) $(srcdir)/data/corpora/$$c $(DESTDIR)$(corporadir)/$$c && chmod 644 $(DESTDIR)$(corporadir)/$$c; \
done
install-data-optlib: $(addprefix data/optlib/,$(OPTLIB)) $(DESTDIR)$(optlibdir) $(DESTDIR)$(pkgconf_optlibdir) FORCE
for c in $(OPTLIB); do \
$(INSTALL_DATA) $(srcdir)/data/optlib/$$c $(DESTDIR)$(optlibdir)/$$c && chmod 644 $(DESTDIR)$(optlibdir)/$$c; \
done
install-data-preload: $(DESTDIR)$(preloaddir) $(DESTDIR)$(pkgconf_preloaddir) FORCE
echo > $(DESTDIR)$(preloaddir)/$(DEFAULT_PRELOAD_FILE)
for c in $(PRELOAD_OPTLIB); do \
echo "--options=$$(basename $$c .ctags)" >> $(DESTDIR)$(preloaddir)/$(DEFAULT_PRELOAD_FILE); \
done
chmod 644 $(DESTDIR)$(preloaddir)/$(DEFAULT_PRELOAD_FILE)
#
# install libexec
#
install-libexec: @install_libexec_targets@
install-libexec-drivers: $(addprefix libexec/drivers/,$(DRIVERS)) $(DESTDIR)$(driversdir) FORCE
for x in $(DRIVERS); do \
$(INSTALL_PROG) $(srcdir)/libexec/drivers/$$x $(DESTDIR)$(driversdir)/$$x && chmod 755 $(DESTDIR)$(driversdir)/$$x; \
done
#
# rules for uninstalling
#
uninstall: uninstall-bin uninstall-lib uninstall-cmd uninstall-man uninstall-data uninstall-libexec
uninstall-bin:
- rm -f $(DEST_CTAGS) $(DEST_ETAGS)
uninstall-lib:
- rm -f $(DEST_READ_LIB) $(DEST_READ_INC)
uninstall-cmd:
- rm -f $(DEST_READ_CMD)
uninstall-man:
- rm -f $(DEST_CMAN) $(DEST_EMAN)
uninstall-ctags:
- rm -f $(DEST_CTAGS) $(DEST_CMAN)
uninstall-etags:
- rm -f $(DEST_ETAGS) $(DEST_EMAN)
uninstall-data: uninstall-corpora uninstall-optlib uninstall-preload
- rmdir $(pkgdatadir)
- rmdir $(pkgsysconfdir)
uninstall-corpora:
- rm -f $(addprefix $(corporadir)/,$(CORPORA))
- rmdir $(corporadir)
- rmdir $(pkgconf_corporadir)
uninstall-optlib:
- rm -f $(addprefix $(optlibdir)/,$(OPTLIB))
- rmdir $(optlibdir)
- rmdir $(pkgconf_optlibdir)
uninstall-preload:
- rm -f $(preloaddir)/$(DEFAULT_PRELOAD_FILE)
- rmdir $(preloaddir)
- rmdir $(pkgconf_preloaddir)
uninstall-libexec: uninstall-drivers
- rmdir $(pkglibexecdir)
uninstall-drivers:
- rm -f $(addprefix $(driversdir)/,$(DRIVERS))
- rmdir $(driversdir)
#
# miscellaneous rules
#
tags: $(CTAGS_EXEC)
./$(CTAGS_EXEC) $(srcdir)/*
TAGS: $(CTAGS_EXEC)
./$(CTAGS_EXEC) -e $(srcdir)/*
clean: clean-units clean-gcov clean-tmain
$(SILENT) echo Cleaning top level
$(SILENT) rm -f $(OBJECTS) $(CTAGS_EXEC) tags TAGS $(READ_LIB)
$(SILENT) rm -f $(SOURCES:.c=.gcno)
mostlyclean: clean
distclean: clean
rm -f $(CONFIG_GEN)
maintainerclean: distclean
rm -f $(AUTO_GEN)
rm -rf autom4te.cache/
#
# implicit rules
#
.c.$(OBJEXT):
$(SILENT) dir="$$(dirname $@)"; mkdir -p "$$dir"
$(V_CC) $(CC) -I. -I$(srcdir) -I$(srcdir)/main $(DEFS) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -o $@ -c $<
$(addsuffix .$(OBJEXT),$(basename $(notdir $(REGEX_SOURCES)))): ALL_CPPFLAGS += \
-D_GNU_SOURCE -D__USE_GNU -Dbool=int -Dfalse=0 -Dtrue=1
REV := $(shell git rev-parse --short HEAD 2>/dev/null || echo 0)
ALL_CPPFLAGS += -DCTAGS_COMMIT_ID=0x$(REV)
options.$(OBJEXT): commit-stamp
entry.$(OBJEXT): commit-stamp
commit-stamp: FORCE
echo "$(REV)" > $@.tmp
if diff -q $@ $@.tmp; then rm -f $@.tmp; else mv -f $@.tmp $@; fi
#
# check
#
CTAGS_TEST = ./$(CTAGS_EXEC)
ifdef VG
VALGRIND=--with-valgrind
endif
ifdef SHRINK
RUN_SHRINK=--run-shrink
endif
TIMEOUT=
LANGUAGES=
CATEGORIES=
UNITS=
ifdef TRAVIS
SHOW_DIFF_OUTPUT=--show-diff-output
endif
.PHONY: check units fuzz noise tmain tinst clean-units clean-tmain clean-gcov run-gcov codecheck help
check: tmain units
#
# FUZZ Target
#
# SHELL must be dash or bash.
#
fuzz: TIMEOUT := $(shell timeout --version > /dev/null 2>&1 && echo 1 || echo 0)
fuzz: $(CTAGS_TEST)
@ \
c="$(srcdir)/misc/units fuzz \
--ctags=$(CTAGS_TEST) \
--languages=$(LANGUAGES) \
--datadir=$(srcdir)/data \
--libexecdir=$(srcdir)/libexec \
$(VALGRIND) $(RUN_SHRINK) \
--with-timeout=$(TIMEOUT)"; \
$(SHELL) $${c} $(srcdir)/Units
#
# NOISE Target
#
noise: $(CTAGS_TEST)
@ \
c="$(srcdir)/misc/units noise \
--ctags=$(CTAGS_TEST) \
--languages=$(LANGUAGES) \
--datadir=$(srcdir)/data \
--libexecdir=$(srcdir)/libexec \
$(VALGRIND) $(RUN_SHRINK) \
--with-timeout=$(TIMEOUT)"; \
$(SHELL) $${c} $(srcdir)/Units
#
# UNITS Target
#
units: TIMEOUT := $(shell timeout --version > /dev/null 2>&1 && echo 5 || echo 0)
units: $(CTAGS_TEST)
@ \
builddir=$$(pwd); \
mkdir -p $${builddir}/Units && \
\
c="$(srcdir)/misc/units run \
--ctags=$(CTAGS_TEST) \
--languages=$(LANGUAGES) \
--categories=$(CATEGORIES) \
--units=$(UNITS) \
--datadir=$(srcdir)/data \
--libexecdir=$(srcdir)/libexec \
$(VALGRIND) $(RUN_SHRINK) \
--with-timeout=$(TIMEOUT) \
$(SHOW_DIFF_OUTPUT)"; \
$(SHELL) $${c} $(srcdir)/Units $${builddir}/Units
clean-units:
$(SILENT) echo Cleaning test units
$(SILENT) builddir=$$(pwd); \
$(SHELL) $(srcdir)/misc/units clean $${builddir}/Units
#
# Test main part, not parsers
#
tmain: $(CTAGS_TEST)
@ \
\
builddir=$$(pwd); \
mkdir -p $${builddir}/Tmain && \
\
c="$(srcdir)/misc/units tmain \
--ctags=$(CTAGS_TEST) \
--datadir=$(srcdir)/data \
--libexecdir=$(srcdir)/libexec \
$(VALGRIND) \
$(SHOW_DIFF_OUTPUT)"; \
$(SHELL) $${c} $(srcdir)/Tmain $${builddir}/Tmain
clean-tmain:
$(SILENT) echo Cleaning main part tests
$(SILENT) builddir=$$(pwd); \
$(SHELL) $(srcdir)/misc/units clean-tmain $${builddir}/Tmain
#
# Test installation
#
tinst:
@ \
\
builddir=$$(pwd); \
rm -rf $$builddir/$(TINST_ROOT); \
\
$(SHELL) $(srcdir)/misc/tinst $(srcdir) $$builddir/$(TINST_ROOT)
#
# Checking code in ctags own rules
#
codecheck:
$(SHELL) misc/src-check
#
# Report coverage (usable only if ctags is built with COVERAGE=1.)
#
run-gcov:
$(CTAGS_TEST) -o - $$(find ./Units -name 'input.*'| grep -v '.*b/.*') > /dev/null
gcov $$(find -name '*.gcda')
clean-gcov:
$(SILENT) echo Cleaning coverage reports
$(SILENT) rm -f $(SOURCES:.c=.gcda)
$(SILENT) rm -f $(srcdir)/*.gcov
#
# Help
#
help:
@echo "Compilation targets:"
@echo ""
@echo "make - Build $(CTAGS_PROG)"
@echo "make V=1 - Build $(CTAGS_PROG) - verbose output"
@echo "make -f mk_mingw.mak - Build $(CTAGS_PROG) using MinGW"
@echo "make -f mk_mingw.mak V=1 - Build $(CTAGS_PROG) using MinGW - verbose output"
@echo ""
@echo "Testing targets:"
@echo ""
@echo "make units - Run parser unit test cases"
@echo "make tmain - Run ctags main functionality test cases"
@echo "make fuzz - Verify that all parsers are able to properly process each available test unit"
@echo "make noise - TODO"
@echo
@echo "Arguments that can be used in testing targets:"
@echo "VG=1 - Run test cases with Valgrind memory profiler"
@echo "LANGUAGES=<language>[,<language>] - Only run test cases of the selected languages"
@echo "CATEGORIES=<category> - Only run tests available under folder Units/<category>.r"
# vi:set tabstop=8:
File Metadata
Details
Attached
Mime Type
text/x-makefile
Expires
Jun 4 2025, 6:41 PM (14 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3398705
Attached To
rPUC universal-ctags debian packaging
Event Timeline
Log In to Comment