Imported Upstream version 3.2.2
[debian/gnuradio] / usrp / firmware / src / usrp2 / Makefile.am
1 #
2 # Copyright 2003,2006 Free Software Foundation, Inc.
3
4 # This file is part of GNU Radio
5
6 # GNU Radio is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
10
11 # GNU Radio is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with GNU Radio; see the file COPYING.  If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street,
19 # Boston, MA 02110-1301, USA.
20
21
22 firmware2dir = $(prefix)/share/usrp/rev2
23 firmware2_DATA = std.ihx
24
25 # we put the same stuff in the rev4 directory
26 firmware4dir = $(prefix)/share/usrp/rev4
27 firmware4_DATA = std.ihx
28
29 EXTRA_DIST =                    \
30         edit-gpif               \
31         _startup.a51            \
32         blink_leds.c            \
33         board_specific.c        \
34         check_mdelay.c          \
35         check_udelay.c          \
36         eeprom_boot.a51         \
37         eeprom_init.c           \
38         eeprom_io.c             \
39         eeprom_io.h             \
40         fpga_load.c             \
41         fpga_rev2.c             \
42         fpga_rev2.h             \
43         gpif.c                  \
44         init_gpif.c             \
45         spi.c                   \
46         spi.h                   \
47         usb_descriptors.a51     \
48         usrp_common.c           \
49         usrp_common.h           \
50         usrp_gpif.c             \
51         usrp_main.c             \
52         usrp_rev2_regs.h        \
53         vectors.a51             
54
55
56 DEFINES=-DHAVE_USRP2
57 FW_INCLUDES=-I$(top_srcdir)/usrp/firmware/include \
58          -I$(top_srcdir)/usrp/firmware/src/usrp2 \
59          -I$(top_srcdir)/usrp/firmware/src/common \
60          -I$(top_builddir)/usrp/firmware/src/common
61
62 # with EA = 0, the FX2 implements a portion of the 8051 "external memory"
63 # on chip.  This memory is mapped like this:
64 #
65 # The bottom 8K of memory (0x0000 - 0x1fff) is used for both data and
66 # code accesses.  There's also 512 bytes for data only from 0xe000 - 0xe1ff.
67 #
68 # We tell the linker to start the xdata segment at 0x1800, 6K up from
69 # the bottom.
70
71 MEMOPTS = --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 \
72  -Wl '-b USBDESCSEG = 0xE000'
73
74 LIBOPTS = -L ../../lib libfx2.lib
75 LIBDEP = ../../lib/libfx2.lib
76
77 LINKOPTS = $(MEMOPTS) $(LIBOPTS)
78
79 EXECUTABLES =                   \
80         std.ihx                 \
81         blink_leds.ihx          \
82         check_mdelay.ihx        \
83         check_udelay.ihx        \
84         eeprom_boot.ihx         
85
86 STARTUP = _startup.rel
87
88 noinst_SCRIPTS =                \
89         burn-usrp2-eeprom       \
90         burn-usrp4-eeprom
91
92
93 .c.rel:
94         $(XCC) $(FW_INCLUDES) $(DEFINES) \
95                 -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
96
97 .a51.rel:
98         test -f `basename '$<'` || $(LN_S) '$<' .
99         test -f ../common/`basename '$<'` -o \
100                 \! -f `dirname '$<'`/../common/`basename '$<'` \
101                 || $(LN_S) `dirname '$<'`/../common/`basename '$<'` ../common/`basename '$<'`
102         $(XAS) `basename '$<'`
103
104
105 EEPROM_BOOT_OBJS = eeprom_boot.rel eeprom_init.rel $(STARTUP)
106
107 eeprom_boot.ihx: $(EEPROM_BOOT_OBJS) $(LIBDEP)
108         $(XCC) $(LINKOPTS) -o $@ $(EEPROM_BOOT_OBJS)
109
110 burn-usrp2-eeprom: eeprom_boot.ihx
111         $(PYTHON) $(srcdir)/../common/build_eeprom.py -r2 eeprom_boot.ihx > $@
112         chmod +x $@
113
114 burn-usrp4-eeprom: eeprom_boot.ihx
115         $(PYTHON) $(srcdir)/../common/build_eeprom.py -r4 eeprom_boot.ihx > $@
116         chmod +x $@
117
118
119 BLINK_LEDS_OBJS = blink_leds.rel usrp_common.rel board_specific.rel spi.rel $(STARTUP)
120
121 blink_leds.ihx: $(BLINK_LEDS_OBJS) $(LIBDEP)
122         $(XCC) $(LINKOPTS) -o $@ $(BLINK_LEDS_OBJS)
123
124
125 CHECK_MDELAY_OBJS = check_mdelay.rel usrp_common.rel board_specific.rel spi.rel $(STARTUP)
126
127 check_mdelay.ihx: $(CHECK_MDELAY_OBJS) $(LIBDEP)
128         $(XCC) $(LINKOPTS) -o $@ $(CHECK_MDELAY_OBJS)
129
130
131
132 CHECK_UDELAY_OBJS = check_udelay.rel usrp_common.rel board_specific.rel spi.rel $(STARTUP)
133
134 check_udelay.ihx: $(CHECK_UDELAY_OBJS) $(LIBDEP)
135         $(XCC) $(LINKOPTS) -o $@ $(CHECK_UDELAY_OBJS)
136
137
138
139 USRP_OBJS = \
140         vectors.rel                                             \
141         usrp_main.rel usrp_common.rel board_specific.rel        \
142         fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel \
143         usb_descriptors.rel spi.rel eeprom_io.rel $(STARTUP)
144
145 std.ihx: $(USRP_OBJS) $(LIBDEP)
146         $(XCC) $(LINKOPTS) -o $@ $(USRP_OBJS)
147
148 CLEANFILES =            \
149         *.ihx *.lnk *.lst *.map *.mem *.rel *.rst *.sym *.asm *.lib     \
150         usrp_gpif.c usrp_gpif_inline.h \
151         burn-usrp2-eeprom       \
152         burn-usrp4-eeprom
153
154 DISTCLEANFILES =        \
155         *.ihx *.lnk *.lst *.map *.mem *.rel *.rst *.sym *.asm *.lib
156
157 # build gpif stuff
158
159 all: usrp_gpif.c
160
161 usrp_gpif.c usrp_gpif_inline.h : gpif.c
162         srcdir=$(srcdir) $(PYTHON) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h
163
164
165 # dependencies
166
167 usrp_main.rel: usrp_gpif_inline.h
168 #usrp_main.rel: fpga.h usrp_common.h ../../include/usrp_commands.h usrp_gpif_inline.h  ../../include/usrp_config.h usrp_rev2_regs.h ../../include/fx2regs.h
169 #usrp_common.rel: usrp_common.h ../../include/usrp_commands.h ../../include/usrp_config.h usrp_rev2_regs.h ../../include/fx2regs.h
170 #fpga.rel: usrp_common.h ../../include/usrp_commands.h fpga.h ../../include/usrp_config.h usrp_rev2_regs.h ../../include/fx2regs.h
171 #init_gpif.rel: usrp_common.h ../../include/usrp_config.h usrp_rev2_regs.h ../../include/fx2regs.h