diff --git a/build.mk b/build.mk new file mode 100644 index 0000000..6658e80 --- /dev/null +++ b/build.mk @@ -0,0 +1,167 @@ +ifndef BINDIR +$(error BINDIR is not defined in the Makefile) +endif + + +#definition of various tools +AWK = awk +CAT = cat +CD = cd +CP = cp +CPIO = cpio +MV = mv +RM = rm +LS = ls +SED = sed +MKDIR = mkdir +CHMOD = chmod +IHEX2BIN = ihex2bin +BIN2IHEX = bin2ihex +BIN2C = bin2c + + +ifeq ($(RELEASE), yes) + +$(info ******************************* Release build *******************************) + +else + +$(info ******************************* Debug build *******************************) + +endif + + +OBJDIR = $(BINDIR)/obj + +#update CFLAGS and LDFLAGS +CFLAGS += $(PLATFORM_CFLAGS) $(ARCH_CFLAGS) $(OPT_CFLAGS) -O$(OPTLEVEL) -g$(DBGLEVEL) $(addprefix -I, $(INCDIRS)) $(addprefix -D, $(CPPDEFS)) +CXXFLAGS += $(PLATFORM_CXXFLAGS) $(ARCH_CFLAGS) $(OPT_CFLAGS) -O$(OPTLEVEL) -g$(DBGLEVEL) $(addprefix -I, $(INCDIRS)) $(addprefix -D, $(CPPDEFS)) +LDFLAGS += $(PLATFORM_LDFLAGS) $(ARCH_CFLAGS) $(OPT_CFLAGS) -O$(OPTLEVEL) -g$(DBGLEVEL) -Wl,-Map=$(BINDIR)/$(TARGET).map,--gc-sections,--cref + +#create list of all objects +ALLOBJS = $(addprefix $(OBJDIR)/, $(patsubst %.s, %.o, $(notdir $(ASRCS)))) $(addprefix $(OBJDIR)/, $(patsubst %.c, %.o, $(notdir $(CSRCS)))) $(addprefix $(OBJDIR)/, $(patsubst %.cpp, %.o, $(notdir $(CXXSRCS)))) + +#create list of all object directories +NEWDIRS += $(sort $(dir $(ALLOBJS))) + + + +ifeq ($(BUILD_VERSION), svn) +SVNVER = $(subst :,r,$(shell svnversion -n .)) + +CFLAGS += -D_BUILD_VERSION_=\""svn-r$(SVNVER)"\" +CFLAGS += -D_BUILD_VERSION_BCD_=0xDDDD +CXXFLAGS += -D_BUILD_VERSION_=\""svn-r$(SVNVER)"\" +CXXFLAGS += -D_BUILD_VERSION_BCD_=0xDDDD +TARGET_VER = $(addsuffix _r$(SVNVER), $(TARGET)) +else +BUILD_VERSION_BCD = 0x$(subst .,,$(BUILD_VERSION)) + +CFLAGS += -D_BUILD_VERSION_=\""v$(BUILD_VERSION)"\" +CXXFLAGS += -D_BUILD_VERSION_=\""v$(BUILD_VERSION)"\" +CFLAGS += -D_BUILD_VERSION_BCD_=$(BUILD_VERSION_BCD) +CXXFLAGS += -D_BUILD_VERSION_BCD_=$(BUILD_VERSION_BCD) +TARGET_VER = $(addsuffix _v$(BUILD_VERSION), $(TARGET)) +endif + + +ifeq ($(VERBOSE), yes) + PREFIX := + EMPTY_LINE := @echo; +else + PREFIX := @ + EMPTY_LINE := +endif + + +#(1) = target +#(2) = source(s) +#(3) = extra flags +define COMPILE_ASM_SOURCE +$(1): $(2) | $(dir $(1)) + @echo Compiling $(2) ...; + $(PREFIX)$(CC) -c $(3) -o $(1) $(2); + $(EMPTY_LINE) +# @$(CP) -R $(patsubst %.o, %.d, $(1)) $(patsubst %.o, %.D, $(1)) +# @$(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$$$//' -e '/^$$$$/ d' -e 's/$$$$/ :/' <$(patsubst %.o,%.d,$(1)) >>$(patsubst %.o,%.D,$(1)) +# @$(MV) $(patsubst %.o, %.D, $(1)) $(patsubst %.o, %.d, $(1)) +endef + + + +#(1) = target +#(2) = source(s) +#(3) = extra flags +define COMPILE_C_SOURCE +$(1): $(2) | $(dir $(1)) + @echo Compiling $(2) ...; + $(PREFIX)$(CC) -c $(3) -MD -pipe -o $(1) $(2); + $(EMPTY_LINE) + @$(CP) -R $(patsubst %.o, %.d, $(1)) $(patsubst %.o, %.D, $(1)); + @$(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$$$//' -e '/^$$$$/ d' -e 's/$$$$/ :/' <$(patsubst %.o,%.d,$(1)) >>$(patsubst %.o,%.D,$(1)); + @$(MV) $(patsubst %.o, %.D, $(1)) $(patsubst %.o, %.d, $(1)); +endef + + +#(1) = target +#(2) = source(s) +#(3) = extra flags +define COMPILE_CXX_SOURCE +$(1): $(2) | $(dir $(1)) + @echo Compiling $(2) ...; + $(PREFIX)$(CC) -c $(3) -MD -pipe -o $(1) $(2); + $(EMPTY_LINE) + @$(CP) -R $(patsubst %.o, %.d, $(1)) $(patsubst %.o, %.D, $(1)); + @$(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$$$//' -e '/^$$$$/ d' -e 's/$$$$/ :/' <$(patsubst %.o,%.d,$(1)) >>$(patsubst %.o,%.D,$(1)); + @$(MV) $(patsubst %.o, %.D, $(1)) $(patsubst %.o, %.d, $(1)); +endef + + +define CREATE_DIRECTORY +$(1)/: + @echo Creating directory $(1) ... + @$(MKDIR) -p $(1) +endef + +.PHONY: all clean user_final_target user_clean_target config_final_target config_clean_target + +all: user_final_target config_final_target + +.SUFFIXES: + +ifdef LINK_TARGET +$(BINDIR)/$(LINK_TARGET): $(ALLOBJS) $(LINKER_SCRIPT) | $(BINDIR)/ + @echo "Linking ..." +ifdef LINKER_SCRIPT + $(CC) $(LDFLAGS) -o $(BINDIR)/$(LINK_TARGET) -T$(LINKER_SCRIPT) $(ALLOBJS) $(COMPONENT_LIBS) $(LIBS) +else + $(CC) $(LDFLAGS) -o $(BINDIR)/$(LINK_TARGET) $(ALLOBJS) $(LIBS) +endif + $(EMPTY_LINE) +endif + + +$(BINDIR)/$(TARGET).a: $(ALLOBJS) | $(BINDIR)/ + $(AR) rcs $(BINDIR)/$(TARGET).a $(ALLOBJS) + @echo + + +$(foreach dir, $(OBJDIR), $(eval $(call CREATE_DIRECTORY, $(dir)))) +$(eval $(call CREATE_DIRECTORY, $(BINDIR))) + +$(foreach source, $(ASRCS), $(eval $(call COMPILE_ASM_SOURCE, $(OBJDIR)/$(notdir $(source:%.s=%.o)), $(source), $(CFLAGS)))) +$(foreach source, $(CSRCS), $(eval $(call COMPILE_C_SOURCE, $(OBJDIR)/$(notdir $(source:%.c=%.o)), $(source), $(CFLAGS)))) +$(foreach source, $(CXXSRCS), $(eval $(call COMPILE_CXX_SOURCE, $(OBJDIR)/$(notdir $(source:%.cpp=%.o)), $(source), $(CXXFLAGS)))) + + +clean: user_clean_target + @echo Cleaning application files ... + -$(RM) -rf $(BINDIR) + + +$(eval $(call CONFIG_TARGETS)) +$(eval $(call USER_TARGETS)) + +$(eval $(call USER_DEPENDENCY_RULES)) + +-include $(ALLOBJS:%.o=%.d) diff --git a/config_cortex_m0.mk b/config_cortex_m0.mk new file mode 100644 index 0000000..013f404 --- /dev/null +++ b/config_cortex_m0.mk @@ -0,0 +1,62 @@ +TOOLCHAIN_PREFIX = /opt/gcc-arm-none-eabi/bin/arm-none-eabi- +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + + +#environment variables +ARCH_CFLAGS = -mcpu=cortex-m0 -mthumb -mlittle-endian -mfloat-abi=soft +OPT_CFLAGS = -fdata-sections -ffunction-sections + +PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include +PLATFORM_CFLAGS = -DARM_MATH_CM0 + +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) +PLATFORM_LDFLAGS = -nostdlib -nostartfiles -nodefaultlibs -Wl,-static,-gc-sections + + +define CONFIG_TARGETS + +ifdef LINK_TARGET + +.PHONY: link_target_size + +config_final_target: $(BINDIR)/$(TARGET_VER).hex $(BINDIR)/$(TARGET_VER).bin link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep + +$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep + @echo + + +$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst + @echo + + +link_target_size: $(BINDIR)/$(LINK_TARGET) + @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) + @echo + + +$(BINDIR)/$(TARGET_VER).bin: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O binary $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).bin + @echo + + +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex + @echo + +endif + + +endef + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m3.mk b/config_cortex_m3.mk new file mode 100644 index 0000000..7626835 --- /dev/null +++ b/config_cortex_m3.mk @@ -0,0 +1,62 @@ +TOOLCHAIN_PREFIX = /opt/gcc-arm-none-eabi/bin/arm-none-eabi- +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + + +#environment variables +ARCH_CFLAGS = -mcpu=cortex-m3 -mthumb -mlittle-endian -mfloat-abi=soft +OPT_CFLAGS = -fdata-sections -ffunction-sections + +PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include +PLATFORM_CFLAGS += -DARM_MATH_CM3 + +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) +PLATFORM_LDFLAGS = -nostdlib -nostartfiles -nodefaultlibs -Wl,-static,-gc-sections + + +define CONFIG_TARGETS + +ifdef LINK_TARGET + +.PHONY: link_target_size + +config_final_target: $(BINDIR)/$(TARGET_VER).hex $(BINDIR)/$(TARGET_VER).bin link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep + +$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep + @echo + + +$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst + @echo + + +link_target_size: $(BINDIR)/$(LINK_TARGET) + @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) + @echo + + +$(BINDIR)/$(TARGET_VER).bin: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O binary $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).bin + @echo + + +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex + @echo + +endif + + +endef + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m4.mk b/config_cortex_m4.mk new file mode 100644 index 0000000..4521355 --- /dev/null +++ b/config_cortex_m4.mk @@ -0,0 +1,62 @@ +TOOLCHAIN_PREFIX = /opt/gcc-arm-none-eabi/bin/arm-none-eabi- +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + + +#environment variables +ARCH_CFLAGS = -mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant +OPT_CFLAGS = -fdata-sections -ffunction-sections + +PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include +PLATFORM_CFLAGS += -DARM_MATH_CM4 + +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) +PLATFORM_LDFLAGS = -nostdlib -nostartfiles -nodefaultlibs -Wl,-static,-gc-sections + + +define CONFIG_TARGETS + +ifdef LINK_TARGET + +.PHONY: link_target_size + +config_final_target: $(BINDIR)/$(TARGET_VER).hex $(BINDIR)/$(TARGET_VER).bin link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep + +$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep + @echo + + +$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst + @echo + + +link_target_size: $(BINDIR)/$(LINK_TARGET) + @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) + @echo + + +$(BINDIR)/$(TARGET_VER).bin: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O binary $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).bin + @echo + + +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex + @echo + +endif + + +endef + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_cortex_m7.mk b/config_cortex_m7.mk new file mode 100644 index 0000000..911742f --- /dev/null +++ b/config_cortex_m7.mk @@ -0,0 +1,64 @@ +TOOLCHAIN_PREFIX = /opt/gcc-arm-none-eabi/bin/arm-none-eabi- +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + + +#environment variables +ARCH_CFLAGS = -mcpu=cortex-m7 -mthumb -mlittle-endian -mfpu=fpv5-sp-d16 -mfloat-abi=hard +OPT_CFLAGS = -fdata-sections -ffunction-sections + +PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include +PLATFORM_CFLAGS += -DARM_MATH_CM7 + +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) +PLATFORM_LDFLAGS = -nostdlib -nostartfiles -nodefaultlibs -Wl,-static,-gc-sections + + +define CONFIG_TARGETS + +ifdef LINK_TARGET + +.PHONY: link_target_size + +config_final_target: $(BINDIR)/$(TARGET_VER).hex $(BINDIR)/$(TARGET_VER).bin link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep + +$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep + @echo + + +$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst + @echo + + +link_target_size: $(BINDIR)/$(LINK_TARGET) + @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) + @echo + + +$(BINDIR)/$(TARGET_VER).bin: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O binary $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).bin + @echo + + +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex + @echo + +endif + + +endef + +CMSIS_MATH_LIB = m7lfsp + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_linux_lib.mk b/config_linux_lib.mk new file mode 100644 index 0000000..2e2a0e8 --- /dev/null +++ b/config_linux_lib.mk @@ -0,0 +1,32 @@ +TOOLCHAIN_PREFIX = +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + +#environment variables +ARCH_CFLAGS = +OPT_CFLAGS = + +PLATFORM_CFLAGS = -fsigned-char +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) + +PLATFORM_LDFLAGS = + + +define CONFIG_TARGETS + +config_final_target: + +config_clean_target: + +endef + + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_linux_solib.mk b/config_linux_solib.mk new file mode 100644 index 0000000..9d19bd5 --- /dev/null +++ b/config_linux_solib.mk @@ -0,0 +1,46 @@ +TOOLCHAIN_PREFIX = +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + +#environment variables +ARCH_CFLAGS = +OPT_CFLAGS = + +PLATFORM_CFLAGS = -fsigned-char -fPIC +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) + +PLATFORM_LDFLAGS = -rdynamic -shared -Wl,-soname,$(TARGET).so + + +LINK_TARGET = $(TARGET).so + + +define CONFIG_TARGETS + +.PHONY: config_final_target install uninstall + +config_final_target:$(BINDIR)/$(LINK_TARGET) +ifeq ($(RELEASE), yes) + $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(LINK_TARGET) +endif + +config_clean_target: + +install: $(BINDIR)/$(LINK_TARGET) + $(SUDO) $(INSTALL) -m 0755 -o root $(BINDIR)/$(LINK_TARGET) /usr/lib/$(LINK_TARGET) + @echo + +uninstall: + -$(SUDO) $(RM) -f /usr/bin/$(LINK_TARGET) +endef + + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk diff --git a/config_linux_x64.mk b/config_linux_x64.mk new file mode 100644 index 0000000..345f644 --- /dev/null +++ b/config_linux_x64.mk @@ -0,0 +1,49 @@ +TOOLCHAIN_PREFIX = +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + +KDBG = kdbg + +#environment variables +ARCH_CFLAGS = +OPT_CFLAGS = + +PLATFORM_CFLAGS = -fsigned-char +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) + +PLATFORM_LDFLAGS = + + +LINK_TARGET = $(TARGET) + + +define CONFIG_TARGETS +.PHONY: install uninstall + +config_final_target: $(BINDIR)/$(LINK_TARGET) +ifeq ($(RELEASE), yes) + $(STRIP) --strip-debug --strip-unneeded $(BINDIR)/$(LINK_TARGET) +endif + +install: $(BINDIR)/$(LINK_TARGET) + $(SUDO) $(INSTALL) -m 0755 -o root $(BINDIR)/$(LINK_TARGET) /usr/bin/$(LINK_TARGET) + @echo + +uninstall: + -$(SUDO) $(RM) -f /usr/bin/$(LINK_TARGET) +endef + + +define CONFIG_CLEAN_TARGET +endef + + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk