最简单的autotools例子

2020-10-14  本文已影响0人  louyang

代码的目录结构如下:

$ tree
├── autogen.sh
├── configure.ac
├── Makefile.am
└── src
    ├── hello-world.cpp
    └── Makefile.am

各文件内容为:

$ cat autogen.sh 
#!/bin/sh
autoreconf -i
$ cat configure.ac
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT(example-1-hello-world, 1.0, 576123579@qq.com)
AC_CONFIG_SRCDIR([src/hello-world.cpp])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CXX
AM_INIT_AUTOMAKE
AM_PROG_AS

# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.

AC_OUTPUT(Makefile src/Makefile)
$ cat Makefile.am 
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src
$ cat src/hello-world.cpp 
#include <iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}
$ cat src/Makefile.am 
bin_PROGRAMS = helloworld
helloworld_SOURCES = hello-world.cpp
AM_CPPFLAGS = -std=c++11
helloworld_LDADD = 

编译运行:

$ ./autogen.sh
$ ./configure
$ make
$ src/helloworld 
Hello World!
上一篇下一篇

猜你喜欢

热点阅读