blob: 35d79c6f7f4c10f7431fc6d3df8147e2a2f88b84 (
plain) (
tree)
|
|
PACKAGE := @PACKAGE_NAME@
VERSION := @PACKAGE_VERSION@
RELEASE := @PACKAGE_RELEASE@
PACKAGE_BUGREPORT := @PACKAGE_BUGREPORT@
prefix := @prefix@
exec_prefix := @exec_prefix@
bindir := @bindir@
libdir := @libdir@
datadir := @datadir@
mandir := $(datadir)/man
docdir := $(datadir)/doc/packages
localedir := $(datadir)/locale
QUILT_DIR = $(datadir)/$(PACKAGE)
SCRIPTS_DIR = $(QUILT_DIR)/scripts
LIB_DIR = $(libdir)/$(PACKAGE)
INSTALL := @INSTALL@
PERL := @PERL@
BASH := @BASH@
SED := @SED@
AWK := @AWK@
DIFF := @DIFF@
PATCH := @PATCH@
MKTEMP := @MKTEMP@
MSGFMT := @MSGFMT@
DIFFSTAT := @DIFFSTAT@
ifeq "$(MSGFMT)" ""
MAKE_NLS := @true
else
MAKE_NLS := $(MAKE)
endif
CFLAGS := @CFLAGS@ -Wall
ISODATE := $(shell date +%Y-%m-%d)
#-----------------------------------------------------------------------
DIRT += $(shell find -name '*~')
SRC += COPYING AUTHORS TODO BUGS Makefile.in \
configure.ac config/install-sh \
quilt.spec.in quilt.changes
DIRT += quilt.spec
BIN_IN := quilt guards
BIN_SRC := $(BIN_IN:%=%.in)
BIN := $(BIN_IN)
SRC += $(BIN_SRC:%=bin/%)
DIRT += $(BIN_IN:%=bin/%)
QUILT_IN := add applied delete diff files import new next patches \
pop previous push refresh remove series setup top unapplied
QUILT_SRC := $(QUILT_IN:%=%.in)
QUILT := $(QUILT_IN)
SRC += $(QUILT_SRC:%=quilt/%)
DIRT += $(QUILT_IN:%=quilt/%)
SCRIPTS_IN := apatch rpatch patchfns parse-patch spec2series
SCRIPTS_SRC := $(SCRIPTS_IN:%=%.in)
SCRIPTS := $(SCRIPTS_IN)
SRC += $(SCRIPTS_SRC:%=scripts/%)
DIRT += $(SCRIPTS_IN:%=scripts/%)
LIB_SRC := backup-files.c
LIB := backup-files
SRC += $(LIB_SRC:%=lib/%)
DIRT += lib/backup-files lib/backup-files.o
DOC_IN := README
DOC_SRC := $(DOC_IN:%=doc/%.in)
DOC := $(DOC_IN)
SRC += $(DOC_SRC) doc/docco.txt
DIRT += $(DOC_IN:%=doc/%)
MAN1 := bin/guards.1
DEBIAN := changelog control copyright docs prerm rules
SRC += $(DEBIAN:%=debian/%)
LINGUAS := fr de
PO := Makefile quilt.pot $(LINGUAS:%=%.po)
SRC += $(PO:%=po/%)
DIRT += po/*.mo
SRC += test/one.test test/run
#-----------------------------------------------------------------------
all : scripts
$(MAKE_NLS) -C po all BUILD_ROOT=$(BUILD_ROOT)
scripts : $(BIN:%=bin/%) $(QUILT:%=quilt/%) $(SCRIPTS:%=scripts/%) \
$(LIB:%=lib/%) $(DOC:%=doc/%) $(MAN1)
dist : clean $(PACKAGE)-$(VERSION).tar.gz
snapshot : $(PACKAGE)-$(ISODATE).tar.bz2
rpm : $(PACKAGE)-$(VERSION).tar.gz
rpm -tb $<
doc/README : doc/README.in
@echo README.in -> README
@while read line; do \
case "$$line" in \
'@REFERENCE''@') \
$(MAKE) -s reference \
;; \
*) \
echo $$line \
;; \
esac ; \
done 2>&1 < $< > $@
.PHONY :: reference
reference : $(QUILT:%=quilt/%)
@for i in $+; \
do \
echo "$$i >> README" >&2; \
echo; \
(bash -c ". scripts/patchfns ; . $$i -h"); \
done | \
sed -e '/^Usage: \?/ {s/^Usage: \?// ; p ; d}' \
-e 's/^/ /'
bin/guards.1 : bin/guards
mkdir -p $$(dirname $@)
pod2man $< > $@
$(PACKAGE)-$(VERSION).tar.gz : $(SRC) configure $(PACKAGE).spec
rm -f $(PACKAGE)-$(VERSION) $@
ln -s . $(PACKAGE)-$(VERSION)
tar chf - $(+:%=$(PACKAGE)-$(VERSION)/%) | gzip -9 > $@
rm -f $(PACKAGE)-$(VERSION)
@echo "File $@ created."
$(PACKAGE)-$(ISODATE).tar.bz2 : $(SRC) configure $(PACKAGE).spec
rm -f $(PACKAGE)-$(ISODATE) $@
ln -s . $(PACKAGE)-$(ISODATE)
tar chf - $(+:%=$(PACKAGE)-$(ISODATE)/%) | bzip2 -9 > $@
rm -f $(PACKAGE)-$(ISODATE)
@echo "File $@ created."
configure : configure.ac
autoconf
$(PACKAGE).spec : $(PACKAGE).spec.in $(PACKAGE).changes Makefile \
scripts/parse-patch
@echo "Generating spec file"
@sed -e 's/^\(Version:[ \t]*\).*/\1$(VERSION)/' \
-e 's/^\(Release:[ \t]\).*/\1$(RELEASE)/' \
< $< > $@
@perl -ne ' \
m/^(|-+)$$/ and next; \
( \
s/^(...) \s (...) \s (.\d) \s (\d\d:\d\d:\d\d) \s \
([A-Z]+|[-+]\d{4}) \s (\d\d\d\d) \s - \s (.+) \
/* $$1 $$2 $$3 $$6 - $$7/x || \
m/^(- | )(?!\s)/ \
and print \
) or die "Syntax error in line $$. of changelog:\n$$_\n"; \
' $(PACKAGE).changes \
| scripts/parse-patch -u changelog $@
% : %.in
@echo "$< -> $@"
@sed -e 's:@LIB''@:$(LIB_DIR):g' \
-e 's:@QUILT''@:$(QUILT_DIR):g' \
-e 's:@SCRIPTS''@:$(SCRIPTS_DIR):g' \
-e 's:@PERL''@:$(PERL):g' \
-e 's:@BASH''@:$(BASH):g' \
-e 's:@SED''@:$(SED):g' \
-e 's:@AWK''@:$(AWK):g' \
-e 's:@DIFF''@:$(DIFF):g' \
-e 's:@PATCH''@:$(PATCH):g' \
-e 's:@MKTEMP''@:$(MKTEMP):g' \
-e 's:@PACKAGE_BUGREPORT''@:$(PACKAGE_BUGREPORT):g' \
-e 's:@VERSION''@:$(VERSION):g' \
-e 's:@RELEASE''@:$(RELEASE):g' \
-e 's:@DIFFSTAT''@:$(DIFFSTAT):g' \
$< > $@
@chmod --reference=$< $@
Makefile : Makefile.in
@echo "Please run ./configure by hand"
@false
install : scripts
@INSTALL@ -d $(BUILD_ROOT)$(bindir)
@INSTALL@ -m 755 $(BIN:%=bin/%) $(BUILD_ROOT)$(bindir)/
@INSTALL@ -d $(BUILD_ROOT)$(QUILT_DIR)
@INSTALL@ -m 755 $(QUILT:%=quilt/%) $(BUILD_ROOT)$(QUILT_DIR)/
@INSTALL@ -d $(BUILD_ROOT)$(SCRIPTS_DIR)
@INSTALL@ -m 755 $(filter-out scripts/patchfns, \
$(SCRIPTS:%=scripts/%)) \
$(BUILD_ROOT)$(SCRIPTS_DIR)
@INSTALL@ -m 644 scripts/patchfns $(BUILD_ROOT)$(SCRIPTS_DIR)
@INSTALL@ -d $(BUILD_ROOT)$(LIB_DIR)
@INSTALL@ -m 755 -s $(LIB:%=lib/%) $(BUILD_ROOT)$(LIB_DIR)/
@INSTALL@ -d $(BUILD_ROOT)$(docdir)/$(PACKAGE)
@INSTALL@ -m 644 doc/README $(BUILD_ROOT)$(docdir)/$(PACKAGE)/
@INSTALL@ -d $(BUILD_ROOT)$(mandir)/man1
@INSTALL@ -m 644 $(MAN1) $(BUILD_ROOT)$(mandir)/man1/
$(MAKE_NLS) -C po install BUILD_ROOT=$(BUILD_ROOT) \
LINGUAS="$(LINGUAS)" localedir=$(localedir)
clean :
rm -f $(DIRT)
rm -f po/*.mo
distclean : clean
rm -f config.log config.status Makefile
rm -rf autom4te.cache/
|