]> matita.cs.unibo.it Git - helm.git/blob - Makefile
implemented "install" target
[helm.git] / Makefile
1
2 include Makefile.defs
3
4 SUBDIRS = components matita
5
6 all: $(foreach d,$(SUBDIRS),rec@all@$(d))
7 opt: $(foreach d,$(SUBDIRS),rec@opt@$(d))
8 world: $(foreach d,$(SUBDIRS),rec@world@$(d))
9 clean: $(foreach d,$(SUBDIRS),rec@clean@$(d))
10 distclean: $(foreach d,$(SUBDIRS),rec@distclean@$(d))
11         rm -rf .matita library-stamp
12 install: $(foreach d,$(SUBDIRS),rec@install@$(d))
13 uninstall: $(foreach d,$(SUBDIRS),rec@uninstall@$(d))
14
15 rec@%:
16         $(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*))
17
18 # {{{ Distribution stuff
19
20 ifeq ($(DISTRIBUTED),yes)
21 library: library-stamp
22 library-stamp:
23         $(MAKE) -C matita/ dist_library_clean dist_library
24         touch $@
25 endif
26
27 BASENAME = matita
28 NULL =
29 DISTDIR = $(BASENAME)-$(MATITA_VERSION)
30 CLEAN_ON_DIST =                 \
31         components/license      \
32         $(NULL)
33 EXTRA_DIST =                    \
34         matita/AUTHORS          \
35         matita/LICENSE          \
36         matita/dist/COPYING     \
37         matita/dist/INSTALL     \
38         matita/dist/README      \
39         matita/dist/ChangeLog   \
40         Makefile                \
41         Makefile.defs.in        \
42         $(NULL)
43
44 distcheck: dist dist_extract dist_test
45
46 dist: dist_mktmpdir dist_export dist_mktarball dist_rmtmpdir
47 dist/configure.ac: configure.ac matita/dist/configure.ac.sed
48         sed -f matita/dist/configure.ac.sed < $< > $@
49 dist/configure: dist/configure.ac
50         cd dist && autoconf
51 dist_mktmpdir:
52         test -d dist || mkdir dist
53 dist_rmtmpdir:
54         test -d dist && rm -rf dist/ || true
55 dist_export: dist/configure
56         rm -rf $(DISTDIR)
57         mkdir $(DISTDIR)
58         svn export components $(DISTDIR)/components
59         svn export matita $(DISTDIR)/matita
60         (cd $(DISTDIR) && rm -f $(CLEAN_ON_DIST))
61         ln -fs matita.conf.xml.user $(DISTDIR)/matita/matita.conf.xml
62         cp $< $(DISTDIR)/configure
63         cp -r $(EXTRA_DIST) $(DISTDIR)
64 dist_mktarball:
65         tar czf $(DISTDIR).tar.gz $(DISTDIR)
66         rm -rf $(DISTDIR)
67
68 dist_extract:
69         tar xzf $(DISTDIR).tar.gz
70 dist_test:
71         (cd $(DISTDIR)/ \
72           && ./configure \
73           && $(MAKE) world \
74           && $(MAKE) library \
75           && $(MAKE) install DESTDIR=`pwd`/install)
76
77 .PHONY: dist dist_export dist_mktarball distcheck dist_extract dist_test dist_autotools
78
79 # }}} End of distribution stuff
80
81 .PHONY: all opt clean distclean
82
83 # vim: set foldmethod=marker: