我以前是直接写的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