]> sigrok.org Git - sigrok-firmware-fx2lafw.git/blame - Makefile.am
Add Hantek PSO2020 firmware support
[sigrok-firmware-fx2lafw.git] / Makefile.am
CommitLineData
d5f5ea73 1##
a986cfff 2## This file is part of the sigrok-firmware-fx2lafw project.
d5f5ea73 3##
36074319 4## Copyright (C) 2013 Uwe Hermann <uwe@hermann-uwe.de>
88d4ba3e 5## Copyright (C) 2015 Daniel Elstner <daniel.kitta@gmail.com>
d5f5ea73
UH
6##
7## This program is free software; you can redistribute it and/or modify
8## it under the terms of the GNU General Public License as published by
9## the Free Software Foundation; either version 2 of the License, or
10## (at your option) any later version.
11##
12## This program is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16##
17## You should have received a copy of the GNU General Public License
040a6eae 18## along with this program; if not, see <http://www.gnu.org/licenses/>.
d5f5ea73
UH
19##
20
88d4ba3e
DE
21GNUMAKEFLAGS = --no-print-directory
22SUFFIXES = .a51 .c .fw .ihx .rel
60b99ccc 23
88d4ba3e
DE
24# Flags for firmware hex file generation
25SDCC_LINK_FLAGS = --code-size 0x1c00 --xram-size 0x0200 --xram-loc 0x1c00 -Wl"-b DSCR_AREA=0x1e00" -Wl"-b INT2JT=0x1f00"
b11ae8d6 26SDCC_LINK_FLAGS_SCOPE = --code-size 0x3c00 --xram-size 0x0100 --xram-loc 0x3c00 -Wl"-b DSCR_AREA=0x3d00" -Wl"-b INT2JT=0x3f00"
36074319 27
88d4ba3e
DE
28# Include paths
29as_includes = -I$(srcdir)/include
30c_includes = -I$(srcdir)/include -I$(srcdir)/fx2lib/include
36074319 31
88d4ba3e
DE
32# Binary firmware tarball basename
33distdir_bin = $(PACKAGE)-bin-$(VERSION)
36074319 34
88d4ba3e
DE
35# Basename of directory stamp files
36dirstamp = .dirstamp
37
38dirstamps = \
39 fx2lib/lib/$(dirstamp) \
40 fx2lib/lib/interrupts/$(dirstamp) \
41 hw/braintechnology-usb-lps/$(dirstamp) \
42 hw/cwav-usbeeax/$(dirstamp) \
43 hw/cwav-usbeedx/$(dirstamp) \
44 hw/cwav-usbeesx/$(dirstamp) \
66255d9c 45 hw/cwav-usbeezx/$(dirstamp) \
88d4ba3e 46 hw/cypress-fx2/$(dirstamp) \
ce1d0a86 47 hw/hantek-6022be/$(dirstamp) \
1d203181 48 hw/hantek-6022bl/$(dirstamp) \
0f2d3242 49 hw/hantek-pso2020/$(dirstamp) \
6ad0f97c 50 hw/instrustar-isds205b/$(dirstamp) \
7a4d2e55 51 hw/sainsmart-dds120/$(dirstamp) \
6ad0f97c
GS
52 hw/saleae-logic/$(dirstamp) \
53 hw/sigrok-fx2-8ch/$(dirstamp) \
54 hw/sigrok-fx2-16ch/$(dirstamp) \
55 hw/yixingdianzi-mdso/$(dirstamp)
88d4ba3e
DE
56
57# Final firmware files
58firmware_binaries = \
59 hw/braintechnology-usb-lps/fx2lafw-braintechnology-usb-lps.fw \
60 hw/cwav-usbeeax/fx2lafw-cwav-usbeeax.fw \
61 hw/cwav-usbeedx/fx2lafw-cwav-usbeedx.fw \
62 hw/cwav-usbeesx/fx2lafw-cwav-usbeesx.fw \
66255d9c 63 hw/cwav-usbeezx/fx2lafw-cwav-usbeezx.fw \
88d4ba3e 64 hw/cypress-fx2/fx2lafw-cypress-fx2.fw \
3878baac 65 hw/hantek-6022be/fx2lafw-hantek-6022be.fw \
1d203181 66 hw/hantek-6022bl/fx2lafw-hantek-6022bl.fw \
0f2d3242 67 hw/hantek-pso2020/fx2lafw-hantek-pso2020.fw \
6ad0f97c 68 hw/instrustar-isds205b/fx2lafw-instrustar-isds205b.fw \
7a4d2e55 69 hw/sainsmart-dds120/fx2lafw-sainsmart-dds120.fw \
6ad0f97c
GS
70 hw/saleae-logic/fx2lafw-saleae-logic.fw \
71 hw/sigrok-fx2-8ch/fx2lafw-sigrok-fx2-8ch.fw \
72 hw/sigrok-fx2-16ch/fx2lafw-sigrok-fx2-16ch.fw \
73 hw/yixingdianzi-mdso/fx2lafw-yixingdianzi-mdso.fw
88d4ba3e
DE
74
75fx2lafw_headers = \
76 include/command.h \
77 include/dscr.inc \
01c91958 78 include/common.inc \
88d4ba3e
DE
79 include/fx2lafw.h \
80 include/gpif-acquisition.h
81
82fx2lafw_sources = \
83 fx2lafw.c \
84 gpif-acquisition.c
85
86fx2lafw_objects = \
87 fx2lafw.rel \
88 gpif-acquisition.rel
89
fd70a923 90scope_headers = \
72295bd7 91 include/dscr_scope.inc \
fd70a923 92 include/scope.inc \
01c91958 93 include/common.inc
520598e2 94
fd70a923
UH
95hantek_6022be_headers = $(scope_headers)
96hantek_6022be_sources = hw/hantek-6022be/fw.c
97hantek_6022be_objects = hw/hantek-6022be/fw.rel
6139dad4 98
fd70a923
UH
99hantek_6022bl_headers = $(scope_headers)
100hantek_6022bl_sources = hw/hantek-6022bl/fw.c
101hantek_6022bl_objects = hw/hantek-6022bl/fw.rel
6139dad4 102
0f2d3242
SM
103hantek_pso2020_headers = $(scope_headers)
104hantek_pso2020_sources = hw/hantek-pso2020/fw.c
105hantek_pso2020_objects = hw/hantek-pso2020/fw.rel
106
a7cf2e1b 107instrustar_isds205b_headers = $(scope_headers)
108instrustar_isds205b_sources = hw/instrustar-isds205b/fw.c
109instrustar_isds205b_objects = hw/instrustar-isds205b/fw.rel
110
fd70a923
UH
111sainsmart_dds120_headers = $(scope_headers)
112sainsmart_dds120_sources = hw/sainsmart-dds120/fw.c
113sainsmart_dds120_objects = hw/sainsmart-dds120/fw.rel
ce1d0a86 114
7a4d2e55 115yixingdianzi_mdso_headers = $(scope_headers)
116yixingdianzi_mdso_sources = hw/yixingdianzi-mdso/fw.c
117yixingdianzi_mdso_objects = hw/yixingdianzi-mdso/fw.rel
118
88d4ba3e
DE
119fx2lib_headers = \
120 fx2lib/include/autovector.h \
121 fx2lib/include/delay.h \
122 fx2lib/include/eputils.h \
123 fx2lib/include/fx2ints.h \
124 fx2lib/include/fx2macros.h \
125 fx2lib/include/fx2regs.h \
126 fx2lib/include/fx2types.h \
127 fx2lib/include/gpif.h \
128 fx2lib/include/i2c.h \
129 fx2lib/include/lights.h \
130 fx2lib/include/serial.h \
131 fx2lib/include/setupdat.h
132
133fx2lib_sources = \
134 fx2lib/lib/delay.c \
135 fx2lib/lib/eputils.c \
136 fx2lib/lib/gpif.c \
137 fx2lib/lib/i2c.c \
138 fx2lib/lib/int4av.a51 \
139 fx2lib/lib/serial.c \
140 fx2lib/lib/delay.c \
141 fx2lib/lib/setupdat.c \
142 fx2lib/lib/usbav.a51
143
144fx2lib_objects = \
145 fx2lib/lib/delay.rel \
146 fx2lib/lib/eputils.rel \
147 fx2lib/lib/gpif.rel \
148 fx2lib/lib/i2c.rel \
149 fx2lib/lib/int4av.rel \
150 fx2lib/lib/serial.rel \
151 fx2lib/lib/delay.rel \
152 fx2lib/lib/setupdat.rel \
153 fx2lib/lib/usbav.rel
154
155fx2lib_ints_sources = \
156 fx2lib/lib/interrupts/ep0ack_isr.c \
157 fx2lib/lib/interrupts/ep0in_isr.c \
158 fx2lib/lib/interrupts/ep0out_isr.c \
159 fx2lib/lib/interrupts/ep0ping_isr.c \
160 fx2lib/lib/interrupts/ep1in_isr.c \
161 fx2lib/lib/interrupts/ep1out_isr.c \
162 fx2lib/lib/interrupts/ep1ping_isr.c \
163 fx2lib/lib/interrupts/ep2ef_isr.c \
164 fx2lib/lib/interrupts/ep2ff_isr.c \
165 fx2lib/lib/interrupts/ep2isoerr_isr.c \
166 fx2lib/lib/interrupts/ep2_isr.c \
167 fx2lib/lib/interrupts/ep2pf_isr.c \
168 fx2lib/lib/interrupts/ep2ping_isr.c \
169 fx2lib/lib/interrupts/ep4ef_isr.c \
170 fx2lib/lib/interrupts/ep4ff_isr.c \
171 fx2lib/lib/interrupts/ep4isoerr_isr.c \
172 fx2lib/lib/interrupts/ep4_isr.c \
173 fx2lib/lib/interrupts/ep4pf_isr.c \
174 fx2lib/lib/interrupts/ep4ping_isr.c \
175 fx2lib/lib/interrupts/ep6ef_isr.c \
176 fx2lib/lib/interrupts/ep6ff_isr.c \
177 fx2lib/lib/interrupts/ep6isoerr_isr.c \
178 fx2lib/lib/interrupts/ep6_isr.c \
179 fx2lib/lib/interrupts/ep6pf_isr.c \
180 fx2lib/lib/interrupts/ep6ping_isr.c \
181 fx2lib/lib/interrupts/ep8ef_isr.c \
182 fx2lib/lib/interrupts/ep8ff_isr.c \
183 fx2lib/lib/interrupts/ep8isoerr_isr.c \
184 fx2lib/lib/interrupts/ep8_isr.c \
185 fx2lib/lib/interrupts/ep8pf_isr.c \
186 fx2lib/lib/interrupts/ep8ping_isr.c \
187 fx2lib/lib/interrupts/errlimit_isr.c \
188 fx2lib/lib/interrupts/gpifdone_isr.c \
189 fx2lib/lib/interrupts/gpifwf_isr.c \
190 fx2lib/lib/interrupts/hispeed_isr.c \
191 fx2lib/lib/interrupts/ibn_isr.c \
192 fx2lib/lib/interrupts/sof_isr.c \
193 fx2lib/lib/interrupts/spare_isr.c \
194 fx2lib/lib/interrupts/sudav_isr.c \
195 fx2lib/lib/interrupts/suspend_isr.c \
196 fx2lib/lib/interrupts/sutok_isr.c \
197 fx2lib/lib/interrupts/usbreset_isr.c
198
199fx2lib_ints_objects = \
200 fx2lib/lib/interrupts/ep0ack_isr.rel \
201 fx2lib/lib/interrupts/ep0in_isr.rel \
202 fx2lib/lib/interrupts/ep0out_isr.rel \
203 fx2lib/lib/interrupts/ep0ping_isr.rel \
204 fx2lib/lib/interrupts/ep1in_isr.rel \
205 fx2lib/lib/interrupts/ep1out_isr.rel \
206 fx2lib/lib/interrupts/ep1ping_isr.rel \
207 fx2lib/lib/interrupts/ep2ef_isr.rel \
208 fx2lib/lib/interrupts/ep2ff_isr.rel \
209 fx2lib/lib/interrupts/ep2isoerr_isr.rel \
210 fx2lib/lib/interrupts/ep2_isr.rel \
211 fx2lib/lib/interrupts/ep2pf_isr.rel \
212 fx2lib/lib/interrupts/ep2ping_isr.rel \
213 fx2lib/lib/interrupts/ep4ef_isr.rel \
214 fx2lib/lib/interrupts/ep4ff_isr.rel \
215 fx2lib/lib/interrupts/ep4isoerr_isr.rel \
216 fx2lib/lib/interrupts/ep4_isr.rel \
217 fx2lib/lib/interrupts/ep4pf_isr.rel \
218 fx2lib/lib/interrupts/ep4ping_isr.rel \
219 fx2lib/lib/interrupts/ep6ef_isr.rel \
220 fx2lib/lib/interrupts/ep6ff_isr.rel \
221 fx2lib/lib/interrupts/ep6isoerr_isr.rel \
222 fx2lib/lib/interrupts/ep6_isr.rel \
223 fx2lib/lib/interrupts/ep6pf_isr.rel \
224 fx2lib/lib/interrupts/ep6ping_isr.rel \
225 fx2lib/lib/interrupts/ep8ef_isr.rel \
226 fx2lib/lib/interrupts/ep8ff_isr.rel \
227 fx2lib/lib/interrupts/ep8isoerr_isr.rel \
228 fx2lib/lib/interrupts/ep8_isr.rel \
229 fx2lib/lib/interrupts/ep8pf_isr.rel \
230 fx2lib/lib/interrupts/ep8ping_isr.rel \
231 fx2lib/lib/interrupts/errlimit_isr.rel \
232 fx2lib/lib/interrupts/gpifdone_isr.rel \
233 fx2lib/lib/interrupts/gpifwf_isr.rel \
234 fx2lib/lib/interrupts/hispeed_isr.rel \
235 fx2lib/lib/interrupts/ibn_isr.rel \
236 fx2lib/lib/interrupts/sof_isr.rel \
237 fx2lib/lib/interrupts/spare_isr.rel \
238 fx2lib/lib/interrupts/sudav_isr.rel \
239 fx2lib/lib/interrupts/suspend_isr.rel \
240 fx2lib/lib/interrupts/sutok_isr.rel \
241 fx2lib/lib/interrupts/usbreset_isr.rel
242
243fx2lib_libs = \
244 fx2lib/lib/fx2.lib \
245 fx2lib/lib/interrupts/ints.lib
246
247hw_sources = \
248 hw/braintechnology-usb-lps/dscr.a51 \
249 hw/cwav-usbeeax/dscr.a51 \
250 hw/cwav-usbeedx/dscr.a51 \
251 hw/cwav-usbeesx/dscr.a51 \
66255d9c 252 hw/cwav-usbeezx/dscr.a51 \
88d4ba3e 253 hw/cypress-fx2/dscr.a51 \
ce1d0a86 254 hw/hantek-6022be/dscr.a51 \
1d203181 255 hw/hantek-6022bl/dscr.a51 \
0f2d3242 256 hw/hantek-pso2020/dscr.a51 \
6ad0f97c 257 hw/instrustar-isds205b/dscr.a51 \
7a4d2e55 258 hw/sainsmart-dds120/dscr.a51 \
6ad0f97c
GS
259 hw/saleae-logic/dscr.a51 \
260 hw/sigrok-fx2-8ch/dscr.a51 \
261 hw/sigrok-fx2-16ch/dscr.a51 \
262 hw/yixingdianzi-mdso/dscr.a51
88d4ba3e
DE
263
264firmwaredir = $(datadir)/sigrok-firmware
265firmware_DATA = $(firmware_binaries)
266
8e269f7b
UH
267dist_noinst_DATA = \
268 $(fx2lafw_headers) $(fx2lafw_sources) \
269 $(hantek_6022be_headers) $(hantek_6022be_sources) \
270 $(hantek_6022bl_headers) $(hantek_6022bl_sources) \
0f2d3242 271 $(hantek_pso2020_headers) $(hantek_pso2020_sources) \
6ad0f97c 272 $(instrustar_isds205b_headers) $(instrustar_isds205b_sources) \
8e269f7b
UH
273 $(sainsmart_dds120_sources) $(sainsmart_dds120_headers) \
274 $(yixingdianzi_mdso_sources) $(yixingdianzi_mdso_headers) \
275 $(fx2lib_headers) $(fx2lib_sources) $(fx2lib_ints_sources) $(hw_sources)
623f27ba 276dist_noinst_SCRIPTS = autogen.sh
88d4ba3e 277
37521a3b 278MOSTLYCLEANFILES = *.asm fx2lib/lib/*.asm hw/**/*.asm fx2lib/lib/*.lib fx2lib/lib/interrupts/*.asm fx2lib/lib/interrupts/*.lib
88d4ba3e
DE
279CLEANFILES = $(firmware_binaries)
280DISTCLEANFILES = $(dirstamps)
281
5379bf86
DE
282# Custom silent rules prefixes
283SF_V_SDAS = $(sf_v_SDAS_@AM_V@)
284sf_v_SDAS_ = $(sf_v_SDAS_@AM_DEFAULT_V@)
285sf_v_SDAS_0 = @echo " SDAS " $@;
286sf_v_SDAS_1 =
287
288SF_V_SDCC = $(sf_v_SDCC_@AM_V@)
289sf_v_SDCC_ = $(sf_v_SDCC_@AM_DEFAULT_V@)
290sf_v_SDCC_0 = @echo " SDCC " $@;
291sf_v_SDCC_1 =
292
88d4ba3e
DE
293.PHONY: dist-bin dist-changelog
294
295all-local: $(firmware_binaries)
36074319 296
88d4ba3e
DE
297mostlyclean-local:
298 -$(AM_V_at)find . -type f '(' -name '*.ihx' -o -name '*.lk' \
299 -o -name '*.lst' -o -name '*.map' -o -name '*.mem' \
300 -o -name '*.rel' -o -name '*.rst' -o -name '*.sym' ')' \
301 -exec rm -f '{}' '+'
36074319 302
88d4ba3e 303dist-hook: dist-changelog
36074319 304
88d4ba3e 305dist-changelog:
0dc651eb
DE
306 $(AM_V_at)if test -d '$(top_srcdir)/.git'; then \
307 if git -C '$(top_srcdir)' log >.ChangeLog.tmp; \
308 then mv -f .ChangeLog.tmp "$(top_distdir)/ChangeLog"; \
309 else rm -f .ChangeLog.tmp; exit 1; fi; \
310 else :; fi
36074319 311
3cdd4722
UH
312# Creates a convenience tarball with just the generated *.fw files, so that
313# the users don't have to build them manually.
88d4ba3e 314dist-bin: $(firmware_binaries)
9a8e9e60 315 -$(AM_V_at)rm -fr $(distdir_bin)
88d4ba3e
DE
316 $(AM_V_at)$(MKDIR_P) $(distdir_bin)
317 $(AM_V_at)$(INSTALL_DATA) $(firmware_binaries) $(distdir_bin)
318 $(AM_V_at)$(INSTALL_DATA) $(srcdir)/COPYING $(srcdir)/COPYING.LESSER $(srcdir)/NEWS $(srcdir)/README $(distdir_bin)
9a8e9e60
DE
319 $(AM_V_at)if test -d '$(top_srcdir)/.git'; \
320 then git -C '$(top_srcdir)' log > $(distdir_bin)/ChangeLog; \
321 else $(INSTALL_DATA) $(srcdir)/ChangeLog $(distdir_bin); fi
88d4ba3e
DE
322 $(AM_V_at)tar -czf $(distdir_bin).tar.gz $(distdir_bin)
323 -$(AM_V_at)rm -fr $(distdir_bin)
324
325# List dependencies
326$(fx2lafw_objects): $(fx2lafw_headers)
6139dad4 327$(hantek_6022be_objects): $(hantek_6022be_headers)
88d4ba3e
DE
328$(fx2lib_objects): fx2lib/lib/$(dirstamp) $(fx2lib_headers)
329$(fx2lib_ints_objects): fx2lib/lib/interrupts/$(dirstamp) $(fx2lib_headers)
a7cf2e1b 330$(instrustar_isds205b_objects): $(instrustar_isds205b_headers)
88d4ba3e
DE
331
332hw/braintechnology-usb-lps/dscr.rel: hw/braintechnology-usb-lps/$(dirstamp) include/dscr.inc
333hw/cwav-usbeeax/dscr.rel: hw/cwav-usbeeax/$(dirstamp) include/dscr.inc
334hw/cwav-usbeedx/dscr.rel: hw/cwav-usbeedx/$(dirstamp) include/dscr.inc
335hw/cwav-usbeesx/dscr.rel: hw/cwav-usbeesx/$(dirstamp) include/dscr.inc
66255d9c 336hw/cwav-usbeezx/dscr.rel: hw/cwav-usbeezx/$(dirstamp) include/dscr.inc
88d4ba3e 337hw/cypress-fx2/dscr.rel: hw/cypress-fx2/$(dirstamp) include/dscr.inc
72295bd7
UH
338hw/hantek-6022be/dscr.rel: hw/hantek-6022be/$(dirstamp) include/dscr_scope.inc
339hw/hantek-6022bl/dscr.rel: hw/hantek-6022bl/$(dirstamp) include/dscr_scope.inc
0f2d3242 340hw/hantek-pso2020/dscr.rel: hw/hantek-pso2020/$(dirstamp) include/dscr_scope.inc
6ad0f97c 341hw/instrustar-isds205b/dscr.rel: hw/instrustar-isds205b/$(dirstamp) include/dscr_scope.inc
72295bd7 342hw/sainsmart-dds120/dscr.rel: hw/sainsmart-dds120/$(dirstamp) include/dscr_scope.inc
6ad0f97c
GS
343hw/saleae-logic/dscr.rel: hw/saleae-logic/$(dirstamp) include/dscr.inc
344hw/sigrok-fx2-8ch/dscr.rel: hw/sigrok-fx2-8ch/$(dirstamp) include/dscr.inc
345hw/sigrok-fx2-16ch/dscr.rel: hw/sigrok-fx2-16ch/$(dirstamp) include/dscr.inc
7a4d2e55 346hw/yixingdianzi-mdso/dscr.rel: hw/yixingdianzi-mdso/$(dirstamp) include/dscr_scope.inc
88d4ba3e
DE
347
348# Create build subdirectories
349$(dirstamps):
350 @stamp='$@'; $(MKDIR_P) "$${stamp%/*}"
351 @: > $@
352
353fx2lib/lib/fx2.lib: $(fx2lib_objects)
354 -$(AM_V_at)rm -f $@
4e52e8a1 355 $(AM_V_GEN)$(SDAR) -rc $@ $(fx2lib_objects)
88d4ba3e
DE
356
357fx2lib/lib/interrupts/ints.lib: $(fx2lib_ints_objects)
358 -$(AM_V_at)rm -f $@
4e52e8a1 359 $(AM_V_GEN)$(SDAR) -rc $@ $(fx2lib_ints_objects)
88d4ba3e
DE
360
361hw/braintechnology-usb-lps/fx2lafw-braintechnology-usb-lps.ihx: hw/braintechnology-usb-lps/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
362 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/braintechnology-usb-lps/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
363
364hw/cwav-usbeeax/fx2lafw-cwav-usbeeax.ihx: hw/cwav-usbeeax/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
365 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/cwav-usbeeax/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
366
367hw/cwav-usbeedx/fx2lafw-cwav-usbeedx.ihx: hw/cwav-usbeedx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
368 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/cwav-usbeedx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
369
370hw/cwav-usbeesx/fx2lafw-cwav-usbeesx.ihx: hw/cwav-usbeesx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
371 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/cwav-usbeesx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
372
66255d9c
UH
373hw/cwav-usbeezx/fx2lafw-cwav-usbeezx.ihx: hw/cwav-usbeezx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
374 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/cwav-usbeezx/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
375
88d4ba3e
DE
376hw/cypress-fx2/fx2lafw-cypress-fx2.ihx: hw/cypress-fx2/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
377 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/cypress-fx2/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
378
3878baac 379hw/hantek-6022be/fx2lafw-hantek-6022be.ihx: hw/hantek-6022be/dscr.rel $(hantek_6022be_objects) $(fx2lib_libs)
b11ae8d6 380 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/hantek-6022be/dscr.rel $(hantek_6022be_objects) $(fx2lib_libs)
6139dad4 381
1d203181 382hw/hantek-6022bl/fx2lafw-hantek-6022bl.ihx: hw/hantek-6022bl/dscr.rel $(hantek_6022bl_objects) $(fx2lib_libs)
b11ae8d6 383 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/hantek-6022bl/dscr.rel $(hantek_6022bl_objects) $(fx2lib_libs)
1d203181 384
0f2d3242
SM
385hw/hantek-pso2020/fx2lafw-hantek-pso2020.ihx: hw/hantek-pso2020/dscr.rel $(hantek_pso2020_objects) $(fx2lib_libs)
386 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/hantek-pso2020/dscr.rel $(hantek_pso2020_objects) $(fx2lib_libs)
387
a7cf2e1b 388hw/instrustar-isds205b/fx2lafw-instrustar-isds205b.ihx: hw/instrustar-isds205b/dscr.rel $(instrustar_isds205b_objects) $(fx2lib_libs)
389 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/instrustar-isds205b/dscr.rel $(instrustar_isds205b_objects) $(fx2lib_libs)
390
3878baac 391hw/sainsmart-dds120/fx2lafw-sainsmart-dds120.ihx: hw/sainsmart-dds120/dscr.rel $(sainsmart_dds120_objects) $(fx2lib_libs)
b11ae8d6 392 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/sainsmart-dds120/dscr.rel $(sainsmart_dds120_objects) $(fx2lib_libs)
ce1d0a86 393
6ad0f97c
GS
394hw/saleae-logic/fx2lafw-saleae-logic.ihx: hw/saleae-logic/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
395 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/saleae-logic/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
396
397hw/sigrok-fx2-8ch/fx2lafw-sigrok-fx2-8ch.ihx: hw/sigrok-fx2-8ch/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
398 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/sigrok-fx2-8ch/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
399
400hw/sigrok-fx2-16ch/fx2lafw-sigrok-fx2-16ch.ihx: hw/sigrok-fx2-16ch/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
401 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS) -o $@ hw/sigrok-fx2-16ch/dscr.rel $(fx2lafw_objects) $(fx2lib_libs)
402
7a4d2e55 403hw/yixingdianzi-mdso/fx2lafw-yixingdianzi-mdso.ihx: hw/yixingdianzi-mdso/dscr.rel $(yixingdianzi_mdso_objects) $(fx2lib_libs)
404 $(AM_V_GEN)$(SDCC) -mmcs51 $(SDCC_LINK_FLAGS_SCOPE) -o $@ hw/yixingdianzi-mdso/dscr.rel $(yixingdianzi_mdso_objects) $(fx2lib_libs)
405
88d4ba3e 406.a51.rel:
5379bf86 407 $(SF_V_SDAS)$(SDAS8051) -glos $(as_includes) $@ $<
88d4ba3e
DE
408
409.c.rel:
5379bf86 410 $(SF_V_SDCC)$(SDCC) -mmcs51 $(c_includes) -c $< -o $@
88d4ba3e
DE
411
412if FOUND_OBJCOPY
413.ihx.fw:
414 $(AM_V_GEN)$(OBJCOPY) -Iihex $< -Obinary $@
415else
416if FOUND_MAKEBIN
417.ihx.fw:
418 $(AM_V_GEN)$(MAKEBIN) -p < $< > $@
419endif
420endif