Merge: doc: fixed some typos and other misc. corrections
[nit.git] / src / Makefile
index 90d85c8..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/nitdoc ../bin/nitmetrics ../bin/nitg ../bin/nit ../bin/nitx ../bin/nitunit ../bin/nitlight ../bin/nitls ../bin/nitdbg_server ../bin/nitdbg_client
+# Workaround: Cygwin requires peflags to bootstrap
+peflags := ${shell which peflags 2>/dev/null}
 
-../bin/nitg: ../c_src/nitg parser/parser.nit
-       @echo '***************************************************************'
-       @echo '* Compile nitg from NIT source files                          *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../c_src/nitg ${NITCOPT} -o ../bin/nitg -v nitg.nit
-
-../bin/nitdoc: ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitdoc from NIT source files                        *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitdoc -v nitdoc.nit
-
-../bin/nitmetrics: ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitmetrics from NIT source files                      *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitmetrics -v nitmetrics.nit
-
-../bin/nit: ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nit from NIT source files                           *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nit -v nit.nit
+all: ../bin/nitc
 
-../bin/nitdbg_client : ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitdbg_client from NIT source files                      *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitdbg_client -v nitdbg_client.nit
+more: ../bin/nitdoc
 
-../bin/nitdbg_server : ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitdbg_server from NIT source files                      *'
-       @echo '***************************************************************'
+pre-build:
        ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitdbg_server -v nitdbg_server.nit
 
-../bin/nitx: ../bin/nitg
+nitc_0: ../c_src/nitc $(DEPS)
        @echo '***************************************************************'
-       @echo '* Compile nitx from NIT source files                          *'
+       @echo '* Compile nitc_0 from NIT source files                        *'
        @echo '***************************************************************'
        ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitx -v nitx.nit
+       ../c_src/nitc ${OLDNITCOPT} -o nitc_0 -v nitc.nit
+ifdef peflags
+       ${peflags} --cygwin-heap=2048 nitc_0
+endif
 
-../bin/nitunit : ../bin/nitg
+../bin/nitc: nitc_0 $(DEPS)
        @echo '***************************************************************'
-       @echo '* Compile nitunit from NIT source files                       *'
+       @echo '* Compile binaries from NIT source files                      *'
        @echo '***************************************************************'
        ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitunit -v nitunit.nit
+       test -d ../bin || mkdir ../bin
+       ./nitc_0 ${NITCOPT} -v --dir ../bin $(SRCS)
 
-../bin/nitlight : ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitlight from NIT source files                      *'
-       @echo '***************************************************************'
-       ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitlight -v nitlight.nit
+../bin/nitdoc: ../bin/nitc $(DEPS)
+       ../bin/nitc ${NITCOPT} -v --dir ../bin $(MORESRCS)
 
-../bin/nitls : ../bin/nitg
-       @echo '***************************************************************'
-       @echo '* Compile nitls from NIT source files                         *'
-       @echo '***************************************************************'
+$(OBJS): nitc_0 $(DEPS)
        ./git-gen-version.sh
-       ../bin/nitg ${NITCOPT} -o ../bin/nitls -v nitls.nit
+       ./nitc_0 ${NITCOPT} -v $@.nit
 
-../c_src/nitg: ../c_src/*.c ../c_src/*.h ../c_src/Makefile
+../c_src/nitc: ../c_src/*.c ../c_src/*.h ../c_src/Makefile
        @echo '***************************************************************'
-       @echo '* Compile nitg from C source files                            *'
+       @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 '***************************************************************'
@@ -101,8 +76,5 @@ parser/parser.nit:
        cd parser; make
 
 clean:
-       rm -rf -- .nit_compile* 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