[关闭]
@cyysu 2017-10-23T11:43:27.000000Z 字数 1826 阅读 754

自动生成Makefile配置脚本

  • 时间:2017年10月18日
  • 作者:Kali
  • 邮箱:cyysu.github.io@gmail.com/2869905223@qq.com/微信lwyx1413
  • 版本:4.0
  • 描述:自动生成Makefile脚本

脚本编写


脚本内容

  1. #!/bin/bash
  2. #==============================================================================
  3. # Author : MJ_DZ chenyuan
  4. #
  5. # Email : cyysu.github.io@gmail.com
  6. #
  7. # Last modified : 2017-10-18 14:54
  8. #
  9. # Filename : 桌面/test/generateMakefile.sh
  10. #
  11. # Description : 自动生成Makefile脚本
  12. #
  13. #
  14. #
  15. #==============================================================================
  16. # 设置信息
  17. FULL_PACKAGE_NAME=MJ
  18. VERSION=4.0
  19. BUG_REPORT_ADDRESS=MJ@cyysu.github.io
  20. # 删除信息
  21. info="[FULL-PACKAGE-NAME]"
  22. # 添加源代码
  23. SOURCE="main.c test.c test.h"
  24. # 添加临时文件夹
  25. TEMP=temp
  26. # 非root用户不可登录
  27. function checkLogin(){
  28. if [ "$UID" -eq 0 ];then
  29. echo -e "\033[32m[INFO] Begin to generate necessary files!\033[0m"
  30. else
  31. echo -e "\033[41m[ERROR] System permission denied!\033[0m"
  32. exit 0
  33. fi
  34. }
  35. # 首先解决依赖问题,自动安装所需软件包
  36. function autoInstall(){
  37. # 判断系统类型分别执行
  38. if [ -f /etc/issue ];then
  39. OS=`cat /etc/issue | grep -i ubuntu | cut -d " " -f 1 | tr '[:lower:]' '[:upper:]'`
  40. case "$OS" in
  41. UBUNTU)
  42. sudo apt-get install -y automake >/dev/null 2>& 1
  43. ;;
  44. CENTOS)
  45. yum install -y automake >/dev/null 2>& 1
  46. ;;
  47. *)
  48. echo -e "$(OS)\033[41m[ERROR] The current script does not support the current operating system type!\033[0m"
  49. exit 3
  50. esac
  51. fi
  52. }
  53. # 其次处理makefile几个步骤
  54. function autoScan(){
  55. # 生成文件
  56. (autoscan) && [[ $? -eq 0 ]] && (cp configure.scan configure.ac)
  57. # 替换变量
  58. sed -i '/AC_INIT/d' configure.ac
  59. sed -i "s/AC_OUTPUT*/AC_OUTPUT(Makefile)/" configure.ac
  60. line=`awk '/AC_PREREQ/{print NR}' configure.ac`
  61. sed -i "$line a\AC_INIT(${FULL_PACKAGE_NAME},${VERSION},${BUG_REPORT_ADDRESS})" configure.ac
  62. let line++
  63. sed -i "$line a\AM_INIT_AUTOMAKE(${FULL_PACKAGE_NAME},${VERSION})" configure.ac
  64. # aclocal
  65. (aclocal)
  66. # autoconf
  67. (autoconf)
  68. # atuoheader
  69. (autoheader)
  70. # 修改变量
  71. (touch Makefile.am)
  72. echo "AUTOMAKE_OPTIONS=foreign" >> Makefile.am
  73. echo "bin_PROGRAMS=${FULL_PACKAGE_NAME}" >> Makefile.am
  74. echo "MJ_SOURCES=${SOURCE}" >> Makefile.am
  75. # automake
  76. (automake --add-missing) && (rm -rf *.o )
  77. }
  78. autoScan

打赏

                    支付宝                                                         微信

微信与支付宝支付

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注