Initial commit
This commit is contained in:
51
Makefile
51
Makefile
@@ -19,17 +19,17 @@ CC=gcc
|
||||
OBJDUMP=objdump
|
||||
LIBS=
|
||||
STANDART=c23
|
||||
|
||||
OPTIMIZE=-Og
|
||||
TARGET=device
|
||||
ifeq ($(ARCH),)
|
||||
ARCH := "template"
|
||||
endif
|
||||
|
||||
|
||||
START_AT := $(shell date)
|
||||
DEFINES=-DOPCODE_WORDSIZE=2 -DMEM_CELL_WORDS=1 -DPC_WORDSIZE=3 -DGP_REG_CELL_WORDS=1 -DIO_REG_CELL_WORDS=1 -DARCH=$(ARCH)
|
||||
|
||||
C_SOURCES=$(wildcard $(SRC_DIR)/*.c)
|
||||
C_SOURCES=$(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/instructions/*.c)
|
||||
MANIFEST_C_SOURCES=$(wildcard $(MANIFEST_SRC_DIR)/*.c)
|
||||
|
||||
C_HEADERS=$(wildcard $(INC_DIR)/*.h)
|
||||
|
||||
C_INCLUDES=-I$(INC_DIR)/ -I$(HMMMM_LIB_DIR)
|
||||
@@ -42,16 +42,18 @@ CFLAGS=$(C_DEFS) -g $(C_INCLUDES) $(DEFINES) $(OPTIMIZE) --std=$(STANDART) $(PED
|
||||
LFLAGS=$(OPTIMIZE) -g $(PEDANTIC_FLAGS) $(DEFINES) -flto -fuse-linker-plugin $(LSECTIONS) -lm $(LIBS) -fPIC -shared
|
||||
MANIFEST_LFLAGS=$(OPTIMIZE) -g $(PEDANTIC_FLAGS) $(DEFINES) -flto -fuse-linker-plugin $(LSECTIONS) -lm $(LIBS) -fPIC
|
||||
|
||||
OBJECTS := $(addprefix $(BUILD_DIR)/,$(patsubst src/%.c,$(PREFIX)%.o,$(C_SOURCES)))
|
||||
|
||||
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
MANIFEST_TARGETS = $(addprefix $(MANIFEST_BUILD_DIR)/,$(notdir $(MANIFEST_C_SOURCES:.c=.elf)))
|
||||
|
||||
BUILDPATHS := $(dir $(OBJECTS))
|
||||
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
vpath %.h $(sort $(dir $(C_HEADERS)))
|
||||
|
||||
rebuild: clean | build
|
||||
|
||||
all: build manifest
|
||||
all: AVRe AVRrc AVRxm AVRxt
|
||||
|
||||
build: date Dir $(C_HEADERS) target
|
||||
|
||||
@@ -63,9 +65,10 @@ $(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
target: date $(BUILD_DIR)/$(TARGET).so
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).so: $(OBJECTS)
|
||||
@echo -e '\033[1;32mELF ('$(ARCH)')\t'$(OBJECTS)'\n\t\t\t->\t'$@'\033[0m'
|
||||
@echo -e '\033[1;32mLD ('$(ARCH)')\t'$(OBJECTS)'\n\t\t\t->\t'$@'\033[0m'
|
||||
@$(CC) $(LFLAGS) $(OBJECTS) -o $(BUILD_DIR)/$(TARGET).so
|
||||
|
||||
|
||||
manifest: $(MANIFEST_BUILD_DIR)/MANIFEST.json
|
||||
|
||||
$(MANIFEST_BUILD_DIR)/MANIFEST.json: $(C_HEADERS) $(MANIFEST_TARGETS)
|
||||
@@ -90,8 +93,34 @@ $(BUILD_DIR):
|
||||
$(MANIFEST_BUILD_DIR):
|
||||
@mkdir -p $(MANIFEST_BUILD_DIR)
|
||||
|
||||
|
||||
|
||||
AVRe: AVRe_build/AVRe.so
|
||||
AVRrc: AVRrc_build/AVRrc.so
|
||||
AVRxm: AVRxm_build/AVRxm.so
|
||||
AVRxt: AVRxt_build/AVRxt.so
|
||||
|
||||
|
||||
|
||||
AVRe_build/AVRe.so:
|
||||
@echo -e '\033[1;32mMK (AVRe)\033[0m'
|
||||
@$(MAKE) --no-print-directory rebuild ARCH=AVRe BUILD_DIR=AVRe_build
|
||||
|
||||
AVRrc_build/AVRrc.so:
|
||||
@echo -e '\033[1;32mMK (AVRrc)\033[0m'
|
||||
@$(MAKE) --no-print-directory rebuild ARCH=AVRrc BUILD_DIR=AVRrc_build
|
||||
|
||||
AVRxm_build/AVRxm.so:
|
||||
@echo -e '\033[1;32mMK (AVRxm)\033[0m'
|
||||
@$(MAKE) --no-print-directory rebuild ARCH=AVRxm BUILD_DIR=AVRxm_build
|
||||
|
||||
AVRxt_build/AVRxt.so:
|
||||
@echo -e '\033[1;32mMK (AVRxt)\033[0m'
|
||||
@$(MAKE) --no-print-directory rebuild ARCH=AVRxt BUILD_DIR=AVRxt_build
|
||||
|
||||
BuildDir:
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
@mkdir -p $(BUILDPATHS)
|
||||
|
||||
SrcDir:
|
||||
@mkdir -p $(SRC_DIR)
|
||||
@@ -104,11 +133,11 @@ Dir: BuildDir SrcDir IncDir
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@rm -rf $(BUILD_DIR)/*
|
||||
@rm -rf AVRe_build AVRrc_build AVRxm_build AVRxt_build
|
||||
@echo -e '\033[0;31mCleaned\033[0m'
|
||||
|
||||
.NOTPARALLEL: date target rebuild
|
||||
date:
|
||||
@echo -e '\033[1;32m'"Starting build at " | tr -d '\n'
|
||||
@date
|
||||
@echo -e '\033[0m'
|
||||
@echo -e '\033[1;32m'"Starting build at "$(START_AT)'\033[0m'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user