| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- PWDDIR = $(shell pwd)
- OBJDIR = $(PWDDIR)/obj
- BINDIR = $(PWDDIR)/bin
- LIBDIR = $(PWDDIR)/lib
- TARGET = $(shell basename $(PWDDIR))
- AS = as
- CC = gcc
- CPP = g++
- AR = ar
- LD = ld
- OBJCOPY = objcopy
- OBJDUMP = objdump
- MAKE = make
- ASFLAGS = -D -g -I$(PWDDIR)
- CCFLAGS = -O3 -c -ffunction-sections -fdata-sections -I$(PWDDIR)
- CPPFLAGS = -O3 -c -ffunction-sections -fdata-sections -I$(PWDDIR)
- ARFLAGS = rcsv
- LDFLAGS = -L$(LIBDIR) -lm -lc
- EXCNAME = $(TARGET)
- LIBNAME = lib$(TARGET)
- DLLNAME = dll$(TARGET)
- ASFILES = $(wildcard *.S)
- CCFILES = $(wildcard *.c)
- CPPFILES = $(wildcard *.cpp)
- ASOBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(ASFILES))
- CCOBJS = $(patsubst %.c, $(OBJDIR)/%.o, $(CCFILES))
- CPPOBJS = $(patsubst %.cpp, $(OBJDIR)/%.o, $(CPPFILES))
- ALLOBJS = $(ASOBJS) $(CCOBJS) $(CPPOBJS)
- all:$(ALLOBJS)
- # @echo $(TARGET)
- $(MAKE) -C liblog
- $(MAKE) -C libocpp
- $(MAKE) -C libtimer
- $(LD) $(LDFLAGS) -o $(BINDIR)/$(EXCNAME).elf $(ALLOBJS)
- .PHONY:$(LIBNAME)
- $(LIBNAME):$(ALLOBJS)
- $(AR) $(ARFLAGS) $(LIBDIR)/$(LIBNAME).a $(ALLOBJS)
- .PHONY:$(DLLNAME)
- $(DLLNAME):$(ALLOBJS)
- $(CC) $(LDFLAGS) $(ALLOBJS) -shared -o $(BINDIR)/$(DLLNAME).so
-
- $(OBJDIR)/%.o : %.S
- $(AS) $(ASFLAGS) $< -o $@
-
- $(OBJDIR)/%.o : %.c
- $(CC) $(CCFLAGS) $< -o $@
-
- $(OBJDIR)/%.o : %.cpp
- $(CPP) $(CPPFLAGS) $< -o $@
- .PHONY : clean
- clean:
- rm -f $(BINDIR)/*app_*.bin $(BINDIR)/*.elf $(BINDIR)/*.dis $(BINDIR)/*.map $(BINDIR)/*.c $(OBJDIR)/*.o
|