-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmakelib.neo
More file actions
115 lines (81 loc) · 2.29 KB
/
makelib.neo
File metadata and controls
115 lines (81 loc) · 2.29 KB
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
include $(GDK)/common.mk
# NG directories
SRC_LIB= $(GDK)/srcNG
RES_LIB= $(GDK)/srcNG/res
SHELL= $(BIN)/sh
RM= $(BIN)/rm
CP= $(BIN)/cp
AR= $(BIN)/ar
CC= $(BIN)/gcc
JAVA= java
ECHO= echo
OBJCPY= $(BIN)/objcopy
ASMZ80= $(BIN)/sjasm
SIZEBND= $(BIN)/sizebnd
BINTOS= $(BIN)/bintos
RESCOMP= $(JAVA) -jar $(BIN)/rescomp.jar
MKDIR= $(BIN)/mkdir
SRC_LIB_C= $(wildcard $(SRC_LIB)/*.c)
SRC_LIB_S= $(wildcard $(SRC_LIB)/*.s)
SRC_LIB_S80= $(wildcard $(SRC_LIB)/*.s80)
RES_LIB_RES= $(wildcard $(RES_LIB)/*.res)
OBJ_LIB= $(RES_LIB_RES:.res=.o)
OBJ_LIB+= $(SRC_LIB_S80:.s80=.o)
OBJ_LIB+= $(SRC_LIB_S:.s=.o)
OBJ_LIB+= $(SRC_LIB_C:.c=.o)
LST_LIB= $(SRC_LIB_C:.c=.lst)
INCS_LIB= -I$(INC_LIB) -I$(SRC_LIB) -I$(RES_LIB)
DEFAULT_FLAGS_LIB= -m68000 -Wall -Wa,--register-prefix-optional -fno-builtin $(INCS_LIB) -B$(BIN)
FLAGSZ80_LIB= -i$(SRC_LIB) -i$(INC_LIB)
#release: FLAGS_LIB= $(DEFAULT_FLAGS_LIB) -O1 -fomit-frame-pointer -flto
release: FLAGS_LIB= $(DEFAULT_FLAGS_LIB) -O3 -fuse-linker-plugin -fno-web -fno-gcse -fno-unit-at-a-time -fomit-frame-pointer -flto
release: $(LIB)/libNG.a
debug: FLAGS_LIB= $(DEFAULT_FLAGS_LIB) -O1 -ggdb -DDEBUG=1
debug: $(LIB)/libNG_debug.a
asm: FLAGS_LIB= $(DEFAULT_FLAGS_LIB) -O3 -fuse-linker-plugin -fno-web -fno-gcse -fno-unit-at-a-time -fomit-frame-pointer -S
asm: $(LST_LIB)
all: release
default: release
Default: release
Debug: debug
Release: release
Asm: asm
.PHONY: clean
cleanlst:
$(RM) -f $(LST_LIB)
cleanobj:
$(RM) -f $(OBJ_LIB)
cleanrelease: cleanobj cleanlst
$(RM) -f $(LIB)/libNG.a out.lst cmd_
cleandebug: cleanobj cleanlst
$(RM) -f $(LIB)/libNG_debug.a out.lst cmd_
cleanasm: cleanlst
clean: cleanobj cleanlst
$(RM) -f $(LIB)/libNG.a $(LIB)/libNG_debug.a out.lst cmd_
cleanall: clean
cleanAll: clean
cleandefault: clean
cleanDefault: clean
cleanRelease: cleanrelease
cleanDebug: cleandebug
cleanAsm: cleanasm
$(LIB)/libNG.a: cmd_
$(AR) rs $(LIB)/libNG.a $(LTO_PLUGIN) @cmd_
$(RM) cmd_
$(LIB)/libNG_debug.a: cmd_
$(AR) rs $(LIB)/libNG_debug.a $(LTO_PLUGIN) @cmd_
$(RM) cmd_
cmd_ : $(OBJ_LIB)
$(ECHO) "$(OBJ_LIB)" > cmd_
%.lst: %.c
$(CC) $(FLAGS_LIB) -c $< -o $@
%.o: %.c
$(CC) $(FLAGS_LIB) -c $< -o $@
%.o: %.s
$(CC) -x assembler-with-cpp $(FLAGS_LIB) -c $< -o $@
%.s: %.res
$(RESCOMP) $< $@
%.o80: %.s80
$(ASMZ80) $(FLAGSZ80_LIB) $< $@ out.lst
%.s: %.o80
$(BINTOS) $<