view contrib/chg/Makefile @ 31736:dd2079fae003

largefiles: add copytostore() fstandin argument to replace readstandin() (API) copyalltostore(), only one caller of copytostore(), already knows standin file name of the target largefile. Therefore, passing it to copytostore() is more efficient than calculating it in copytostore() or readstandin().
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Sat, 01 Apr 2017 02:32:48 +0900
parents a45c0f42271f
children 5544af862286
line wrap: on
line source

HG = $(CURDIR)/../../hg

TARGET = chg
SRCS = chg.c hgclient.c procutil.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 procutil.h util.h
hgclient.o: hgclient.h procutil.h util.h
procutil.o: procutil.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 cmdserver.log=/dev/stderr

.PHONY: clean
clean:
	$(RM) $(OBJS)

.PHONY: distclean
distclean:
	$(RM) $(OBJS) $(TARGET)