From da7079275ed7516563ec69adb32119a87fc3f69b Mon Sep 17 00:00:00 2001
From: "Le10.Anh@live.uwe.ac.uk" <le10.anh@live.uwe.ac.uk>
Date: Thu, 12 Dec 2024 19:33:08 +0000
Subject: [PATCH] Upload New File

---
 src/Makefile.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 src/Makefile.txt

diff --git a/src/Makefile.txt b/src/Makefile.txt
new file mode 100644
index 0000000..176cc9b
--- /dev/null
+++ b/src/Makefile.txt
@@ -0,0 +1,53 @@
+# Tools
+CC=gcc
+ASM=nasm
+CFLAGS=-m32
+ASMFLAGS=-f elf
+
+# Source files
+DRIVER=driver.c
+ASM_SRC=task1.asm task2_1.asm task2_2.asm task2_3.asm
+ASM_OBJ=$(ASM_SRC:.asm=.o)
+ASM_IO=asm_io.asm
+ASM_IO_OBJ=asm_io.o
+
+# Executables
+EXE1=task1
+EXE2=task2_1
+EXE3=task2_2
+EXE4=task2_3
+
+# Default target
+all: $(EXE1) $(EXE2) $(EXE3) $(EXE4)
+
+# Rule for task1
+$(EXE1): $(ASM_IO_OBJ) task1.o driver.o
+	$(CC) $(CFLAGS) $^ -o $@
+
+# Rule for task2_1
+$(EXE2): $(ASM_IO_OBJ) task2_1.o driver.o
+	$(CC) $(CFLAGS) $^ -o $@
+
+# Rule for task2_2
+$(EXE3): $(ASM_IO_OBJ) task2_2.o driver.o
+	$(CC) $(CFLAGS) $^ -o $@
+
+# Rule for task2_3
+$(EXE4): $(ASM_IO_OBJ) task2_3.o driver.o
+	$(CC) $(CFLAGS) $^ -o $@
+
+# Assemble asm_io.asm
+$(ASM_IO_OBJ): $(ASM_IO)
+	$(ASM) $(ASMFLAGS) $< -o $@
+
+# Assemble .asm files
+%.o: %.asm
+	$(ASM) $(ASMFLAGS) $< -o $@
+
+# Compile driver.c
+driver.o: $(DRIVER)
+	$(CC) $(CFLAGS) -c $< -o $@
+
+# Clean up build artifacts
+clean:
+	rm -f *.o $(EXE1) $(EXE2) $(EXE3) $(EXE4)
\ No newline at end of file
-- 
GitLab