(0 . 0)(1 . 37)
11 PROJ = m
12 ASMER = yasm
13 ASMARGS = -f elf64 -g null
14 DWARFARGS = -f elf64 -g dwarf2
15 LINKER = ld
16 LNKARGS = --strip-all
17 BUILD=build
18 BIN=bin
19
20 all: asm lnk
21
22 asm:
23 $(ASMER) $(ASMARGS) $(PROJ).asm -o $(BUILD)/$(PROJ).o
24
25 dwarf:
26 $(ASMER) $(DWARFARGS) $(PROJ).asm -o $(BUILD)/$(PROJ).o
27
28 lnk:
29 $(LINKER) $(LNKARGS) $(BUILD)/$(PROJ).o -o $(BIN)/$(PROJ)
30
31 dbglnk:
32 $(LINKER) $(LNKARGS) $(BUILD)/$(PROJ).o -o $(BIN)/$(PROJ)
33
34 dis: dwarf lnk
35 objdump --disassembler-options=intel -D $(BIN)/$(PROJ)
36
37 dissrc: dwarf dbglnk
38 objdump --disassembler-options=intel -S -D $(BIN)/$(PROJ)
39
40 disraw: all
41 objdump --disassembler-options=intel -D $(BIN)/$(PROJ)
42
43 debug: clean dwarf dbglnk
44 gdb --command misc/m.gdb
45
46 clean:
47 rm -f $(BUILD)/*.o $(BIN)/$(PROJ)