Makefile 956 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. include ../Makefile.rule
  2. HEADERS = $(wildcard *.h)
  3. ORG_SOURCES = $(wildcard *.c)
  4. OUT_SRC = test.c
  5. SOURCES=$(filter-out ${OUT_SRC}, ${ORG_SOURCES})
  6. OBJS = $(patsubst %.c, %.o, $(SOURCES))
  7. LIBNAME = $(strip ${shell pwd |xargs basename})
  8. INCLUDES += -I${PROJECT_ROOT_PATH}/json
  9. INCLUDES += -I${PROJECT_ROOT_PATH}/example
  10. INCLUDES += -I${PROJECT_ROOT_PATH}/joylink
  11. STATIC_LIBS +=
  12. LIBS +=
  13. ifeq (${ARCH}, x86)
  14. all:${OBJS} liba libso
  15. else
  16. all:${OBJS} liba
  17. endif
  18. .SUFFIXES: .c .o
  19. .c.o:
  20. ${CC} ${CFLAGS} -c $(INCLUDES) ${STATIC_LIBS} $(LIBS) $*.c
  21. liba:${OBJS}
  22. ${AR} -crs lib${LIBNAME}.a ${OBJS}
  23. ${MV} lib${LIBNAME}.a ${TARGET_LIB}
  24. libso:${OBJS}
  25. ${CC} ${OBJS} -shared -fPIC -o lib${LIBNAME}.so
  26. ${MV} lib${LIBNAME}.so ${TARGET_LIB}
  27. test:
  28. ${CC} -DLIB_TEST test.c ${OBJS} -o $@ ${CFLAGS} ${INCLUDES} ${STATIC_LIBS} ${LIBS}
  29. clean:
  30. ${RM} *.o *.so *.a test
  31. distclean:clean
  32. ${RM} ./*.a ./*.so ${TARGET_LIB}/lib${LIBNAME}.*
  33. .PHONY:all clean test