From 7501f1ed100d5add9e3bf14a66e80cf40b3ce2da Mon Sep 17 00:00:00 2001 From: nub31 Date: Sun, 29 Jun 2025 16:04:00 +0200 Subject: [PATCH] ... --- example/.gitignore | 4 ++-- example/makefile | 8 ++++---- src/compiler/CLI/Program.cs | 26 ++++++++++++++------------ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/example/.gitignore b/example/.gitignore index b65ea6d..89c4603 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -1,2 +1,2 @@ -bin -bin-int +out +out.a \ No newline at end of file diff --git a/example/makefile b/example/makefile index 2ab521c..9f22236 100644 --- a/example/makefile +++ b/example/makefile @@ -1,10 +1,10 @@ CFLAGS = -Wall -Werror -Wextra -g -OBJECTS := $(shell dotnet run --project ../src/compiler/CLI/CLI.csproj src/main.nub src/c.nub) +OBJECTS := $(shell ) example: - mkdir -p bin - gcc $(CFLAGS) -o bin/out lib/libruntime_x64.a $(OBJECTS) + dotnet run --project ../src/compiler/CLI/CLI.csproj src/main.nub src/c.nub + gcc $(CFLAGS) -o out lib/libruntime_x64.a out.a clean: - rm -r bin bin-int + rm -r out.a out diff --git a/src/compiler/CLI/Program.cs b/src/compiler/CLI/Program.cs index 0c7eb8c..db683c5 100644 --- a/src/compiler/CLI/Program.cs +++ b/src/compiler/CLI/Program.cs @@ -5,14 +5,13 @@ using Syntax.Diagnostics; using Syntax.Parsing; using Syntax.Tokenization; using Syntax.Typing; -using Binder = Syntax.Typing.Binder; -const string OUT_DIR = "bin-int"; - -if (Directory.Exists(OUT_DIR)) -{ - Directory.Delete(OUT_DIR, true); -} +// const string OUT_DIR = "bin-int"; +// +// if (Directory.Exists(OUT_DIR)) +// { +// Directory.Delete(OUT_DIR, true); +// } var files = new List(); @@ -84,18 +83,21 @@ foreach (var file in files) return 1; } - var fileName = $"{StringRandomizer.GenerateUniqueHexString(8)}_{Path.GetFileNameWithoutExtension(file)}.o"; - var objPath = Path.Combine(OUT_DIR, fileName); - var asmSuccess = await GCC.Assemble(asm, objPath); + var fileName = Path.GetTempFileName(); + var asmSuccess = await GCC.Assemble(asm, fileName); if (!asmSuccess) { return 1; } - objectFiles.Add(objPath); + objectFiles.Add(fileName); } -Console.Out.WriteLine(string.Join('\t', objectFiles)); +var archiveResult = await Archive.Invoke("out.a", objectFiles); +if (!archiveResult) +{ + return 1; +} return 0;