LZ没学过makefile的写法,只知道使用tab。于是乎发现了autotools系列工具
基本流程是:autoscan、aclocal、autoconf、autoheader、automake、configure
(1) 使用autoscan命令自动生成configure.scan文件(configure.in原型)
muye@bupt:~/FFTC/FFTC$ cd test/muye@bupt:~/FFTC/FFTC/test$ lsComplex_Array.cpp Complex.cpp config.h FFT.hComplex_Array.h Complex.h FFT.cpp main.cppmuye@bupt:~/FFTC/FFTC/test$ autoscanmuye@bupt:~/FFTC/FFTC/test$ lsautoscan.log Complex_Array.h Complex.h configure.scan FFT.hComplex_Array.cpp Complex.cpp config.h FFT.cpp main.cppmuye@bupt:~/FFTC/FFTC/test$
(2)将configure.scan重命名为configure.in, 并做适当修改
# -*- Autoconf -*-# PRocess this file with autoconf to produce a configure script.AC_PREREQ([2.68])#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])AC_INIT(FFT, 1.0)AC_INIT_AUTOMAKE(FFT, 1.0)AC_CONFIG_SRCDIR([main.cpp])AC_CONFIG_HEADERS([config.h])# Checks for programs.AC_PROG_CXXAC_PROG_CC# Checks for libraries.# Checks for header files.AC_CHECK_HEADERS([stdlib.h])# Checks for typedefs, structures, and compiler characteristics.AC_TYPE_SIZE_T# Checks for library functions.AC_FUNC_MALLOCAC_CHECK_FUNCS([clock_gettime pow])AC_CONFIG_FILES([Makefile])AC_OUTPUT
说明:
(3) 运行aclocal命令,生成"aclocal.m4"文件
(4) 运行autoconf命令生成configure可执行文件
(5) 运行autoheader命令, 生成config.h.in文件
(6) 新建Makefile.am,内容如下:
AUTOMAKE_OPTIONS=foreignbin_PROGRAMS=ffthello_SOURCES=fft.cpp Complex_Array.h FFT.h Complex.cppmain.cpp Complex_Array.cpp Complex.h FFT.cpp
说明:
(7) 运行automake命令, 生成Makefile.in文件
automake --add-missing
(8)运行configure, 生成Makfefile文件
新闻热点
疑难解答