-
Notifications
You must be signed in to change notification settings - Fork 33
Expand file tree
/
Copy pathBuildCommon.mk
More file actions
214 lines (154 loc) · 7.49 KB
/
BuildCommon.mk
File metadata and controls
214 lines (154 loc) · 7.49 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
ifndef BUILD_COMMON_MK
BUILD_COMMON_MK := 1
### PRAWNOS TARGET ARCHS
PRAWNOS_ARMHF := armhf
PRAWNOS_ARM64 := arm64
# validate that target is set to something we support
ifeq ($(TARGET),$(PRAWNOS_ARMHF))
$(info TARGET is $(PRAWNOS_ARMHF))
else ifeq ($(TARGET),$(PRAWNOS_ARM64))
$(info TARGET is $(PRAWNOS_ARM64))
else
$(info TARGET is invalid)
$(info Must specify a TARGET. Valid TARGETS are)
$(info TARGET=armhf (Asus c201 aka veyron speedy, Asus c100 aka veyron minnie))
$(info TARGET=arm64 (Asus c101 aka gru bob, Samsung Chromebook Plus aka gru kevin))
$(error Set a valid TARGET)
endif
export $(TARGET)
#Place all shared make vars below
#=========================================================================================
### GLOBALS
#KVER
# upstream kernel version
# when this is changed, PRAWNOS_KERNEL_VER, PRAWNOS_KERNEL_HEADERS_DEBVER, and PRAWNOS_KERNEL_IMAGE_DEBVER should be reset to 1
#PRAWNOS_KERNEL_VER
# the version of the prawnos linux kernel. This is incremented whenever changes to the config or patches are made, but the KVER stays the same
# when this is incremented, PRAWNOS_KERNEL_IMAGE_DEBVER, and PRAWNOS_KERNEL_HEADERS_DEBVER should be reset to 1
#PRAWNOS_KERNEL_IMAGE_DEBVER
# the version of the prawnos image deb package. This should be incremented with each rebuild/upload of the same KVER and PRAWNOS_KERNEL_IMAGE_VER
#PRAWNOS_KERNEL_HEADERS_DEBVER
# the version of the prawnos headers deb package. This should be incremented with each rebuild/upload of the same KVER and PRAWNOS_KERNEL_IMAGE_VER
## ARMHF KERNEL VERSIONS
ifeq ($(TARGET),$(PRAWNOS_ARMHF))
KVER := 5.4.57
PRAWNOS_KERNEL_VER := 4
PRAWNOS_KERNEL_IMAGE_DEBVER := 1
PRAWNOS_KERNEL_HEADERS_DEBVER := 1
## ARM64 KERNEL VERSIONS
else ifeq ($(TARGET),$(PRAWNOS_ARM64))
KVER := 5.7.10
PRAWNOS_KERNEL_VER := 1
PRAWNOS_KERNEL_IMAGE_DEBVER := 1
PRAWNOS_KERNEL_HEADERS_DEBVER := 1
endif
ifdef PRAWNOS_KVER
## Override KVER with the value of global $PRAWNOS_KVER if it's set.
## This allows the caller to explicitly select the desired KVER
## by injecting it via "export PRAWNOS_KVER=w.x.y".
## and not depending on the hard-coded version number here above.
KVER := $(PRAWNOS_KVER)
#Offset the kernel package versions to avoid future collision if we end up using
#the specified KVER
PRAWNOS_KERNEL_VER := 200
PRAWNOS_KERNEL_IMAGE_DEBVER := 1
PRAWNOS_KERNEL_HEADERS_DEBVER := 1
endif
PRAWNOS_KERNEL_IMAGE_CAT_VER=$(KVER)-$(PRAWNOS_KERNEL_VER)-$(PRAWNOS_KERNEL_IMAGE_DEBVER)
PRAWNOS_KERNEL_HEADERS_CAT_VER=$(KVER)-$(PRAWNOS_KERNEL_VER)-$(PRAWNOS_KERNEL_HEADERS_DEBVER)
# Otherwise errors are ignored when output is piped to tee:
SHELL := /bin/bash -o pipefail
### PRAWNOS CORE DIRECTORIES
PRAWNOS_BUILD := $(PRAWNOS_ROOT)/build/$(TARGET)
PRAWNOS_BUILD_SHARED := $(PRAWNOS_ROOT)/build/shared
PRAWNOS_SCRIPTS := $(PRAWNOS_ROOT)/scripts
PRAWNOS_KERNEL := $(PRAWNOS_ROOT)/kernel
PRAWNOS_INITRAMFS := $(PRAWNOS_ROOT)/initramfs
PRAWNOS_FILESYSTEM := $(PRAWNOS_ROOT)/filesystem
### BUILD DIRS
PRAWNOS_BUILD_LOGS := $(PRAWNOS_BUILD)/logs
PRAWNOS_BUILD_SOURCES := $(PRAWNOS_BUILD)/sources
PRAWNOS_BUILD_DEBOOTSTRAP_APT_CACHE := $(PRAWNOS_BUILD)/debootstrap-apt-cache
PRAWNOS_BUILD_CHROOT_APT_CACHE := $(PRAWNOS_BUILD)/chroot-apt-cache
PRAWNOS_LOCAL_APT_REPO := $(PRAWNOS_BUILD)/prawnos-local-apt-repo
### PRAWNOS IMAGES
ifeq ($(DEBIAN_SUITE),)
DEBIAN_SUITE := buster
endif
ifeq ($(PRAWNOS_SUITE),)
PRAWNOS_SUITE := Shiba
endif
PRAWNOS_IMAGE := $(PRAWNOS_ROOT)/PrawnOS-$(PRAWNOS_SUITE)-$(TARGET).img
PRAWNOS_IMAGE_BASE := $(PRAWNOS_IMAGE)-BASE
### BUILD SCRIPTS
PRAWNOS_BUILD_SCRIPTS := $(PRAWNOS_SCRIPTS)/BuildScripts
PRAWNOS_FILESYSTEM_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/FilesystemScripts
PRAWNOS_FILESYSTEM_SCRIPTS_BUILD := $(PRAWNOS_FILESYSTEM_SCRIPTS)/buildFilesystem.sh
PRAWNOS_KERNEL_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/KernelScripts
PRAWNOS_KERNEL_SCRIPTS_BUILD := $(PRAWNOS_KERNEL_SCRIPTS)/buildKernel.sh
PRAWNOS_KERNEL_SCRIPTS_MENUCONFIG := $(PRAWNOS_KERNEL_SCRIPTS)/crossMenuConfig.sh
PRAWNOS_KERNEL_SCRIPTS_PATCH := $(PRAWNOS_KERNEL_SCRIPTS)/patchKernel.sh
PRAWNOS_KERNEL_SCRIPTS_BUILD_ATH9K := $(PRAWNOS_KERNEL_SCRIPTS)/buildAth9k.sh
PRAWNOS_KERNEL_SCRIPTS_UPDATE_DEB_FILES := $(PRAWNOS_KERNEL_SCRIPTS)/updateKernelDebfiles.sh
PRAWNOS_IMAGE_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/ImageScripts
PRAWNOS_IMAGE_SCRIPTS_INSTALL_KERNEL := $(PRAWNOS_IMAGE_SCRIPTS)/installKernelToFs.sh
PRAWNOS_INITRAMFS_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/InitramfsScripts
PRAWNOS_INITRAMFS_SCRIPTS_BUILD := $(PRAWNOS_INITRAMFS_SCRIPTS)/buildInitramFs.sh
PRAWNOS_PACKAGE_SCRIPTS := $(PRAWNOS_BUILD_SCRIPTS)/PackageScripts
PRAWNOS_PACKAGE_SCRIPTS_INSTALL := $(PRAWNOS_PACKAGE_SCRIPTS)/installPackage.sh
PRAWNOS_PACKAGE_SCRIPTS_PBUILD := $(PRAWNOS_PACKAGE_SCRIPTS)/pbuildPackage.sh
PRAWNOS_PACKAGE_SCRIPTS_UPLOAD := $(PRAWNOS_PACKAGE_SCRIPTS)/uploadPackage.sh
### INSTALL SCRIPTS
PRAWNOS_INSTALL_SCRIPTS := $(PRAWNOS_SCRIPTS)/InstallScripts
### SHARED SCRIPTS
PRAWNOS_SHARED_SCRIPTS := $(PRAWNOS_SCRIPTS)/Shared
PRAWNOS_SHARED_SCRIPTS_PACKAGE_LISTS := $(PRAWNOS_SHARED_SCRIPTS)/package_lists.sh
### FILESYSTEM RESOURCES
PRAWNOS_FILESYSTEM_RESOURCES := $(PRAWNOS_FILESYSTEM)/resources
PRAWNOS_FILESYSTEM_PACKAGES := $(PRAWNOS_FILESYSTEM)/packages
### PBUILDER RESOURCES
PBUILDER_DIR := $(PRAWNOS_FILESYSTEM_RESOURCES)/pbuilder
PBUILDER_CHROOT := $(PRAWNOS_BUILD)/prawnos-pbuilder-$(TARGET)-base.tgz
PBUILDER_RC := $(PBUILDER_DIR)/prawnos-pbuilder-$(TARGET).rc
PBUILDER_HOOKS := $(PBUILDER_DIR)/hooks
PBUILDER_VARS := $(PBUILDER_CHROOT) $(PBUILDER_RC) $(PBUILDER_HOOKS)
### LOCAL APT RESOURCES
PRAWNOS_LOCAL_APT_SOURCE := "deb [trusted=yes] file://$(PRAWNOS_LOCAL_APT_REPO) ./"
PRAWNOS_LOCAL_APT_VARS := $(PRAWNOS_LOCAL_APT_REPO) $(PRAWNOS_LOCAL_APT_SOURCE)
### KERNEL UNIVERSAL
PRAWNOS_KERNEL_PACKAGES := $(PRAWNOS_KERNEL)/packages
## KERNEL TARGETED (paths partially defined by $TARGET)
PRAWNOS_KERNEL_BUILD := $(PRAWNOS_BUILD)/linux-$(KVER)
PRAWNOS_KERNEL_BUILT := $(PRAWNOS_KERNEL_BUILD)/vmlinux.kpart
PRAWNOS_KERNEL_PACKAGE_IMAGE := $(PRAWNOS_KERNEL_PACKAGES)/prawnos-linux-image-$(TARGET)
PRAWNOS_KERNEL_PACKAGE_HEADERS := $(PRAWNOS_KERNEL_PACKAGES)/prawnos-linux-headers-$(TARGET)
### INITRAMFS
PRAWNOS_INITRAMFS_IMAGE := $(PRAWNOS_BUILD)/PrawnOS-initramfs.cpio
### ATH9K
PRAWNOS_ATH9K_BUILD := $(PRAWNOS_BUILD_SHARED)/open-ath9k-htc-firmware
### WGET
#keeping the server timestamps confuses make, causing needless rebuilds
WGET_OPTS := --no-use-server-timestamps
#=========================================================================================
#Place all shared make rules below
#=========================================================================================
### Build directory rules, use with "|" to make them "order only" prerequisites
$(PRAWNOS_BUILD_SHARED):
mkdir -p $(PRAWNOS_BUILD_SHARED)
$(PRAWNOS_BUILD):
mkdir -p $(PRAWNOS_BUILD)
$(PRAWNOS_BUILD_LOGS): | $(PRAWNOS_BUILD)
mkdir -p $(PRAWNOS_BUILD_LOGS)
$(PRAWNOS_BUILD_SOURCES): | $(PRAWNOS_BUILD)
mkdir -p $(PRAWNOS_BUILD_SOURCES)
$(PRAWNOS_BUILD_DEBOOTSTRAP_APT_CACHE): | $(PRAWNOS_BUILD)
mkdir -p $(PRAWNOS_BUILD_DEBOOTSTRAP_APT_CACHE)
$(PRAWNOS_BUILD_CHROOT_APT_CACHE): | $(PRAWNOS_BUILD)
mkdir -p $(PRAWNOS_BUILD_CHROOT_APT_CACHE)
$(PRAWNOS_LOCAL_APT_REPO): | $(PRAWNOS_BUILD)
mkdir -p $(PRAWNOS_LOCAL_APT_REPO)
#=========================================================================================
#Place all shared make functions below
#=========================================================================================
#=========================================================================================
endif # BUILD_COMMON_MK