PRE = h8300-elf- export CC = $(PRE)gcc export OBJCPY = $(PRE)objcopy export BUILD_DIR = $(CURDIR)/build_by_gcc NEWLIB_DIR = /usr/local/h8300-elf/lib/h8300h ROOT_DIR = $(CURDIR) FRAMEWORK = $(ROOT_DIR)/../framework DEPENDENCY = $(ROOT_DIR)/../framework/dependency/AKI3069 UTIL = $(ROOT_DIR)/../framework/util OTHER_PACKAGE = $(UTIL) $(DEPENDENCY) INCLUDES = \ -I$(ROOT_DIR) -I$(FRAMEWORK) \ $(patsubst %,-I%,$(OTHER_PACKAGE)) \ -I/usr/local/h8300-elf/include # DEBUG MONITOR TARGET #STARTUP = $(DEPENDENCY)/ramcrt0.S #LDSCRIPT = $(DEPENDENCY)/monitor.x # ROM TARGET STARTUP = $(DEPENDENCY)/romcrt0.S LDSCRIPT = $(DEPENDENCY)/rom.x export CFLAGS = \ $(INCLUDES) \ -Wall -mh -g -mrelax -gdwarf-2 -mint32 -O2 #-ansi -O2 export LDFLAGS = \ -nostdlib -nostartfiles -nodefaultlibs -mrelax -L$(NEWLIB_DIR) -lc -lm -lgcc \ -T $(LDSCRIPT) -Wl,-Map,$(MAP) -Wl,-static TARGET = test GOAL = $(TARGET).elf $(TARGET).mot $(TARGET).abs SRCS = $(shell ls *.c) MAP = $(BUILD_DIR)/$(TARGET).map all : $(BUILD_DIR) $(patsubst %,$(BUILD_DIR)/%,$(GOAL)) @echo COMPLETED. $(BUILD_DIR) : mkdir $@ $(BUILD_DIR)/%.mot : $(BUILD_DIR)/%.elf $(OBJCPY) -O srec $< $@ $(BUILD_DIR)/%.abs : $(BUILD_DIR)/%.elf cp $< $@ $(BUILD_DIR)/%.elf : $(STARTUP) $(SRCS) $(BUILD_DIR)/*.o $(CC) $^ $(CFLAGS) $(LDFLAGS) -o $@ $(STARTUP) : $(BUILD_DIR)/*.o : other_package other_package : for package in $(OTHER_PACKAGE); do \ (cd $$package && $(MAKE)); \ done clean: for package in $(OTHER_PACKAGE); do \ (cd $$package && $(MAKE) clean); \ done rm -f $(BUILD_DIR)/* .PHONY: clean all other_package