X-Git-Url: http://matita.cs.unibo.it/gitweb/?p=helm.git;a=blobdiff_plain;f=Makefile;fp=Makefile;h=9e62f693582212ef20f5241590a34cf9e4c6696a;hp=0000000000000000000000000000000000000000;hb=f61af501fb4608cc4fb062a0864c774e677f0d76;hpb=58ae1809c352e71e7b5530dc41e2bfc834e1aef1 diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..9e62f6935 --- /dev/null +++ b/Makefile @@ -0,0 +1,124 @@ +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: