Skip to content

Commit 5e2b86b

Browse files
Added install and uninstall rules
1 parent c3135e0 commit 5e2b86b

File tree

9 files changed

+280
-132
lines changed

9 files changed

+280
-132
lines changed

makefile

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,36 @@
22
# Makefile
33
#----------------------------
44

5-
# defult make type
6-
MAKE ?= make
7-
85
# common/os specific things
96
ifeq ($(OS),Windows_NT)
107
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
1315
else
1416
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
1724
endif
1825

26+
INSTALLLOC := $(call NATIVEPATH,$(DESTDIR)$(PREFIX))
1927
TOOLSDIR := $(call NATIVEPATH,$(CURDIR)/tools)
2028
SRCDIR := $(call NATIVEPATH,$(CURDIR)/src)
2129
SPASMDIR := $(call NATIVEPATH,$(TOOLSDIR)/spasm-ng)
2230
CONVHEXDIR := $(call NATIVEPATH,$(TOOLSDIR)/convhex)
2331
CONVPNGDIR := $(call NATIVEPATH,$(TOOLSDIR)/convpng)
2432

2533
CEDIR := $(call NATIVEPATH,$(SRCDIR)/ce)
26-
STDDIR := $(call NATIVEPATH,$(SRCDIR)/std)
34+
STDDIR := $(call NATIVEPATH,$(SRCDIR)/std)
2735

2836
SPASM := $(call NATIVEPATH,$(SPASMDIR)/spasm)
2937
CONVHEX := $(call NATIVEPATH,$(CONVHEXDIR)/convhex)
@@ -35,14 +43,20 @@ GRAPHXDIR := $(call NATIVEPATH,$(SRCDIR)/graphx)
3543
KEYPADCDIR := $(call NATIVEPATH,$(SRCDIR)/keypadc)
3644
FILEIOCDIR := $(call NATIVEPATH,$(SRCDIR)/fileioc)
3745

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
3953

4054
#----------------------------
4155
# tool rules
4256
#----------------------------
4357
$(SPASM) $(CONVHEX) $(CONVPNG):
4458
$(MAKE) -C $(dir $@)
45-
59+
4660
clean: clean-graphx clean-fileioc clean-keypadc clean-ce clean-std
4761
$(MAKE) -C $(SPASMDIR) clean
4862
$(MAKE) -C $(CONVHEXDIR) clean
@@ -52,7 +66,7 @@ clean: clean-graphx clean-fileioc clean-keypadc clean-ce clean-std
5266
#----------------------------
5367
# ce rules
5468
#----------------------------
55-
all-ce:
69+
ce:
5670
$(MAKE) -C $(CEDIR) BIN=$(BIN)
5771
clean-ce:
5872
$(MAKE) -C $(CEDIR) clean
@@ -61,7 +75,7 @@ clean-ce:
6175
#----------------------------
6276
# std rules
6377
#----------------------------
64-
all-std:
78+
std:
6579
$(MAKE) -C $(STDDIR) BIN=$(BIN)
6680
clean-std:
6781
$(MAKE) -C $(STDDIR) clean
@@ -70,32 +84,59 @@ clean-std:
7084
#----------------------------
7185
# graphx rules
7286
#----------------------------
73-
all-graphx: $(SPASM)
87+
graphx: $(SPASM)
7488
$(MAKE) -C $(GRAPHXDIR) SPASM=$(SPASM) BIN=$(BIN)
75-
7689
clean-graphx:
7790
$(MAKE) -C $(GRAPHXDIR) clean
91+
install-graphx:
92+
$(MAKE) -C $(GRAPHXDIR) install
93+
uninstall-graphx:
94+
$(MAKE) -C $(GRAPHXDIR) uninstall
7895
#----------------------------
7996

8097
#----------------------------
8198
# fileioc rules
8299
#----------------------------
83-
all-fileioc: $(SPASM)
100+
fileioc: $(SPASM)
84101
$(MAKE) -C $(FILEIOCDIR) SPASM=$(SPASM) BIN=$(BIN)
85-
86102
clean-fileioc:
87103
$(MAKE) -C $(FILEIOCDIR) clean
88104
#----------------------------
89105

90106
#----------------------------
91107
# keypadc rules
92108
#----------------------------
93-
all-keypadc: $(SPASM)
109+
keypadc: $(SPASM)
94110
$(MAKE) -C $(KEYPADCDIR) SPASM=$(SPASM) BIN=$(BIN)
95-
96111
clean-keypadc:
97112
$(MAKE) -C $(KEYPADCDIR) clean
98113
#----------------------------
99114

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
101142

src/ce/makefile

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,29 @@ ifeq ($(OS),Windows_NT)
1010
NATIVEPATH = $(subst /,\,$(1))
1111
WINPATH = $(NATIVEPATH)
1212
RM = del /f 2>nul
13-
CEDEV ?= C:\CEdev
14-
BIN ?= $(CEDEV)/bin
1513
ASM = $(call NATIVEPATH,$(BIN)/ez80asm.exe)
1614
LIB = $(call NATIVEPATH,$(BIN)/ez80lib.exe)
15+
CP = xcopy
16+
PREFIX ?= C:
1717
else
1818
NATIVEPATH = $(subst \,/,$(1))
1919
WINPATH = $(subst \,\\,$(shell winepath --windows $(1)))
2020
RM = rm --force
21-
CEDEV ?= $(HOME)/CEdev
22-
BIN ?= $(CEDEV)/bin
2321
ASM = $(call NATIVEPATH,wine $(BIN)/ez80asm.exe)
2422
LIB = $(call NATIVEPATH,wine $(BIN)/ez80lib.exe)
23+
CP = cp
24+
PREFIX ?= $(HOME)
2525
endif
2626

27+
DEV ?= $(call NATIVEPATH,$(PREFIX)/CEdev)
28+
BIN ?= $(call NATIVEPATH,$(DEV)/bin)
29+
30+
INSTALLLOC := $(call NATIVEPATH,$(DESTDIR)$(DEV))
31+
LIB_LOC := $(call NATIVEPATH,$(INSTALLLOC)/lib)
32+
H_LOC := $(call NATIVEPATH,$(INSTALLLOC)/include/ce)
33+
34+
LIB_H := $(wildcard *.h)
35+
2736
ASMFLGS := -genobj -NOigcase -NOlist -NOlistmac -quiet -sdiopt -cpu:EZ80F91 -NOdebug
2837
LIBFLGS := -quiet -warn
2938

@@ -36,5 +45,13 @@ all: $(patsubst %.asm,%.obj,$(wildcard *.asm))
3645
clean:
3746
$(RM) $(LIB_LIB) *.obj
3847

39-
.PHONY: all clean
48+
install:
49+
$(CP) $(LIB_H) $(H_LOC)
50+
$(CP) $(LIB_LIB).lib $(LIB_LOC)
51+
52+
uninstall:
53+
$(RM) $(call NATIVEPATH,$(H_LOC)/$(LIB_H))
54+
$(RM) $(call NATIVEPATH,$(LIB_LOC)/$(LIB_LIB).lib)
55+
56+
.PHONY: all clean install uninstall
4057

src/fileioc/makefile

Lines changed: 47 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,41 +12,50 @@ SPASM ?= spasm
1212

1313
# common/os specific things
1414
ifeq ($(OS),Windows_NT)
15-
NATIVEPATH = $(subst /,\,$(1))
16-
WINPATH = $(NATIVEPATH)
17-
RM = del /f 2>nul
18-
RMI = del /f 2>nul $(1)
19-
CEDEV ?= C:\CEdev
20-
BIN ?= $(CEDEV)/bin
21-
ASM = $(call NATIVEPATH,$(BIN)/ez80asm.exe)
22-
LIB = $(call NATIVEPATH,$(BIN)/ez80lib.exe)
23-
TOUCH = copy /b $(1)+,, $(1)
15+
NATIVEPATH = $(subst /,\,$(1))
16+
WINPATH = $(NATIVEPATH)
17+
RM = del /f 2>nul
18+
RMI = del /f 2>nul $(1)
19+
MKDIR = mkdir
20+
ASM = $(call NATIVEPATH,$(BIN)/ez80asm.exe)
21+
LIB = $(call NATIVEPATH,$(BIN)/ez80lib.exe)
22+
TOUCH = copy /b $(1)+,, $(1)
23+
CP = xcopy
24+
PREFIX ?= C:
2425
else
25-
NATIVEPATH = $(subst \,/,$(1))
26-
WINPATH = $(subst \,\\,$(shell winepath --windows $(1)))
27-
RM = rm --force
28-
RMI = find . -maxdepth 1 -iname $(1) -exec rm {} \;
29-
CEDEV ?= $(HOME)/CEdev
30-
BIN ?= $(CEDEV)/bin
31-
ASM = $(call NATIVEPATH,wine $(BIN)/ez80asm.exe)
32-
LIB = $(call NATIVEPATH,wine $(BIN)/ez80lib.exe)
33-
TOUCH = touch $(1)
26+
NATIVEPATH = $(subst \,/,$(1))
27+
WINPATH = $(subst \,\\,$(shell winepath --windows $(1)))
28+
RM = rm --force
29+
RMI = find . -maxdepth 1 -iname $(1) -exec rm {} \;
30+
MKDIR = mkdir -p
31+
ASM = $(call NATIVEPATH,wine $(BIN)/ez80asm.exe)
32+
LIB = $(call NATIVEPATH,wine $(BIN)/ez80lib.exe)
33+
TOUCH = touch $(1)
34+
CP = cp
35+
PREFIX ?= $(HOME)
3436
endif
3537

36-
EZOBJ = $(wildcard *.obj)
37-
EZSRC = $(wildcard *.src)
38-
TBL = relocation_table
38+
DEV ?= $(call NATIVEPATH,$(PREFIX)/CEdev)
39+
BIN ?= $(call NATIVEPATH,$(DEV)/bin)
3940

40-
LIB_LIB := $(NAME).lib
41-
LIB_8XV := $(NAME).8xv
42-
LIB_ASM := $(NAME)_header.asm
43-
LIB_JMP := $(NAME)_equates.asm
41+
INSTALLLOC := $(call NATIVEPATH,$(DESTDIR)$(DEV))
42+
LIB_LOC := $(call NATIVEPATH,$(INSTALLLOC)/lib)
43+
H_LOC := $(call NATIVEPATH,$(INSTALLLOC)/include/ce/libs)
4444

45-
ASMFLGS := -genobj -NOigcase -NOlist -NOlistmac -quiet -sdiopt -cpu:EZ80F91 -NOdebug
46-
LIBFLGS := -quiet -warn
45+
EZOBJ = $(wildcard *.obj)
46+
EZSRC = $(wildcard *.src)
47+
TBL = relocation_table
48+
49+
LIB_LIB := $(NAME).lib
50+
LIB_8XV := $(NAME).8xv
51+
LIB_ASM := $(NAME)_header.asm
52+
LIB_JMP := $(NAME)_equates.asm
53+
LIB_H := $(NAME).h
54+
55+
ASMFLGS := -genobj -NOigcase -NOlist -NOlistmac -quiet -sdiopt -cpu:EZ80F91 -NOdebug
56+
LIBFLGS := -quiet -warn
4757

4858
all: $(LIB_8XV)
49-
$(RM) $(TBL)
5059

5160
$(LIB_8XV): $(SRC)
5261
$(RM) $(LIB_LIB)
@@ -56,7 +65,7 @@ $(LIB_8XV): $(SRC)
5665
$(LIB_LIB): $(LIB_LIB)($(EZSRC:.src=.obj))
5766

5867
(%.obj): %.obj
59-
$(LIB) $(LIBFLGS) $@=+-$%
68+
$(LIB) $(LIBFLGS) $@=+$%
6069

6170
%.obj: %.src
6271
$(ASM) $(ASMFLGS) $(call WINPATH,$<)
@@ -67,5 +76,13 @@ clean:
6776
$(call RMI,$(LIB_ASM))
6877
$(call RMI,$(LIB_JMP))
6978

70-
.PHONY: all clean
79+
install:
80+
$(CP) $(LIB_H) $(H_LOC)
81+
$(CP) $(LIB_LIB) $(LIB_LOC)
82+
83+
uninstall:
84+
$(RM) $(call NATIVEPATH,$(H_LOC)/$(LIB_H))
85+
$(RM) $(call NATIVEPATH,$(LIB_LOC)/$(LIB_LIB))
86+
87+
.PHONY: all clean install uninstall
7188

0 commit comments

Comments
 (0)