-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBuild.txt
67 lines (65 loc) · 6.19 KB
/
Build.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
MakeObjects(dir : String, ext : String, cmd : String, sources : String) : String = DeclareTarget("$(BUILDDIR)/" + dir + "/%." + ext + ".o", "$(SRCDIR)/" + dir + "/%." + ext + " $(HEADERS)", cmd, false) + CreateObjects("$(BUILDDIR)/" + dir + "/%." + ext + ".o", "$(SRCDIR)/" + dir + "/%." + ext, sources)
LDTarget(out : String, objs : String, libs : String, ld : String, ldFlags : String, deps : String) : String = DeclareTarget("$(BUILDDIR)/" + out, objs + deps + " $(BUILDDIR)/libExtras.a", ld + " " + ldFlags + " " + objs + " -o $@ " + libs + " -L $(BUILDDIR) -l Extras", false)
DefaultRunTargets(name : String, app : String, args : String) : Void = DeclareTarget("run" + name, app, "./$< " + args, true) + DeclareTarget("debug" + name, app, "$(VALGRIND) $(VALGRINDFLAGS) ./$< " + args, true)
DefaultTarget(out : String, dir : String, libs : String, run : String, args : String, runDeps : String) : Void = {
LDTarget(out, MakeObjects(dir, "cpp", "$(CXX) $(CXXFLAGS) -c $< -o $@", FindFiles("$(SRCDIR)/" + dir, ".cpp")), libs + " -L $(BUILDDIR) -l Math", "$(CXX)", "$(CXXFLAGS)", "$(BUILDDIR)/libMath.a"),
DefaultRunTargets(run, "$(BUILDDIR)/" + out + " " + runDeps, args)
}
DefaultTarget("Tests.out", "Tests", "", "Test", "", "")
DefaultTarget("Build.out", "BuildSystem", "", "Build", "Build.txt $(BUILDDIR)/Build.mk", "")
DefaultTarget("MathGraph.out", "Math/Graph", "-l SDL2", "Graph", "$(MATHPROGRAMS)", "")
DefaultTarget("Quiz.out", "Math/Quiz", "", "Quiz", "$(MATHPROGRAMS)", "")
DefaultTarget("Rope.out", "Physics/Rope", "-l SDL2", "Rope", "", "")
DefaultTarget("ReactionBalancer.out", "Chemistry/ReactionBalancer", "", "Reaction", "$(CHEMPROGRAM)", "")
DefaultTarget("MachineLearning.out", "MachineLearning", "", "ML", "$(BUILDDIR)/ML.bin $(MLITERS)", "")
DefaultTarget("4D.out", "4D", "-l SDL2", "4D", "$(4DARGS)", "")
DefaultTarget("Cryptography.out", "Cryptography", "", "Crypt", "$(CRYPTMSG)", "")
DefaultTarget("ComplexAnimation.out", "Math/ComplexAnimation", "-l SDL2", "ComplexAnim", "$(ANIMATIONFILE) $(BUILDDIR) $(BUILDDIR)/Animation.mp4", "")
DefaultTarget("SlotMachine.out", "Games/SlotMachine", "-l SDL2", "Slot", "", "")
DefaultTarget("X86.out", "Emulator/X86", "", "X86", "$(BUILDDIR)/X86.bin", "$(BUILDDIR)/X86.bin")
DefaultTarget("Music.out", "Music", "", "Music", "$(BUILDDIR)/Music.wav", "")
DefaultTarget("Server.out", "Server", "", "Server", "$(SERVERPORT)", "")
DefaultTarget("Interpreter.out", "Interpreter", "", "Interpreter", "$(INTERPRETERPROGRAM)", "")
DefaultTarget("DiskGenerator.out", "DiskGenerator", "", "DiskGen", "$(DISKARGS)", "")
DefaultTarget("IsomerGenerator.out", "Chemistry/IsomerGenerator", "", "IsomerGen", "$(CARBONS)", "")
DefaultTarget("Gravity.out", "Physics/Gravity", "-l SDL2", "Gravity", "", "")
DefaultTarget("MathArch.out", "Emulator/MathArch", "", "MathArch", "", "")
DefaultTarget("Circuit.out", "Circuit", "", "Circuit", "", "")
DefaultTarget("Polynomial.out", "Math/Polynomial", "", "Polynomial", "$(POLYNOMIAL)", "")
DefaultTarget("Paint.out", "Paint", "-l SDL2", "Paint", "", "")
DefaultTarget("ImageConverter.out", "ImageConverter", "-l SDL2", "ImgConv", "$(IMGCONVARGS)", "")
DefaultTarget("ELFParser.out", "ELFParser", "", "ELF", "$(ELFARGS)", "")
DefaultTarget("RootFinder.out", "Math/RootFinder", "", "RootFinder", "", "")
DefaultTarget("PolynomialApproximation.out", "Math/PolynomialApproximation", "", "PolyAprox", "", "")
DefaultTarget("Cards.out", "Games/Cards", "-l SDL2", "Cards", "", "")
DefaultTarget("GameOfLife.out", "Games/GameOfLife", "-l SDL2", "GOL", "", "")
DefaultTarget("Ray.out", "Physics/Ray", "-l SDL2", "Ray", "", "")
DefaultTarget("Quantum.out", "Physics/Quantum", "-l SDL2", "Quantum", "", "")
DefaultTarget("GameEngine.out", "Games/GameEngine", "-l SDL2", "Engine", "", "")
DefaultTarget("Database.out", "Database", "", "DB", "$(DBARGS)", "")
DefaultTarget("ImageProcessing.out", "ImageProcessing", "-l SDL2", "ImgProc", "$(IMGPROCARGS)", "")
DefaultTarget("Probability.out", "Math/Probability", "", "Prob", "", "")
DefaultTarget("Animation.out", "Animation", "-l SDL2", "Anim", "", "")
DefaultTarget("6502.out", "Emulator/6502", "", "6502", "", "")
DefaultTarget("AML.out", "Emulator/AML", "", "AML", "$(BUILDDIR)/Main.aml", "$(BUILDDIR)/Main.aml")
DefaultTarget("GameTheory.out", "Games/GameTheory", "", "GameTheory", "", "")
DefaultTarget("Sequence.out", "Math/Sequence", "", "Sequence", "", "")
DefaultTarget("Automaton.out", "Automaton", "", "Automaton", "", "")
DefaultTarget("HeaderTree.out", "HeaderTree", "", "HeaderTree", "$(HEADERTREEINPUT)", "")
DefaultTarget("FormalSystem.out", "FormalSystem", "", "FormalSystem", "", "")
DefaultTarget("ChaosTheory.out", "Math/ChaosTheory", "-l SDL2", "Chaos", "", "")
DefaultTarget("BNF.out", "BNF", "", "BNF", "", "")
DeclareTarget("$(BUILDDIR)/Main.aml", "$(SRCDIR)/TestPrograms/ACPI/Main.asl $(SCRIPTSDIR)/CompileASL.py", "$(PYTHON) Scripts/CompileASL.py $< $@ $(ASLFLAGS)", false)
DeclareTarget("$(BUILDDIR)/X86.bin", "$(SRCDIR)/TestPrograms/X86/Program.asm", "$(AS) -f bin $< -o $@", false)
DeclareTarget("$(BUILDDIR)/FAT.img", "$(OSROOT)/HDD/*", "dd if=/dev/zero of=$@ bs=512 count=93750 && mformat -i $@ :: && mcopy -i $@ -s $< ::", false)
DeclareTarget("$(BUILDDIR)/OS.img", "$(BUILDDIR)/Kernel.elf $(OSROOT)/CD/*", "cp $< $(OSROOT)/CD/boot/Kernel.elf && grub-mkrescue -quiet -l -J -R -o $@ $(OSROOT)/CD && rm $(OSROOT)/CD/boot/Kernel.elf", false)
DeclareTarget("$(BUILDDIR)/OS.gdb", "$(SCRIPTSDIR)/MakeGDB.py", "$(PYTHON) $< $@ $(BUILDDIR)/Kernel.elf Main '$(OSQEMUCMD)'", false)
MakeObjects("OS", "s", "$(AS) $(ASFLAGS) $< -o $@", "$(BUILDDIR)/OS/crti.s $(BUILDDIR)/OS/crtn.s")
kernelObjs : String =
"$(BUILDDIR)/OS/crti.s.o $(shell $(OSCXX) $(OSCXXFLAGS) -print-file-name=crtbegin.o) " +
MakeObjects("OS", "cpp", "$(OSCXX) $(OSCXXFLAGS) -c $< -o $@", FindFiles("$(SRCDIR)/OS", ".cpp")) +
MakeObjects("OS", "asm", "$(AS) $(ASFLAGS) $< -o $@", FindFiles("$(SRCDIR)/OS", ".asm")) +
"$(shell $(OSCXX) $(OSCXXFLAGS) -print-file-name=crtend.o) $(BUILDDIR)/OS/crtn.s.o "
LDTarget("Kernel.elf", kernelObjs, "-l gcc", "$(OSCXX)", "$(OSLDFLAGS)", "$(OSLINKER)")
DeclareTarget("runOS", "$(BUILDDIR)/OS.img $(BUILDDIR)/FAT.img", "$(OSQEMUCMD) -debugcon stdio", true)
DeclareTarget("debugOS", "$(BUILDDIR)/OS.gdb $(BUILDDIR)/OS.img $(BUILDDIR)/FAT.img", "gdb -x $<", true)