mirror of
https://github.com/guezoloic/minishell.git
synced 2026-01-25 07:34:22 +00:00
chore: rework makefile
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -13,4 +13,5 @@ a.out
|
|||||||
.env/
|
.env/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
*.log
|
*.log
|
||||||
|
main
|
||||||
@@ -9,4 +9,4 @@ RUN apt-get update -y \
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
CMD ["make"]
|
CMD ["make", "run"]
|
||||||
36
Makefile
36
Makefile
@@ -1,32 +1,26 @@
|
|||||||
TARGET ?= main
|
.PHONY: all clean re
|
||||||
|
.DEFAULT_GOAL := all
|
||||||
|
|
||||||
SRC := $(wildcard src/*.s src/*.asm)
|
SRC ?= $(wildcard src/*.s)
|
||||||
OBJ := $(SRC:.s=.o)
|
OBJ = $(SRC:.s=.o)
|
||||||
OBJ := $(OBJ:.asm=.o)
|
EXE ?= main
|
||||||
|
AS ?= as
|
||||||
|
LD ?= ld
|
||||||
|
ASFLAGS ?=
|
||||||
|
LDFLAGS ?=
|
||||||
|
|
||||||
AS = as
|
$(EXE): $(OBJ)
|
||||||
LD = ld
|
$(LD) $(LDFLAGS) -o $@ $(OBJ)
|
||||||
NASM = nasm
|
|
||||||
|
|
||||||
ASFLAGS =
|
|
||||||
NASMFLAGS = -f elf64
|
|
||||||
LDFLAGS =
|
|
||||||
|
|
||||||
all: $(TARGET) run
|
|
||||||
|
|
||||||
%.o: %.s
|
%.o: %.s
|
||||||
$(AS) $(ASFLAGS) -o $@ $<
|
$(AS) $(ASFLAGS) -o $@ $<
|
||||||
|
|
||||||
%.o: %.asm
|
all: $(EXE)
|
||||||
$(NASM) $(NASMFLAGS) -o $@ $<
|
|
||||||
|
|
||||||
$(TARGET): $(OBJ)
|
|
||||||
$(LD) $(LDFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OBJ) $(TARGET)
|
rm -f $(OBJ) $(EXE)
|
||||||
|
|
||||||
re: clean all
|
re: clean all
|
||||||
|
|
||||||
run: $(TARGET)
|
run: $(EXE)
|
||||||
./$(TARGET)
|
./$(EXE)
|
||||||
|
|||||||
12
src/main.s
12
src/main.s
@@ -1,18 +1,6 @@
|
|||||||
.global _start
|
.global _start
|
||||||
|
|
||||||
.section .data
|
|
||||||
msg:
|
|
||||||
.ascii "Hello World!\n"
|
|
||||||
len = . - msg
|
|
||||||
|
|
||||||
.section .text
|
|
||||||
_start:
|
_start:
|
||||||
mov $1, %rax
|
|
||||||
mov $1, %rdi
|
|
||||||
lea msg(%rip), %rsi
|
|
||||||
mov $len, %rdx
|
|
||||||
syscall
|
|
||||||
|
|
||||||
mov $60, %rax
|
mov $60, %rax
|
||||||
xor %rdi, %rdi
|
xor %rdi, %rdi
|
||||||
syscall
|
syscall
|
||||||
|
|||||||
Reference in New Issue
Block a user