diff --git a/.gitignore b/.gitignore index 0267011..31a6bf9 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ a.out .env/ .DS_Store -*.log \ No newline at end of file +*.log +main \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 17691a2..4a22981 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,4 +9,4 @@ RUN apt-get update -y \ WORKDIR /app -CMD ["make"] \ No newline at end of file +CMD ["make", "run"] \ No newline at end of file diff --git a/Makefile b/Makefile index b07ac53..ef494bb 100644 --- a/Makefile +++ b/Makefile @@ -1,32 +1,26 @@ -TARGET ?= main +.PHONY: all clean re +.DEFAULT_GOAL := all -SRC := $(wildcard src/*.s src/*.asm) -OBJ := $(SRC:.s=.o) -OBJ := $(OBJ:.asm=.o) +SRC ?= $(wildcard src/*.s) +OBJ = $(SRC:.s=.o) +EXE ?= main +AS ?= as +LD ?= ld +ASFLAGS ?= +LDFLAGS ?= -AS = as -LD = ld -NASM = nasm - -ASFLAGS = -NASMFLAGS = -f elf64 -LDFLAGS = - -all: $(TARGET) run +$(EXE): $(OBJ) + $(LD) $(LDFLAGS) -o $@ $(OBJ) %.o: %.s $(AS) $(ASFLAGS) -o $@ $< -%.o: %.asm - $(NASM) $(NASMFLAGS) -o $@ $< - -$(TARGET): $(OBJ) - $(LD) $(LDFLAGS) -o $@ $^ +all: $(EXE) clean: - rm -f $(OBJ) $(TARGET) + rm -f $(OBJ) $(EXE) re: clean all -run: $(TARGET) - ./$(TARGET) +run: $(EXE) + ./$(EXE) diff --git a/main b/main deleted file mode 100755 index e2b17c0..0000000 Binary files a/main and /dev/null differ diff --git a/src/main.s b/src/main.s index 3361513..2bbbd07 100644 --- a/src/main.s +++ b/src/main.s @@ -1,18 +1,6 @@ .global _start -.section .data -msg: - .ascii "Hello World!\n" -len = . - msg - -.section .text _start: - mov $1, %rax - mov $1, %rdi - lea msg(%rip), %rsi - mov $len, %rdx - syscall - mov $60, %rax xor %rdi, %rdi syscall