2006-10-31 10:06:56 +08:00
|
|
|
# Copyright (C) 2005-2006 Axel Liljencrantz
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
2006-11-01 22:47:47 +08:00
|
|
|
# This program is free software; you can redistribute it and/or modify
|
|
|
|
# it under the terms of the GNU General Public License version 2 as
|
|
|
|
# published by the Free Software Foundation.
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; if not, write to the Free Software
|
2013-12-14 04:51:52 +08:00
|
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
|
|
|
|
2006-02-04 21:09:14 +08:00
|
|
|
#
|
|
|
|
# @configure_input@
|
|
|
|
#
|
|
|
|
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
|
|
|
# Makefile for the fish shell. Can build fish and associated
|
2013-11-30 15:11:05 +08:00
|
|
|
# applications, install them, and recalculate dependencies.
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
|
|
|
|
2016-07-19 04:48:15 +08:00
|
|
|
# Verbosity
|
|
|
|
# make V=1 causes a noisy make, V=0 is silent/quiet. If one uses (lower case v)
|
2016-09-16 14:55:02 +08:00
|
|
|
# $v as a substitute for @, it will be replaced with an empty string for the
|
2016-08-09 10:31:02 +08:00
|
|
|
# default (V=1) case and replaced with @ in the V=0 case. You can use a bare @
|
|
|
|
# for things that should almost never print.
|
2016-07-19 04:48:15 +08:00
|
|
|
V := 0
|
2016-07-17 02:48:11 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2010-11-22 19:05:06 +08:00
|
|
|
# Used by docdir
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-09-16 14:55:02 +08:00
|
|
|
PACKAGE_TARNAME := @PACKAGE_TARNAME@
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2016-09-16 09:37:37 +08:00
|
|
|
# The default: /bin/sh
|
|
|
|
# Fish won't work.
|
2016-09-16 14:55:02 +08:00
|
|
|
SHELL := @SHELL@
|
2016-09-16 09:37:37 +08:00
|
|
|
|
2006-01-23 19:38:07 +08:00
|
|
|
# Programs
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-09-16 09:37:37 +08:00
|
|
|
CXX := @CXX@
|
2018-02-26 18:17:01 +08:00
|
|
|
CC := @CC@
|
2016-08-09 10:31:02 +08:00
|
|
|
INSTALL := @INSTALL@
|
2016-09-16 09:37:37 +08:00
|
|
|
LN_S := @LN_S@
|
2014-09-18 20:29:49 +08:00
|
|
|
SED := @SED@
|
2016-09-16 09:37:37 +08:00
|
|
|
MKDIR_P := @MKDIR_P@
|
|
|
|
AWK := @AWK@
|
|
|
|
GREP := @GREP@
|
|
|
|
FGREP := @FGREP@
|
2006-01-23 19:38:07 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-23 05:35:48 +08:00
|
|
|
# Installation directories
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
prefix = @prefix@
|
|
|
|
exec_prefix = @exec_prefix@
|
2010-11-22 19:05:06 +08:00
|
|
|
datarootdir = @datarootdir@
|
2006-01-04 20:51:02 +08:00
|
|
|
datadir = @datadir@
|
2005-09-20 21:26:39 +08:00
|
|
|
bindir = @bindir@
|
|
|
|
mandir = @mandir@
|
|
|
|
sysconfdir = @sysconfdir@
|
|
|
|
docdir = @docdir@
|
2006-07-19 22:41:04 +08:00
|
|
|
localedir = @localedir@
|
2016-04-04 14:33:35 +08:00
|
|
|
extra_completionsdir = @extra_completionsdir@
|
|
|
|
extra_functionsdir = @extra_functionsdir@
|
2016-04-05 22:22:12 +08:00
|
|
|
extra_confdir = @extra_confdir@
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2015-09-13 03:59:40 +08:00
|
|
|
#
|
|
|
|
# pcre2
|
|
|
|
#
|
|
|
|
PCRE2_WIDTH = @WCHAR_T_BITS@
|
2018-12-29 21:33:00 +08:00
|
|
|
PCRE2_DIR = pcre2-10.32
|
2015-09-13 03:59:40 +08:00
|
|
|
PCRE2_LIBDIR = $(PCRE2_DIR)/.libs
|
|
|
|
PCRE2_LIB = $(PCRE2_LIBDIR)/libpcre2-$(PCRE2_WIDTH).a
|
|
|
|
PCRE2_H = $(PCRE2_DIR)/src/pcre2.h
|
2015-10-01 16:33:23 +08:00
|
|
|
EXTRA_PCRE2 = @EXTRA_PCRE2@
|
2015-09-13 03:59:40 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Various flags
|
|
|
|
#
|
2016-08-09 10:31:02 +08:00
|
|
|
CXXFLAGS = @CXXFLAGS@ $(EXTRA_CXXFLAGS)
|
2018-02-26 18:17:01 +08:00
|
|
|
CFLAGS = @CFLAGS@
|
2017-08-23 06:34:41 +08:00
|
|
|
CPPFLAGS = -D_UNICODE=1 -DLOCALEDIR=\"$(localedir)\" -DPREFIX=L\"$(prefix)\" -DDATADIR=L\"$(datadir)\" -DSYSCONFDIR=L\"$(sysconfdir)\" -DBINDIR=L\"$(bindir)\" -DDOCDIR=L\"$(docdir)\" -iquote. -iquote./src/
|
2013-11-09 19:43:32 +08:00
|
|
|
LDFLAGS = @LDFLAGS@
|
2015-10-01 16:33:23 +08:00
|
|
|
LIBS = @LIBS@
|
2014-03-29 23:28:11 +08:00
|
|
|
LDFLAGS_FISH = ${LDFLAGS} @LDFLAGS_FISH@
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2006-01-23 05:35:48 +08:00
|
|
|
# Set to 1 if we have gettext
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-04 20:51:02 +08:00
|
|
|
HAVE_GETTEXT=@HAVE_GETTEXT@
|
|
|
|
|
2013-06-19 23:59:13 +08:00
|
|
|
#
|
|
|
|
# Set to 1 if we have doxygen
|
|
|
|
#
|
|
|
|
HAVE_DOXYGEN=@HAVE_DOXYGEN@
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2008-01-13 03:21:35 +08:00
|
|
|
# All objects that the system needs to build fish, except fish.o
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-06-15 13:12:29 +08:00
|
|
|
FISH_OBJS := obj/autoload.o obj/builtin.o obj/builtin_bg.o obj/builtin_bind.o obj/builtin_block.o \
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/builtin_builtin.o obj/builtin_cd.o obj/builtin_command.o \
|
|
|
|
obj/builtin_commandline.o obj/builtin_complete.o obj/builtin_contains.o \
|
|
|
|
obj/builtin_disown.o obj/builtin_echo.o obj/builtin_emit.o \
|
|
|
|
obj/builtin_exit.o obj/builtin_fg.o obj/builtin_function.o \
|
|
|
|
obj/builtin_functions.o obj/builtin_argparse.o obj/builtin_history.o \
|
2017-08-23 06:34:41 +08:00
|
|
|
obj/builtin_jobs.o obj/builtin_math.o obj/builtin_printf.o obj/builtin_pwd.o \
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/builtin_random.o obj/builtin_read.o obj/builtin_realpath.o \
|
|
|
|
obj/builtin_return.o obj/builtin_set.o obj/builtin_set_color.o \
|
|
|
|
obj/builtin_source.o obj/builtin_status.o obj/builtin_string.o \
|
2017-10-22 15:10:23 +08:00
|
|
|
obj/builtin_test.o obj/builtin_ulimit.o obj/builtin_wait.o obj/color.o obj/common.o \
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/complete.o obj/env.o obj/env_universal_common.o obj/event.o obj/exec.o \
|
|
|
|
obj/expand.o obj/fallback.o obj/fish_version.o obj/function.o obj/highlight.o \
|
|
|
|
obj/history.o obj/input.o obj/input_common.o obj/intern.o obj/io.o \
|
|
|
|
obj/iothread.o obj/kill.o obj/output.o obj/pager.o obj/parse_execution.o \
|
|
|
|
obj/parse_productions.o obj/parse_tree.o obj/parse_util.o obj/parser.o \
|
|
|
|
obj/parser_keywords.o obj/path.o obj/postfork.o obj/proc.o obj/reader.o \
|
2018-02-26 18:17:01 +08:00
|
|
|
obj/sanity.o obj/screen.o obj/signal.o obj/tinyexpr.o obj/tokenizer.o obj/tnode.o obj/utf8.o \
|
2018-04-25 03:09:13 +08:00
|
|
|
obj/util.o obj/wcstringutil.o obj/wgetopt.o obj/wildcard.o obj/wutil.o \
|
|
|
|
obj/future_feature_flags.o
|
2006-02-09 23:50:20 +08:00
|
|
|
|
2016-04-04 20:43:37 +08:00
|
|
|
FISH_INDENT_OBJS := obj/fish_indent.o obj/print_help.o $(FISH_OBJS)
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2016-07-03 20:04:19 +08:00
|
|
|
FISH_KEYREAD_OBJS := obj/fish_key_reader.o obj/print_help.o $(FISH_OBJS)
|
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-23 05:35:48 +08:00
|
|
|
# All objects that the system needs to build fish_tests
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2015-07-24 15:50:58 +08:00
|
|
|
FISH_TESTS_OBJS := $(FISH_OBJS) obj/fish_tests.o
|
2006-01-23 05:35:48 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2015-07-26 06:15:54 +08:00
|
|
|
# All of the sources that produce object files
|
|
|
|
# (that is, are not themselves #included in other source files)
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-09-16 09:37:37 +08:00
|
|
|
FISH_ALL_OBJS := $(sort $(FISH_OBJS) $(FISH_INDENT_OBJS) $(FISH_TESTS_OBJS) $(FISH_KEYREAD_OBJS) obj/fish.o)
|
2006-01-23 05:35:48 +08:00
|
|
|
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
2006-11-20 09:06:20 +08:00
|
|
|
# Files containing user documentation
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2006-11-23 02:53:33 +08:00
|
|
|
#
|
|
|
|
# These files are the source files, they contain a few @FOO@-style substitutions
|
2013-10-05 15:37:44 +08:00
|
|
|
# Note that this order defines the order that they appear in the documentation
|
2006-11-23 02:53:33 +08:00
|
|
|
#
|
2016-09-16 09:37:37 +08:00
|
|
|
HDR_FILES_SRC := doc_src/index.hdr.in doc_src/tutorial.hdr doc_src/design.hdr doc_src/license.hdr doc_src/commands.hdr.in doc_src/faq.hdr
|
2006-11-23 02:53:33 +08:00
|
|
|
|
|
|
|
#
|
|
|
|
# These are the generated result files
|
|
|
|
#
|
2013-03-31 03:21:49 +08:00
|
|
|
HDR_FILES := $(HDR_FILES_SRC:.hdr.in=.hdr)
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2012-01-07 02:23:38 +08:00
|
|
|
# Use a pattern rule so that Make knows to only issue one invocation
|
|
|
|
# per http://www.gnu.org/software/make/manual/make.html#Pattern-Intro
|
2012-06-02 05:00:04 +08:00
|
|
|
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
2010-09-18 10:18:26 +08:00
|
|
|
# Files containing documentation for external commands.
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
2006-11-23 02:53:33 +08:00
|
|
|
HELP_SRC := $(wildcard doc_src/*.txt)
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2014-08-01 10:37:32 +08:00
|
|
|
#
|
|
|
|
# HTML includes needed for HTML help
|
|
|
|
#
|
2016-09-16 09:37:37 +08:00
|
|
|
HTML_SRC := doc_src/user_doc.header.html doc_src/user_doc.footer.html doc_src/user_doc.css
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2006-01-23 05:35:48 +08:00
|
|
|
#
|
|
|
|
# Files in the test directory
|
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
TEST_IN := $(wildcard tests/test*.in)
|
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-03-29 08:25:00 +08:00
|
|
|
# Files in ./share/completions/
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-08-08 09:29:33 +08:00
|
|
|
COMPLETIONS_DIR_FILES := $(wildcard share/completions/*.fish)
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-03-29 08:25:00 +08:00
|
|
|
# Files in ./share/functions/
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-02-17 18:13:39 +08:00
|
|
|
FUNCTIONS_DIR_FILES := $(wildcard share/functions/*.fish)
|
2006-02-08 17:20:05 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Programs to install
|
|
|
|
#
|
2016-05-07 12:22:28 +08:00
|
|
|
PROGRAMS := fish fish_indent fish_key_reader
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2006-11-23 02:53:33 +08:00
|
|
|
# Manual pages to install
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-07-17 02:48:11 +08:00
|
|
|
MANUALS := $(addsuffix .1, $(addprefix share/man/man1/, $(PROGRAMS)))
|
2017-02-05 13:27:48 +08:00
|
|
|
HELP_MANPAGES = $(wildcard share/man/man1/*.1)
|
2016-12-02 20:25:54 +08:00
|
|
|
|
|
|
|
# Determine which man pages we don't want to install
|
|
|
|
# On OS X, don't install a man page for open, since we defeat fish's open
|
|
|
|
# function on OS X.
|
|
|
|
# This is also done in build_tools/build_documentation.sh, but because the
|
|
|
|
# tarball includes this page, we need to skip it in the Makefile too (see
|
|
|
|
# https://github.com/fish-shell/fish-shell/issues/2561).
|
|
|
|
ifeq ($(shell uname), Darwin)
|
2017-02-05 13:27:48 +08:00
|
|
|
CONDEMNED_PAGES := open.1
|
|
|
|
HELP_MANPAGES = $(filter-out share/man/man1/open.1, $(wildcard share/man/man1/*.1))
|
2016-12-02 20:25:54 +08:00
|
|
|
endif
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-02-22 12:49:34 +08:00
|
|
|
# All translation message catalogs, filter files based on LINGUAS.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-04 20:51:02 +08:00
|
|
|
TRANSLATIONS_SRC := $(wildcard po/*.po)
|
2017-02-22 12:49:34 +08:00
|
|
|
ifeq ($(HAVE_GETTEXT), 1)
|
2014-11-17 17:27:25 +08:00
|
|
|
TRANSLATIONS := $(TRANSLATIONS_SRC:.po=.gmo)
|
2017-02-22 12:49:34 +08:00
|
|
|
ifdef LINGUAS
|
|
|
|
TRANSLATIONS_ALL := $(TRANSLATIONS)
|
|
|
|
TRANSLATIONS_WANTED = $(patsubst %,po/%.gmo,$(LINGUAS))
|
|
|
|
TRANSLATIONS = $(filter $(TRANSLATIONS_WANTED),$(TRANSLATIONS_ALL))
|
|
|
|
endif
|
2014-11-17 17:27:25 +08:00
|
|
|
else
|
|
|
|
TRANSLATIONS :=
|
|
|
|
endif
|
2006-01-04 20:51:02 +08:00
|
|
|
|
2013-06-19 23:59:13 +08:00
|
|
|
#
|
|
|
|
# If Doxygen is not available, don't attempt to build the documentation
|
|
|
|
#
|
|
|
|
ifeq ($(HAVE_DOXYGEN), 1)
|
2016-03-31 14:51:58 +08:00
|
|
|
user_doc=doc
|
2013-09-02 13:05:55 +08:00
|
|
|
share_man=share/man
|
2013-06-19 23:59:13 +08:00
|
|
|
else
|
|
|
|
user_doc=
|
2013-09-02 13:05:55 +08:00
|
|
|
share_man=
|
2013-06-19 23:59:13 +08:00
|
|
|
endif
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2016-09-16 09:37:37 +08:00
|
|
|
|
2016-09-16 14:40:54 +08:00
|
|
|
t_co:=$(shell tput colors || echo '') 2> /dev/null
|
|
|
|
green := $(shell ( tput setaf 2 || tput AF 2 ) 2> /dev/null )
|
|
|
|
yellow := $(shell ( tput setaf 3 || tput AF 3 ) 2> /dev/null )
|
|
|
|
cyan := $(shell ( tput setaf 6 || tput AF 6 ) 2> /dev/null )
|
|
|
|
red := $(shell ( tput setaf 1 || tput AF 1 ) 2> /dev/null )
|
|
|
|
bo := $(shell ( tput bold || tput md ) 2> /dev/null )
|
2016-09-01 22:38:18 +08:00
|
|
|
# * Italic: Rarely defined - it's common for it to work despite
|
2016-09-01 21:58:51 +08:00
|
|
|
# terminfo entries and isn't known to cause any recent > 256-color terminals
|
|
|
|
# to explode. If terminfo says a terminal supports 256 colors - it's fancy enough
|
|
|
|
# and won't have trouble the escape.
|
2016-09-16 14:40:54 +08:00
|
|
|
ifeq ($(t_co), 256)
|
|
|
|
em := $(shell ( tput sitm || tput ZH || echo "\\033[3m" ) 2> /dev/null )
|
2016-09-16 14:55:02 +08:00
|
|
|
# * Half-bright/faint 'dim' mode - rarely works - rarely in terminfo when it does
|
|
|
|
# but it's cool. Use it with one of the basic colors to get a fainter version
|
|
|
|
# of it. We use this to shade the output from any reconfigures we trigger.
|
2016-09-16 14:40:54 +08:00
|
|
|
dim := $(shell ( tput dim || tput mh || [ $(TERM_PROGRAM) = Apple_Terminal ] && echo "\\033[2m") 2> /dev/null )
|
2016-08-09 10:31:02 +08:00
|
|
|
else
|
2016-09-16 14:40:54 +08:00
|
|
|
em := $(shell ( tput sitm || tput ZH ) 2> /dev/null )
|
|
|
|
dim := $(shell ( tput dim || tput mh) 2> /dev/null )
|
2016-08-09 10:31:02 +08:00
|
|
|
endif
|
2016-09-01 21:58:51 +08:00
|
|
|
|
2016-09-16 14:40:54 +08:00
|
|
|
sgr0 := $(shell ( tput sgr0 || tput me) 2> /dev/null )
|
2016-09-01 21:58:51 +08:00
|
|
|
|
2016-08-09 10:31:02 +08:00
|
|
|
#
|
2016-09-16 14:55:02 +08:00
|
|
|
# A target that shows VAR='$(VAR)' (properly escaped)
|
2016-08-09 10:31:02 +08:00
|
|
|
# Cool trick: `make show-$var` (e.g. make show-HAVE_DOXYGEN) to quickly see what $var is.
|
|
|
|
#
|
|
|
|
show-%:
|
2017-05-24 07:57:24 +08:00
|
|
|
-@echo " $* = $(em)$(cyan)'$(subst ',''',$($*))'$(sgr0)"
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Make everything needed for installing fish
|
|
|
|
#
|
2016-08-09 10:31:02 +08:00
|
|
|
all: show-CXX show-CXXFLAGS $(PROGRAMS) $(user_doc) $(share_man) $(TRANSLATIONS) fish.pc share/__fish_build_paths.fish
|
2016-09-16 09:37:37 +08:00
|
|
|
ifneq (,$(findstring install,$(MAKECMDGOALS)))
|
2017-01-16 06:51:10 +08:00
|
|
|
# Fish has been built, but if the goal was 'install', we aren't done yet and this output isnt't desirable
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(green)fish has now been built.$(sgr0)"
|
|
|
|
@echo "Run $(yellow)$(notdir $(MAKE)) install$(sgr0) to install fish.$(sgr0)"
|
2016-09-16 09:37:37 +08:00
|
|
|
endif
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: all
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2013-06-24 18:12:09 +08:00
|
|
|
#
|
|
|
|
# Pull version information
|
|
|
|
#
|
2016-09-16 14:40:54 +08:00
|
|
|
FISH-BUILD-VERSION-FILE: FORCE | show-FISH_BUILD_VERSION
|
2016-09-16 14:55:02 +08:00
|
|
|
$v build_tools/git_version_gen.sh 2> /dev/null
|
2013-06-24 18:12:09 +08:00
|
|
|
-include FISH-BUILD-VERSION-FILE
|
2016-08-09 10:31:02 +08:00
|
|
|
CPPFLAGS += -DFISH_BUILD_VERSION=\"$(FISH_BUILD_VERSION)\"
|
2013-06-24 18:12:09 +08:00
|
|
|
.PHONY: FORCE
|
2016-04-01 05:19:27 +08:00
|
|
|
obj/fish_version.o: FISH-BUILD-VERSION-FILE
|
2013-06-24 18:12:09 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# These dependencies make sure that autoconf and configure are run
|
|
|
|
# when the source code for the build configuration has changed.
|
|
|
|
#
|
2006-04-02 19:15:25 +08:00
|
|
|
configure: configure.ac
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Rechecking config.status; rerunning ./configure if necessary...$(dim)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v ./config.status --recheck
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(sgr0)"
|
2006-04-02 19:15:25 +08:00
|
|
|
|
|
|
|
Makefile: Makefile.in configure
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Checking config.status...$(dim)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v ./config.status
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(sgr0)"
|
2006-04-02 19:15:25 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Build fish with some debug flags specified. This is GCC specific,
|
2016-08-09 10:31:02 +08:00
|
|
|
# and should only be used when debugging fish.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2012-07-09 06:20:39 +08:00
|
|
|
prof: EXTRA_CXXFLAGS += -pg
|
|
|
|
prof: LDFLAGS += -pg
|
|
|
|
prof: all
|
2010-10-05 02:23:18 +08:00
|
|
|
.PHONY: prof
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
# User documentation, describing the features of the fish shell.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-03-31 06:35:14 +08:00
|
|
|
# Depend on the sources (*.hdr.in) and manually make the intermediate *.hdr
|
|
|
|
# and doc.h files if needed. The sed command deletes everything including and
|
|
|
|
# after the first -, for simpler version numbers. Cleans up the user_doc/html
|
|
|
|
# directory once Doxygen is done.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-10-04 05:35:14 +08:00
|
|
|
doc: $(HDR_FILES_SRC) Doxyfile.user $(HTML_SRC) $(HELP_SRC) doc.h $(HDR_FILES) lexicon_filter
|
2016-11-21 06:38:02 +08:00
|
|
|
@echo " doxygen $(em)user_doc$(sgr0)"
|
2017-10-05 12:26:34 +08:00
|
|
|
$v env FISH_BUILD_VERSION=$(FISH_BUILD_VERSION) ./build_tools/build_user_doc.sh Doxyfile.user ./lexicon_filter
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
# PDF version of the source code documentation.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2010-09-18 10:18:26 +08:00
|
|
|
doc/refman.pdf: doc
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " MAKE $(em)doc/latex$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v cd doc/latex
|
|
|
|
$v $(MAKE) V=$(V)
|
|
|
|
$v mv refman.pdf ..
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# Prep the environment for running the unit tests. When specifying DESTDIR on
|
|
|
|
# the command line (e.g., `make DESTDIR=/usr/local/`) you must have previously
|
|
|
|
# installed fish using the same prefix; e.g., `./configure --prefix=/usr/local`
|
|
|
|
# followed by `make install`.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-09-16 14:55:02 +08:00
|
|
|
test-prep: show-DESTDIR show-LN_S show-FISH_VERSION
|
|
|
|
$v rm -rf test
|
|
|
|
$v $(MKDIR_P) test/data test/home test/temp
|
2016-02-07 10:08:22 +08:00
|
|
|
ifdef DESTDIR
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(LN_S) $(DESTDIR) test/root
|
2016-02-07 10:08:22 +08:00
|
|
|
else
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(MKDIR_P) test/root
|
2016-02-07 10:08:22 +08:00
|
|
|
endif
|
|
|
|
.PHONY: test-prep
|
2006-10-31 10:06:56 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# The test target runs both the low level code tests and the high level script
|
|
|
|
# tests.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# Note that doing `make DESTDIR=/some/path/ test` overrides this assignment.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
test: DESTDIR = $(PWD)/test/root/
|
|
|
|
test: prefix = .
|
|
|
|
test: test-prep install-force test_low_level test_high_level
|
2016-09-16 14:55:02 +08:00
|
|
|
$v rm -f /tmp/file_truncation_test.txt /tmp/tee_test.txt /tmp/fish_foo.txt
|
|
|
|
$v rm -rf /tmp/is_potential_path_test
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: test
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2014-09-24 07:29:36 +08:00
|
|
|
# We want the various tests to run serially so their output doesn't mix
|
|
|
|
# We can do that by adding ordering dependencies based on what goals are being used.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2017-08-10 02:11:58 +08:00
|
|
|
test_goals := test_low_level test_fishscript test_interactive test_invocation
|
2014-09-24 07:29:36 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2014-09-24 07:29:36 +08:00
|
|
|
# The following variables define targets that depend on the tests. If any more targets
|
|
|
|
# are added that depend, directly or indirectly, on tests, they need to be recorded here.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2014-09-24 07:29:36 +08:00
|
|
|
test_test_deps = test_low_level $(test_high_level_test_deps)
|
2017-08-06 06:08:39 +08:00
|
|
|
test_high_level_test_deps = test_fishscript test_interactive test_invocation
|
2014-09-24 07:29:36 +08:00
|
|
|
|
|
|
|
active_test_goals = $(filter $(test_goals),$(foreach a,$(or $(MAKECMDGOALS),$(.DEFAULT_GOAL)),$(a) $($(a)_test_deps)))
|
2016-09-21 03:03:03 +08:00
|
|
|
filter_up_to = $(eval b:=1)$(foreach a,$(2),$(and $(b),$(if $(subst $(1),,$(a)),$(a),$(eval b:=))))
|
2014-09-24 07:29:36 +08:00
|
|
|
|
2016-07-14 13:46:46 +08:00
|
|
|
# The values for XDG_DATA_HOME and XDG_CONFIG_HOME mimic those from tests/test_util.fish.
|
2014-09-24 07:29:36 +08:00
|
|
|
test_low_level: fish_tests $(call filter_up_to,test_low_level,$(active_test_goals))
|
2016-09-16 14:55:02 +08:00
|
|
|
$v rm -rf test/data test/home
|
2016-09-16 09:37:37 +08:00
|
|
|
$(MKDIR_P) test/data test/home
|
2016-07-14 13:46:46 +08:00
|
|
|
env XDG_DATA_HOME=test/data XDG_CONFIG_HOME=test/home ./fish_tests
|
2014-09-05 13:26:10 +08:00
|
|
|
.PHONY: test_low_level
|
|
|
|
|
2017-04-26 12:18:14 +08:00
|
|
|
test_high_level: DESTDIR = $(PWD)/test/root/
|
|
|
|
test_high_level: prefix = .
|
2017-08-10 02:11:58 +08:00
|
|
|
test_high_level: test-prep install-force test_fishscript test_interactive test_invocation
|
2014-09-24 07:29:36 +08:00
|
|
|
.PHONY: test_high_level
|
|
|
|
|
Add test harness for fish command invocation, and tests for init command.
The new '-C' initial command needs some tests, and as there are no
tests just yet for the command invocation, this change adds a harness
and calls it from the high-level tests in the Makefile.
The tests are similar in style to the other high level tests, in that
we capture the output and compare it to that which we expect. The
harness itself is written in bash - sorry - because we're testing the
fish shell's invocation, and trying to do that with the fish we've
just built wouldn't actually make for a very useful test when things
go wrong.
The 'tests/invocation.sh' script can be executed manually, or as part
of the 'make test' target, to make it easy to use both as part of the
development and as part of automation.
The harness has only been tested on linux with bash 4.3.11, and requires
grep and sed. Although not tested with OS X, I believe I have avoided
the syntax which is inconsistent.
The tests added here cover just the initial command's basic execution,
and when it is mixed with the regular '-c' command.
2017-06-29 23:11:58 +08:00
|
|
|
test_invocation: $(call filter_up_to,test_invocation,$(active_test_goals))
|
|
|
|
cd tests; ./invocation.sh
|
|
|
|
.PHONY: test_invocation
|
|
|
|
|
2016-02-07 10:08:22 +08:00
|
|
|
test_fishscript: $(call filter_up_to,test_fishscript,$(active_test_goals))
|
|
|
|
cd tests; ../test/root/bin/fish test.fish
|
2014-09-05 13:26:10 +08:00
|
|
|
.PHONY: test_fishscript
|
|
|
|
|
2016-02-07 10:08:22 +08:00
|
|
|
test_interactive: $(call filter_up_to,test_interactive,$(active_test_goals))
|
|
|
|
cd tests; ../test/root/bin/fish interactive.fish
|
2014-09-24 07:29:36 +08:00
|
|
|
.PHONY: test_interactive
|
|
|
|
|
Add test harness for fish command invocation, and tests for init command.
The new '-C' initial command needs some tests, and as there are no
tests just yet for the command invocation, this change adds a harness
and calls it from the high-level tests in the Makefile.
The tests are similar in style to the other high level tests, in that
we capture the output and compare it to that which we expect. The
harness itself is written in bash - sorry - because we're testing the
fish shell's invocation, and trying to do that with the fish we've
just built wouldn't actually make for a very useful test when things
go wrong.
The 'tests/invocation.sh' script can be executed manually, or as part
of the 'make test' target, to make it easy to use both as part of the
development and as part of automation.
The harness has only been tested on linux with bash 4.3.11, and requires
grep and sed. Although not tested with OS X, I believe I have avoided
the syntax which is inconsistent.
The tests added here cover just the initial command's basic execution,
and when it is mixed with the regular '-c' command.
2017-06-29 23:11:58 +08:00
|
|
|
|
2006-10-31 23:36:14 +08:00
|
|
|
#
|
|
|
|
# commands.hdr collects documentation on all commands, functions and
|
|
|
|
# builtins
|
|
|
|
#
|
2017-09-18 06:01:15 +08:00
|
|
|
doc_src/commands.hdr:$(HELP_SRC) doc_src/commands.hdr.in build_tools/build_commands_hdr.sh
|
|
|
|
build_tools/build_commands_hdr.sh ${HELP_SRC} < doc_src/commands.hdr.in > $@
|
2006-11-23 02:53:33 +08:00
|
|
|
|
2017-10-05 14:18:52 +08:00
|
|
|
toc.txt: $(HDR_FILES:index.hdr=index.hdr.in) build_tools/build_toc_txt.sh | show-SED
|
|
|
|
FISH_BUILD_VERSION=${FISH_BUILD_VERSION} build_tools/build_toc_txt.sh \
|
|
|
|
$(HDR_FILES:index.hdr=index.hdr.in) > toc.txt
|
2006-11-23 02:53:33 +08:00
|
|
|
|
2016-09-16 09:37:37 +08:00
|
|
|
doc_src/index.hdr: toc.txt doc_src/index.hdr.in | show-AWK
|
2016-11-21 06:38:02 +08:00
|
|
|
@echo " AWK CAT $(em)$@$(sgr0)"
|
2017-10-05 12:20:32 +08:00
|
|
|
$v build_tools/build_index_hdr.sh toc.txt < $@.in > $@
|
2006-10-31 23:36:14 +08:00
|
|
|
|
2014-08-01 10:37:32 +08:00
|
|
|
#
|
|
|
|
# Compile Doxygen Input Filter from the lexicon. This is an executable sed
|
|
|
|
# script as Doxygen opens it via popen()(3) Input (doc.h) is piped through and
|
|
|
|
# matching words inside /fish../endfish blocks are marked up, contextually,
|
|
|
|
# with custom Doxygen commands in the form of @word_type{content}. These are
|
|
|
|
# trapped by ALIASES in the various Doxyfiles, allowing the content to be
|
|
|
|
# transformed depending on output type (HTML, man page, developer docs). In
|
|
|
|
# HTML, a style context can be applied through the /fish{style} block and
|
|
|
|
# providing suitable CSS in user_doc.css.in
|
|
|
|
#
|
2017-09-12 13:58:49 +08:00
|
|
|
lexicon_filter: doc_src/commands.hdr $(FUNCTIONS_DIR_FILES) $(COMPLETIONS_DIR_FILES) \
|
|
|
|
lexicon_filter.in build_tools/build_lexicon_filter.sh \
|
|
|
|
share/functions/__fish_config_interactive.fish
|
2018-03-05 13:23:36 +08:00
|
|
|
$v build_tools/build_lexicon_filter.sh share/functions/ share/completions/ lexicon_filter.in $(SED) > $@
|
2017-09-12 13:58:49 +08:00
|
|
|
$v chmod a+x lexicon_filter
|
2006-10-31 23:36:14 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
# doc.h is a compilation of the various snipptes of text used both for
|
|
|
|
# the user documentation and for internal help functions into a single
|
2014-08-01 10:37:32 +08:00
|
|
|
# file that can be parsed by Doxygen to generate the user
|
2005-09-20 21:26:39 +08:00
|
|
|
# documentation.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-11-23 02:53:33 +08:00
|
|
|
doc.h: $(HDR_FILES)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " HDR_FILES $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v cat $(HDR_FILES) >$@
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
# This rule creates complete doxygen headers from each of the various
|
|
|
|
# snipptes of text used both for the user documentation and for
|
|
|
|
# internal help functions, that can be parsed to Doxygen to generate
|
|
|
|
# the internal help function text.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
%.doxygen:%.txt
|
2016-11-21 06:38:02 +08:00
|
|
|
@echo " cat * $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v echo "/** \page " `basename $*` >$@;
|
|
|
|
$v cat $*.txt >>$@;
|
|
|
|
$v echo "*/" >>$@
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2014-10-07 10:02:43 +08:00
|
|
|
# Depend on Makefile because I don't see a better way of rebuilding
|
|
|
|
# if any of the paths change.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-08-09 10:31:02 +08:00
|
|
|
%: %.in Makefile FISH-BUILD-VERSION-FILE | show-prefix show-sysconfdir show-docdir show-extra_completionsdir show-extra_functionsdir show-extra_confdir show-prefix show-FISH_BUILD_VERSION
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " SED $(em)$@$(sgr0)"
|
2016-09-16 09:37:37 +08:00
|
|
|
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(SED) <$< >$@ \
|
2006-11-11 18:53:14 +08:00
|
|
|
-e "s,@sysconfdir\@,$(sysconfdir),g" \
|
|
|
|
-e "s,@datadir\@,$(datadir),g" \
|
|
|
|
-e "s,@docdir\@,$(docdir),g" \
|
2016-04-04 14:33:35 +08:00
|
|
|
-e "s,@extra_completionsdir\@,$(extra_completionsdir),g" \
|
|
|
|
-e "s,@extra_functionsdir\@,$(extra_functionsdir),g" \
|
2016-04-05 22:22:12 +08:00
|
|
|
-e "s,@extra_confdir\@,$(extra_confdir),g" \
|
2006-11-11 18:53:14 +08:00
|
|
|
-e "s|@configure_input\@|$@, generated from $@.in by the Makefile. DO NOT MANUALLY EDIT THIS FILE!|g" \
|
|
|
|
-e "s,@prefix\@,$(prefix),g" \
|
2014-10-01 22:02:55 +08:00
|
|
|
-e "s,@fish_build_version\@,$(FISH_BUILD_VERSION),g" \
|
2006-07-19 00:41:55 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-05-28 13:13:18 +08:00
|
|
|
# Compile translation files to binary format.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-24 01:47:42 +08:00
|
|
|
%.gmo:
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " msgfmt $(em)$@$(sgr0)"
|
2018-04-11 03:56:37 +08:00
|
|
|
$v msgfmt -o $@ $*.po
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2006-01-04 20:51:02 +08:00
|
|
|
# Update existing po file or copy messages.pot
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-24 01:47:42 +08:00
|
|
|
%.po:messages.pot
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " msgmerge $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v if test -f $*.po; then \
|
2014-11-17 17:27:25 +08:00
|
|
|
msgmerge -U --backup=existing $*.po messages.pot;\
|
|
|
|
else \
|
|
|
|
cp messages.pot $*.po;\
|
2006-01-04 20:51:02 +08:00
|
|
|
fi
|
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-01-04 20:51:02 +08:00
|
|
|
# Create a template translation object
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-05-28 13:13:18 +08:00
|
|
|
messages.pot: fish $(wildcard src/*.cpp src/*.h share/completions/*.fish share/functions/*.fish)
|
2016-11-21 06:38:02 +08:00
|
|
|
@echo " xgettext $(em)$@$(sgr0)"
|
2017-05-28 13:13:18 +08:00
|
|
|
$v xgettext -k -k_ -kN_ -LC++ --no-wrap -o messages.pot src/*.cpp src/*.h
|
|
|
|
$v rm -rf /tmp/fish
|
|
|
|
$v ./fish build_tools/fish_xgettext.fish
|
|
|
|
$v xgettext -j -k -kN_ -LShell --from-code=UTF-8 -cDescription --no-wrap -o messages.pot /tmp/fish/explicit/share/*.fish /tmp/fish/explicit/share/*/*.fish
|
|
|
|
$v xgettext -j -k -kN_ -LShell --from-code=UTF-8 -cDescription --no-wrap -o messages.pot /tmp/fish/implicit/share/*.fish /tmp/fish/implicit/share/*/*.fish
|
|
|
|
$v rm -rf /tmp/fish
|
2006-01-04 20:51:02 +08:00
|
|
|
|
2015-10-02 15:29:08 +08:00
|
|
|
ifdef EXTRA_PCRE2
|
2015-09-13 03:59:40 +08:00
|
|
|
src/builtin_string.cpp: $(PCRE2_H)
|
2015-10-02 15:29:08 +08:00
|
|
|
endif
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
# Generate the internal help functions by making doxygen create
|
2006-11-18 00:24:38 +08:00
|
|
|
# man-pages. The convertion path looks like this:
|
2005-09-20 21:26:39 +08:00
|
|
|
#
|
|
|
|
# .txt file
|
|
|
|
# ||
|
|
|
|
# (make)
|
|
|
|
# ||
|
|
|
|
# \/
|
|
|
|
# .doxygen file
|
|
|
|
# ||
|
|
|
|
# (doxygen)
|
|
|
|
# ||
|
|
|
|
# \/
|
2006-11-18 00:24:38 +08:00
|
|
|
# roff file
|
2005-09-20 21:26:39 +08:00
|
|
|
# ||
|
2006-11-18 00:24:38 +08:00
|
|
|
# (__fish_print_help)
|
2005-09-20 21:26:39 +08:00
|
|
|
# ||
|
|
|
|
# \/
|
2010-09-18 10:18:26 +08:00
|
|
|
# formated text
|
|
|
|
# with escape
|
2005-09-20 21:26:39 +08:00
|
|
|
# sequences
|
|
|
|
#
|
2006-11-18 00:24:38 +08:00
|
|
|
#
|
|
|
|
# There ought to be something simpler.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-08-09 10:31:02 +08:00
|
|
|
share/man: $(HELP_SRC) lexicon_filter | show-FISH_BUILD_VERSION show-SED
|
2016-09-16 14:55:02 +08:00
|
|
|
-$v $(MKDIR_P) share/man
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " doxygen $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v touch share/man
|
|
|
|
-$v rm -Rf share/man/man1
|
2017-10-05 12:30:20 +08:00
|
|
|
$v echo "$(dim)" && FISH_BUILD_VERSION=${FISH_BUILD_VERSION} INPUT_FILTER=./lexicon_filter \
|
|
|
|
build_tools/build_documentation.sh Doxyfile.help ./doc_src ./share;
|
2006-06-13 21:43:28 +08:00
|
|
|
|
2006-01-24 04:40:14 +08:00
|
|
|
#
|
2006-02-23 23:35:56 +08:00
|
|
|
# The build rules for installing/uninstalling fish
|
|
|
|
#
|
|
|
|
|
2013-04-13 04:46:27 +08:00
|
|
|
check-legacy-binaries:
|
2016-08-09 21:06:09 +08:00
|
|
|
@echo "Checking for legacy binaries..."
|
2016-09-16 14:55:02 +08:00
|
|
|
$v KR_LOC=$(prefix)/bin/key_reader;\
|
2016-08-09 10:31:02 +08:00
|
|
|
if test -x "$$KR_LOC" && env TERM=dumb "$$KR_LOC" cr | grep -q 26; then\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo "$(red)A key_reader binary was found. You might want to remove this, and use 'fish_key_reader':";\
|
|
|
|
echo " '$$KR_LOC'$(sgr0)";\
|
2016-08-09 10:31:02 +08:00
|
|
|
fi;
|
2016-09-16 14:55:02 +08:00
|
|
|
$v SEQLOC=$(prefix)/bin/seq;\
|
2013-04-13 04:46:27 +08:00
|
|
|
if test -f "$$SEQLOC" && grep -q '\(^#!/.*/fish\|^#!/usr/bin/env fish\)' "$$SEQLOC"; then\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo "$(red)An outdated seq from a previous fish install was found. You should remove it with:";\
|
|
|
|
echo " rm '$$SEQLOC'$(sgr0)";\
|
2013-04-13 04:46:27 +08:00
|
|
|
fi;
|
2016-09-16 14:55:02 +08:00
|
|
|
$v SETCOLOR_LOC=$(prefix)/bin/set_color;\
|
2013-02-16 07:38:08 +08:00
|
|
|
if test -x "$$SETCOLOR_LOC" && $$SETCOLOR_LOC -v 2>&1 >/dev/null | grep -q "^set_color, version "; then\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo "$(red)An outdated set_color from a previous fish install was found. You should remove it with:";\
|
|
|
|
echo " rm '$$SETCOLOR_LOC'$(sgr0)";\
|
2013-04-13 04:46:27 +08:00
|
|
|
fi;
|
2016-09-16 14:55:02 +08:00
|
|
|
$v MIMEDB_LOC=$(prefix)/bin/mimedb;\
|
2015-07-24 15:56:21 +08:00
|
|
|
if test -x "$$MIMEDB_LOC" && $$MIMEDB_LOC --version 2>&1 | grep -q "^mimedb, version "; then\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo "$(red)An outdated mimedb binary from a previous fish install was found. You should remove it with:";\
|
|
|
|
echo " rm '$$MIMEDB_LOC'$(sgr0)";\
|
2015-07-24 15:56:21 +08:00
|
|
|
fi;
|
2016-09-16 14:55:02 +08:00
|
|
|
$v FISHD_LOC=$(prefix)/bin/fishd;\
|
2015-07-24 15:56:21 +08:00
|
|
|
if test -x "$$FISHD_LOC" && $$FISHD_LOC --version 2>&1 | grep -q "^fishd: fishd, version "; then\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo "$(red)An outdated fishd binary from a previous fish install was found. You should remove it with:";\
|
|
|
|
echo " rm '$$FISHD_LOC'$(sgr0)";\
|
2015-07-24 15:56:21 +08:00
|
|
|
fi;
|
2016-09-16 14:55:02 +08:00
|
|
|
$v true;
|
2013-04-13 04:46:27 +08:00
|
|
|
.PHONY: check-legacy-binaries
|
|
|
|
|
2016-08-09 10:31:02 +08:00
|
|
|
install: all install-force | check-legacy-binaries
|
2017-01-16 06:51:10 +08:00
|
|
|
@echo
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(bo)fish is now installed on your system.$(sgr0)"
|
|
|
|
@echo "To run fish, type $(bo)$(green)fish$(sgr0) in your terminal."
|
|
|
|
@echo "$(T_YELLOW)Even if you are already in fish, you should now start a new fish session.$(sgr0)"
|
2016-02-07 10:08:22 +08:00
|
|
|
@echo
|
|
|
|
@if type chsh >/dev/null 2>&1; then \
|
|
|
|
echo To use fish as your login shell:; \
|
2017-10-26 05:34:17 +08:00
|
|
|
grep -q -- "$(DESTDIR)$(bindir)/fish" /etc/shells || echo -e " * add the line '$(DESTDIR)$(bindir)/fish' to the file '/etc/shells':" \
|
|
|
|
"\n echo '$(DESTDIR)$(bindir)/fish' | sudo tee -a /etc/shells > /dev/null"; \
|
2017-09-25 02:58:13 +08:00
|
|
|
echo " * run '$(yellow)chsh -s $(DESTDIR)$(bindir)/fish$(sgr0)'"; \
|
2016-02-07 10:08:22 +08:00
|
|
|
echo; \
|
|
|
|
fi;
|
|
|
|
@if type chcon >/dev/null 2>&1; then \
|
|
|
|
echo If you have SELinux enabled, you may need to manually update the security policy:; \
|
2017-09-25 02:58:13 +08:00
|
|
|
echo \ \* use the command \'chcon -t shell_exec_t $(DESTDIR)$(bindir)/fish\'; \
|
2016-02-07 10:08:22 +08:00
|
|
|
echo; \
|
|
|
|
fi;
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "To set your colors, run $(green)$(bo)fish_config$(sgr0)"
|
|
|
|
@echo "To scan your man pages for completions, run $(green)$(bo)fish_update_completions$(sgr0)"
|
|
|
|
@echo "To accept autosuggestions (in $(dim)grey$(sgr0)) as you type, hit $(bo)ctrl-F$(sgr0) or right arrow key."
|
2016-02-07 10:08:22 +08:00
|
|
|
@echo
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(bo)Have fun! <><$(sgr0)"
|
2006-02-23 23:35:56 +08:00
|
|
|
.PHONY: install
|
2006-01-24 04:40:14 +08:00
|
|
|
|
2012-12-02 12:05:35 +08:00
|
|
|
#
|
|
|
|
# Xcode install
|
|
|
|
#
|
|
|
|
xcode-install:
|
2016-08-09 10:31:02 +08:00
|
|
|
rm -Rf /tmp/fish_build
|
2016-09-16 09:37:37 +08:00
|
|
|
xcrun xcodebuild install DSTROOT=/tmp/fish_build
|
2017-05-24 07:57:17 +08:00
|
|
|
ditto /tmp/fish_build /
|
2012-12-02 12:05:35 +08:00
|
|
|
.PHONY: xcode-install
|
2006-10-31 10:06:56 +08:00
|
|
|
|
|
|
|
#
|
2017-05-24 07:57:24 +08:00
|
|
|
# Actually do the installation.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-05-24 07:57:26 +08:00
|
|
|
install-force: all install-translations install-doc | show-datadir show-sysconfdir show-extra_completionsdir show-extra_functionsdir show-extra_confdir show-mandir
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(bindir)
|
|
|
|
$v for i in $(PROGRAMS); do\
|
2016-08-09 10:31:02 +08:00
|
|
|
$(INSTALL) -m 755 $$i $(DESTDIR)$(bindir);\
|
2016-09-16 14:40:54 +08:00
|
|
|
echo " Installing $(bo)$$i$(sgr0)";\
|
2012-02-10 08:36:35 +08:00
|
|
|
true ;\
|
2005-09-20 21:26:39 +08:00
|
|
|
done;
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo "Creating sysconfdir tree"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/fish
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/fish/conf.d
|
2018-11-04 14:45:37 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/fish/completions
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(sysconfdir)/fish/functions
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 644 etc/config.fish $(DESTDIR)$(sysconfdir)/fish/
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo "Creating datadir tree"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/completions
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/functions
|
2016-10-20 04:35:30 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/groff
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/man/man1
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/tools
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/tools/web_config
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/tools/web_config/js
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/tools/web_config/partials
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/fish/tools/web_config/sample_prompts
|
|
|
|
$v $(INSTALL) -m 644 share/config.fish $(DESTDIR)$(datadir)/fish/
|
|
|
|
$v $(INSTALL) -m 644 share/__fish_build_paths.fish $(DESTDIR)$(datadir)/fish/
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(datadir)/pkgconfig
|
2016-09-16 09:37:37 +08:00
|
|
|
@echo "Creating placeholder vendor/'extra_' directories"
|
2017-05-24 07:57:24 +08:00
|
|
|
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_completionsdir)
|
|
|
|
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_functionsdir)
|
|
|
|
-$v $(INSTALL) -m 755 -d $(DESTDIR)$(extra_confdir)
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo "Installing pkgconfig file"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 644 fish.pc $(DESTDIR)$(datadir)/pkgconfig
|
2016-09-20 08:18:43 +08:00
|
|
|
@echo "Installing the $(bo)fish completion library$(sgr0)...";
|
2017-01-22 09:39:00 +08:00
|
|
|
$v $(INSTALL) -m 644 $(COMPLETIONS_DIR_FILES:%='%') $(DESTDIR)$(datadir)/fish/completions/
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Installing $(bo)fish functions$(sgr0)";
|
2017-01-22 09:39:00 +08:00
|
|
|
$v $(INSTALL) -m 644 $(FUNCTIONS_DIR_FILES:%='%') $(DESTDIR)$(datadir)/fish/functions/
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Installing $(bo)man pages$(sgr0)";
|
2016-10-20 04:35:30 +08:00
|
|
|
$v $(INSTALL) -m 644 share/groff/* $(DESTDIR)$(datadir)/fish/groff/
|
2017-02-05 13:27:48 +08:00
|
|
|
$v test -z "$(wildcard share/man/man1/*.1)" || $(INSTALL) -m 644 $(filter-out $(addprefix share/man/man1/, $(CONDEMNED_PAGES)), $(wildcard share/man/man1/*.1)) $(DESTDIR)$(datadir)/fish/man/man1/
|
2016-09-16 09:37:37 +08:00
|
|
|
@echo "Installing helper tools";
|
2017-01-22 09:39:00 +08:00
|
|
|
$v $(INSTALL) -m 755 share/tools/*.py $(DESTDIR)$(datadir)/fish/tools/
|
|
|
|
$v $(INSTALL) -m 644 share/tools/web_config/*.* $(DESTDIR)$(datadir)/fish/tools/web_config/
|
|
|
|
$v $(INSTALL) -m 644 share/tools/web_config/js/*.* $(DESTDIR)$(datadir)/fish/tools/web_config/js/
|
|
|
|
$v $(INSTALL) -m 644 share/tools/web_config/partials/* $(DESTDIR)$(datadir)/fish/tools/web_config/partials/
|
|
|
|
$v $(INSTALL) -m 644 share/tools/web_config/sample_prompts/*.fish $(DESTDIR)$(datadir)/fish/tools/web_config/sample_prompts/
|
|
|
|
$v $(INSTALL) -m 755 share/tools/web_config/*.py $(DESTDIR)$(datadir)/fish/tools/web_config/
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo "Installing more man pages";
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man1;
|
|
|
|
$v for i in $(MANUALS); do \
|
2005-09-20 21:26:39 +08:00
|
|
|
$(INSTALL) -m 644 $$i $(DESTDIR)$(mandir)/man1/; \
|
2012-02-10 08:36:35 +08:00
|
|
|
true; \
|
2005-09-20 21:26:39 +08:00
|
|
|
done;
|
2017-09-27 03:31:11 +08:00
|
|
|
@echo "Installing miscellaneous helper resources";
|
|
|
|
$v $(INSTALL) -m 644 share/lynx.lss $(DESTDIR)$(datadir)/fish/
|
2006-04-20 23:00:28 +08:00
|
|
|
.PHONY: install-force
|
2006-02-23 23:35:56 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2006-02-23 23:35:56 +08:00
|
|
|
# Uninstall this fish version
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2016-09-09 13:26:40 +08:00
|
|
|
uninstall: uninstall-translations | show-prefix show-bindir show-sysconfdir show-datadir show-docdir show-mandir
|
|
|
|
@echo
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(bo)$(yellow)Uninstalling fish$(sgr0) from configured \$$prefix: $(bo)$(prefix)$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "In 5 seconds, $(red)all data$(sgr0) (includes functions, completions, tools) in"
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo $$'\t$(bo)$(DESTDIR)$(datadir)/fish$(sgr0) will be deleted!'
|
2017-01-16 06:51:10 +08:00
|
|
|
@echo
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "If you put things there, $(red)stop now!$(sgr0)"
|
|
|
|
@echo "$(bo)5$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@sleep 1
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "$(bo)4$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@sleep 1
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "$(bo)3$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@sleep 1
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "$(bo)2$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@sleep 1
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "$(bo)1$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@sleep 1
|
|
|
|
@echo ...
|
|
|
|
@sleep 2
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "... deleting $(bo)$(DESTDIR)$(datadir)/fish/*$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
-$v if test -d $(DESTDIR)$(datadir)/fish; then \
|
2016-09-09 13:26:40 +08:00
|
|
|
rm -rf $(DESTDIR)$(datadir)/fish; \
|
2006-02-23 23:35:56 +08:00
|
|
|
fi
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "Deleting programs: [ $(bo)$(PROGRAMS)$(sgr0) ] in $(em)$(bindir)$(sgr0)"
|
|
|
|
-$v for i in $(PROGRAMS); do \
|
|
|
|
rm -f $(DESTDIR)$(bindir)/$$i; \
|
|
|
|
done;
|
|
|
|
@echo "Deleting configuration: $(bo)$(DESTDIR)$(sysconfdir)/fish/*$(sgr0)"
|
|
|
|
-$v rm -rf $(DESTDIR)$(sysconfdir)/fish
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Deleting documentation: $(bo)$(DESTDIR)$(docdir)/*$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
-$v if test -d $(DESTDIR)$(docdir); then \
|
2012-07-09 06:20:39 +08:00
|
|
|
rm -rf $(DESTDIR)$(docdir);\
|
2006-02-23 23:35:56 +08:00
|
|
|
fi
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "Deleting pkgconfig file: $(bo)$(DESTDIR)$(datadir)/pkgconfig/fish.pc$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
-$v if test -f $(DESTDIR)$(datadir)/pkgconfig/fish.pc; then \
|
2014-11-23 14:41:22 +08:00
|
|
|
rm -f $(DESTDIR)$(datadir)/pkgconfig/fish.pc;\
|
|
|
|
fi
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "Deleting [ $(bo)"$(notdir $(MANUALS))"$(sgr0) ] in $(em)$(mandir)/man1$(sgr0)"
|
|
|
|
-$v for i in $(notdir $(MANUALS)); do \
|
|
|
|
rm -f "$(DESTDIR)$(mandir)/man1/$$i" ;\
|
|
|
|
done
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo
|
2017-09-13 21:39:01 +08:00
|
|
|
@echo "$(green)Fish (likely) uninstalled$(sgr0)"
|
2016-09-09 13:26:40 +08:00
|
|
|
@echo
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(bo)./configure --prefix=$(sgr0) to uninstall fish from a different prefix"
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: uninstall
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-09-16 09:37:37 +08:00
|
|
|
install-translations: $(TRANSLATIONS) | show-HAVE_GETTEXT
|
2017-02-22 12:49:34 +08:00
|
|
|
ifeq ($(HAVE_GETTEXT), 1)
|
2016-08-09 21:06:09 +08:00
|
|
|
@echo "Installing translations..."
|
2016-09-16 14:55:02 +08:00
|
|
|
$v for i in $(TRANSLATIONS); do \
|
2014-11-17 17:27:25 +08:00
|
|
|
$(INSTALL) -m 755 -d $(DESTDIR)$(localedir)/`basename $$i .gmo`/LC_MESSAGES; \
|
|
|
|
$(INSTALL) -m 644 $$i $(DESTDIR)$(localedir)/`basename $$i .gmo`/LC_MESSAGES/fish.mo; \
|
|
|
|
done
|
|
|
|
endif
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: install-translations
|
2006-01-04 20:51:02 +08:00
|
|
|
|
2016-09-16 09:37:37 +08:00
|
|
|
uninstall-translations: show-DESTDIR show-localedir
|
2016-09-16 14:55:02 +08:00
|
|
|
$v rm -f $(DESTDIR)$(localedir)/*/LC_MESSAGES/fish.mo
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: uninstall-translations
|
|
|
|
|
2017-05-24 07:57:26 +08:00
|
|
|
install-doc: $(user_doc)
|
|
|
|
@echo "Installing online user documentation";
|
|
|
|
$v $(INSTALL) -m 755 -d $(DESTDIR)$(docdir)
|
|
|
|
$v for i in user_doc/html/* CHANGELOG.md; do \
|
|
|
|
if test -f $$i; then \
|
|
|
|
$(INSTALL) -m 644 $$i $(DESTDIR)$(docdir); \
|
|
|
|
fi; \
|
|
|
|
done;
|
|
|
|
|
2006-01-24 04:40:14 +08:00
|
|
|
#
|
|
|
|
# The build rules for all the commands
|
|
|
|
#
|
2006-01-04 20:51:02 +08:00
|
|
|
|
2015-07-24 15:50:58 +08:00
|
|
|
#
|
|
|
|
# How basic files get compiled
|
|
|
|
#
|
2017-01-16 06:51:10 +08:00
|
|
|
obj/%.o: src/%.cpp | show-CXX show-CXXFLAGS show-CPPFLAGS obj
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " CXX $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@
|
2016-02-07 10:08:22 +08:00
|
|
|
|
2015-07-24 15:50:58 +08:00
|
|
|
#
|
|
|
|
# obj directory
|
|
|
|
#
|
2016-09-16 09:37:37 +08:00
|
|
|
obj: | show-MKDIR_P
|
2016-09-16 14:55:02 +08:00
|
|
|
@echo " MKDIR_P $(em)$@$(sgr0)"
|
|
|
|
$v $(MKDIR_P) obj
|
2015-07-24 15:50:58 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Build the fish program.
|
|
|
|
#
|
2018-02-11 02:46:34 +08:00
|
|
|
fish: obj/fish.o $(FISH_OBJS) $(EXTRA_PCRE2)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " CXX LD $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS_FISH) $(FISH_OBJS) obj/fish.o $(LIBS) -o $@
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2015-09-13 03:59:40 +08:00
|
|
|
$(PCRE2_LIB): $(PCRE2_H)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " MAKE $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(MAKE) V=$(V) -C $(PCRE2_DIR) libpcre2-$(PCRE2_WIDTH).la
|
2015-10-02 15:29:08 +08:00
|
|
|
|
|
|
|
$(PCRE2_H):
|
2016-11-21 06:38:02 +08:00
|
|
|
@echo " autoconf $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v (cd $(PCRE2_DIR) && ./config.status)
|
2015-10-02 15:29:08 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
|
|
|
# Build the fish_tests program.
|
|
|
|
#
|
2018-02-11 02:46:34 +08:00
|
|
|
fish_tests: $(FISH_TESTS_OBJS) $(EXTRA_PCRE2)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " CXX LD $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(CXX) $(CXXFLAGS) $(LDFLAGS_FISH) $(FISH_TESTS_OBJS) $(LIBS) -o $@
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2007-04-22 18:03:12 +08:00
|
|
|
#
|
|
|
|
# Build the fish_indent program.
|
|
|
|
#
|
2018-02-11 02:46:34 +08:00
|
|
|
fish_indent: $(FISH_INDENT_OBJS) $(EXTRA_PCRE2)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " CXX LD $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(CXX) $(CXXFLAGS) $(LDFLAGS) $(FISH_INDENT_OBJS) $(LIBS) -o $@
|
2007-04-22 18:03:12 +08:00
|
|
|
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2017-01-16 06:51:10 +08:00
|
|
|
# Build the fish_key_reader program to show input from the terminal.
|
2006-10-31 10:06:56 +08:00
|
|
|
#
|
2018-02-11 02:46:34 +08:00
|
|
|
fish_key_reader: $(FISH_KEYREAD_OBJS) $(EXTRA_PCRE2)
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo " CXX LD $(em)$@$(sgr0)"
|
2016-09-16 14:55:02 +08:00
|
|
|
$v $(CXX) $(CXXFLAGS) $(LDFLAGS_FISH) $^ $(LIBS) -o $@
|
2005-09-23 04:16:52 +08:00
|
|
|
|
2006-01-24 04:40:14 +08:00
|
|
|
#
|
|
|
|
# Update dependencies
|
2015-07-26 06:15:54 +08:00
|
|
|
# Unfortunately makedepend cannot handle source files in one directory
|
|
|
|
# and object files in another. So we have to cons up a fake directory
|
|
|
|
# tree and run it there. Note that some .cpp files do not result in
|
|
|
|
# objects because they are #include'd directly. In that case we need to
|
|
|
|
# leave them in the 'header' directory, so they get picked up by the
|
|
|
|
# dependencies. So we put everything in the header directory and move out
|
|
|
|
# exactly the files that result in objects, leaving the #include'd files
|
|
|
|
# behind.
|
2006-01-24 04:40:14 +08:00
|
|
|
#
|
2017-01-16 06:51:10 +08:00
|
|
|
depend: | show-MKDIR_P
|
2016-09-16 14:55:02 +08:00
|
|
|
@echo " CXX LD $(em)$@$(sgr0)"
|
|
|
|
$v $(MKDIR_P) /tmp/fish_make_depend/src
|
|
|
|
# This is ran only once in a blue moon - full verbosity so we are reminded what it does.
|
2016-09-16 09:37:37 +08:00
|
|
|
cp $(wildcard src/*.cpp src/*.h) /tmp/fish_make_depend/src
|
|
|
|
cp config.h /tmp/fish_make_depend/
|
|
|
|
mv $(subst obj/,/tmp/fish_make_depend/src/,$(FISH_ALL_OBJS:.o=.cpp)) /tmp/fish_make_depend/
|
|
|
|
cd /tmp/fish_make_depend && makedepend -f$(CURDIR)/Makefile.in -pobj/ -Y -Isrc *.cpp
|
|
|
|
rm -Rf /tmp/fish_make_depend
|
2016-09-16 14:55:02 +08:00
|
|
|
$v ./config.status
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: depend
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-09-01 21:58:51 +08:00
|
|
|
# Lint the code. This only deals with C++
|
2016-09-16 14:55:02 +08:00
|
|
|
# TODO - why not have the Makefile run lint.fish on actual files itself (generate a report target?)
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-04-02 07:28:36 +08:00
|
|
|
lint:
|
2016-11-20 17:42:03 +08:00
|
|
|
$v build_tools/lint.fish "$(CXX)" $(CXXFLAGS) $(CPPFLAGS)
|
2016-04-02 07:28:36 +08:00
|
|
|
lint-all:
|
2016-11-20 17:42:03 +08:00
|
|
|
$v build_tools/lint.fish "$(CXX)" --all $(CXXFLAGS) $(CPPFLAGS)
|
2016-04-02 07:28:36 +08:00
|
|
|
.PHONY: lint lint-all
|
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-04-02 11:48:11 +08:00
|
|
|
# Run the code through the style refomatter. This handles both C++ files and
|
|
|
|
# fish scripts (*.fish).
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-04-02 11:48:11 +08:00
|
|
|
style:
|
2016-09-16 14:55:02 +08:00
|
|
|
$v build_tools/style.fish
|
2016-04-02 11:48:11 +08:00
|
|
|
style-all:
|
2016-09-16 14:55:02 +08:00
|
|
|
$v build_tools/style.fish --all
|
2016-06-13 21:33:27 +08:00
|
|
|
.PHONY: style style-all
|
2016-04-02 11:48:11 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# Restore the source tree to the state right after extracting a tarball.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2005-11-04 01:03:48 +08:00
|
|
|
distclean: clean
|
2017-05-24 07:57:24 +08:00
|
|
|
-$v test ! -f $(PCRE2_DIR)/Makefile || \
|
2017-06-15 13:12:29 +08:00
|
|
|
$(MAKE) V=$(V) -C $(PCRE2_DIR) distclean
|
2016-11-27 06:58:31 +08:00
|
|
|
$v rm -rf config.status config.log config.h Makefile autom4te.cache aclocal.m4
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: distclean
|
2005-11-04 01:03:48 +08:00
|
|
|
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# Remove everything built by the Makefile, but not things that are created by
|
|
|
|
# the configure script.
|
2006-10-31 23:36:14 +08:00
|
|
|
#
|
2016-02-07 10:08:22 +08:00
|
|
|
# Don't delete the docs unless we have Doxygen installed We provide pre-built
|
|
|
|
# docs in the tarball, and if they get deleted we won't be able to regenerate
|
|
|
|
# them.
|
2016-04-28 05:56:46 +08:00
|
|
|
#
|
2005-09-20 21:26:39 +08:00
|
|
|
clean:
|
2016-09-16 14:40:54 +08:00
|
|
|
@echo "$(bo)Removing everything built by the Makefile...$(sgr0)"
|
2016-08-09 10:31:02 +08:00
|
|
|
# PCRE's make clean has a few slightly annoying exceptions to the V= rule. If V=0
|
|
|
|
# send all output to /dev/null - unless there's an error, in which case run it again not silenced.
|
|
|
|
ifeq ($(V), 0 )
|
2017-05-24 07:57:24 +08:00
|
|
|
-@test ! -f $(PCRE2_DIR)/Makefile || \
|
2017-06-15 13:12:29 +08:00
|
|
|
$(MAKE) -C $(PCRE2_DIR) clean
|
2016-08-09 10:31:02 +08:00
|
|
|
else
|
2017-05-24 07:57:24 +08:00
|
|
|
-@test ! -f $(PCRE2_DIR)/Makefile || \
|
2017-06-15 13:12:29 +08:00
|
|
|
$(MAKE) -s -C $(PCRE2_DIR) clean > /dev/null || \
|
|
|
|
$(MAKE) -s -C $(PCRE2_DIR) clean
|
2016-08-09 10:31:02 +08:00
|
|
|
endif
|
2016-09-16 14:55:02 +08:00
|
|
|
$v rm -f obj/*.o *.o doc.h doc.tmp
|
|
|
|
$v rm -f doc_src/*.doxygen doc_src/*.cpp doc_src/*.o doc_src/commands.hdr
|
|
|
|
$v rm -f tests/tmp.err tests/tmp.out tests/tmp.status tests/foo.txt
|
|
|
|
$v rm -f $(PROGRAMS) fish_tests fish_key_reader
|
|
|
|
$v rm -f command_list.txt command_list_toc.txt toc.txt
|
|
|
|
$v rm -f doc_src/index.hdr doc_src/commands.hdr
|
|
|
|
$v rm -f lexicon_filter lexicon.txt lexicon.log
|
|
|
|
$v rm -f compile_commands.json xcodebuild.log
|
|
|
|
$v rm -f FISH-BUILD-VERSION-FILE fish.pc share/__fish_build_paths.fish
|
|
|
|
$v if test "$(HAVE_DOXYGEN)" = 1; then \
|
2012-07-10 10:41:51 +08:00
|
|
|
rm -rf doc user_doc share/man; \
|
|
|
|
fi
|
2016-09-16 14:55:02 +08:00
|
|
|
$v rm -f po/*.gmo
|
|
|
|
$v rm -rf obj build test
|
2006-01-24 04:40:14 +08:00
|
|
|
.PHONY: clean
|
2005-09-20 21:26:39 +08:00
|
|
|
|
2016-08-09 10:31:02 +08:00
|
|
|
# For silent build
|
2016-09-16 14:55:02 +08:00
|
|
|
# These rules need to stay at the end - $v won't work after this.
|
2016-08-09 10:31:02 +08:00
|
|
|
# if V=0:
|
2016-09-16 14:55:02 +08:00
|
|
|
# $v cmd ⇒ @cmd
|
2016-07-19 04:48:15 +08:00
|
|
|
V0 := @
|
2016-08-09 10:31:02 +08:00
|
|
|
# if V=1
|
2016-09-16 14:55:02 +08:00
|
|
|
# $v cmd ⇒ cmd
|
2016-08-09 10:31:02 +08:00
|
|
|
V1 :=
|
2016-07-19 04:48:15 +08:00
|
|
|
v = $(V$(V))
|
|
|
|
|
2017-06-13 09:22:57 +08:00
|
|
|
# DO NOT DELETE THIS LINE -- `make depend` depends on it.
|
2012-01-06 06:10:02 +08:00
|
|
|
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/autoload.o: config.h src/autoload.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/autoload.o: src/signal.h src/env.h src/lru.h src/exec.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin.o: src/signal.h src/builtin_argparse.h src/builtin_bg.h
|
|
|
|
obj/builtin.o: src/builtin_bind.h src/builtin_block.h src/builtin_builtin.h
|
|
|
|
obj/builtin.o: src/builtin_cd.h src/builtin_command.h
|
|
|
|
obj/builtin.o: src/builtin_commandline.h src/builtin_complete.h
|
|
|
|
obj/builtin.o: src/builtin_contains.h src/builtin_disown.h src/builtin_echo.h
|
|
|
|
obj/builtin.o: src/builtin_emit.h src/builtin_exit.h src/builtin_fg.h
|
|
|
|
obj/builtin.o: src/builtin_functions.h src/builtin_history.h
|
|
|
|
obj/builtin.o: src/builtin_jobs.h src/builtin_math.h src/builtin_printf.h
|
|
|
|
obj/builtin.o: src/builtin_pwd.h src/builtin_random.h src/builtin_read.h
|
|
|
|
obj/builtin.o: src/builtin_realpath.h src/builtin_return.h src/builtin_set.h
|
|
|
|
obj/builtin.o: src/builtin_set_color.h src/builtin_source.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin.o: src/builtin_status.h src/builtin_string.h src/builtin_test.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin.o: src/builtin_ulimit.h src/complete.h src/exec.h src/intern.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin.o: src/io.h src/env.h src/parse_constants.h src/parse_util.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin.o: src/tokenizer.h src/parser.h src/event.h src/expand.h
|
|
|
|
obj/builtin.o: src/parse_tree.h src/proc.h src/reader.h src/highlight.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin.o: src/color.h src/wgetopt.h src/wutil.h
|
|
|
|
obj/builtin_argparse.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_argparse.o: src/signal.h src/builtin_argparse.h src/env.h
|
|
|
|
obj/builtin_argparse.o: src/exec.h src/io.h src/wgetopt.h src/wutil.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_bg.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_bg.o: src/signal.h src/builtin_bg.h src/io.h src/env.h src/proc.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_bg.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/builtin_bg.o: src/wutil.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/builtin_bind.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_bind.o: src/signal.h src/builtin_bind.h src/input.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_bind.o: src/env.h src/wgetopt.h src/wutil.h
|
2017-06-13 09:40:58 +08:00
|
|
|
obj/builtin_block.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_block.o: src/signal.h src/builtin_block.h src/event.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_block.o: src/env.h src/parser.h src/expand.h
|
|
|
|
obj/builtin_block.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/builtin_block.o: src/proc.h src/wgetopt.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_builtin.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_builtin.o: src/signal.h src/builtin_builtin.h src/io.h src/env.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_builtin.o: src/wgetopt.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_cd.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_cd.o: src/signal.h src/builtin_cd.h src/env.h src/io.h
|
|
|
|
obj/builtin_cd.o: src/parser.h src/event.h src/expand.h src/parse_constants.h
|
|
|
|
obj/builtin_cd.o: src/parse_tree.h src/tokenizer.h src/proc.h src/path.h
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/builtin_cd.o: src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_command.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_command.o: src/signal.h src/builtin_command.h src/io.h src/env.h
|
|
|
|
obj/builtin_command.o: src/path.h src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_commandline.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/builtin_commandline.o: src/signal.h src/input.h src/builtin_bind.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_commandline.o: src/io.h src/env.h src/parse_util.h
|
|
|
|
obj/builtin_commandline.o: src/parse_constants.h src/tokenizer.h src/proc.h
|
|
|
|
obj/builtin_commandline.o: src/parse_tree.h src/reader.h src/complete.h
|
|
|
|
obj/builtin_commandline.o: src/highlight.h src/color.h src/util.h
|
|
|
|
obj/builtin_commandline.o: src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_complete.o: config.h src/builtin.h src/common.h src/fallback.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/builtin_complete.o: src/signal.h src/complete.h src/env.h src/io.h
|
|
|
|
obj/builtin_complete.o: src/parse_constants.h src/parse_util.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_complete.o: src/tokenizer.h src/parser.h src/event.h src/expand.h
|
|
|
|
obj/builtin_complete.o: src/parse_tree.h src/proc.h src/reader.h
|
|
|
|
obj/builtin_complete.o: src/highlight.h src/color.h src/wgetopt.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_contains.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_contains.o: src/signal.h src/builtin_contains.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_contains.o: src/env.h src/wgetopt.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_disown.o: config.h src/signal.h src/builtin.h src/common.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_disown.o: src/fallback.h src/builtin_disown.h src/io.h src/env.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_disown.o: src/parser.h src/event.h src/expand.h
|
|
|
|
obj/builtin_disown.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/builtin_disown.o: src/proc.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_echo.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_echo.o: src/signal.h src/builtin_echo.h src/io.h src/env.h
|
|
|
|
obj/builtin_echo.o: src/wgetopt.h src/wutil.h
|
2017-06-13 09:40:58 +08:00
|
|
|
obj/builtin_emit.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_emit.o: src/signal.h src/builtin_emit.h src/event.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_emit.o: src/env.h src/wutil.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_exit.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_exit.o: src/signal.h src/builtin_exit.h src/io.h src/env.h
|
|
|
|
obj/builtin_exit.o: src/proc.h src/parse_tree.h src/parse_constants.h
|
|
|
|
obj/builtin_exit.o: src/tokenizer.h src/reader.h src/complete.h
|
|
|
|
obj/builtin_exit.o: src/highlight.h src/color.h src/wgetopt.h src/wutil.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_fg.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_fg.o: src/signal.h src/builtin_fg.h src/env.h src/io.h src/proc.h
|
|
|
|
obj/builtin_fg.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/builtin_fg.o: src/reader.h src/complete.h src/highlight.h src/color.h
|
|
|
|
obj/builtin_fg.o: src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_function.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_function.o: src/signal.h src/builtin_function.h src/complete.h
|
|
|
|
obj/builtin_function.o: src/event.h src/function.h src/env.h src/io.h
|
|
|
|
obj/builtin_function.o: src/parser.h src/expand.h src/parse_constants.h
|
|
|
|
obj/builtin_function.o: src/parse_tree.h src/tokenizer.h src/proc.h
|
|
|
|
obj/builtin_function.o: src/parser_keywords.h src/wgetopt.h src/wutil.h
|
2017-06-13 13:26:24 +08:00
|
|
|
obj/builtin_functions.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_functions.o: src/signal.h src/builtin_functions.h src/env.h
|
|
|
|
obj/builtin_functions.o: src/event.h src/function.h src/io.h
|
|
|
|
obj/builtin_functions.o: src/parser_keywords.h src/proc.h src/parse_tree.h
|
|
|
|
obj/builtin_functions.o: src/parse_constants.h src/tokenizer.h src/wgetopt.h
|
|
|
|
obj/builtin_functions.o: src/wutil.h
|
|
|
|
obj/builtin_history.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_history.o: src/signal.h src/builtin_history.h src/history.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_history.o: src/wutil.h src/io.h src/env.h src/reader.h
|
|
|
|
obj/builtin_history.o: src/complete.h src/highlight.h src/color.h
|
2017-06-13 13:26:24 +08:00
|
|
|
obj/builtin_history.o: src/parse_constants.h src/wgetopt.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/builtin_jobs.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_jobs.o: src/signal.h src/io.h src/env.h src/proc.h
|
|
|
|
obj/builtin_jobs.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/builtin_jobs.o: src/wgetopt.h src/wutil.h
|
|
|
|
obj/builtin_math.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_math.o: src/signal.h src/builtin_math.h src/io.h src/env.h
|
2018-02-26 18:17:01 +08:00
|
|
|
obj/builtin_math.o: src/tinyexpr.h src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_printf.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_printf.o: src/signal.h src/io.h src/env.h src/wutil.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_pwd.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_pwd.o: src/signal.h src/builtin_pwd.h src/io.h src/env.h
|
|
|
|
obj/builtin_pwd.o: src/wutil.h
|
2017-06-13 13:26:24 +08:00
|
|
|
obj/builtin_random.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_random.o: src/signal.h src/builtin_random.h src/io.h src/env.h
|
|
|
|
obj/builtin_random.o: src/wutil.h
|
2017-06-13 13:26:24 +08:00
|
|
|
obj/builtin_read.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_read.o: src/signal.h src/builtin_read.h src/complete.h src/env.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_read.o: src/event.h src/highlight.h src/color.h src/history.h
|
|
|
|
obj/builtin_read.o: src/wutil.h src/io.h src/proc.h src/parse_tree.h
|
|
|
|
obj/builtin_read.o: src/parse_constants.h src/tokenizer.h src/reader.h
|
|
|
|
obj/builtin_read.o: src/wcstringutil.h src/wgetopt.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_realpath.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_realpath.o: src/signal.h src/builtin_realpath.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_realpath.o: src/env.h src/wutil.h
|
2017-06-15 13:12:29 +08:00
|
|
|
obj/builtin_return.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_return.o: src/signal.h src/builtin_return.h src/io.h src/env.h
|
|
|
|
obj/builtin_return.o: src/parser.h src/event.h src/expand.h
|
|
|
|
obj/builtin_return.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/builtin_return.o: src/proc.h src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_set.o: config.h src/builtin.h src/common.h src/fallback.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/builtin_set.o: src/signal.h src/env.h src/expand.h src/parse_constants.h
|
|
|
|
obj/builtin_set.o: src/io.h src/proc.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/builtin_set.o: src/wgetopt.h src/wutil.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/builtin_set_color.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_set_color.o: src/signal.h src/color.h src/env.h src/io.h
|
|
|
|
obj/builtin_set_color.o: src/output.h src/wgetopt.h src/wutil.h
|
2017-06-14 13:20:58 +08:00
|
|
|
obj/builtin_source.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/builtin_source.o: src/signal.h src/builtin_source.h src/env.h
|
|
|
|
obj/builtin_source.o: src/intern.h src/io.h src/parser.h src/event.h
|
|
|
|
obj/builtin_source.o: src/expand.h src/parse_constants.h src/parse_tree.h
|
|
|
|
obj/builtin_source.o: src/tokenizer.h src/proc.h src/reader.h src/complete.h
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/builtin_source.o: src/highlight.h src/color.h src/wutil.h
|
2017-06-13 13:26:24 +08:00
|
|
|
obj/builtin_status.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_status.o: src/signal.h src/builtin_status.h src/io.h src/env.h
|
|
|
|
obj/builtin_status.o: src/parser.h src/event.h src/expand.h
|
|
|
|
obj/builtin_status.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/builtin_status.o: src/proc.h src/wgetopt.h src/wutil.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/builtin_string.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_string.o: src/signal.h src/io.h src/env.h src/parse_util.h
|
|
|
|
obj/builtin_string.o: src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/builtin_string.o: src/wcstringutil.h src/wgetopt.h src/wildcard.h
|
|
|
|
obj/builtin_string.o: src/complete.h src/expand.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_test.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_test.o: src/signal.h src/io.h src/env.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/builtin_ulimit.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/builtin_ulimit.o: src/signal.h src/io.h src/env.h src/util.h
|
|
|
|
obj/builtin_ulimit.o: src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/color.o: config.h src/color.h src/common.h src/fallback.h src/signal.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/common.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
|
|
|
obj/common.o: src/expand.h src/parse_constants.h src/proc.h src/io.h
|
|
|
|
obj/common.o: src/parse_tree.h src/tokenizer.h src/wildcard.h src/complete.h
|
|
|
|
obj/common.o: src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/complete.o: config.h src/autoload.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/complete.o: src/signal.h src/env.h src/lru.h src/builtin.h src/complete.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/complete.o: src/exec.h src/expand.h src/parse_constants.h src/function.h
|
|
|
|
obj/complete.o: src/event.h src/iothread.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/complete.o: src/parse_util.h src/parser.h src/proc.h src/io.h src/path.h
|
|
|
|
obj/complete.o: src/util.h src/wildcard.h src/wutil.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/env.o: config.h src/builtin_bind.h src/common.h src/fallback.h
|
|
|
|
obj/env.o: src/signal.h src/env.h src/env_universal_common.h src/wutil.h
|
|
|
|
obj/env.o: src/event.h src/expand.h src/parse_constants.h src/fish_version.h
|
|
|
|
obj/env.o: src/history.h src/input.h src/input_common.h src/output.h
|
|
|
|
obj/env.o: src/color.h src/path.h src/proc.h src/io.h src/parse_tree.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/env.o: src/tokenizer.h src/reader.h src/complete.h src/highlight.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/env.o: src/sanity.h src/screen.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/env_universal_common.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/env_universal_common.o: src/env.h src/env_universal_common.h src/wutil.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/env_universal_common.o: src/path.h src/utf8.h src/util.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/event.o: config.h src/signal.h src/common.h src/fallback.h src/event.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/event.o: src/input_common.h src/io.h src/env.h src/parser.h src/expand.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/event.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/event.o: src/proc.h src/wutil.h
|
|
|
|
obj/exec.o: config.h src/signal.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/exec.o: src/env.h src/exec.h src/function.h src/event.h src/io.h
|
|
|
|
obj/exec.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/exec.o: src/parser.h src/expand.h src/proc.h src/postfork.h src/reader.h
|
|
|
|
obj/exec.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
|
|
|
obj/expand.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/expand.o: src/complete.h src/env.h src/exec.h src/expand.h
|
|
|
|
obj/expand.o: src/parse_constants.h src/iothread.h src/parse_util.h
|
|
|
|
obj/expand.o: src/tokenizer.h src/path.h src/proc.h src/io.h src/parse_tree.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/expand.o: src/wildcard.h src/wutil.h
|
2016-11-21 12:38:52 +08:00
|
|
|
obj/fallback.o: config.h src/signal.h src/common.h src/fallback.h src/util.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/fish.o: config.h src/builtin.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/fish.o: src/env.h src/event.h src/expand.h src/parse_constants.h
|
|
|
|
obj/fish.o: src/fish_version.h src/function.h src/history.h src/wutil.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/fish.o: src/io.h src/parser.h src/parse_tree.h src/tokenizer.h src/proc.h
|
|
|
|
obj/fish.o: src/path.h src/reader.h src/complete.h src/highlight.h
|
|
|
|
obj/fish.o: src/color.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/fish_indent.o: config.h src/color.h src/common.h src/fallback.h
|
|
|
|
obj/fish_indent.o: src/signal.h src/env.h src/fish_version.h src/highlight.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/fish_indent.o: src/output.h src/parse_constants.h src/parse_tree.h
|
|
|
|
obj/fish_indent.o: src/tokenizer.h src/print_help.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/fish_key_reader.o: config.h src/signal.h src/common.h src/fallback.h
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/fish_key_reader.o: src/env.h src/fish_version.h src/input.h
|
|
|
|
obj/fish_key_reader.o: src/builtin_bind.h src/input_common.h src/print_help.h
|
|
|
|
obj/fish_key_reader.o: src/proc.h src/io.h src/parse_tree.h
|
|
|
|
obj/fish_key_reader.o: src/parse_constants.h src/tokenizer.h src/reader.h
|
|
|
|
obj/fish_key_reader.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/fish_tests.o: config.h src/signal.h src/builtin.h src/common.h
|
|
|
|
obj/fish_tests.o: src/fallback.h src/color.h src/complete.h src/env.h
|
|
|
|
obj/fish_tests.o: src/env_universal_common.h src/wutil.h src/event.h
|
|
|
|
obj/fish_tests.o: src/expand.h src/parse_constants.h src/function.h
|
|
|
|
obj/fish_tests.o: src/highlight.h src/history.h src/input.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/fish_tests.o: src/builtin_bind.h src/input_common.h src/io.h
|
|
|
|
obj/fish_tests.o: src/iothread.h src/lru.h src/pager.h src/reader.h
|
|
|
|
obj/fish_tests.o: src/screen.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/fish_tests.o: src/parse_util.h src/parser.h src/proc.h src/path.h
|
|
|
|
obj/fish_tests.o: src/utf8.h src/util.h src/wcstringutil.h src/wildcard.h
|
2015-07-26 04:23:18 +08:00
|
|
|
obj/fish_version.o: src/fish_version.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/function.o: config.h src/autoload.h src/common.h src/fallback.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/function.o: src/signal.h src/env.h src/lru.h src/event.h src/function.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/function.o: src/intern.h src/parser_keywords.h src/reader.h
|
|
|
|
obj/function.o: src/complete.h src/highlight.h src/color.h
|
|
|
|
obj/function.o: src/parse_constants.h src/wutil.h
|
|
|
|
obj/highlight.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/highlight.o: src/signal.h src/color.h src/env.h src/expand.h
|
|
|
|
obj/highlight.o: src/parse_constants.h src/function.h src/event.h
|
|
|
|
obj/highlight.o: src/highlight.h src/history.h src/wutil.h src/output.h
|
|
|
|
obj/highlight.o: src/parse_tree.h src/tokenizer.h src/parse_util.h src/path.h
|
|
|
|
obj/highlight.o: src/wildcard.h src/complete.h
|
|
|
|
obj/history.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
2016-09-05 17:04:25 +08:00
|
|
|
obj/history.o: src/history.h src/wutil.h src/io.h src/iothread.h src/lru.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/history.o: src/parse_constants.h src/parse_tree.h src/tokenizer.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/history.o: src/parse_util.h src/path.h src/reader.h src/complete.h
|
|
|
|
obj/history.o: src/highlight.h src/color.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/input.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/input.o: src/event.h src/input.h src/builtin_bind.h src/input_common.h
|
|
|
|
obj/input.o: src/io.h src/parser.h src/expand.h src/parse_constants.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/input.o: src/parse_tree.h src/tokenizer.h src/proc.h src/reader.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/input.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/input_common.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/input_common.o: src/env.h src/env_universal_common.h src/wutil.h
|
|
|
|
obj/input_common.o: src/input_common.h src/iothread.h src/util.h
|
|
|
|
obj/intern.o: config.h src/common.h src/fallback.h src/signal.h src/intern.h
|
|
|
|
obj/io.o: config.h src/common.h src/fallback.h src/signal.h src/exec.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/io.o: src/io.h src/env.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/iothread.o: config.h src/signal.h src/common.h src/fallback.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/iothread.o: src/iothread.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/kill.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/output.o: config.h src/color.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/output.o: src/env.h src/output.h src/wutil.h
|
|
|
|
obj/pager.o: config.h src/common.h src/fallback.h src/signal.h src/complete.h
|
|
|
|
obj/pager.o: src/highlight.h src/color.h src/env.h src/pager.h src/reader.h
|
|
|
|
obj/pager.o: src/parse_constants.h src/screen.h src/util.h src/wutil.h
|
|
|
|
obj/parse_execution.o: config.h src/builtin.h src/common.h src/fallback.h
|
2017-07-08 05:32:41 +08:00
|
|
|
obj/parse_execution.o: src/signal.h src/builtin_function.h src/complete.h
|
|
|
|
obj/parse_execution.o: src/env.h src/event.h src/exec.h src/expand.h
|
|
|
|
obj/parse_execution.o: src/parse_constants.h src/function.h src/io.h
|
|
|
|
obj/parse_execution.o: src/parse_execution.h src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/parse_execution.o: src/proc.h src/parse_util.h src/parser.h src/path.h
|
|
|
|
obj/parse_execution.o: src/reader.h src/highlight.h src/color.h src/util.h
|
|
|
|
obj/parse_execution.o: src/wildcard.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/parse_productions.o: config.h src/common.h src/fallback.h src/signal.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/parse_productions.o: src/parse_constants.h src/parse_productions.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/parse_productions.o: src/parse_tree.h src/tokenizer.h
|
|
|
|
obj/parse_tree.o: config.h src/common.h src/fallback.h src/signal.h
|
2015-09-13 03:59:40 +08:00
|
|
|
obj/parse_tree.o: src/parse_constants.h src/parse_productions.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/parse_tree.o: src/parse_tree.h src/tokenizer.h src/proc.h src/io.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/parse_tree.o: src/env.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/parse_util.o: config.h src/builtin.h src/common.h src/fallback.h
|
|
|
|
obj/parse_util.o: src/signal.h src/expand.h src/parse_constants.h
|
|
|
|
obj/parse_util.o: src/parse_tree.h src/tokenizer.h src/parse_util.h
|
|
|
|
obj/parse_util.o: src/util.h src/wildcard.h src/complete.h src/wutil.h
|
|
|
|
obj/parser.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
|
|
|
obj/parser.o: src/event.h src/expand.h src/parse_constants.h src/function.h
|
|
|
|
obj/parser.o: src/intern.h src/parse_execution.h src/io.h src/parse_tree.h
|
|
|
|
obj/parser.o: src/tokenizer.h src/proc.h src/parse_util.h src/parser.h
|
|
|
|
obj/parser.o: src/reader.h src/complete.h src/highlight.h src/color.h
|
|
|
|
obj/parser.o: src/sanity.h src/wutil.h
|
|
|
|
obj/parser_keywords.o: config.h src/common.h src/fallback.h src/signal.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/parser_keywords.o: src/parser_keywords.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/path.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
|
|
|
obj/path.o: src/expand.h src/parse_constants.h src/path.h src/wutil.h
|
|
|
|
obj/postfork.o: config.h src/signal.h src/common.h src/fallback.h src/exec.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/postfork.o: src/io.h src/env.h src/iothread.h src/postfork.h src/proc.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/postfork.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/postfork.o: src/wutil.h
|
|
|
|
obj/print_help.o: config.h src/common.h src/fallback.h src/signal.h
|
2015-07-26 04:23:18 +08:00
|
|
|
obj/print_help.o: src/print_help.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/proc.o: config.h src/signal.h src/common.h src/fallback.h src/event.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/proc.o: src/io.h src/env.h src/output.h src/color.h src/parse_tree.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/proc.o: src/parse_constants.h src/tokenizer.h src/parser.h src/expand.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/proc.o: src/proc.h src/reader.h src/complete.h src/highlight.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/proc.o: src/sanity.h src/util.h src/wutil.h
|
|
|
|
obj/reader.o: config.h src/signal.h src/color.h src/common.h src/fallback.h
|
|
|
|
obj/reader.o: src/complete.h src/env.h src/event.h src/exec.h src/expand.h
|
|
|
|
obj/reader.o: src/parse_constants.h src/function.h src/highlight.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/reader.o: src/history.h src/wutil.h src/input.h src/builtin_bind.h
|
|
|
|
obj/reader.o: src/input_common.h src/intern.h src/io.h src/iothread.h
|
|
|
|
obj/reader.o: src/kill.h src/output.h src/pager.h src/reader.h src/screen.h
|
|
|
|
obj/reader.o: src/parse_tree.h src/tokenizer.h src/parse_util.h src/parser.h
|
|
|
|
obj/reader.o: src/proc.h src/sanity.h src/util.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/sanity.o: config.h src/common.h src/fallback.h src/signal.h src/history.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/sanity.o: src/wutil.h src/kill.h src/proc.h src/io.h src/env.h
|
|
|
|
obj/sanity.o: src/parse_tree.h src/parse_constants.h src/tokenizer.h
|
|
|
|
obj/sanity.o: src/reader.h src/complete.h src/highlight.h src/color.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/sanity.o: src/sanity.h
|
2017-06-13 08:19:13 +08:00
|
|
|
obj/screen.o: config.h src/common.h src/fallback.h src/signal.h src/env.h
|
|
|
|
obj/screen.o: src/highlight.h src/color.h src/output.h src/pager.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/screen.o: src/complete.h src/reader.h src/parse_constants.h src/screen.h
|
|
|
|
obj/screen.o: src/util.h
|
|
|
|
obj/signal.o: config.h src/signal.h src/common.h src/fallback.h src/event.h
|
2017-08-24 08:14:54 +08:00
|
|
|
obj/signal.o: src/proc.h src/io.h src/env.h src/parse_tree.h
|
|
|
|
obj/signal.o: src/parse_constants.h src/tokenizer.h src/reader.h
|
|
|
|
obj/signal.o: src/complete.h src/highlight.h src/color.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/tokenizer.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/tokenizer.o: src/tokenizer.h src/wutil.h
|
2016-11-21 12:38:52 +08:00
|
|
|
obj/utf8.o: config.h src/common.h src/fallback.h src/signal.h src/utf8.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/util.o: config.h src/common.h src/fallback.h src/signal.h src/util.h
|
2016-04-28 05:56:46 +08:00
|
|
|
obj/util.o: src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/wcstringutil.o: config.h src/common.h src/fallback.h src/signal.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/wcstringutil.o: src/wcstringutil.h
|
2015-07-26 10:20:13 +08:00
|
|
|
obj/wgetopt.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/wgetopt.o: src/wgetopt.h src/wutil.h
|
2016-07-03 20:04:19 +08:00
|
|
|
obj/wildcard.o: config.h src/common.h src/fallback.h src/signal.h
|
|
|
|
obj/wildcard.o: src/complete.h src/expand.h src/parse_constants.h
|
|
|
|
obj/wildcard.o: src/reader.h src/highlight.h src/color.h src/env.h
|
|
|
|
obj/wildcard.o: src/wildcard.h src/wutil.h
|
2016-04-20 10:49:15 +08:00
|
|
|
obj/wutil.o: config.h src/common.h src/fallback.h src/signal.h src/wutil.h
|