]> git.donarmstrong.com Git - lilypond.git/blob - Makefile
release: 0.0.8
[lilypond.git] / Makefile
1 MAJVER=0
2 MINVER=0
3 PATCHLEVEL=8
4
5 TOPDIR  := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
6
7
8 #
9
10 include Sources.make
11 progdocs=$(hdr) $(mycc)
12 gencc=parser.cc lexer.cc
13 cc=$(mycc) $(gencc)
14 obs=$(cc:.cc=.o) 
15
16
17 #dist
18 .EXPORT_ALL_VARIABLES:
19
20 DOCDIR=docdir
21 VERSION=$(MAJVER).$(MINVER).$(PATCHLEVEL)
22 PACKAGENAME=lilypond
23 DNAME=$(PACKAGENAME)-$(VERSION)
24 othersrc=lexer.l parser.y
25 SCRIPTS=make_version make_patch genheader
26 IFILES=dimen.tex symbol.ini suzan.ly maartje.ly\
27         lilyponddefs.tex test.tex .dstreamrc
28 OFILES=Makefile Sources.make COPYING README
29 DFILES=$(hdr) $(mycc) $(othersrc) $(OFILES) $(IFILES) $(SCRIPTS)
30
31 #compiling
32 LOADLIBES=-L$(FLOWERDIR) -lflower
33 FLOWERDIR=../flower
34 # speedy
35 #DEFINES=-DNDEBUG -DNPRINT -O2
36 # lots of debugging info
37 DEFINES=-g
38
39 CXXFLAGS=$(DEFINES) -I$(FLOWERDIR) -pipe -Wall -W  -pedantic 
40 FLEX=flex
41 BISON=bison
42 exe=$(PACKAGENAME)
43
44 ##################################################################
45
46 $(exe): $(obs)
47         $(CXX) -o $@ $(obs) $(LOADLIBES)
48 clean:
49         rm -f $(exe) *.o $(DOCDIR)/* core  
50
51 distclean: clean
52         rm -f TAGS depend version.hh $(gencc) .GENERATE *~
53
54 all: kompijl doc
55
56 # doc++ documentation of classes
57 doc:
58         -mkdir $(DOCDIR)
59         doc++ -p -I -d $(DOCDIR) $(progdocs)
60
61 depend: Sources.make  .GENERATE
62         $(CXX) $(CXXFLAGS) -MM $(cc) > $@
63
64 # hack to create these sources once, before the dependencies
65 .GENERATE:
66         touch .GENERATE depend
67         $(MAKE) version.hh
68         $(MAKE) $(gencc)
69         rm -f depend
70
71 include depend
72
73 parser.cc: parser.y
74         $(BISON) -d $<
75         mv parser.tab.h parser.hh
76         mv parser.tab.c parser.cc
77
78 parser.hh: parser.cc
79
80 version.o: $(obs) version.hh
81
82 version.hh: Makefile make_version
83         make_version $(MAJVER) $(MINVER) $(PATCHLEVEL)  > $@
84
85 lexer.cc: lexer.l
86         $(FLEX) -+ -t $< > $@
87
88 DDIR=$(TOPDIR)/$(DNAME)
89 SUBDIRS=Documentation
90 dist:
91         -mkdir $(DDIR)
92         ln $(DFILES) $(DDIR)/
93         for a in $(SUBDIRS); \
94         do      mkdir $(DDIR)/$$a; \
95                 $(MAKE) -C $$a dist;\
96         done
97         tar cfz $(DNAME).tar.gz $(DNAME)/
98         rm -rf $(DDIR)/
99
100
101 TAGS: $(mycc) $(hdr) Sources.make
102         etags -CT $(mycc) $(hdr) 
103
104