Blob Blame History Raw
#			-*-makefile-*- (gpm/main)
#
# Copyright 1994,1997  rubini@linux.it
# Copyright 1997       dickey@clark.net
# Copyright (C) 1998 Ian Zimmerman <itz@rahul.net>
# Copyright (C) 2001-2012 Nico Schottelius
#

SHELL = /bin/sh
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = .

include Makefile.include

# allow CFLAGS to be overriden from make command line
# ideally one would never have to write this rule again, but the GNU
# makefile standards are at cross-purposes: CFLAGS is reserved for
# user-overridable flags, but it's also all the implicit rule looks at.
# missing ?

SUBDIRS = src doc contrib


### simple, but effective rules

all: do-all

src/$(DEPFILE):
	touch $@ # to prevent unecessary warnings

dep: src/$(DEPFILE)
	$(MAKE) -C src dep

check: all

uninstall:	do-uninstall

clean: do-clean
	rm -f config.status.lineno

aclocal.m4: acinclude.m4
	$(MKDIR) config
	aclocal -I config

configure: configure.ac aclocal.m4 $(versionfiles)
	libtoolize --force --copy `libtoolize -n --install >/dev/null 2>&1 && echo --install`
	autoheader
	autoconf

config.status:	configure
	if [ -f config.status ]; then $(SHELL) ./config.status --recheck; \
	else $(SHELL) ./configure; fi

Makefile: config.status         $(srcdir)/Makefile.in Makefile.include
	./config.status
Makefile.include: config.status $(srcdir)/Makefile.include.in
	./config.status

### INSTALL

install:	check installdirs do-install

install-strip:
	$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) $(STRIP)' install

installdirs:
	$(MKDIR) $(libdir) $(bindir) $(sbindir) $(includedir) $(sysconfdir); \
	if test "x$(ELISP)" != "x" ; then \
		$(MKDIR) $(lispdir) ; \
	fi

### GENERIC

# do-all goes to all subdirectories and does all
do-%: dep
	@target=`echo $@ | $(SED) -e 's/^do-//'`; \
	for i in $(SUBDIRS) ; do \
		if test -f ./$$i/Makefile ; then \
			$(MAKE) -C ./$$i $${target} || exit 1 ;\
		else \
			true; \
		fi; \
       done


# Configure & unconfigure

# Maintainer portion, use at your own risk

barf:
	@echo 'This command is intended for maintainers to use; it'
	@echo 'deletes files that may need special tools to rebuild.'
	@echo 'If you want to continue, please press return.'
	@echo -n "Hit Ctrl+C to abort."
	@read somevar


# who / what does need tags
TAGS:	$(SRCS) $(HDRS) src/prog/gpm-root.y do-TAGS
	cd $(srcdir) && $(ETAGS) -o TAGS $(SRCS) $(HDRS) src/prog/gpm-root.y

### RELEASE STUFF
TARS  =../gpm-$(release).tar.gz
TARS +=../gpm-$(release).tar.bz2 ../gpm-$(release).tar.lzma

M_HOST=arcana.linux.it
M_DIR=gpm/

tars: $(TARS)

# configure headers, produce new configure script
distconf: Makefile.in Makefile.include.in configure acinclude.m4 $(versionfiles)

../gpm-$(release).tar: $(srcdir) distclean distconf
	# no exclude possible of .git with pax it seems, so the following is not possible:
	git archive --prefix "gpm-$(release)/" -o $@ HEAD

../gpm-$(release).tar.gz:  ../gpm-$(release).tar
	gzip -9 -c $< > $@

../gpm-$(release).tar.bz2:  ../gpm-$(release).tar
	bzip2 -9 -c $< > $@

../gpm-$(release).tar.lzma:  ../gpm-$(release).tar
	lzma -9 -c $< > $@

# 3. Put package together into .tar.gz and .tar.bz2
dist: disttest distclean distconf $(TARS)
	scp $(TARS) $(M_HOST):$(M_DIR)
	mv $(TARS) ~/niconetz/software/gpm/archives

### TEST: on nicos machine: not to be used anywhere else currently
# create / update configure, delete other parts from earlier build
disttest: distconf clean
	./configure
	make all

### CLEANUP
distclean: clean do-clean do-distclean
	rm -f config.log config.status* config.cache Makefile Makefile.include
	rm -rf autom4te.cache 
	rm -f src/$(DEPFILE)

allclean: do-allclean distclean
	rm -f configure  aclocal.m4