H=@ include Makefile.defs SUBDIRS = components matita ifeq ($(DISTRIBUTED),yes) # 'world' is the default target when distributed, otherwise 'all' is world: depend $(foreach d,$(SUBDIRS),rec@world@$(d)) all: depend $(foreach d,$(SUBDIRS),rec@all@$(d)) opt: depend $(foreach d,$(SUBDIRS),rec@opt@$(d)) else all: $(foreach d,$(SUBDIRS),rec@all@$(d)) opt: $(foreach d,$(SUBDIRS),rec@opt@$(d)) world: depend $(foreach d,$(SUBDIRS),rec@world@$(d)) endif depend: depend-stamp depend-stamp: ifeq ($(HAVE_OCAMLOPT),yes) ifeq ($(DISTRIBUTED),yes) $(MAKE) $(foreach d,$(SUBDIRS),rec@depend.opt@$(d)) else $(MAKE) $(foreach d,$(SUBDIRS),rec@depend@$(d)) endif else $(MAKE) $(foreach d,$(SUBDIRS),rec@depend@$(d)) endif $(H)touch depend-stamp clean: $(H)make $(foreach d,$(SUBDIRS),rec@clean@$(d)) || true distclean: $(H)make $(foreach d,$(SUBDIRS),rec@distclean@$(d)) || true $(H)rm -rf .matita library-stamp depend-stamp install-indep: $(foreach d,$(SUBDIRS),rec@install-indep@$(d)) install-arch: $(foreach d,$(SUBDIRS),rec@install-arch@$(d)) install: install-indep install-arch uninstall: $(foreach d,$(SUBDIRS),rec@uninstall@$(d)) rec@%: $(MAKE) -C $(word 2, $(subst @, ,$*)) $(word 1, $(subst @, ,$*)) DESTDIR=$(shell pwd)/$(DESTDIR) # {{{ Distribution stuff ifeq ($(DISTRIBUTED),yes) library: library-stamp library-stamp: $(MAKE) -C matita/ dist_library touch $@ endif BASENAME = matita NULL = DISTDIR = $(BASENAME)-$(MATITA_VERSION) CLEAN_ON_DIST = \ components/license \ matita/TPTP/ \ matita/dama/ \ matita/contribs/ \ matita/library/assembly/ \ matita/library_auto/ \ $(NULL) EXTRA_DIST = \ matita/AUTHORS \ matita/LICENSE \ matita/dist/BUGS \ matita/dist/ChangeLog \ matita/dist/COPYING \ matita/dist/INSTALL \ matita/dist/README \ Makefile \ Makefile.defs.in \ $(NULL) EXTRA_DIST_matita = \ matita/matitaGeneratedGui.ml \ $(NULL) distcheck: dist dist_extract dist_test dist: dist_mktmpdir dist_pre dist_export dist_mktarball dist_rmtmpdir dist/configure.ac: configure.ac matita/dist/configure.ac.sed sed -f matita/dist/configure.ac.sed < $< > $@ dist/configure: dist/configure.ac cd dist && autoconf dist_mktmpdir: test -d dist || mkdir dist dist_rmtmpdir: test -d dist && rm -rf dist/ || true dist_pre: $(MAKE) -C matita dist_pre dist_export: dist/configure rm -rf $(DISTDIR) mkdir $(DISTDIR) svn export components $(DISTDIR)/components svn export matita $(DISTDIR)/matita (cd $(DISTDIR) && find . -name .depend -exec rm \{\} \;) (cd $(DISTDIR) && find . -name .depend.opt -exec rm \{\} \;) (cd $(DISTDIR) && rm -rf $(CLEAN_ON_DIST)) cp $< $(DISTDIR)/configure cp -r $(EXTRA_DIST) $(DISTDIR) cp -r $(EXTRA_DIST_matita) $(DISTDIR)/matita # distribute HTML version of the manual mkdir -p $(DISTDIR)/docs/manual/ $(MAKE) -C matita/help/C/ install DESTDIR=$(CURDIR)/$(DISTDIR)/docs/manual/ dist_mktarball: tar czf $(DISTDIR).tar.gz $(DISTDIR) #tar cjf $(DISTDIR).tar.bz2 $(DISTDIR) rm -rf $(DISTDIR) dist_extract: tar xzf $(DISTDIR).tar.gz dist_test: (cd $(DISTDIR)/ \ && ./configure \ && $(MAKE) world \ && $(MAKE) install DESTDIR=`pwd`/install) .PHONY: dist dist_export dist_mktarball distcheck dist_extract dist_test dist_autotools # }}} End of distribution stuff .PHONY: all opt clean distclean # vim: set foldmethod=marker: