# See the License for the specific language governing permissions and
# limitations under the License.
-NITCOPT=
-OLDNITCOPT= --no-stacktrace
+NITCOPT=--semi-global
+OLDNITCOPT=--semi-global
+OBJS=nitc nitpick nit nitls nitunit nitpm nitx nitlight nitserial nitrestful
+SRCS=$(patsubst %,%.nit,$(OBJS))
+BINS=$(patsubst %,../bin/%,$(OBJS))
+MOREOBJS=nitdoc nitweb nitcatalog nitmetrics nitpretty nitweb
+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_client
+# Workaround: Cygwin requires peflags to bootstrap
+peflags := ${shell which peflags 2>/dev/null}
-nitg_0: ../c_src/nitg parser/parser.nit
- @echo '***************************************************************'
- @echo '* Compile nitg_0 from NIT source files *'
- @echo '***************************************************************'
- ./git-gen-version.sh
- ../c_src/nitg ${OLDNITCOPT} -o nitg_0 -v nitg.nit
-
-../bin/nitg: nitg_0 parser/parser.nit
- @echo '***************************************************************'
- @echo '* Compile nitg from NIT source files *'
- @echo '***************************************************************'
- ./git-gen-version.sh
- ./nitg_0 ${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
+all: ../bin/nitc
-../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
+more: ../bin/nitdoc
-../bin/nitdbg_client : ../bin/nitg
- @echo '***************************************************************'
- @echo '* Compile nitdbg_client from NIT source files *'
- @echo '***************************************************************'
+pre-build:
./git-gen-version.sh
- ../bin/nitg ${NITCOPT} -o ../bin/nitdbg_client -v nitdbg_client.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 '***************************************************************'
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