aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 9c1307b663f7dd3878b3f4a88982efd00ec41d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Compiler, Linker, and Assembler
CC := clang
AR := ar
AS := nasm

# All needed build directories
INC_DIR := include
SRC_DIR := src
BIN_DIR := bin
LIB_DIR := lib
OBJ_DIR := build

# Flags, Libraries and Includes
INCS   := -I$(INC_DIR)
CFLAGS := -g -fno-strict-aliasing -fwrapv -fms-extensions
AFLAGS := -f elf64 

TGTFLAG :=
TGTINCS :=
TGTLIBS :=

# Named generic rules (must be evaluated lazily)
COMPILE  = $(CC) -MMD $(CFLAGS) $(TGTFLAGS) $(INCS) $(TGTINCS) -o $@ -c $< 
LINK 	 = $(CC) -MMD $(CFLAGS) $(TGTFLAGS) -o $@ $^ $(LIBS) $(TGTLIBS)
COMPLINK = $(CC) -MMD $(CFLAGS) $(TGTFLAGS) $(INCS) $(TGTINCS) -o $@ $< $(LIBS)
ASSEMBLE = $(AS) $(AFLAGS) $(TGTFLAGS) -o $@ $< 
ARCHIVE  = $(AR) -crs $@ $^

include rules.mk