forked from semaja2/mikrotik-netinstall
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
66 lines (51 loc) · 2.34 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
64
65
66
ARCH ?= arm
PKGS ?= wifi-qcom-ac
CHANNEL ?= stable
OPTS ?= -b -r
IFACE ?= eth0
# PKGS_CUSTOM ?= ""
# example: CLIENTIP ?= 172.17.9.101
NET_OPTS ?= $(if $(CLIENTIP),-a $(CLIENTIP),-i $(IFACE))
URLVER ?= https://upgrade.mikrotik.com/routeros/NEWESTa7
channel_ver = $(firstword $(shell wget -q -O - $(URLVER).$(1)))
VER ?= $(call channel_ver,$(CHANNEL))
VER_NETINSTALL ?= $(call channel_ver,$(CHANNEL))
PKGS_FILES := $(foreach pkg, $(PKGS), $(pkg)-$(VER)-$(ARCH).npk)
QEMU ?= ./i386
PLATFORM ?= $(shell uname -m)
.PHONY: run all service download clean nothing dump extra-packages stable long-term testing arm arm64 mipsbe mmips smips ppc tile x86
.SUFFIXES:
run: all
$(eval PKGS_FILES := $(shell for file in $(PKGS_FILES); do if [ -e "./$$file" ]; then echo "$$file"; fi; done))
@echo starting netinstall... PLATFORM=$(PLATFORM) ARCH=$(ARCH) VER=$(VER) OPTS="$(OPTS)" NET_OPTS="$(NET_OPTS)" PKGS=$(PKGS)
@echo using $(PKGS_FILES)
$(if $(findstring x86_64, $(PLATFORM)), , $(QEMU)) ./netinstall-cli-$(VER_NETINSTALL) $(OPTS) $(NET_OPTS) routeros-$(VER)-$(ARCH).npk $(PKGS_FILES) $(PKGS_CUSTOM)
service: all
while :; do $(MAKE) run ARCH=$(ARCH) VER=$(VER); done
download: all
@echo use 'make' to run netinstall after connecting $(IFACE) or $(CLIENTIP) to router
all: routeros-$(VER)-$(ARCH).npk netinstall-cli-$(VER_NETINSTALL) all_packages-$(ARCH)-$(VER).zip
@echo finished download ARCH=$(ARCH) VER=$(VER) PKGS=$(PKGS) PLATFORM=$(PLATFORM)
dump:
@echo ARCH=$(ARCH) VER=$(VER) CHANNEL=$(CHANNEL)
clean:
rm -rf *.npk *.zip *.tar.gz *.lock
rm -f netinstall*
rm -f LICENSE.txt
netinstall-$(VER_NETINSTALL).tar.gz:
wget https://download.mikrotik.com/routeros/$(VER_NETINSTALL)/netinstall-$(VER_NETINSTALL).tar.gz
netinstall-cli-$(VER_NETINSTALL): netinstall-$(VER_NETINSTALL).tar.gz
tar zxvf netinstall-$(VER_NETINSTALL).tar.gz
mv netinstall-cli netinstall-cli-$(VER_NETINSTALL)
touch netinstall-cli-$(VER_NETINSTALL)
routeros-$(VER)-$(ARCH).npk:
wget https://download.mikrotik.com/routeros/$(VER)/$@
all_packages-$(ARCH)-$(VER).zip:
wget https://download.mikrotik.com/routeros/$(VER)/$@
unzip -o all_packages-$(ARCH)-$(VER).zip
stable long-term testing:
$(MAKE) $(filter-out $@,$(MAKECMDGOALS)) CHANNEL=$@ ARCH=$(ARCH)
arm arm64 mipsbe mmips smips ppc tile x86:
$(MAKE) $(filter-out $@,$(MAKECMDGOALS)) CHANNEL=$(CHANNEL) ARCH=$@
nothing:
while :; do sleep 3600; done