makefile 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #
  2. # package data
  3. #
  4. PACKAGE_NAME=avdl
  5. PACKAGE_VERSION=0.0.5
  6. #
  7. # compiler data
  8. #
  9. COMPILER_FLAGS=-Wall -Wpedantic -Wformat-security#-Werror
  10. COMPILER_DEFINES=\
  11. -DPKG_NAME=\"${PACKAGE_NAME}\"\
  12. -DPKG_VERSION=\"${PACKAGE_VERSION}\"
  13. COMPILER_INCLUDES=-Iinclude
  14. #
  15. # directories
  16. #
  17. DIRECTORY_BUILD=build
  18. DIRECTORY_EXE=${DIRECTORY_BUILD}/bin
  19. DIRECTORY_OBJ=${DIRECTORY_BUILD}/objects
  20. DIRECTORY_ALL=${DIRECTORY_BUILD} ${DIRECTORY_EXE} ${DIRECTORY_OBJ}
  21. #
  22. # source files
  23. #
  24. SRC=$(wildcard src/*.c)
  25. OBJ=${SRC:src/%.c=${DIRECTORY_OBJ}/%.o}
  26. HEADERS=$(widcard include/*.h)
  27. #
  28. # executable
  29. #
  30. EXECUTABLE=${DIRECTORY_EXE}/${PACKAGE_NAME}
  31. #
  32. # c engine data
  33. #
  34. CENGINE_PATH=engines/cengine
  35. #
  36. # system data
  37. #
  38. prefix=/usr/local
  39. #
  40. # compile the package, together with all engines
  41. #
  42. all: ${EXECUTABLE}
  43. ${MAKE} -C ${CENGINE_PATH} all
  44. #
  45. # build the executable, depends on source files
  46. #
  47. ${EXECUTABLE}: ${DIRECTORY_ALL} ${OBJ}
  48. $(CC) ${COMPILER_FLAGS} ${COMPILER_DEFINES} ${COMPILER_INCLUDES} ${OBJ} -o $@
  49. #
  50. # install the program to the current system
  51. #
  52. install: ${EXECUTABLE}
  53. @# executable
  54. mkdir -p ${DESTDIR}${prefix}/bin
  55. install ${EXECUTABLE} ${DESTDIR}${prefix}/bin/
  56. @# manual
  57. mkdir -p ${DESTDIR}${prefix}/share/man/man1/
  58. install manual/avdl.1 ${DESTDIR}${prefix}/share/man/man1/
  59. @# android engine
  60. mkdir -p ${DESTDIR}${prefix}/share/avdl/android
  61. cp -r engines/android/* ${DESTDIR}${prefix}/share/avdl/android
  62. @# c engine
  63. ${MAKE} -C ${CENGINE_PATH} prefix="${prefix}" destdir="${DESTDIR}" install
  64. #mkdir -p ${INSTALL_LOCATION}/share/info/
  65. #install avdl.info.gz ${INSTALL_LOCATION}/share/info/
  66. # vim files
  67. #mkdir -p ${INSTALL_LOCATION}/share/vim/vimfiles/syntax/
  68. #install vim/syntax/avdl.vim ${INSTALL_LOCATION}/share/vim/vimfiles/syntax/
  69. #mkdir -p ${INSTALL_LOCATION}/share/vim/vimfiles/ftdetect/
  70. #install vim/ftdetect/avdl.vim ${INSTALL_LOCATION}/share/vim/vimfiles/ftdetect/
  71. #
  72. # create a tarball of all source files needed to compile this project
  73. #
  74. tarball: ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar
  75. ${PACKAGE_NAME}-${PACKAGE_VERSION}.tar:
  76. tar cf $@ src makefile engines include
  77. #
  78. # clean all automatically generated files
  79. #
  80. clean:
  81. ${MAKE} -C ${CENGINE_PATH} clean
  82. rm -f ${EXECUTABLE} ${OBJ}
  83. #
  84. # create needed directories
  85. #
  86. ${DIRECTORIES} ${DIRECTORY_ALL}:
  87. mkdir -p $@
  88. #
  89. # compile .c source files
  90. #
  91. ${DIRECTORY_OBJ}/%.o: src/%.c ${HEADERS}
  92. $(CC) ${COMPILER_FLAGS} ${COMPILER_DEFINES} ${COMPILER_INCLUDES} -c $< -o $@
  93. .PHONY: all tarball clean install