#remove this once we have a real compiler export P2P_ENABLE = 1 #Pull in the definitions that affect all makefiles for this image include img_defs.mk #Pull in object file names for the top directory include topfiles.mk ifdef P2P_ENABLE include $(P2P_SRCDIR)/p2pfiles.mk endif PK_MAKE_DIR := $(PK_SRCDIR)/$(PPE_TYPE) OBJS := $(addprefix $(OBJDIR)/, $(TOP_OBJECTS)) PKLIB := $(OBJDIR)/pk/libpk.a LIB_DIRS = -L$(OBJDIR)/pk #-L$(OBJDIR)/commonlib LINK_OBJS = $(OBJS) $(PKLIB) #$(COMMONLIB) LINK_SCRIPT = $(addprefix $(OBJDIR)/, linkscript) ifdef P2P_ENABLE P2PLIB := $(OBJDIR)/p2p/libp2p.a LIB_DIRS += -L$(OBJDIR)/p2p LINK_OBJS += $(P2PLIB) endif #default target is to make a binary application image #This removes all unecessary headers from the ELF executable $(OBJDIR)/$(IMAGE_NAME).bin $(OBJDIR)/$(IMAGE_NAME).dis: $(OBJDIR)/$(IMAGE_NAME).out $(OBJCOPY) -O binary $< $(OBJDIR)/$(IMAGE_NAME).bin $(OBJDUMP) -S $< > $(OBJDIR)/$(IMAGE_NAME).dis #create a linked ELF executable $(OBJDIR)/$(IMAGE_NAME).out: $(LINK_OBJS) $(LINK_SCRIPT) $(LD) -e __system_reset -T$(LINK_SCRIPT) -Map $(OBJDIR)/$(IMAGE_NAME).map -Bstatic -o $(OBJDIR)/$(IMAGE_NAME).out $(LIB_DIRS) $(OBJS) -lpk -lp2p #-lcommon #pass the link command file through the C preprocessor to evaluate macros and remove comments $(LINK_SCRIPT): link.cmd $(CPP) -E -x c++ -P $(DEFS) link.cmd -o $(LINK_SCRIPT) #Create an obj directory if needed $(LINK_OBJS) $(OBJS) $(OBJS:.o=.d): | $(OBJDIR) $(OBJDIR): mkdir -p $(OBJDIR) .PHONY: clean $(PKLIB) $(P2PLIB) #Build macro-specific kernel code $(PKLIB): $(MAKE) -I $(IMAGE_SRCDIR) -C $(PK_MAKE_DIR) #Build the code that is common for all processors (PPEs and 405) #$(COMMONLIB): # $(MAKE) -I $(IMAGE_SRCDIR) -C $(COMMONLIB_SRCDIR) ifdef P2P_ENABLE $(P2PLIB): $(MAKE) -I $(IMAGE_SRCDIR) -C $(P2P_SRCDIR) endif # collect all of the trace hash files for this image into a single trexStringFile .PHONY : tracehash tracehash: mkdir -p $(OBJDIR) $(THASH) -c -d $(OBJDIR) -s $(OBJDIR)/trexStringFile #clean the kernel directory first, then the application level clean clean: rm -fr $(OBJDIR) #Add dependencies to header files ifneq ($(MAKECMDGOALS),clean) include $(OBJS:.o=.d) endif