Mercurial > hg
view contrib/chg/Makefile @ 28605:baa073200ba2
chg: allows default hg path to be overridden
Before this patch, chg will fall back to "hg" if neither CHGHG nor HG are set.
This may have trouble if the "hg" in PATH is not compatible with chg, which
can happen, for example, an old hg is installed in a virtualenv.
Since it's very hard to do a quick hg version check from chg, after discussion
in IRC with smf and marmoute, the quickest solution is to build a package with
a hardcoded absolute hg path in chg. This patch makes it possible by adding a
C macro HGPATH.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 20 Mar 2016 15:43:20 -0700 |
parents | 3ab370f84a23 |
children | ff7df4bb75de |
line wrap: on
line source
HG = $(CURDIR)/../../hg TARGET = chg SRCS = chg.c hgclient.c util.c OBJS = $(SRCS:.c=.o) CFLAGS ?= -O2 -Wall -Wextra -pedantic -g CPPFLAGS ?= -D_FORTIFY_SOURCE=2 override CFLAGS += -std=gnu99 ifdef HGPATH override CPPFLAGS += -DHGPATH=\"$(HGPATH)\" endif DESTDIR = PREFIX = /usr/local MANDIR = $(PREFIX)/share/man/man1 CHGSOCKDIR = /tmp/chg$(shell id -u) CHGSOCKNAME = $(CHGSOCKDIR)/server .PHONY: all all: $(TARGET) $(TARGET): $(OBJS) $(CC) $(LDFLAGS) -o $@ $(OBJS) chg.o: hgclient.h util.h hgclient.o: hgclient.h util.h util.o: util.h .PHONY: install install: $(TARGET) install -d $(DESTDIR)$(PREFIX)/bin install -m 755 $(TARGET) $(DESTDIR)$(PREFIX)/bin install -d $(DESTDIR)$(MANDIR) install -m 644 chg.1 $(DESTDIR)$(MANDIR) .PHONY: serve serve: [ -d $(CHGSOCKDIR) ] || ( umask 077; mkdir $(CHGSOCKDIR) ) $(HG) serve --cwd / --cmdserver chgunix \ --address $(CHGSOCKNAME) \ --config extensions.chgserver= \ --config cmdserver.log=/dev/stderr .PHONY: clean clean: $(RM) $(OBJS) .PHONY: distclean distclean: $(RM) $(OBJS) $(TARGET)