-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
63 lines (42 loc) · 1.38 KB
/
Makefile
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
60
61
62
63
$(shell if [ ! -f Makefile.user ]; then cp Makefile.user.example Makefile.user; fi)
-include Makefile.user
SRCDIR = src
OBJDIR = obj
AR = $(LLVM_MOS_DIR)bin/llvm-ar
CC = $(LLVM_MOS_DIR)bin/mos-clang
OC = $(LLVM_MOS_DIR)bin/llvm-objcopy
OD = $(LLVM_MOS_DIR)bin/llvm-objdump
CFLAGS = -Os
LDFLAGS += -T link.ld
LDFLAGS += -nostdlib
all: libcrt0.a
OBJECTS =
SOURCES_S = $(shell find ${SRCDIR} -name "*.S" -printf "%P ")
OBJECTS += $(addprefix ${OBJDIR}/,${SOURCES_S:.S=.o})
vpath %.S $(sort $(dir ${SOURCES_S}))
SOURCES_C = $(shell find ${SRCDIR} -name "*.c" -printf "%P ")
OBJECTS += $(addprefix ${OBJDIR}/,${SOURCES_C:.c=.o})
vpath %.c $(sort $(dir ${SOURCES_C}))
SOURCES_CC = $(shell find ${SRCDIR} -name "*.cc" -printf "%P ")
OBJECTS += $(addprefix ${OBJDIR}/,${SOURCES_CC:.cc=.o})
vpath %.cc $(sort $(dir ${SOURCES_CC}))
vpath %.c $(SRCDIR)/$(TARGETLIST) $(SRCDIR)
$(OBJDIR)/%.o: %.c
mkdir -p $(dir $@)
$(CC) -c $(CFLAGS) -o $@ $<
vpath %.cc $(SRCDIR)/$(TARGETLIST) $(SRCDIR)
$(OBJDIR)/%.o: %.cc
mkdir -p $(dir $@)
$(CC) -c $(CFLAGS) -o $@ $<
vpath %.S $(SRCDIR)/$(TARGETLIST) $(SRCDIR)
$(OBJDIR)/%.o: %.S
mkdir -p $(dir $@)
$(CC) -c $(ASFLAGS) -o $@ $<
libcrt0.a: $(OBJECTS)
$(AR) rc libcrt0.a $^
publish: libcrt0.a
cp libcrt0.a ../nessy-gamedev/target/nessy/lib/libcrt0.a
cp *.ld ../nessy-gamedev/target/nessy/lib/
cp -r h ../nessy-gamedev/target/nessy/
clean:
rm -rf obj libcrt0.a