Makefile 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. CC=g++
  2. GDB ?= FALSE
  3. # use pkg-config for getting CFLAGS and LDLIBS
  4. SHARED_LIBS=libavdevice \
  5. libavformat \
  6. libavfilter \
  7. libavcodec \
  8. libswresample \
  9. libswscale \
  10. libavutil
  11. ifeq ($(GDB), TRUE)
  12. OPTFLAG += -g
  13. endif
  14. CFLAGS := $(shell pkg-config --cflags $(SHARED_LIBS)) -I.. -Wall -std=c++11 -fopenmp ${OPTFLAG}
  15. LDLIBS := $(shell pkg-config --libs $(SHARED_LIBS)) -L../build/lib -lsherpa-ncnn-c-api -lsherpa-ncnn-core -lkaldi-native-fbank-core -lncnn -lportaudio -lpthread -lm
  16. #Get libavutil version and extract major, minor and micro
  17. LIBAVUTIL_VERSION := $(shell pkg-config --modversion libavutil)
  18. LIBAVUTIL_MAJOR := $(shell echo "$(LIBAVUTIL_VERSION)" | awk -F. '{print $$1}')
  19. LIBAVUTIL_MINOR := $(shell echo "$(LIBAVUTIL_VERSION)" | awk -F. '{print $$2}')
  20. LIBAVUTIL_MICRO := $(shell echo "$(LIBAVUTIL_VERSION)" | awk -F. '{print $$3}')
  21. #Check if libavutil version is 57.28.100 or above
  22. FFMPEG_51_AND_ABOVE = $(shell echo "$(LIBAVUTIL_MAJOR) $(LIBAVUTIL_MINOR) $(LIBAVUTIL_MICRO)" | awk '{if ($$1 > 57 || ($$1 == 57 && $$2 > 28) || ($$1 == 57 && $$2 == 28 && $$3 >= 100)) print "TRUE"; else print "FALSE"}')
  23. ifeq ($(FFMPEG_51_AND_ABOVE), FALSE)
  24. $(error FFmpeg version should be n5.1 or above!)
  25. endif
  26. EXAMPLES=sherpa-ncnn-ffmpeg
  27. OBJS=$(addsuffix .o,$(EXAMPLES))
  28. .phony: all clean
  29. all: $(EXAMPLES)
  30. @echo $(EXAMPLES)
  31. $(RM) $(OBJS)
  32. $(EXAMPLES): $(OBJS)
  33. $(CC) $(addsuffix .o,$@) $(CFLAGS) $(LDLIBS) -o $@
  34. %.o : %.c
  35. ${CC} ${CFLAGS} -c -o $@ $<
  36. clean:
  37. $(RM) $(EXAMPLES) $(OBJS)
  38. build_info:
  39. @echo "libavutil version: $(LIBAVUTIL_VERSION)"
  40. @echo "Supported examples: $(EXAMPLES)"