linux 自动生成configure和make文件

我以前是直接写的makefile文件,生成o文件人然后生成执行文件。

但是现在针对于很多文件就会出现文件太多的问题

后来知道了autotools

主要是目录有lib、src、include

目录中文件

├── include
│   └── add.h
├── lib
│   ├── add.cpp
│   ├── Makefile.am
├── Makefile.am
├── src
│   ├── main.cpp
│   ├── Makefile.am


#cat Makefile.am

ACLOCAL_AMFLAGS = -I m4
SUBDIRS = lib src
EXTRA_DIST = autogen.sh

# cat src/Makefile.am
AUTOMAKE_OPTIONS=foreign
INCLUDES = -I../include
bin_PROGRAMS=hehe
hehe_SOURCES=main.cpp
hehe_LDADD=../lib/libadd.a


$ cat lib/Makefile.am
AUTOMAKE_OPTIONS=foreign
INCLUDES = -I../include/
noinst_LIBRARIES=libadd.a
libadd_a_SOURCES=add.cpp


$autoscan


$ cat configure.ac
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ([2.69])
#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_INIT(hehe, 0.1)
AM_INIT_AUTOMAKE(hehe, 0.1)


AC_CONFIG_SRCDIR([lib/add.cpp])
AC_CONFIG_HEADERS([config.h])


# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
AC_PROG_RANLIB


# Checks for libraries.


# Checks for header files.


# Checks for typedefs, structures, and compiler characteristics.


# Checks for library functions.


AC_CONFIG_FILES([Makefile
                 lib/Makefile
                 src/Makefile])
AC_OUTPUT


接下来步骤:

 aclocal
 autoconf
 autoheader
 automake --add-missing

猜你喜欢

转载自blog.csdn.net/singleroot/article/details/51537635