(二十一)Makefile例子

ROOT_PROJECT = .
DIR_INC = -I$(ROOT_PROJECT)/include -I$(ROOT_PROJECT)/include/NE10
DIR_BIN = $(ROOT_PROJECT)/bin
DIR_LIB = $(ROOT_PROJECT)/libs

CROSS_COMPILE = /opt/aarch64-linux-android-4.9/bin/aarch64-linux-android-
CC = $(CROSS_COMPILE)gcc
CPP = $(CROSS_COMPILE)g++
AR = $(CROSS_COMPILE)ar

CFLAGS = -lm -Wall -pie -fPIE $(DIR_INC) --sysroot=/opt/aarch64-linux-android-4.9/ndk/current/platforms/android-24/arch-arm64
LDFLAGS = -L$(DIR_LIB)
APP_DEFINE = -DUSE_KISS_FFT -DEXPORT="" -UHAVE_CONFIG_H -DFIXED_POINT

TARGET = libhepuAlg.a
BIN_TARGET = $(DIR_BIN)/$(TARGET)
MEDIA_FILE = *.o speex/*.o NE10/*.o NE10/dsp/*.o NE10/imgproc/*.o NE10/math/*.o NE10/physics/*.o

SOURCES:=$(wildcard *.c speex/*.c NE10/*.c NE10/common/*.c NE10/dsp/*.c NE10/imgproc/*.c) $(wildcard *.C) $(wildcard NE10/dsp/*.cpp)
OBJECTS:=$(patsubst %.c,%.o,$(patsubst %.C,%.o,$(patsubst %.cpp,%.o,$(SOURCES))))

all: $(BIN_TARGET)
$(BIN_TARGET) : $(OBJECTS)
$(AR) -r $@ $^

%.o : %.c
$(CC) -c $(CFLAGS) $(APP_DEFINE) $< -o $@

%.o : %.C
$(CC) -c $(CFLAGS) $(APP_DEFINE) $< -o $@

%.o : %.cpp
$(CPP) -c $(CFLAGS) $(APP_DEFINE) $< -o $@

clean:
@rm -f $(MEDIA_FILE) $(BIN_TARGET)

.PHONY:clean

 

posted @ 2019-04-16 14:22  xtusir  阅读(302)  评论(0编辑  收藏  举报