Merge: doc: fixed some typos and other misc. corrections
[nit.git] / src / Makefile
1 # This file is part of NIT ( http://www.nitlanguage.org ).
2 #
3 # Copyright 2008 Jean Privat <jean@pryen.org>
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16
17 NITCOPT=--semi-global
18 OLDNITCOPT=--semi-global
19 OBJS=nitc nitpick nit nitls nitunit nitx nitlight nitserial nitrestful nitpackage
20 SRCS=$(patsubst %,%.nit,$(OBJS))
21 BINS=$(patsubst %,../bin/%,$(OBJS))
22 MOREOBJS=nitdoc nitweb nitcatalog nitmetrics nitpretty nitweb nitpm
23 MORESRCS=$(patsubst %,%.nit,$(MOREOBJS))
24 MOREBINS=$(patsubst %,../bin/%,$(MOREOBJS))
25 DEPS=$(wildcard *.nit */*.nit) parser/parser.nit
26
27 # Workaround: Cygwin requires peflags to bootstrap
28 peflags := ${shell which peflags 2>/dev/null}
29
30 all: ../bin/nitc
31
32 more: ../bin/nitdoc
33
34 pre-build:
35 ./git-gen-version.sh
36
37 nitc_0: ../c_src/nitc $(DEPS)
38 @echo '***************************************************************'
39 @echo '* Compile nitc_0 from NIT source files *'
40 @echo '***************************************************************'
41 ./git-gen-version.sh
42 ../c_src/nitc ${OLDNITCOPT} -o nitc_0 -v nitc.nit
43 ifdef peflags
44 ${peflags} --cygwin-heap=2048 nitc_0
45 endif
46
47 ../bin/nitc: nitc_0 $(DEPS)
48 @echo '***************************************************************'
49 @echo '* Compile binaries from NIT source files *'
50 @echo '***************************************************************'
51 ./git-gen-version.sh
52 test -d ../bin || mkdir ../bin
53 ./nitc_0 ${NITCOPT} -v --dir ../bin $(SRCS)
54
55 ../bin/nitdoc: ../bin/nitc $(DEPS)
56 ../bin/nitc ${NITCOPT} -v --dir ../bin $(MORESRCS)
57
58 $(OBJS): nitc_0 $(DEPS)
59 ./git-gen-version.sh
60 ./nitc_0 ${NITCOPT} -v $@.nit
61
62 ../c_src/nitc: ../c_src/*.c ../c_src/*.h ../c_src/Makefile
63 @echo '***************************************************************'
64 @echo '* Compile nitc from C source files *'
65 @echo '***************************************************************'
66 cd ../c_src; make
67 rm ../c_src/*.o || true # to reduce disc used
68 ifdef peflags
69 ${peflags} --cygwin-heap=2048 ../c_src/nitc
70 endif
71
72 parser/parser.nit:
73 @echo '***************************************************************'
74 @echo '* Generate nit parser *'
75 @echo '***************************************************************'
76 cd parser; make
77
78 clean:
79 rm -rf -- version.nit nitc_0 2> /dev/null || true
80 cd parser; make clean