blob: a91b4508ad2134feef34717eef805401b59cef47 (
plain) (
blame)
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
|
#
# Subdirectory makefiles do some setup, then we get here
#
# Tool helpers
CARGS =-B${RTEMS_MAKEFILE_PATH}/lib/ -specs=bsp_specs -qrtems $(CPU_CFLAGS)
# GEN5200 Specific Information
ifeq ($(RTEMS_BSP_FAMILY),gen5200)
LINKARGS+=-qnolinkcmds -T$(RTEMS_LINKCMDS)
endif
# PC386 Specific Information
ifeq ($(RTEMS_BSP_FAMILY),pc386)
HEADERADDR=0x00097E00
START16FILE=$(RTEMS_MAKEFILE_PATH)/lib/start16.bin
START16ADDR=0x00097C00
RELOCADDR=0x00100000
LINKARGS+= -Wl,-Ttext,$(RELOCADDR)
endif
# Some tests need to be able to do a gethostbyname
ifeq ($(NEED_ROOTFS_FOR_HOST_INFO),yes)
CLEAN_ADDITIONS += FilesystemImage FilesystemImage.c FilesystemImage.h
FILESYSTEM_OBJS = FilesystemImage.o
FILESYSTEM_SRCS = FilesystemImage.h
CFLAGS += -DENABLE_UNTAR_ROOT_FILESYSTEM -I.
endif
CFLAGS += $(DEFINES)
all: $(PROGRAM).exe
$(PROGRAM).exe: rtems_init.o $(FILESYSTEM_OBJS) $(PROGRAM).adb $(EXTRA_OBJS)
$(AS:as=gnatmake) \
-g -I$(RTEMS_MAKEFILE_PATH)/lib/include/adainclude \
-v $(EXTRA_GNATFLAGS) \
-O -gnata -gnatE -gnato -g $(PROGRAM) -o $(@) \
-bargs -Mgnat_main \
-largs $(CARGS) $(LINKARGS) rtems_init.o $(FILESYSTEM_OBJS) \
$(EXTRA_OBJS)
$(SIZE) $(@)
ifeq ($(RTEMS_BSP_FAMILY),pc386)
mv $(@) $(@).obj
$(OBJCOPY) -O elf32-i386 \
--remove-section=.rodata \
--remove-section=.comment \
--remove-section=.note \
--strip-unneeded $(@).obj $(@)
$(OBJCOPY) -O binary $(@).obj $(@).bin
$(RTEMS_MAKEFILE_PATH)/build-tools/bin2boot -v $(@).bt $(HEADERADDR) \
$(START16FILE) $(START16ADDR) 0 $(@).bin $(RELOCADDR) 0
# rm -f $(@).obj
rm -f $(@).bin
endif
rtems_init.o: ../rtems_init.c ../networkconfig.h $(FILESYSTEM_SRCS)
$(CC) $(CFLAGS) -I. $(CPU_CFLAGS) -c $<
ifeq ($(NEED_ROOTFS_FOR_HOST_INFO),yes)
FilesystemImage: ../rootfs/etc/host.conf ../rootfs/etc/hosts
(cd ../rootfs ; tar cf - --exclude CVS --exclude .cvsignore .) >$(@)
FilesystemImage.c FilesystemImage.h: FilesystemImage
$(PROJECT_ROOT)/bin/rtems-bin2c FilesystemImage FilesystemImage
FilesystemImage.o: FilesystemImage.c
$(CC) $(CFLAGS) $(CPU_CFLAGS) -c $<
endif
clean:
rm -f b~*.* *.o *.ali $(PROGRAM)
rm -f *.num *.exe *.obj *.bin *.bt *.gba
|