2
2
# Makefile
3
3
# ----------------------------
4
4
5
- # defult make type
6
- MAKE ?= make
7
-
8
5
# common/os specific things
9
6
ifeq ($(OS ) ,Windows_NT)
10
7
NATIVEPATH = $(subst /,\,$(1 ) )
11
- WINPATH = $(NATIVEPATH )
12
- RM = del /f 2>nul
8
+ WINPATH = $(NATIVEPATH )
9
+ RM = del /f 2>nul
10
+ RMDIR = rmdir /s /q
11
+ MKDIR = mkdir
12
+ PREFIX ?= C:
13
+ CP = copy
14
+ CPDIR = xcopy
13
15
else
14
16
NATIVEPATH = $(subst \,/,$(1 ) )
15
- WINPATH = $(shell winepath --windows $(1 ) )
16
- RM = rm --force
17
+ WINPATH = $(shell winepath --windows $(1 ) )
18
+ RM = rm --force
19
+ MKDIR = mkdir -p
20
+ RMDIR = rm -rf
21
+ PREFIX ?= $(HOME )
22
+ CP = cp
23
+ CPDIR = cp -r
17
24
endif
18
25
26
+ INSTALLLOC := $(call NATIVEPATH,$(DESTDIR )$(PREFIX ) )
19
27
TOOLSDIR := $(call NATIVEPATH,$(CURDIR ) /tools)
20
28
SRCDIR := $(call NATIVEPATH,$(CURDIR ) /src)
21
29
SPASMDIR := $(call NATIVEPATH,$(TOOLSDIR ) /spasm-ng)
22
30
CONVHEXDIR := $(call NATIVEPATH,$(TOOLSDIR ) /convhex)
23
31
CONVPNGDIR := $(call NATIVEPATH,$(TOOLSDIR ) /convpng)
24
32
25
33
CEDIR := $(call NATIVEPATH,$(SRCDIR ) /ce)
26
- STDDIR := $(call NATIVEPATH,$(SRCDIR ) /std)
34
+ STDDIR := $(call NATIVEPATH,$(SRCDIR ) /std)
27
35
28
36
SPASM := $(call NATIVEPATH,$(SPASMDIR ) /spasm)
29
37
CONVHEX := $(call NATIVEPATH,$(CONVHEXDIR ) /convhex)
@@ -35,14 +43,20 @@ GRAPHXDIR := $(call NATIVEPATH,$(SRCDIR)/graphx)
35
43
KEYPADCDIR := $(call NATIVEPATH,$(SRCDIR ) /keypadc)
36
44
FILEIOCDIR := $(call NATIVEPATH,$(SRCDIR ) /fileioc)
37
45
38
- all : $(SPASM ) $(CONVHEX ) $(CONVPNG ) all-graphx all-fileioc all-keypadc all-ce all-std
46
+ INSTALLBIN := $(call NATIVEPATH,$(INSTALLLOC ) /CEdev/bin)
47
+ INSTALLINC := $(call NATIVEPATH,$(INSTALLLOC ) /CEdev/include)
48
+ INSTALLLIB := $(call NATIVEPATH,$(INSTALLLOC ) /CEdev/lib)
49
+ DIRS := $(INSTALLINC ) $(INSTALLINC ) /ce $(INSTALLINC ) /ce/libs $(INSTALLINC ) /std $(INSTALLBIN ) $(INSTALLLIB )
50
+ DIRS := $(call NATIVEPATH,$(DIRS ) )
51
+
52
+ all : $(SPASM ) $(CONVHEX ) $(CONVPNG ) graphx fileioc keypadc ce std
39
53
40
54
# ----------------------------
41
55
# tool rules
42
56
# ----------------------------
43
57
$(SPASM ) $(CONVHEX ) $(CONVPNG ) :
44
58
$(MAKE ) -C $(dir $@ )
45
-
59
+
46
60
clean : clean-graphx clean-fileioc clean-keypadc clean-ce clean-std
47
61
$(MAKE ) -C $(SPASMDIR ) clean
48
62
$(MAKE ) -C $(CONVHEXDIR ) clean
@@ -52,7 +66,7 @@ clean: clean-graphx clean-fileioc clean-keypadc clean-ce clean-std
52
66
# ----------------------------
53
67
# ce rules
54
68
# ----------------------------
55
- all- ce :
69
+ ce :
56
70
$(MAKE ) -C $(CEDIR ) BIN=$(BIN )
57
71
clean-ce :
58
72
$(MAKE ) -C $(CEDIR ) clean
@@ -61,7 +75,7 @@ clean-ce:
61
75
# ----------------------------
62
76
# std rules
63
77
# ----------------------------
64
- all- std :
78
+ std :
65
79
$(MAKE ) -C $(STDDIR ) BIN=$(BIN )
66
80
clean-std :
67
81
$(MAKE ) -C $(STDDIR ) clean
@@ -70,32 +84,59 @@ clean-std:
70
84
# ----------------------------
71
85
# graphx rules
72
86
# ----------------------------
73
- all- graphx : $(SPASM )
87
+ graphx : $(SPASM )
74
88
$(MAKE ) -C $(GRAPHXDIR ) SPASM=$(SPASM ) BIN=$(BIN )
75
-
76
89
clean-graphx :
77
90
$(MAKE ) -C $(GRAPHXDIR ) clean
91
+ install-graphx :
92
+ $(MAKE ) -C $(GRAPHXDIR ) install
93
+ uninstall-graphx :
94
+ $(MAKE ) -C $(GRAPHXDIR ) uninstall
78
95
# ----------------------------
79
96
80
97
# ----------------------------
81
98
# fileioc rules
82
99
# ----------------------------
83
- all- fileioc : $(SPASM )
100
+ fileioc : $(SPASM )
84
101
$(MAKE ) -C $(FILEIOCDIR ) SPASM=$(SPASM ) BIN=$(BIN )
85
-
86
102
clean-fileioc :
87
103
$(MAKE ) -C $(FILEIOCDIR ) clean
88
104
# ----------------------------
89
105
90
106
# ----------------------------
91
107
# keypadc rules
92
108
# ----------------------------
93
- all- keypadc : $(SPASM )
109
+ keypadc : $(SPASM )
94
110
$(MAKE ) -C $(KEYPADCDIR ) SPASM=$(SPASM ) BIN=$(BIN )
95
-
96
111
clean-keypadc :
97
112
$(MAKE ) -C $(KEYPADCDIR ) clean
98
113
# ----------------------------
99
114
100
- .PHONY : all clean all-graphx clean-graphx all-fileioc clean-fileioc all-keypadc clean-keypadc
115
+ uninstall :
116
+ $(RMDIR ) $(INSTALLLOC ) /CEdev
117
+
118
+ install : $(DIRS )
119
+ $(CPDIR ) $(call NATIVEPATH,$(CURDIR ) /examples) $(call NATIVEPATH,$(INSTALLLOC ) /CEdev)
120
+ $(CP ) $(call NATIVEPATH,$(SRCDIR ) /asm/* ) $(call NATIVEPATH,$(INSTALLLIB ) /asm)
121
+ $(CP ) $(SPASM ) $(INSTALLBIN )
122
+ $(CP ) $(CONVHEX ) $(INSTALLBIN )
123
+ $(CP ) $(CONVPNG ) $(INSTALLBIN )
124
+ $(CP ) $(call NATIVEPATH,$(BIN ) /* ) $(INSTALLBIN )
125
+ $(MAKE ) -C $(GRAPHXDIR ) install PREFIX=$(PREFIX ) DESTDIR=$(DESTDIR )
126
+ $(MAKE ) -C $(KEYPADCDIR ) install PREFIX=$(PREFIX ) DESTDIR=$(DESTDIR )
127
+ $(MAKE ) -C $(FILEIOCDIR ) install PREFIX=$(PREFIX ) DESTDIR=$(DESTDIR )
128
+ $(MAKE ) -C $(CEDIR ) install PREFIX=$(PREFIX ) DESTDIR=$(DESTDIR )
129
+ $(MAKE ) -C $(STDDIR ) install PREFIX=$(PREFIX ) DESTDIR=$(DESTDIR )
130
+
131
+ $(DIRS ) :
132
+ $(MKDIR ) $(INSTALLBIN )
133
+ $(MKDIR ) $(INSTALLLIB )
134
+ $(MKDIR ) $(INSTALLINC )
135
+ $(MKDIR ) $(call NATIVEPATH,$(INSTALLLIB ) /asm)
136
+ $(MKDIR ) $(call NATIVEPATH,$(INSTALLINC ) /ce)
137
+ $(MKDIR ) $(call NATIVEPATH,$(INSTALLINC ) /std)
138
+ $(MKDIR ) $(call NATIVEPATH,$(INSTALLINC ) /ce/libs)
139
+
140
+
141
+ .PHONY : all clean graphx clean-graphx fileioc clean-fileioc keypadc clean-keypadc install uninstall
101
142
0 commit comments