Makefile 927 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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}/joylink
  9. INCLUDES += -I${PROJECT_ROOT_PATH}/extern
  10. STATIC_LIBS +=
  11. LIBS += -lm
  12. ifeq (${ARCH}, x86)
  13. all:${OBJS} liba libso
  14. else
  15. all:${OBJS} liba
  16. endif
  17. .SUFFIXES: .c .o
  18. .c.o:
  19. ${CC} ${CFLAGS} -c $(INCLUDES) ${STATIC_LIBS} $(LIBS) $*.c
  20. liba:${OBJS}
  21. ${AR} -crs lib${LIBNAME}.a ${OBJS}
  22. ${MV} lib${LIBNAME}.a ${TARGET_LIB}
  23. libso:${OBJS}
  24. ${CC} ${OBJS} -shared -fPIC -o lib${LIBNAME}.so
  25. ${MV} lib${LIBNAME}.so ${TARGET_LIB}
  26. test:${OBJS}
  27. ${CC} -DLIB_TEST test.c ${OBJS} -o $@ ${CFLAGS} ${INCLUDES} ${STATIC_LIBS} ${LIBS}
  28. clean:
  29. ${RM} *.o *.so *.a test
  30. distclean:clean
  31. ${RM} ./*.a ./*.so ${TARGET_LIB}/lib${LIBNAME}.*
  32. .PHONY:all clean test