68 lines
1.8 KiB
Makefile
68 lines
1.8 KiB
Makefile
|
###############################################################################
|
||
|
# Makefile for the BARE project
|
||
|
###############################################################################
|
||
|
|
||
|
## General Flags
|
||
|
PROJECT = demo
|
||
|
TARGET = demo
|
||
|
|
||
|
CC=gcc
|
||
|
OBJCOPY=/cygdrive/c/WinAVR/bin/avr-objcopy
|
||
|
|
||
|
## Options common to compile, link and assembly rules
|
||
|
COMMON =
|
||
|
|
||
|
## Compile options common for all C compilation units.
|
||
|
CFLAGS = $(COMMON) \
|
||
|
-Iport -I. \
|
||
|
-I../../modbus/rtu -I../../modbus/ascii -I../../modbus/include
|
||
|
CFLAGS += -Wall -gstabs -Os -Wall -Wstrict-prototypes
|
||
|
|
||
|
CFLAGS += -Wp,-M,-MP,-MT,$(*F).o,-MF,dep/$(@F).d
|
||
|
|
||
|
## Assembly specific flags
|
||
|
ASMFLAGS = $(COMMON)
|
||
|
ASMFLAGS += -x assembler-with-cpp -Wa,-gstabs
|
||
|
|
||
|
## Linker flags
|
||
|
LDFLAGS = $(COMMON)
|
||
|
LDFLAGS += -Wl,-Map=$(TARGET).map,--cref
|
||
|
|
||
|
## Objects that must be built in order to link
|
||
|
OBJECTS = demo.o
|
||
|
MBPORTOBJECTS = port/portserial.o \
|
||
|
port/portevent.o \
|
||
|
port/porttimer.o
|
||
|
MBOBJECTS = ../../modbus/mb.o \
|
||
|
../../modbus/rtu/mbrtu.o \
|
||
|
../../modbus/rtu/mbcrc.o \
|
||
|
../../modbus/ascii/mbascii.o \
|
||
|
../../modbus/functions/mbfunccoils.o \
|
||
|
../../modbus/functions/mbfuncdiag.o \
|
||
|
../../modbus/functions/mbfuncholding.o \
|
||
|
../../modbus/functions/mbfuncinput.o \
|
||
|
../../modbus/functions/mbfuncother.o \
|
||
|
../../modbus/functions/mbfuncdisc.o \
|
||
|
../../modbus/functions/mbutils.o
|
||
|
|
||
|
|
||
|
## Build
|
||
|
all: $(TARGET).elf
|
||
|
|
||
|
## Compile
|
||
|
demo.o: demo.c
|
||
|
$(CC) $(INCLUDES) $(CFLAGS) -c $<
|
||
|
|
||
|
##Link
|
||
|
$(TARGET).elf: $(OBJECTS) $(MBOBJECTS) $(MBPORTOBJECTS)
|
||
|
$(CC) $(LDFLAGS) $(OBJECTS) $(MBPORTOBJECTS) $(MBOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET).elf
|
||
|
|
||
|
## Clean target
|
||
|
.PHONY: clean
|
||
|
clean:
|
||
|
-rm -rf $(OBJECTS) $(MBOBJECTS) $(MBPORTOBJECTS) $(TARGET).elf $(TARGET).map
|
||
|
|
||
|
## Other dependencies
|
||
|
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
|
||
|
|