@@ -43,6 +43,7 @@ LD = @LD@
43
43
RANLIB = @RANLIB@
44
44
45
45
UART_CFLAGS = @UART_CFLAGS@
46
+ HL_CFLAGS = @HL_CFLAGS@
46
47
47
48
OBJDUMP = ` if [ -f ${objroot} /../binutils/objdump ] ; \
48
49
then echo ${objroot} /../binutils/objdump ; \
@@ -51,7 +52,7 @@ OBJCOPY = `if [ -f ${objroot}/../binutils/objcopy ] ; \
51
52
then echo ${objroot} /../binutils/objcopy ; \
52
53
else t=' $(program_transform_name)' ; echo objcopy | sed -e $$ t ; fi `
53
54
54
- CRT0 = gcrt0.o crt0.o
55
+ CRT0 = gcrt0.o crt0.o semihost-helper.o
55
56
CRT0_INSTALL = install-crt0
56
57
57
58
NSIM_BSP = libnsim.a
@@ -60,6 +61,7 @@ NSIM_OBJS = \
60
61
nsim-syscalls.o \
61
62
sbrk.o \
62
63
mcount.o
64
+
63
65
NSIM_INSTALL = install-nsim
64
66
NSIM_SCRIPTS = nsim.specs
65
67
@@ -74,6 +76,32 @@ QEMU_OBJS = \
74
76
QEMU_INSTALL = install-qemu
75
77
QEMU_SCRIPTS = qemu.specs
76
78
79
+ HL_BSP = libhl.a
80
+ HL_OBJS = \
81
+ hl-stub.o \
82
+ libcfunc.o \
83
+ sbrk.o \
84
+ mcount.o
85
+ HL_DIR_OBJS = \
86
+ hl/hl_gw.o \
87
+ hl/hl_api.o \
88
+ hl/hl_open.o \
89
+ hl/hl_close.o \
90
+ hl/hl_read.o \
91
+ hl/hl_write.o \
92
+ hl/hl_lseek.o \
93
+ hl/hl_unlink.o \
94
+ hl/hl_isatty.o \
95
+ hl/hl_fstat.o \
96
+ hl/hl_clock.o \
97
+ hl/hl_gettimeofday.o \
98
+ hl/hl_argc.o \
99
+ hl/hl_argv.o \
100
+ hl/hl_exit.o
101
+
102
+ HL_INSTALL = install-hl
103
+ HL_SCRIPTS = hl.specs
104
+
77
105
UART_LIB = libdw_uart.a
78
106
UART_OBJS = write.o \
79
107
read.o \
@@ -88,17 +116,18 @@ MEMORY_MAPS = emsk_em9d.x \
88
116
MEMORY_MAP_INSTALL = install-map
89
117
90
118
UART_DIR = uart-dir
119
+ HL_DIR = hl-dir
91
120
92
121
CFLAGS = -g
93
- override CFLAGS += $(UART_CFLAGS )
122
+ override CFLAGS += $(UART_CFLAGS ) $( HL_CFLAGS )
94
123
95
124
CPU_FAMILY = $(findstring em,${MULTISUBDIR})
96
125
ifeq ($(CPU_FAMILY ) , em)
97
- ALL = $(CRT0 ) $(NSIM_BSP ) $(UART_LIB ) $(QEMU_BSP )
126
+ ALL = $(CRT0 ) $(NSIM_BSP ) $(UART_LIB ) $(QEMU_BSP ) $( HL_BSP )
98
127
else
99
- ALL = $(CRT0 ) $(NSIM_BSP ) $(QEMU_BSP )
128
+ ALL = $(CRT0 ) $(NSIM_BSP ) $(QEMU_BSP ) $( HL_BSP )
100
129
endif
101
- ALL_INSTALL = $(CRT0_INSTALL ) $(NSIM_INSTALL ) $(NANO_INSTALL ) $(UART_INSTALL ) $(MEMORY_MAP_INSTALL ) $(QEMU_INSTALL )
130
+ ALL_INSTALL = $(CRT0_INSTALL ) $(NSIM_INSTALL ) $(NANO_INSTALL ) $(UART_INSTALL ) $(MEMORY_MAP_INSTALL ) $(QEMU_INSTALL ) $( HL_INSTALL )
102
131
103
132
# These are roughly topologically sorted in order to make porting more
104
133
# streamlined.
@@ -132,15 +161,18 @@ FLAGS_TO_PASS = \
132
161
all : $(ALL )
133
162
134
163
$(NSIM_BSP ) : $(NSIM_OBJS )
135
- $(AR ) $(ARFLAGS ) $@ $?
164
+ $(AR ) $(ARFLAGS ) $@ $( NSIM_OBJS )
136
165
$(RANLIB ) $@
137
166
138
167
$(UART_LIB ) : $(UART_OBJS ) $(UART_DIR )
139
168
$(AR ) $(ARFLAGS ) $@ $(UART_OBJS ) dw_uart/* .o
140
169
$(RANLIB ) $@
141
170
171
+ $(HL_DIR ) : hl
142
172
$(UART_DIR ) : dw_uart
143
- for dir in .. ${SUBDIRS} ; do \
173
+
174
+ $(HL_DIR ) $(UART_DIR ) :
175
+ for dir in .. $^; do \
144
176
if [ x$$ dir != x.. ]; then \
145
177
if [ -d $$ dir ]; then \
146
178
(cd $$ dir; $( MAKE) $( FLAGS_TO_PASS) all) || exit $$? ; \
@@ -152,6 +184,13 @@ $(QEMU_BSP): $(QEMU_OBJS)
152
184
$(AR ) $(ARFLAGS ) $@ $?
153
185
$(RANLIB ) $@
154
186
187
+ $(HL_DIR_OBJS ) : $(HL_DIR )
188
+ true
189
+
190
+ $(HL_BSP ) : $(HL_OBJS ) $(HL_DIR_OBJS )
191
+ $(AR ) $(ARFLAGS ) $@ $?
192
+ $(RANLIB ) $@
193
+
155
194
libcfunc.o : libcfunc.c
156
195
nsim-syscalls.o : nsim-syscalls.c
157
196
sbrk.o : sbrk.c
@@ -163,6 +202,9 @@ qemu-write.o: qemu-write.c
163
202
read.o : read.c
164
203
stub.o : stub.c
165
204
qemu-stub.o : qemu-stub.c
205
+ hl-stub.o : hl-stub.c
206
+ semihost-helper.o : semihost-helper.c
207
+
166
208
$(UART_OBJS ) :
167
209
$(CC ) $(CFLAGS_FOR_TARGET ) $(INCLUDES ) -c $(CFLAGS ) $<
168
210
@@ -211,6 +253,11 @@ $(QEMU_INSTALL):
211
253
for x in $( QEMU_SCRIPTS) ; do \
212
254
$(INSTALL_DATA ) $(srcdir ) /$$ x $(DESTDIR )$(tooldir ) /lib$(MULTISUBDIR ) /$$ x; done
213
255
256
+ $(HL_INSTALL ) :
257
+ $(mkinstalldirs ) $(DESTDIR ) ${tooldir} /lib${MULTISUBDIR}
258
+ $(INSTALL_DATA ) $(HL_BSP ) $(DESTDIR )$(tooldir ) /lib$(MULTISUBDIR ) /$(HL_BSP )
259
+ for x in $( HL_SCRIPTS) ; do \
260
+ $(INSTALL_DATA ) $(srcdir ) /$$ x $(DESTDIR )$(tooldir ) /lib$(MULTISUBDIR ) /$$ x; done
214
261
215
262
$(MEMORY_MAP_INSTALL ) :
216
263
$(mkinstalldirs ) $(DESTDIR ) ${tooldir} /lib${MULTISUBDIR}
0 commit comments