Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 101 lines (83 sloc) 3.263 kb
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
1 ### CONFIGURATION
2
3 # How to run CLR programs; can be blank for Win32
4 RUN_CLR=mono
11bf899 @sorear Revert use of collectable assemblies for eval
authored
5 CSC=gmcs
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
6 RM=rm -f
7 CP=cp
8
9 cskernel=Kernel.cs Builtins.cs Cursor.cs JSYNC.cs NieczaCLR.cs
10 csbackend=CLRBackend.cs
b94a627 @sorear Revise downcall protocol (ki9a++) and use downcalls to invoke CLRBackend
authored
11 csxdr=CrossDomainReceiver.cs
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
12
c58db17 @mberends [Makefile] add targets aot spectest clean realclean and help
mberends authored
13 # Tell make to regard the following targets as not being filenames
14 .PHONY: all aot test spectest clean realclean
15 .PHONY: help
16
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
17 # keep this in dependency order
82bb637 @sorear Update bootstrap to one built against the 2.0 runtime
authored
18 libunits=CORE JSYNC
a06dd3c @sorear Mergeback and factor out OpHelpers/GetOptLong
authored
19 srcunits=CClass Body Unit CgOp Op OpHelpers Sig RxOp NAME Stash STD \
20 NieczaGrammar Metamodel OptRxSimple NAMOutput Operator NieczaActions \
3e85a71 @sorear Operator handling unification (postfix)
authored
21 NieczaFrontendSTD NieczaPassBegin NieczaPassBeta NieczaPassSimplifier \
22 NieczaPathSearch NieczaBackendNAM NieczaBackendDotnet \
a06dd3c @sorear Mergeback and factor out OpHelpers/GetOptLong
authored
23 NieczaBackendClisp NieczaCompiler GetOptLong
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
24
1b13b31 @sorear Auto-compile setting on make to end p6eval timeouts
authored
25 all: run/Niecza.exe obj/Kernel.dll obj/CORE.nam obj/CLRBackend.exe
c58db17 @mberends [Makefile] add targets aot spectest clean realclean and help
mberends authored
26 @git describe --tags > VERSION
eab7f8a @sorear Add test and p6eval make targets
authored
27
dafccd8 @sorear Kill SAFE/CORE division; use is unsafe to implement safe mode
authored
28 obj/CORE.nam: run/Niecza.exe obj/CLRBackend.exe lib/CORE.setting
1b13b31 @sorear Auto-compile setting on make to end p6eval timeouts
authored
29 $(RUN_CLR) run/Niecza.exe -C CORE
30
eab7f8a @sorear Add test and p6eval make targets
authored
31 run/Niecza.exe: .fetch-stamp $(patsubst %,src/%.pm6,$(srcunits)) src/niecza
e23237d @sorear On second thought, don't pass -I to bootstrap
authored
32 cd src && $(RUN_CLR) ../boot/run/Niecza.exe -v -c -Bnam niecza
bd091ab @sorear Change Makefile to support dash builtin [
authored
33 for nfile in $(libunits) $(srcunits); do \
34 if [ boot/obj/$$nfile.nam -nt boot/obj/$$nfile.dll -o \
35 ! -e boot/obj/$$nfile.dll ]; then \
36 echo $$nfile; \
0cdc4fd @sorear Only run nam->dll step if file changed
authored
37 $(RUN_CLR) boot/obj/CLRBackend.exe boot/obj $$nfile.nam $$nfile.dll 0; \
38 fi; done
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
39 $(RUN_CLR) boot/obj/CLRBackend.exe boot/obj MAIN.nam MAIN.exe 1
b94a627 @sorear Revise downcall protocol (ki9a++) and use downcalls to invoke CLRBackend
authored
40 $(CP) $(patsubst %,boot/obj/%.dll,Kernel CrossDomainReceiver $(libunits) $(srcunits)) run/
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
41 $(CP) boot/obj/MAIN.exe run/Niecza.exe
42
43 .fetch-stamp: FETCH_URL
44 -rm -rf boot/
45 mkdir boot
46 wget --no-check-certificate -Oboot/niecza.zip $$(cat FETCH_URL)
47 cd boot && unzip niecza.zip
48 touch .fetch-stamp
49
b94a627 @sorear Revise downcall protocol (ki9a++) and use downcalls to invoke CLRBackend
authored
50 obj/CrossDomainReceiver.dll: $(patsubst %,lib/%,$(csxdr))
51 $(CSC) /target:library /out:obj/CrossDomainReceiver.dll \
52 $(patsubst %,lib/%,$(csxdr))
53 obj/Kernel.dll: $(patsubst %,lib/%,$(cskernel)) obj/CrossDomainReceiver.dll
54 $(CSC) /target:library /out:obj/Kernel.dll /r:CrossDomainReceiver.dll \
55 /lib:obj /unsafe+ $(patsubst %,lib/%,$(cskernel))
56 obj/CLRBackend.exe: $(patsubst %,lib/%,$(csbackend)) obj/Kernel.dll obj/CrossDomainReceiver.dll
923eae5 @sorear Redo build system; bootstrapped niecza is live
authored
57 $(CSC) /target:exe /lib:obj /out:obj/CLRBackend.exe /r:Kernel.dll \
b94a627 @sorear Revise downcall protocol (ki9a++) and use downcalls to invoke CLRBackend
authored
58 /r:CrossDomainReceiver.dll $(patsubst %,lib/%,$(csbackend))
eab7f8a @sorear Add test and p6eval make targets
authored
59
c58db17 @mberends [Makefile] add targets aot spectest clean realclean and help
mberends authored
60 aot:
61 mono --aot run/*.dll run/Niecza.exe
62
eab7f8a @sorear Add test and p6eval make targets
authored
63 test: all
64 $(RUN_CLR) run/Niecza.exe -c test.pl
762eae4 @sorear Note 2.6 breakage in README
authored
65 prove -e "$(RUN_CLR)" obj/MAIN.exe
eab7f8a @sorear Add test and p6eval make targets
authored
66
c58db17 @mberends [Makefile] add targets aot spectest clean realclean and help
mberends authored
67 spectest: all
68 @t/run_spectests
69
eab7f8a @sorear Add test and p6eval make targets
authored
70 p6eval: all
71 $(RUN_CLR) run/Niecza.exe -C CORE Test JSYNC
c58db17 @mberends [Makefile] add targets aot spectest clean realclean and help
mberends authored
72
73 clean:
74 @touch obj/CORE.dll obj/MAIN.exe obj/MAIN.nam
75 @rm obj/*.dll obj/*.exe obj/*.nam
76 @touch run/Niecza.exe
77 @rm run/Niecza.exe
78 @touch run/CORE.dll
79 @rm run/*.dll
80 @touch run/CORE.dll.so
81 @rm run/*.dll.so
82 @touch a~
83 @rm -r *~
84
85 realclean: clean
86 @rm .fetch-stamp
87
88 help:
89 @echo ''
90 @echo 'You can make the following targets in this Niecza Makefile:'
91 @echo ''
92 @echo 'all the main Niecza compiler and runtime files (default)'
93 @echo 'aot Ahead of Time compile run/Niecza.exe and run/*.dll (increases speed)'
94 @echo 'test run/Niecza.exe test.pl'
95 @echo 'spectest t/run_spectests'
96 @echo 'clean remove all generated files'
97 @echo 'realclean clean and also require new download of bootstrap files'
98 @echo 'help this list of targets'
99 @echo ''
100
Something went wrong with that request. Please try again.