summaryrefslogblamecommitdiffstats
path: root/Makefile.shared
blob: a91b4508ad2134feef34717eef805401b59cef47 (plain) (tree)
1
2
3
4
5
6




                                                         
                                                                            






















                                                                        

                    
                    
 
                                                                            
                           
                                                                
                                   
                                                           
                                

                                                                         










                                                                              

                         

     
                                                                    
                                               





                                                                            
                                                                       








                                                
#
#  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