]> matita.cs.unibo.it Git - helm.git/blob - Makefile
distribute more stuff
[helm.git] / Makefile
1 H=@
2
3 include Makefile.defs
4
5 SUBDIRS = components matita
6
7 ifeq ($(DISTRIBUTED),yes)
8 all: depend $(foreach d,$(SUBDIRS),rec@all@$(d))
9 opt: depend $(foreach d,$(SUBDIRS),rec@opt@$(d))
10 else
11 all: $(foreach d,$(SUBDIRS),rec@all@$(d))
12 opt: $(foreach d,$(SUBDIRS),rec@opt@$(d))
13 endif
14 world: depend $(foreach d,$(SUBDIRS),rec@world@$(d))
15 depend: depend-stamp
16 depend-stamp:
17 ifeq ($(HAVE_OCAMLOPT),yes)
18  ifeq ($(DISTRIBUTED),yes)
19         $(MAKE) $(foreach d,$(SUBDIRS),rec@depend.opt@$(d))
20  else
21         $(MAKE) $(foreach d,$(SUBDIRS),rec@depend@$(d))
22  endif
23 else
24         $(MAKE) $(foreach d,$(SUBDIRS),rec@depend@$(d))
25 endif
26         $(H)touch depend-stamp
27
28 clean: $(foreach d,$(SUBDIRS),rec@clean@$(d))
29 distclean: $(foreach d,$(SUBDIRS),rec@distclean@$(d))
30         $(H)rm -rf .matita library-stamp depend-stamp
31 install: $(foreach d,$(SUBDIRS),rec@install@$(d))
32 uninstall: $(foreach d,$(SUBDIRS),rec@uninstall@$(d))
33
34 rec@%:
35         $(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*))
36
37 # {{{ Distribution stuff
38
39 ifeq ($(DISTRIBUTED),yes)
40 library: library-stamp
41 library-stamp:
42         $(MAKE) -C matita/ dist_library
43         touch $@
44 endif
45
46 BASENAME = matita
47 NULL =
48 DISTDIR = $(BASENAME)-$(MATITA_VERSION)
49 CLEAN_ON_DIST =                 \
50         components/license      \
51         $(NULL)
52 EXTRA_DIST =                    \
53         matita/AUTHORS          \
54         matita/LICENSE          \
55         matita/dist/BUGS        \
56         matita/dist/ChangeLog   \
57         matita/dist/COPYING     \
58         matita/dist/INSTALL     \
59         matita/dist/README      \
60         Makefile                \
61         Makefile.defs.in        \
62         $(NULL)
63
64 distcheck: dist dist_extract dist_test
65
66 dist: dist_mktmpdir dist_pre dist_export dist_mktarball dist_rmtmpdir
67 dist/configure.ac: configure.ac matita/dist/configure.ac.sed
68         sed -f matita/dist/configure.ac.sed < $< > $@
69 dist/configure: dist/configure.ac
70         cd dist && autoconf
71 dist_mktmpdir:
72         test -d dist || mkdir dist
73 dist_rmtmpdir:
74         test -d dist && rm -rf dist/ || true
75 dist_pre:
76         $(MAKE) -C matita dist_pre
77 dist_export: dist/configure
78         rm -rf $(DISTDIR)
79         mkdir $(DISTDIR)
80         svn export components $(DISTDIR)/components
81         svn export matita $(DISTDIR)/matita
82         (cd $(DISTDIR) && find . -name .depend -exec rm \{\} \;)
83         (cd $(DISTDIR) && rm -f $(CLEAN_ON_DIST))
84         cp $< $(DISTDIR)/configure
85         cp -r $(EXTRA_DIST) $(DISTDIR)
86         # distribute HTML version of the manual
87         mkdir -p $(DISTDIR)/docs/manual/
88         $(MAKE) -C matita/help/C/ install DESTDIR=$(CURDIR)/$(DISTDIR)/docs/manual/
89 dist_mktarball:
90         tar czf $(DISTDIR).tar.gz $(DISTDIR)
91         rm -rf $(DISTDIR)
92
93 dist_extract:
94         tar xzf $(DISTDIR).tar.gz
95 dist_test:
96         (cd $(DISTDIR)/ \
97           && ./configure \
98           && $(MAKE) world \
99           && $(MAKE) install DESTDIR=`pwd`/install)
100
101 .PHONY: dist dist_export dist_mktarball distcheck dist_extract dist_test dist_autotools
102
103 # }}} End of distribution stuff
104
105 .PHONY: all opt clean distclean
106
107 # vim: set foldmethod=marker: