1
1
REPO_ROOT := $(dir $(lastword $(MAKEFILE_LIST)))
2
2
CACHE_DIR := $(REPO_ROOT).cache
3
- VASM := $(CACHE_DIR)/vasmm68k_mot
3
+
4
+ BIN_DIR := $(CACHE_DIR)/bin
5
+ CONFIG_DIR := $(CACHE_DIR)/config
6
+ TARGET_DIR := $(CACHE_DIR)/targets
7
+
8
+ VASM := $(CACHE_DIR)/bin/vasmm68k_mot
9
+ VLINK := $(CACHE_DIR)/bin/vlink
10
+
11
+ VC := $(CACHE_DIR)/bin/vc
12
+ VC_CFG := $(CONFIG_DIR)/vc.cfg
13
+ VC_M68K := $(TARGET_DIR)/m68k-amigaos
14
+
15
+ VBCC := $(abspath $(CACHE_DIR))
16
+
4
17
NDK := $(CACHE_DIR)/NDK_3.9
5
18
SANA2 := $(CACHE_DIR)/sana2
6
19
AHI := $(CACHE_DIR)/ahi
@@ -11,9 +24,9 @@ LVO := $(INC_ASM)lvo
11
24
SFD := $(notdir $(wildcard $(NDK)/Include/sfd/*.sfd))
12
25
LVOS := $(addprefix $(LVO)/,$(SFD:.sfd=.i))
13
26
14
- .PHONY: distclean lvos buildenv $(VASM)
27
+ .PHONY: distclean lvos buildenv $(VASM) $(VLINK) $(VC)
15
28
16
- buildenv: $(VASM) $(NDK) $(LVO) $(SANA2) $(AHI)
29
+ buildenv: $(VASM) $(VLINK) $(VC) $(VC_CFG) $(VC_M68K) $( NDK) $(LVO) $(SANA2) $(AHI)
17
30
# @echo "** $@ done"
18
31
19
32
@@ -22,14 +35,46 @@ distclean: clean
22
35
@echo "** $@ done"
23
36
24
37
$(CACHE_DIR):
25
- mkdir -p $(CACHE_DIR)
38
+ mkdir -p $(CACHE_DIR) $(BIN_DIR) $(CONFIG_DIR) $(TARGET_DIR)
39
+
40
+ $(VC): $(VC).done
41
+ $(VC).done: | $(CACHE_DIR)
42
+ cd $(CACHE_DIR) && rm -rf vbcc vbcc*.tar.gz
43
+ cd $(CACHE_DIR) && wget --no-check-certificate https://server.owl.de/~frank/tags/vbcc0_9g.tar.gz
44
+ cd $(CACHE_DIR) && tar xzf vbcc0_9g.tar.gz
45
+ cd $(CACHE_DIR) && patch -p 0 < ../vbcc.patch
46
+ cd $(CACHE_DIR) && cd vbcc && mkdir bin && make TARGET=m68k -j 4 && cp bin/vc ../bin && cp bin/vbccm68k ../bin
47
+ cd $(CACHE_DIR) && rm -rf vbcc vbcc*.tar.gz
48
+ touch $@
49
+
50
+ $(VC_CFG): $(REPO_ROOT)vc.cfg | $(CACHE_DIR)
51
+ # when using mingw we need a second regex replace (/c/ -> c:/)
52
+ cat $< | sed -e 's:%%VBCC%%:$(VBCC):g' | sed -e 's:/\([a-z]\)/:\1\:/:g' > $@
53
+
54
+ $(VC_M68K): $(VC_M68K).done
55
+ $(VC_M68K).done : | $(CACHE_DIR)
56
+ cd $(CACHE_DIR) && rm -rf vbcc_target_m68k-amigaos*
57
+ cd $(CACHE_DIR) && wget --no-check-certificate http://server.owl.de/~frank/vbcc/2019-10-04/vbcc_target_m68k-amigaos.lha
58
+ cd $(CACHE_DIR) && 7z x vbcc_target_m68k-amigaos.lha
59
+ cd $(CACHE_DIR) && cd vbcc_target_m68k-amigaos && mv targets/m68k-amigaos ../targets/m68k-amigaos
60
+ cd $(CACHE_DIR) && rm -rf vbcc_target_m68k-amigaos vbcc_target_m68k-amigaos.lha
61
+ touch $@
62
+
63
+ $(VLINK): $(VLINK).done
64
+ $(VLINK).done: | $(CACHE_DIR)
65
+ cd $(CACHE_DIR) && rm -rf vlink vlink.tar.gz
66
+ cd $(CACHE_DIR) && wget http://sun.hasenbraten.de/vlink/release/vlink.tar.gz
67
+ cd $(CACHE_DIR) && tar xzf vlink.tar.gz
68
+ cd $(CACHE_DIR) && cd vlink && make -j 4 && cp vlink ../bin
69
+ cd $(CACHE_DIR) && rm -rf vlink vlink.tar.gz
70
+ touch $@
26
71
27
72
$(VASM): $(VASM).done
28
73
$(VASM).done: | $(CACHE_DIR)
29
74
cd $(CACHE_DIR) && rm -rf vasm vasm.tar.gz
30
75
cd $(CACHE_DIR) && wget http://sun.hasenbraten.de/vasm/release/vasm.tar.gz
31
76
cd $(CACHE_DIR) && tar xzf vasm.tar.gz
32
- cd $(CACHE_DIR) && cd vasm && make CPU=m68k SYNTAX=mot -j 4 && cp vasmm68k_mot ..
77
+ cd $(CACHE_DIR) && cd vasm && make CPU=m68k SYNTAX=mot -j 4 && cp vasmm68k_mot ../bin
33
78
cd $(CACHE_DIR) && rm -rf vasm vasm.tar.gz
34
79
touch $@
35
80
0 commit comments