218 lines
6.2 KiB
Makefile
218 lines
6.2 KiB
Makefile
# Copyright (C) 2001-2009 Joe Orton <joe@manyfish.co.uk>
|
|
# Copyright (C) 1994, 1995-8, 1999, 2000 Free Software Foundation, Inc.
|
|
# This Makefile.in is free software; the Free Software Foundation
|
|
# gives unlimited permission to copy and/or distribute it,
|
|
# with or without modifications, as long as this notice is preserved.
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
# PARTICULAR PURPOSE.
|
|
|
|
# libtool bits mostly stolen from libxml and libtool/demo
|
|
|
|
SHELL = @SHELL@
|
|
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
bindir = @bindir@
|
|
libdir = @libdir@
|
|
mandir = @mandir@
|
|
man1dir = $(mandir)/man1
|
|
man3dir = $(mandir)/man3
|
|
datarootdir = @datarootdir@
|
|
datadir = @datadir@
|
|
docdir = $(datadir)/doc/neon-@NEON_VERSION@
|
|
includedir = @includedir@
|
|
neonincludes = $(includedir)/neon
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
localedir = $(datadir)/locale
|
|
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = .
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
@SET_MAKE@
|
|
|
|
LDFLAGS = -L. @LDFLAGS@
|
|
LIBS = @LIBS@
|
|
CC = @CC@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
INSTALL = @INSTALL@
|
|
transform = @program_transform_name@
|
|
|
|
LIBTOOL = @LIBTOOL@
|
|
XMLTO = xmlto
|
|
GCOV = gcov
|
|
XGETTEXT_OPTS = --keyword=_ --keyword=N_ --msgid-bugs-address=neon@lists.manyfish.co.uk \
|
|
--default-domain=neon --flag ne_print_request_header:3:c-format \
|
|
--flag ne_snprintf:3:c-format --flag ne_vsnprintf:3:c-format \
|
|
--flag ne_set_error:2:c-format
|
|
POTFILE = $(top_srcdir)/po/neon.pot
|
|
XGETTEXT = xgettext
|
|
MSGFMT = msgfmt
|
|
MSGMERGE = msgmerge
|
|
|
|
LINGUAS = @ALL_LINGUAS@
|
|
|
|
# The headers to distribute - making up the public interface of neon
|
|
DIST_HEADERS = ne_request.h ne_session.h ne_utils.h ne_uri.h ne_socket.h \
|
|
ne_basic.h ne_207.h ne_props.h ne_xml.h ne_dates.h ne_string.h \
|
|
ne_defs.h ne_locks.h ne_alloc.h ne_md5.h ne_i18n.h ne_redirect.h \
|
|
ne_auth.h ne_compress.h ne_acl.h ne_ssl.h ne_xmlreq.h ne_pkcs11.h \
|
|
ne_acl3744.h
|
|
|
|
all: subdirs
|
|
|
|
check: subdirs
|
|
@cd test && $(MAKE) check
|
|
|
|
# Useful for doing coverage analysis; use e.g.:
|
|
# make TESTS=string-tests MODULE=ne_string.c cover
|
|
cover: subdirs
|
|
@rm -f src/*.*da test/common/*.*da test/*.*da
|
|
@cd test && $(MAKE) check
|
|
@cd src && $(GCOV) -cb $(MODULE)
|
|
|
|
# as per 'cover' target; prints list of functions without 100% coverage
|
|
uncover: subdirs
|
|
@rm -f src/*.*da test/common/*.*da test/*.*da
|
|
@cd test && $(MAKE) check
|
|
@cd src && $(GCOV) -cb $(MODULE)
|
|
@grep ^function src/$(MODULE).gcov | grep -v 'executed 100' | sort -nr -k 9,9
|
|
|
|
subdirs:
|
|
@cd src && $(MAKE)
|
|
|
|
# Uses Tim Waugh's excellent "xmlto" utility, see
|
|
# http://cyberelk.net/tim/xmlto/. (The docs target is executed at release
|
|
# time before generating a .tar.gz)
|
|
docs: docs-man docs-html
|
|
|
|
docs-man:
|
|
rm -rf doc/man; mkdir doc/man
|
|
$(XMLTO) -o `pwd`/doc/man -x doc/man.xsl man doc/manual.xml
|
|
|
|
docs-pdf:
|
|
$(XMLTO) -o `pwd`/doc pdf doc/manual.xml
|
|
|
|
docs-ps:
|
|
$(XMLTO) -o `pwd`/doc ps doc/manual.xml
|
|
|
|
docs-html:
|
|
test -d doc/html && rm -rf doc/html || true
|
|
mkdir doc/html
|
|
$(XMLTO) -o `pwd`/doc/html -x doc/html.xsl html doc/manual.xml
|
|
|
|
# Validate the manual source
|
|
docs-valid:
|
|
xmllint --noout --valid doc/manual.xml
|
|
|
|
clean:
|
|
@cd src && $(MAKE) clean
|
|
@cd test && $(MAKE) clean
|
|
|
|
distclean: clean
|
|
rm -rf Makefile config.h neon.pc config.status src/Makefile libtool config.log config.cache neon-config autom4te*.cache test/Makefile
|
|
|
|
again: clean
|
|
|
|
Makefile: $(srcdir)/Makefile.in
|
|
@./config.status Makefile
|
|
|
|
neon-config: $(srcdir)/neon-config.in
|
|
@./config.status neon-config
|
|
|
|
install-docs: install-man install-html
|
|
|
|
install-html:
|
|
$(INSTALL) -d $(DESTDIR)$(docdir)/html
|
|
for d in $(srcdir)/doc/html/*.html; do \
|
|
$(INSTALL_DATA) $$d $(DESTDIR)$(docdir)/html; \
|
|
done
|
|
|
|
install-man:
|
|
$(INSTALL) -d $(DESTDIR)$(man3dir)
|
|
$(INSTALL) -d $(DESTDIR)$(man1dir)
|
|
for m in $(srcdir)/doc/man/*.3; do \
|
|
$(INSTALL_DATA) $$m $(DESTDIR)$(man3dir); done
|
|
for m in $(srcdir)/doc/man/*.1; do \
|
|
$(INSTALL_DATA) $$m $(DESTDIR)$(man1dir); done
|
|
|
|
install: install-@ALLOW_INSTALL@
|
|
|
|
install-memleak:
|
|
@echo "ERROR: The neon internal memory leak checking code is for testing"
|
|
@echo "ERROR: purposes only; this copy of neon must not be installed."
|
|
@false
|
|
|
|
install-yes: install-lib install-headers install-config install-docs install-nls
|
|
|
|
# libtool does all the necessary magic here
|
|
install-lib: subdirs
|
|
$(INSTALL) -d $(DESTDIR)$(libdir)
|
|
$(LIBTOOL) --mode=install $(INSTALL) src/libneon.la \
|
|
$(DESTDIR)$(libdir)/libneon.la
|
|
|
|
install-headers:
|
|
$(INSTALL) -d $(DESTDIR)$(neonincludes)
|
|
@for h in $(DIST_HEADERS); do \
|
|
echo Installing $$h into $(DESTDIR)$(neonincludes); \
|
|
$(INSTALL_DATA) $(srcdir)/src/$$h $(DESTDIR)$(neonincludes)/$$h \
|
|
|| exit 1; \
|
|
done
|
|
|
|
install-config: neon-config neon.pc
|
|
$(INSTALL) -d $(DESTDIR)$(bindir)
|
|
@echo Installing neon-config into $(DESTDIR)$(bindir)
|
|
@$(INSTALL_SCRIPT) neon-config \
|
|
$(DESTDIR)$(bindir)/`echo neon-config|sed '$(transform)'`
|
|
$(INSTALL) -d $(DESTDIR)$(pkgconfigdir)
|
|
$(INSTALL_DATA) neon.pc $(DESTDIR)$(pkgconfigdir)/neon.pc
|
|
|
|
install-tests: install-lib
|
|
@cd test && make install
|
|
|
|
install-nls: install-nls-@NE_FLAG_I18N@
|
|
|
|
install-nls-no:
|
|
@echo NLS not enabled.
|
|
|
|
install-nls-yes:
|
|
@for f in $(LINGUAS); do \
|
|
$(INSTALL) -d $(DESTDIR)$(localedir)/$$f/LC_MESSAGES; \
|
|
$(INSTALL_DATA) $(srcdir)/po/$$f.gmo $(DESTDIR)$(localedir)/$$f/LC_MESSAGES/neon.mo; \
|
|
done
|
|
|
|
ChangeLog:
|
|
svn log > $@
|
|
|
|
update-po:
|
|
@xgettext $(XGETTEXT_OPTS) $(top_srcdir)/src/ne*.c -o $(POTFILE)
|
|
@for f in $(LINGUAS); do \
|
|
echo "> Updating \"$$f\" catalog:"; \
|
|
$(MSGMERGE) --update $(top_srcdir)/po/$$f.po $(POTFILE); \
|
|
$(MSGFMT) --output /dev/null --check-format $(top_srcdir)/po/$$f.po || exit 1; \
|
|
done
|
|
|
|
compile-gmo:
|
|
@for f in $(LINGUAS); do \
|
|
echo "> Compiling \"$$f\" catalog:"; \
|
|
$(MSGFMT) --statistics -c -o po/$$f.gmo $(top_srcdir)/po/$$f.po; \
|
|
done
|
|
|
|
update-copyright: Makefile
|
|
sed -n '/^Copyright/q;p' < README > README.orig
|
|
(cat README.orig; grep -h Copyright src/*.[ch] po/*.po macros/*.m4 \
|
|
| sed -r 's/\(C\) [12].+[0-9],? /(C) /;s/^\#//;s/^dnl//;s/[ ]*//;s/ *$$//;/Orton/d' | sort -u) > README
|
|
|
|
doc-status:
|
|
@echo -n "Missing docs for:"
|
|
@for f in `nm src/.libs/libneon.so | grep ' T ' | colrm 1 11`; do \
|
|
test -f doc/man/$$f.3 || echo -n " $$f"; \
|
|
done; echo
|
|
|