mirror of https://github.com/rusefi/bldc.git
99 lines
2.2 KiB
Makefile
99 lines
2.2 KiB
Makefile
|
|
CCFLAGS = -Wall -Wextra -Wshadow -pedantic -std=c99
|
|
|
|
ifndef PLATFORM
|
|
BUILD_DIR = build/linux-x86
|
|
CCFLAGS += -g -O2 -m32
|
|
CCFLAGS += -D_PRELUDE
|
|
PLATFORMSRC = platform/linux/src
|
|
PLATFORMINC = platform/linux/include
|
|
CC=gcc
|
|
AR=ar
|
|
else
|
|
CC=${CROSS_COMPILE}gcc
|
|
AR=${CROSS_COMPILE}ar
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),linux-x86-64)
|
|
$(error WILL NOT SUPPORT 64bit platforms)
|
|
endif
|
|
|
|
ifeq ($(PLATFORM), zynq)
|
|
CROSS_COMPILE = arm-none-eabi-
|
|
BUILD_DIR = build/zynq
|
|
CCFLAGS += -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard -O2
|
|
CCFLAGS += -D_PRELUDE
|
|
endif
|
|
|
|
ifeq ($(PLATFORM), stm32f4)
|
|
CROSS_COMPILE = arm-none-eabi-
|
|
BUILD_DIR = build/stm32f4
|
|
CCFLAGS += -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O2
|
|
#-fmessage-length=0 -ffunction-sections -c -MMD -MP
|
|
PLATFORMSRC = platform/chibios/src
|
|
PLATFORMINC = platform/chibios/include
|
|
|
|
CCFLAGS += -D_PRELUDE
|
|
endif
|
|
|
|
ifeq ($(PLATFORM), nrf52840)
|
|
CROSS_COMPILE = arm-none-eabi-
|
|
BUILD_DIR = build/nrf52840
|
|
CCFLAGS += -mcpu=cortex-m4 -mthumb -ffunction-sections -fdata-sections -mabi=aapcs -march=armv7e-m -O2
|
|
CCFLAGS += -D_PRELUDE
|
|
endif
|
|
|
|
ifeq ($(PLATFORM), pi) #for compiling natively on the pi
|
|
BUILD_DIR = build/pi
|
|
CCFLAGS += -g -O2 -m32
|
|
CCFLAGS += -D_PRELUDE
|
|
PLATFORMSRC = platform/linux/src
|
|
PLATFORMINC = platform/linux/include
|
|
endif
|
|
|
|
SOURCE_DIR = src
|
|
INCLUDE_DIR = include
|
|
|
|
$(shell mkdir -p ${BUILD_DIR})
|
|
|
|
SRC = src
|
|
OBJ = obj
|
|
|
|
SOURCES = $(wildcard $(SOURCE_DIR)/*.c)
|
|
OBJECTS = $(patsubst $(SOURCE_DIR)/%.c, $(BUILD_DIR)/%.o, $(SOURCES))
|
|
|
|
PLATSRCS = $(wildcard $(PLATFORMSRC)/*.c)
|
|
PLATOBJS = $(patsubst $(PLATFORMSRC)/%.c, $(BUILD_DIR)/%.o, $(PLATSRCS))
|
|
|
|
ifdef HEAP_VIS
|
|
OBJECTS += $(BUILD_DIR)/heap_vis.o
|
|
CCFLAGS += -DVISUALIZE_HEAP
|
|
endif
|
|
|
|
|
|
LIB = $(BUILD_DIR)/liblispbm.a
|
|
|
|
all: $(OBJECTS) $(LIB)
|
|
|
|
debug: CCFLAGS += -g
|
|
debug: $(OBJECTS) $(LIB)
|
|
|
|
$(LIB): $(OBJECTS)
|
|
$(AR) -rcs $@ $(OBJECTS)
|
|
|
|
src/prelude.xxd: src/prelude.lisp
|
|
xxd -i < src/prelude.lisp > src/prelude.xxd
|
|
|
|
$(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.c src/prelude.xxd
|
|
$(CC) -I$(INCLUDE_DIR) -I$(PLATFORMINC) $(CCFLAGS) -c $< -o $@
|
|
|
|
$(BUILD_DIR)/heap_vis.o: $(SOURCE_DIR)/visual/heap_vis.c
|
|
$(CC) -I$(INCLUDE_DIR) -I$(PLAFORMINC) $(CCFLAGS) -c $< -o $@
|
|
|
|
|
|
clean:
|
|
rm src/prelude.xxd
|
|
rm -f ${BUILD_DIR}/*.o
|
|
rm -f ${BUILD_DIR}/*.a
|
|
|