aboutsummaryrefslogtreecommitdiff
path: root/rules.mk
blob: 7fc6a1f506699bce3bb81edfebd70f4cd2db0e27 (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# Standard housekeeping
.PHONY: 	all debug release clean install
.SUFFIXES:
.SUFFIXES: 	.s .c .o 

all: targets

debug: CFLAGS += -DDEBUG
debug: targets

release: CFLAGS += -DNDEBUG -O3
release: targets

# Targets & array of sources & intermediates
SRCS :=
OBJS :=
DEPS :=

LIBS := 
BINS :=

# Iterate through directory tree
DIR := sys
include $(DIR)/rules.mk

# Generic rules
%.a: %.o
	$(ARCHIVE)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
	$(COMPILE)

$(OBJ_DIR)/%.o: $(SRC_DIR)/%.s
	$(ASSEMBLE)

%: %.o
	$(LINK)

$(OBJ_DIR)/%: $(SRC_DIR)/%.c
	$(COMPLNK)

.PHONY: targets
targets: $(LIBS) $(BINS)

.PHONY: database
database: $(LIBS) $(BINS)
	gentags
	ctags -R sys

.PHONY: clean
clean:
	rm -f $(OBJS)
	rm -f $(DEPS) 
	rm -f $(LIBS) 
	rm -f $(BINS)

.PHONY: install
install: targets
	echo "TODO"