Merge: doc: fixed some typos and other misc. corrections
[nit.git] / src / Makefile
index 1801a9b..dcf9b82 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-NITCOPT=
+NITCOPT=--semi-global
+OLDNITCOPT=--semi-global
+OBJS=nitc nitpick nit nitls nitunit nitx nitlight nitserial nitrestful nitpackage
+SRCS=$(patsubst %,%.nit,$(OBJS))
+BINS=$(patsubst %,../bin/%,$(OBJS))
+MOREOBJS=nitdoc nitweb nitcatalog nitmetrics nitpretty nitweb nitpm
+MORESRCS=$(patsubst %,%.nit,$(MOREOBJS))
+MOREBINS=$(patsubst %,../bin/%,$(MOREOBJS))
+DEPS=$(wildcard *.nit */*.nit) parser/parser.nit
 
-all: ../bin/nitc ../bin/nitdoc ../bin/nits ../bin/nitmetrics ../bin/nitg ../bin/nit
+# Workaround: Cygwin requires peflags to bootstrap
+peflags := ${shell which peflags 2>/dev/null}
 
-../bin/nitc: ../c_src/nitc parser/parser.nit
-       @echo '***************************************************************'
-       @echo '* Compile nitc from NIT source files                          *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../c_src/nitc ${NITCOPT} --clibdir ../c_src/clib -o ../bin/nitc -O -v nitc.nit
+all: ../bin/nitc
 
-../bin/nitdoc: ../bin/nitc
-       @echo '***************************************************************'
-       @echo '* Compile nitdoc from NIT source files                        *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitc ${NITCOPT} -o ../bin/nitdoc -O -v nitdoc.nit
+more: ../bin/nitdoc
 
-../bin/nits: ../bin/nitc
-       @echo '***************************************************************'
-       @echo '* Compile nits from NIT source files                          *'
-       @echo '***************************************************************'
+pre-build:
        ./git-gen-version.sh
-       ../bin/nitc ${NITCOPT} -o ../bin/nits -O -v nits.nit
 
-../bin/nitmetrics: ../bin/nitc
+nitc_0: ../c_src/nitc $(DEPS)
        @echo '***************************************************************'
-       @echo '* Compile nitmetrics from NIT source files                      *'
+       @echo '* Compile nitc_0 from NIT source files                        *'
        @echo '***************************************************************'
        ./git-gen-version.sh
-       ../bin/nitc ${NITCOPT} -o ../bin/nitmetrics -O -v nitmetrics.nit
+       ../c_src/nitc ${OLDNITCOPT} -o nitc_0 -v nitc.nit
+ifdef peflags
+       ${peflags} --cygwin-heap=2048 nitc_0
+endif
 
-../bin/nitg: ../bin/nitc
+../bin/nitc: nitc_0 $(DEPS)
        @echo '***************************************************************'
-       @echo '* Compile nitg from NIT source files                          *'
+       @echo '* Compile binaries from NIT source files                      *'
        @echo '***************************************************************'
        ./git-gen-version.sh
-       ../bin/nitc ${NITCOPT} -o ../bin/nitg -O -v nitg.nit
+       test -d ../bin || mkdir ../bin
+       ./nitc_0 ${NITCOPT} -v --dir ../bin $(SRCS)
 
-../bin/nit: ../bin/nitc
-       @echo '***************************************************************'
-       @echo '* Compile nit from NIT source files                           *'
-       @echo '***************************************************************'
+../bin/nitdoc: ../bin/nitc $(DEPS)
+       ../bin/nitc ${NITCOPT} -v --dir ../bin $(MORESRCS)
+
+$(OBJS): nitc_0 $(DEPS)
        ./git-gen-version.sh
-       ../bin/nitc ${NITCOPT} -o ../bin/nit -O -v nit.nit
+       ./nitc_0 ${NITCOPT} -v $@.nit
 
-../c_src/nitc: ../c_src/*.c ../c_src/*.h ../c_src/nitc._build.sh ../c_src/Makefile
+../c_src/nitc: ../c_src/*.c ../c_src/*.h ../c_src/Makefile
        @echo '***************************************************************'
        @echo '* Compile nitc from C source files                            *'
        @echo '***************************************************************'
        cd ../c_src; make
+       rm ../c_src/*.o || true # to reduce disc used
+ifdef peflags
+       ${peflags} --cygwin-heap=2048 ../c_src/nitc
+endif
 
 parser/parser.nit:
        @echo '***************************************************************'
@@ -73,8 +76,5 @@ parser/parser.nit:
        cd parser; make
 
 clean:
-       rm -rf -- .nit_compile* nit_version.nit 2> /dev/null || true
+       rm -rf -- version.nit nitc_0 2> /dev/null || true
        cd parser; make clean
-
-distclean: clean
-       cd parser; make distclean