制作标准Makefile
Autotools工具
制作标准Makefile需要用到Autotools工具
详细制作图示可以参考GNU中的autoconf手册(该过程就需要用到上面的5个工具):
制作过程
结合上图使用相关指令演示制作过程,如果有相关指令找不到
sudo apt install xx
编写好源文件(test.c)
autoscan
将configure.scan改为configure.ac
mv configure.scan configure.ac
修改configure.ac
vim configure.ac AC_INIT(test, 1.0, wolfnx@outlook.com)
如果没有头文件,不使用autoheader,则可以将
#AC_CONFIG_HEADERS([config.h])
增加下面一个宏,表示最后需要使用automake工具
AM_INIT_AUTOMAKE(test, 1.0)
输出文件Makefile
AC_OUTPUT(Makefile)
如果使用了configure.ac中使用了宏,那么需要aclocal,否则不需要,执行aclocal生成aclocal.m4。
aclocal
执行autoconf生成configure
autoconf
编写Makefile.am,参考automake手册:
vim Makefile.am //增加如下两条语句 bin_PROGRAMS = test test_SOURCES = test.c
执行automake
automake
如果报错
touch NEWS README AUTHORS ChangeLog automake --add-missing
执行configure,生成Makefile
./configure
make
//编译 make //默认安装路径/usr/local/bin make install //生成压缩包,商业发布 make dist
简单版Makefile
例子:
#Design by wolfnx TARGET := lost Q := @ SRC_EXTENSION_NAME :=.c #COBJS += lost.o #COBJS += swap.o COBJS := $(patsubst %$(SRC_EXTENSION_NAME), %.o, $(wildcard *$(SRC_EXTENSION_NAME))) LDFLAGS := CFLAGS := CROSS_COMPILE := CC := $(CROSS_COMPILE)gcc LD := $(CROSS_COMPILE)ld $(TARGET):$(COBJS) $(Q)$(CC) $(CFLAGS) -o $@ $^ %.o:%$(SRC_EXTENSION_NAME) $(Q)$(CC) $(CFLAGS) -c -o $@ $^ clean: $(Q)rm -f $(TARGET) $(BUILD) *.o
转载请注明出处:http://www.wolfnx.com/2018/05/19/MakefileGenerate
作者 : wolfnx
邮箱 : wolfnx@outlook.com
邮箱2 : lostnx@gmail.com