]> git.donarmstrong.com Git - lilypond.git/blobdiff - Makefile
partial: 0.0.38.hanjan
[lilypond.git] / Makefile
index 9b1b762a3adb4e06b138d2a4bc21c0d634396223..c990a7246c1356fc06293bb228f6c8deaa094539 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,69 +1,65 @@
+# Makefile
+# top level makefile of LilyPond
+
 include Variables.make 
 
-$(exe): $(obs)
-       $(CXX) -o $@ $^ $(LOADLIBES)
+.SUFFIXES:
+.SUFFIXES: .cc .o .hh .y .l .pod .txt .1 .dep
 
-clean:
-       $(MAKE) -C objects clean
-       rm -f $(exe) *.o $(DOCDIR)/* core  
 
-distclean: clean
-       rm -f  depend version.hh $(gencc) .GENERATE *~
+$(exe): $(obs)
+       $(STRIPDEBUG) $(STABLEOBS)
+       $(LINKER) -o $@ $^ $(LOADLIBES)
 
-all: kompijl doc
+$(m2m):        $(m2mobs)
+       $(LINKER) -o $@ $^ $(LOADLIBES)
 
-# doc++ documentation of classes
-doc:
-       -mkdir $(DOCDIR)
-       doc++ -p -I -d $(DOCDIR) $(progdocs)
+.PHONY: clean docxx
 
-depend: Sources.make .GENERATE
-       touch depend
-       $(MAKE) realdepend
+clean:
+       rm -f $(allexe) $(DOCDIR)/* core $(allobs) 
+       for SUBDIR in $(SUBDIRS); \
+       do \
+               $(MAKE) SUBDIR=$$SUBDIR -C $$SUBDIR clean;\
+       done
 
+distclean: clean
+       rm -f  version.hh $(gencc) .GENERATE *~ $(ALLDEPS) 
 
-$(OBJECTDIR)/%.o: $(CCDIR)/%.cc
-       $(CXX) -c $(CXXFLAGS) $(OUTPUT_OPTION)
+all: $(exe) $(m2m) doc
 
-# hack to create these sources once, before the dependencies
-.GENERATE:
-       touch .GENERATE depend
-       $(MAKE) version.hh
-       $(MAKE) $(gencc)
-       rm -f depend
+# value of $(OSTYPE) on windhoos; "make $OSTYPE" if you use bash :-)
+win32: 
+       $(MAKE) -C . CXX=g++ 
 
-realdepend: $(cc)
-       $(CXX) $(CXXFLAGS) -MM $^ |  perl -ne 's#hdr/proto.hh##; s/^(.+)\.o/'$(OBJECTDIR)'\/\1.o/; print;' > depend
+doc:
+       $(MAKE) -C Documentation doc
 
-include depend
+# doc++ documentation of classes
+docxx: $(progdocs)     
+       doc++ -kp -d $(DOCDIR) $^
 
-$(CCDIR)/parser.cc: parser.y
-       $(BISON) -d $<
-       mv $(CCDIR)/parser.tab.h $(HEADERDIR)/parser.hh
-       mv $(CCDIR)/parser.tab.c $@
 
-parser.hh: parser.cc
+include $(DEPDIR)/*.dep
 
-version.o: $(obs) version.hh
+$(OBJECTDIR)/%.o: $(CCDIR)/%.cc
+       $(DODEP)\
+       $(CXX) -c $(CXXFLAGS) $(OUTPUT_OPTION) 
 
-hdr/version.hh: Variables.make make_version
-       make_version $(MAJVER) $(MINVER) $(PATCHLEVEL)  > $@
+$(OBJECTDIR)/version.o: $(obs) $(HEADERDIR)/version.hh
 
-$(CCDIR)/lexer.cc: lexer.l
-       $(FLEX) -+ -t $< > $@
+include Generate.make
 
 dist:
        -mkdir $(DDIR)
        ln $(DFILES) $(DDIR)/
-       for a in $(SUBDIRS); \
-       do      mkdir $(DDIR)/$$a; \
-               $(MAKE) -C $$a dist;\
+       for SUBDIR in $(SUBDIRS); \
+       do      mkdir $(DDIR)/$$SUBDIR; \
+               $(MAKE) SUBDIR=$$SUBDIR -C $$SUBDIR dist;\
        done
        tar cfz $(DNAME).tar.gz $(DNAME)/
        rm -rf $(DDIR)/
 
-
-
 TAGS:
        $(MAKE) -C $(HEADERDIR) TAGS
        $(MAKE) -C $(CCDIR) TAGS