Kaynağa Gözat

flashrom: switch to build variants instead of config options

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
Álvaro Fernández Rojas 9 yıl önce
ebeveyn
işleme
3deb63fafb
3 değiştirilmiş dosya ile 139 ekleme ve 334 silme
  1. 0
    279
      utils/flashrom/Config.in
  2. 66
    16
      utils/flashrom/Makefile
  3. 73
    39
      utils/flashrom/flashrom.mk

+ 0
- 279
utils/flashrom/Config.in Dosyayı Görüntüle

@@ -1,279 +0,0 @@
1
-menu "Flashrom configuration"
2
-	depends on PACKAGE_flashrom
3
-
4
-	choice
5
-		prompt "Default Programmer"
6
-		default DEFPROG_INTERNAL if FLASHROM_PCI
7
-		default DEFPROG_LINUX_SPI
8
-
9
-		config DEFPROG_INTERNAL
10
-			depends on FRPROG_INTERNAL
11
-			bool "Internal"
12
-
13
-		config DEFPROG_LINUX_SPI
14
-			depends on FRPROG_LINUX_SPI
15
-			bool "Linux SPI"
16
-
17
-		config DEFPROG_SERPROG
18
-			depends on FRPROG_SERPROG
19
-			bool "Serial"
20
-
21
-		config DEFPROG_RAYER_SPI
22
-			depends on FRPROG_RAYER_SPI
23
-			bool "Rayer SPI"
24
-
25
-		config DEFPROG_PONY_SPI
26
-			depends on FRPROG_PONY_SPI
27
-			bool "Pony SPI"
28
-
29
-		config DEFPROG_NIC3COM
30
-			depends on FRPROG_NIC3COM
31
-			bool "NIC3Com"
32
-
33
-		config DEFPROG_GFXNVIDIA
34
-			depends on FRPROG_GFXNVIDIA
35
-			bool "GFX Nvidia"
36
-
37
-		config DEFPROG_SATASII
38
-			depends on FRPROG_SATASII
39
-			bool "SATASII"
40
-
41
-#		config DEFPROG_ATAHPT
42
-#			depends on FRPROG_ATAHPT
43
-#			bool "Highpoint (HPT) ATA/RAID"
44
-
45
-		config DEFPROG_ATAVIA
46
-			depends on FRPROG_ATAVIA
47
-			bool "ATAVIA"
48
-
49
-		config DEFPROG_FT2232_SPI
50
-			depends on FRPROG_FT2232_SPI
51
-			bool "FT2232 SPI"
52
-
53
-		config DEFPROG_USBBLASTER_SPI
54
-			depends on FRPROG_USBBLASTER_SPI
55
-			bool "USBBlaster SPI"
56
-
57
-#		config DEFPROG_MSTARDDC_SPI
58
-#			depends on FRPROG_MSTARDDC_SPI
59
-#			bool "MSTAR DDC SPI"
60
-
61
-		config DEFPROG_PICKIT2_SPI
62
-			depends on FRPROG_PICKIT2_SPI
63
-			bool "PICkit2 SPI"
64
-
65
-		config DEFPROG_DUMMY
66
-			depends on FRPROG_DUMMY
67
-			bool "Dummy"
68
-
69
-		config DEFPROG_DRKAISER
70
-			depends on FRPROG_DRKAISER
71
-			bool "Dr. Kaiser"
72
-
73
-		config DEFPROG_NICREALTEK
74
-			depends on FRPROG_NICREALTEK
75
-			bool "Realtek NICs"
76
-
77
-#		config DEFPROG_NICNATSEMI
78
-#			depends on FRPROG_NICNATSEMI
79
-#			bool "National Semiconductor NICs"
80
-
81
-		config DEFPROG_NICINTEL
82
-			depends on FRPROG_NICINTEL
83
-			bool "Intel NICs"
84
-
85
-		config DEFPROG_NICINTEL_SPI
86
-			depends on FRPROG_NICINTEL_SPI
87
-			bool "Intel NICs SPI"
88
-
89
-		config DEFPROG_NICINTEL_EEPROM
90
-			depends on FRPROG_NICINTEL_EEPROM
91
-			bool "Intel NICs EEPROM"
92
-
93
-		config DEFPROG_OGP_SPI
94
-			depends on FRPROG_OGP_SPI
95
-			bool "OGP SPI"
96
-
97
-		config DEFPROG_BUSPIRATE_SPI
98
-			depends on FRPROG_BUSPIRATE_SPI
99
-			bool "SPI BUS Pirate"
100
-
101
-#		config DEFPROG_DEDIPROG
102
-#			depends on FRPROG_DEDIPROG
103
-#			bool "Dediprog SF100"
104
-
105
-		config DEFPROG_SATAMV
106
-			depends on FRPROG_SATAMV
107
-			bool "Marvell SATA"
108
-
109
-		config DEFPROG_IT8212
110
-			depends on FRPROG_IT8212
111
-			bool "ITE IT8212F PATA"
112
-	endchoice
113
-
114
-
115
-	menu "Misc Programmers"
116
-		config FRPROG_LINUX_SPI
117
-			bool "Linux SPI"
118
-			default y
119
-
120
-#		config FRPROG_MSTARDDC_SPI
121
-#			bool "MSTAR DDC"
122
-#			default n
123
-
124
-		config FRPROG_DUMMY
125
-			bool "Dummy"
126
-			default y
127
-	endmenu
128
-
129
-
130
-	config FLASHROM_FTDI
131
-		bool "FTDI Support"
132
-		default y
133
-
134
-	menu "FTDI Programmers"
135
-		depends on FLASHROM_FTDI
136
-
137
-		config FRPROG_FT2232_SPI
138
-			depends on FLASHROM_FTDI
139
-			bool "FT2232 SPI"
140
-			default y
141
-
142
-		config FRPROG_USBBLASTER_SPI
143
-			depends on FLASHROM_FTDI
144
-			bool "USBBlaster SPI"
145
-			default y
146
-	endmenu
147
-
148
-
149
-	config FLASHROM_PCI
150
-		bool "PCI Support"
151
-		default y if (TARGET_x86||TARGET_x86_64)
152
-
153
-	menu "PCI Programmers"
154
-		depends on FLASHROM_PCI
155
-
156
-		config FRPROG_INTERNAL
157
-			depends on FLASHROM_PCI
158
-			bool "Internal"
159
-			default y
160
-
161
-		config FRPROG_RAYER_SPI
162
-			depends on FLASHROM_PCI
163
-			bool "Rayer SPI"
164
-			default y
165
-
166
-		config FRPROG_NIC3COM
167
-			depends on FLASHROM_PCI
168
-			bool "NIC3Com"
169
-			default y
170
-
171
-		config FRPROG_GFXNVIDIA
172
-			depends on FLASHROM_PCI
173
-			bool "GFX Nvidia"
174
-			default y
175
-
176
-		config FRPROG_SATASII
177
-			depends on FLASHROM_PCI
178
-			bool "SATASII"
179
-			default y
180
-
181
-#		config FRPROG_ATAHPT
182
-#			depends on FLASHROM_PCI
183
-#			bool "Highpoint (HPT) ATA/RAID"
184
-#			default n
185
-
186
-		config FRPROG_ATAVIA
187
-			depends on FLASHROM_PCI
188
-			bool "ATAVIA"
189
-			default y
190
-
191
-		config FRPROG_IT8212
192
-			depends on FLASHROM_PCI
193
-			bool "ITE IT8212F PATA"
194
-			default y
195
-
196
-		config FRPROG_DRKAISER
197
-			depends on FLASHROM_PCI
198
-			bool "Dr. Kaiser"
199
-			default y
200
-
201
-		config FRPROG_NICREALTEK
202
-			depends on FLASHROM_PCI
203
-			bool "Realtek NICs"
204
-			default y
205
-
206
-#		config FRPROG_NICNATSEMI
207
-#			depends on FLASHROM_PCI
208
-#			bool "National Semiconductor NICs"
209
-#			default n
210
-
211
-		config FRPROG_NICINTEL
212
-			depends on FLASHROM_PCI
213
-			bool "Intel NICs"
214
-			default y
215
-
216
-		config FRPROG_NICINTEL_SPI
217
-			depends on FLASHROM_PCI
218
-			bool "Intel NICs SPI"
219
-			default y
220
-
221
-		config FRPROG_NICINTEL_EEPROM
222
-			depends on FLASHROM_PCI
223
-			bool "Intel NICs EEPROM"
224
-			default y
225
-
226
-		config FRPROG_OGP_SPI
227
-			depends on FLASHROM_PCI
228
-			bool "OGP SPI"
229
-			default y
230
-
231
-		config FRPROG_SATAMV
232
-			depends on FLASHROM_PCI
233
-			bool "Marvell SATA"
234
-			default y
235
-	endmenu
236
-
237
-
238
-	config FLASHROM_SERIAL
239
-		bool "Serial Support"
240
-		default y
241
-
242
-	menu "Serial Programmers"
243
-		depends on FLASHROM_SERIAL
244
-
245
-		config FRPROG_SERPROG
246
-			depends on FLASHROM_SERIAL
247
-			bool "Serial"
248
-			default y
249
-
250
-		config FRPROG_PONY_SPI
251
-			depends on FLASHROM_SERIAL
252
-			bool "Pony SPI"
253
-			default y
254
-
255
-		config FRPROG_BUSPIRATE_SPI
256
-			depends on FLASHROM_SERIAL
257
-			bool "SPI BUS Pirate"
258
-			default y
259
-	endmenu
260
-
261
-
262
-	config FLASHROM_USB
263
-		bool "USB Support"
264
-		default y
265
-
266
-	menu "USB Programmers"
267
-		depends on FLASHROM_USB
268
-
269
-		config FRPROG_PICKIT2_SPI
270
-			depends on FLASHROM_USB
271
-			bool "PICkit2 SPI"
272
-			default y
273
-
274
-#		config FRPROG_DEDIPROG
275
-#			depends on FLASHROM_USB
276
-#			bool "Dediprog SF100"
277
-#			default n
278
-	endmenu
279
-endmenu

+ 66
- 16
utils/flashrom/Makefile Dosyayı Görüntüle

@@ -9,13 +9,16 @@ include $(TOPDIR)/rules.mk
9 9
 
10 10
 PKG_NAME:=flashrom
11 11
 PKG_VERSION:=0.9.8
12
-PKG_RELEASE:=3
12
+PKG_RELEASE:=4
13 13
 
14 14
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
15 15
 PKG_SOURCE_URL:=http://download.flashrom.org/releases
16
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
16 17
 PKG_MD5SUM:=ac513076b63ab7eb411a7694bb8f6fda
17 18
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
18 19
 
20
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
21
+
19 22
 PKG_LICENSE:=GPL-2.0
20 23
 PKG_LICENSE_FILES:=COPYING
21 24
 
@@ -24,36 +27,83 @@ PKG_INSTALL:=1
24 27
 include $(INCLUDE_DIR)/package.mk
25 28
 include flashrom.mk
26 29
 
27
-define Package/flashrom
30
+TARGET_CFLAGS+= \
31
+	-std=gnu89
32
+
33
+MAKE_FLAGS+= \
34
+	PREFIX="/usr"
35
+
36
+define Package/flashrom/default
28 37
   SECTION:=utils
29 38
   CATEGORY:=Utilities
30 39
   TITLE:=FlashROM Utility
31 40
   URL:=http://www.flashrom.org/
32
-  DEPENDS:=\
33
-	+(TARGET_x86||TARGET_x86_64):dmidecode \
34
-	+FLASHROM_FTDI:libftdi \
35
-	+FLASHROM_PCI:pciutils \
36
-	+FLASHROM_USB:libusb-compat
41
+  DEPENDS:=
37 42
 endef
38 43
 
39
-define Package/flashrom/config
40
-	source "$(SOURCE)/Config.in"
44
+define Package/flashrom
45
+  $(Package/flashrom/default)
46
+  TITLE+= (full)
47
+  DEPENDS+= \
48
+    +(PACKAGE_flashrom&&(TARGET_x86||TARGET_x86_64)):dmidecode \
49
+    +PACKAGE_flashrom:libftdi \
50
+    +PACKAGE_flashrom:libusb-compat \
51
+    +PACKAGE_flashrom:pciutils
52
+  VARIANT:=full
41 53
 endef
42 54
 
43
-define Package/flashrom/description
55
+define Package/flashrom-pci
56
+  $(Package/flashrom/default)
57
+  TITLE+= (pci)
58
+  DEPENDS+= \
59
+    +(PACKAGE_flashrom-pci&&(TARGET_x86||TARGET_x86_64)):dmidecode \
60
+    +PACKAGE_flashrom-pci:pciutils
61
+  VARIANT:=pci
62
+endef
63
+
64
+define Package/flashrom-spi
65
+  $(Package/flashrom/default)
66
+  TITLE+= (spi)
67
+  VARIANT:=spi
68
+endef
69
+
70
+define Package/flashrom-usb
71
+  $(Package/flashrom/default)
72
+  TITLE+= (usb)
73
+  DEPENDS+= \
74
+    +PACKAGE_flashrom-usb:libftdi \
75
+    +PACKAGE_flashrom-usb:libusb-compat
76
+  VARIANT:=usb
77
+endef
78
+
79
+define Package/flashrom/default/description
44 80
  flashrom is an utility for identifying, reading, writing, verifying
45 81
  and erasing flash chips. It's often used to flash BIOS/EFI/coreboot
46 82
  /firmware images.
47 83
 endef
48
-
49
-TARGET_CFLAGS+=-std=gnu89
50
-
51
-MAKE_FLAGS += \
52
-	PREFIX="/usr"
84
+Package/flashrom/description = $(Package/flashrom/default/description)
85
+Package/flashrom-pci/description = $(Package/flashrom/default/description)
86
+Package/flashrom-spi/description = $(Package/flashrom/default/description)
87
+Package/flashrom-usb/description = $(Package/flashrom/default/description)
53 88
 
54 89
 define Package/flashrom/install
55 90
 	$(INSTALL_DIR) $(1)/usr/sbin
56
-	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/
91
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom
92
+endef
93
+define Package/flashrom-pci/install
94
+	$(INSTALL_DIR) $(1)/usr/sbin
95
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-pci
96
+endef
97
+define Package/flashrom-spi/install
98
+	$(INSTALL_DIR) $(1)/usr/sbin
99
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-spi
100
+endef
101
+define Package/flashrom-usb/install
102
+	$(INSTALL_DIR) $(1)/usr/sbin
103
+	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-usb
57 104
 endef
58 105
 
59 106
 $(eval $(call BuildPackage,flashrom))
107
+$(eval $(call BuildPackage,flashrom-pci))
108
+$(eval $(call BuildPackage,flashrom-spi))
109
+$(eval $(call BuildPackage,flashrom-usb))

+ 73
- 39
utils/flashrom/flashrom.mk Dosyayı Görüntüle

@@ -1,54 +1,88 @@
1
-# Flashrom configuration
1
+# Flashrom variants
2
+
3
+define DefaultProgrammer
4
+  MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=PROGRAMMER_$(1)
5
+endef
2 6
 define DefineConfig
3
-  ifeq ($(CONFIG_FLASHROM_$(1)),)
4
-    MAKE_FLAGS += NEED_$(1)=0
5
-  endif
7
+  MAKE_FLAGS += NEED_$(1)=$(2)
6 8
 endef
7 9
 define DefineProgrammer
8
-  ifeq ($(CONFIG_FRPROG_$(1)),)
9
-    MAKE_FLAGS += CONFIG_$(1)=0
10
-  endif
11
-  ifneq ($(CONFIG_DEFPROG_$(1)),)
12
-    MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=CONFIG_$(1)
10
+  # Selecting invalid programmers will fail
11
+  # Only disable unwanted programmers and keep the default ones
12
+  ifeq ($(2),no)
13
+    MAKE_FLAGS += CONFIG_$(1)=$(2)
13 14
   endif
14 15
 endef
15 16
 
17
+ifeq ($(BUILD_VARIANT),full)
18
+  $(eval $(call DefaultProgrammer,LINUX_SPI))
19
+  FLASHROM_BASIC := yes
20
+  FLASHROM_FTDI := yes
21
+  FLASHROM_PCI := yes
22
+  FLASHROM_SERIAL := yes
23
+  FLASHROM_USB := yes
24
+endif
25
+ifeq ($(BUILD_VARIANT),pci)
26
+  $(eval $(call DefaultProgrammer,INTERNAL))
27
+  FLASHROM_BASIC := yes
28
+  FLASHROM_FTDI := no
29
+  FLASHROM_PCI := yes
30
+  FLASHROM_SERIAL := no
31
+  FLASHROM_USB := no
32
+endif
33
+ifeq ($(BUILD_VARIANT),spi)
34
+  $(eval $(call DefaultProgrammer,LINUX_SPI))
35
+  FLASHROM_BASIC := yes
36
+  FLASHROM_FTDI := no
37
+  FLASHROM_PCI := no
38
+  FLASHROM_SERIAL := no
39
+  FLASHROM_USB := no
40
+endif
41
+ifeq ($(BUILD_VARIANT),usb)
42
+  $(eval $(call DefaultProgrammer,SERPROG))
43
+  FLASHROM_BASIC := yes
44
+  FLASHROM_FTDI := yes
45
+  FLASHROM_PCI := no
46
+  FLASHROM_SERIAL := yes
47
+  FLASHROM_USB := yes
48
+endif
49
+
16 50
 # Misc
17
-$(eval $(call DefineProgrammer,LINUX_SPI))
18
-#$(eval $(call DefineProgrammer,MSTARDDC_SPI))
19
-$(eval $(call DefineProgrammer,DUMMY))
51
+$(eval $(call DefineProgrammer,LINUX_SPI,$(FLASHROM_BASIC)))
52
+#$(eval $(call DefineProgrammer,MSTARDDC_SPI,$(FLASHROM_BASIC)))
53
+$(eval $(call DefineProgrammer,DUMMY,$(FLASHROM_BASIC)))
20 54
 
21 55
 # FTDI
22
-$(eval $(call DefineConfig,FTDI))
23
-$(eval $(call DefineProgrammer,FT2232_SPI))
24
-$(eval $(call DefineProgrammer,USBBLASTER_SPI))
56
+$(eval $(call DefineConfig,FTDI,$(FLASHROM_FTDI)))
57
+$(eval $(call DefineProgrammer,FT2232_SPI,$(FLASHROM_FTDI)))
58
+$(eval $(call DefineProgrammer,USBBLASTER_SPI,$(FLASHROM_FTDI)))
25 59
 
26 60
 # PCI
27
-$(eval $(call DefineConfig,PCI))
28
-$(eval $(call DefineProgrammer,INTERNAL))
29
-$(eval $(call DefineProgrammer,RAYER_SPI))
30
-$(eval $(call DefineProgrammer,NIC3COM))
31
-$(eval $(call DefineProgrammer,GFXNVIDIA))
32
-$(eval $(call DefineProgrammer,SATASII))
33
-#$(eval $(call DefineProgrammer,ATAHPT))
34
-$(eval $(call DefineProgrammer,ATAVIA))
35
-$(eval $(call DefineProgrammer,IT8212))
36
-$(eval $(call DefineProgrammer,DRKAISER))
37
-$(eval $(call DefineProgrammer,NICREALTEK))
38
-#$(eval $(call DefineProgrammer,NICNATSEMI))
39
-$(eval $(call DefineProgrammer,NICINTEL))
40
-$(eval $(call DefineProgrammer,NICINTEL_SPI))
41
-$(eval $(call DefineProgrammer,NICINTEL_EEPROM))
42
-$(eval $(call DefineProgrammer,OGP_SPI))
43
-$(eval $(call DefineProgrammer,SATAMV))
61
+$(eval $(call DefineConfig,PCI,$(FLASHROM_PCI)))
62
+$(eval $(call DefineProgrammer,INTERNAL,$(FLASHROM_PCI)))
63
+$(eval $(call DefineProgrammer,RAYER_SPI,$(FLASHROM_PCI)))
64
+$(eval $(call DefineProgrammer,NIC3COM,$(FLASHROM_PCI)))
65
+$(eval $(call DefineProgrammer,GFXNVIDIA,$(FLASHROM_PCI)))
66
+$(eval $(call DefineProgrammer,SATASII,$(FLASHROM_PCI)))
67
+#$(eval $(call DefineProgrammer,ATAHPT,$(FLASHROM_PCI)))
68
+$(eval $(call DefineProgrammer,ATAVIA,$(FLASHROM_PCI)))
69
+$(eval $(call DefineProgrammer,IT8212,$(FLASHROM_PCI)))
70
+$(eval $(call DefineProgrammer,DRKAISER,$(FLASHROM_PCI)))
71
+$(eval $(call DefineProgrammer,NICREALTEK,$(FLASHROM_PCI)))
72
+#$(eval $(call DefineProgrammer,NICNATSEMI,$(FLASHROM_PCI)))
73
+$(eval $(call DefineProgrammer,NICINTEL,$(FLASHROM_PCI)))
74
+$(eval $(call DefineProgrammer,NICINTEL_SPI,$(FLASHROM_PCI)))
75
+$(eval $(call DefineProgrammer,NICINTEL_EEPROM,$(FLASHROM_PCI)))
76
+$(eval $(call DefineProgrammer,OGP_SPI,$(FLASHROM_PCI)))
77
+$(eval $(call DefineProgrammer,SATAMV,$(FLASHROM_PCI)))
44 78
 
45 79
 # Serial
46
-$(eval $(call DefineConfig,SERIAL))
47
-$(eval $(call DefineProgrammer,SERPROG))
48
-$(eval $(call DefineProgrammer,PONY_SPI))
49
-$(eval $(call DefineProgrammer,BUSPIRATE_SPI))
80
+$(eval $(call DefineConfig,SERIAL,$(FLASHROM_SERIAL)))
81
+$(eval $(call DefineProgrammer,SERPROG,$(FLASHROM_SERIAL)))
82
+$(eval $(call DefineProgrammer,PONY_SPI,$(FLASHROM_SERIAL)))
83
+$(eval $(call DefineProgrammer,BUSPIRATE_SPI,$(FLASHROM_SERIAL)))
50 84
 
51 85
 # USB
52
-$(eval $(call DefineConfig,USB))
53
-$(eval $(call DefineProgrammer,PICKIT2_SPI))
54
-#$(eval $(call DefineProgrammer,DEDIPROG))
86
+$(eval $(call DefineConfig,USB,$(FLASHROM_USB)))
87
+$(eval $(call DefineProgrammer,PICKIT2_SPI,$(FLASHROM_USB)))
88
+#$(eval $(call DefineProgrammer,DEDIPROG,$(FLASHROM_USB)))