autobook的目录

Top: Autoconf, Automake, and Libtool

Contents: Table of Contents

Index: Index

About: About this document

Table of Contents

1. 介绍

1.1 本书是什么

1.2 本书不是什么

1.3 谁应该读本书

1.4 本书如何组织

2. 历史

2.1 Unix 的多样性

2.2 第一个配置程序

2.3 Configure的发展

2.4 Automake的发展

2.5 Libtool的发展

2.6 Microsoft Windows

3. 如何运行configure和make

3.1 Configuring

3.2 configure产生的文件

3.3 最有用的Makefile目标

3.4 配置名称

4. Makefile介绍

4.1 目标和依赖

4.2 Makefile语法

4.3 宏

4.4 后缀规则

5. 一个最小的GNU Autotools项目

5.1 用户提供的输入文件

5.2 生成的输出文件

5.3 维护输入文件

5.4 为生成文件打包

5.5 文档和changelog

6. 写configure.in

6.1 什么是可移植性

6.2 可移植sh简介

6.3 检测顺序

6.4 需要检测什么

6.5 使用配置名称

7. GNU Automake 介绍

7.1 Automake 总纲

7.2 原型(Primaries)介绍

7.3 简单的原型

7.4 程序和库

7.5 FAQ

7.6 多目录

7.7 测试

8. 引导(Bootstrap)

9. 一个小型GNU Autotools项目

9.1 GNU Autotools 实践

9.1.1 项目目录结构

9.1.2 C 头文件

9.1.3 C++ 编译器

9.1.4 函数定义

9.1.5 替补(Fallback)函数的实现

9.1.6 K&R 编译器

9.2 A Simple Shell Builders Library

9.2.1 Portability Infrastructure

9.2.1.1 Error Management

9.2.1.2 Memory Management

9.2.1.3 Generalised List Data Type

9.2.2 Library Implementation

9.2.2.1 `sic.c' & `sic.h'

9.2.2.2 `builtin.c' & `builtin.h'

9.2.2.3 `eval.c' & `eval.h'

9.2.2.4 `syntax.c' & `syntax.h'

9.2.3 Beginnings of a `configure.in'

9.3 A Sample Shell Application

9.3.1 `sic_repl.c'

9.3.2 `sic_syntax.c'

9.3.3 `sic_builtin.c'

9.3.4 `sic.c' & `sic.h'

10. GNU Libtool介绍

10.1 Creating libtool

10.2 The Libtool Library

10.2.1 位置独立的代码

10.2.2 创建共享库

10.2.3 创建静态库

10.2.4 创建Convenience Library

10.3 链接一个可执行文件

10.4 链接一个库文件

10.4.1 Inter-library Dependencies

10.4.2 Using Convenience Libraries

10.5 Executing Uninstalled Binaries

10.6 Installing a Library

10.7 Installing an Executable

10.8 Uninstalling

11. GNU Libtool和configure.in,Makefile.am配合

11.1 整合 configure.in

11.1.1 额外的 Configure 选项

11.1.2 额外的宏(用于Libtool)

11.2 整合 Makefile.am

11.2.1 Creating Libtool Libraries with Automake

11.2.2 Linking against Libtool Libraries with Automake

11.3 Using libtoolize

11.4 Library Versioning

11.5 Convenience Libraries

12. 一个大型的GNU Autotools项目

12.1 Using Libtool Libraries

12.2 Removing `--foreign'

12.3 安装头文件

12.4 包含 Texinfo 文档

12.5 添加测试用例

13. 分发软件包

13.1 分发介绍

13.2 What goes in

13.3 The distcheck rule

13.4 Some caveats

13.5 Implementation

14. 安装和卸载configure过的包

14.1 文件安装到何处

14.2 安装的精细控制

14.3 Install hooks

14.4 Uninstall

15. 用GNU Autotools编写可移植的C

15.1 C Language Portability

15.1.1 ISO C

15.1.2 C Data Type Sizes

15.1.3 C Endianness

15.1.4 C Structure Layout

15.1.5 C Floating Point

15.1.6 GNU cc Extensions

15.2 Cross-Unix Portability

15.2.1 Cross-Unix Function Calls

15.2.2 Cross-Unix System Interfaces

15.3 Unix/Windows Portability

15.3.1 Unix/Windows Emulation

15.3.2 Unix/Windows Portable Scripting Language

15.3.3 Unix/Windows User Interface Library

15.3.4 Unix/Windows Specific Code

15.3.5 Unix/Windows Issues

15.3.5.1 Text and Binary Files

15.3.5.2 File system Issues

15.3.5.3 DOS Filename Restrictions

15.3.5.4 Windows File Name Case

15.3.5.5 Whitespace in File Names

15.3.5.6 Windows Separators and Drive Letters

15.3.5.7 Miscellaneous Issues

16. 用GNU Autotools编写可移植的C++

16.1 Brief History of C++

16.2 Changeable C++

16.2.1 Built-in bool type

16.2.2 Exceptions

16.2.3 Casts

16.2.4 Variable Scoping in For Loops

16.2.5 Namespaces

16.2.6 The explicit Keyword

16.2.7 The mutable Keyword

16.2.8 The typename Keyword

16.2.9 Runtime Type Identification (RTTI)

16.2.10 Templates

16.2.11 Default template arguments

16.2.12 Standard library headers

16.2.13 Standard Template Library

16.3 Compiler Quirks

16.3.1 Template Instantiation

16.3.2 Name Mangling

16.4 How GNU Autotools Can Help

16.4.1 Testing C++ Implementations with Autoconf

16.4.2 Automake C++ support

16.4.3 Libtool C++ support

16.5 Further Reading

17. 动态加载

17.1 动态模块

17.2 模块访问函数

17.3 查找模块

17.4 一个简单的 GNU/Linux 模块加载器

17.5 一个简单的 GNU/Linux 动态模块

18. 使用 GNU libltdl

18.1 libltdl 介绍

18.2 使用 libltdl

18.2.1 Configury

18.2.2 内存管理

18.2.3 模块加载

18.2.4 依赖库

18.2.5 动态模块

18.3 可移植库设计

18.4 dlpreopen 加载

18.5 用户模块加载器

18.5.1 加载器机制

18.5.2 加载器管理

18.5.3 加载器错误

19. GNU Automake 进阶用法

19.1 Conditionals

19.2 语言支持

19.3 自动依赖关系跟踪

20. 一个复杂的GNU Autotools项目

20.1 A Module Loading Subsystem

20.1.1 Initialising the Module Loader

20.1.2 Managing Module Loader Errors

20.1.3 Loading a Module

20.1.4 Unloading a Module

20.2 A Loadable Module

20.3 Interpreting Commands from a File

20.4 Integrating Dmalloc

21. M4

21.1 M4 做什么

21.2 GNU Autotools 如何使用 M4

21.3 M4 处理原理

21.3.1 扫描标记

21.3.2 宏以及宏展开

21.3.3 引用

21.4 M4 特性

21.4.1 丢弃输入

21.4.2 宏管理

21.4.3 条件语句

21.4.4 循环

21.4.5 转移

21.4.6 文件包含

21.5 在 GNU Autotools 框架中编写宏

21.5.1 句法约定

21.5.2 用 M4 调试

22. 编写可移植的Bourne Shell

22.1 为何要使用 Bourne Shell?

22.2 实现

22.2.1 Size Limitations

22.2.2 #!

22.2.3 :

22.2.4 ()

22.2.5 .

22.2.6 [

22.2.7 $

22.2.8 * versus .*

22.3 环境

22.4 工具

23. 为Autoconf写新的宏

23.1 Autoconf Preliminaries

23.2 重用已有的宏

23.3 宏编写指南

23.3.1 非交互行为

23.3.2 应用程序执行时检测系统特性

23.3.3 宏输出

23.3.4 宏命名

23.3.5 宏接口

23.4 实施细则

23.4.1 编写shell代码

23.4.2 正确使用M4

23.4.3 缓存结果

23.5 Future directions for macro writers

23.5.1 Autoconf 宏结构

23.5.2 Primitive macros to aid in building macros

24. 移植现有的库到GNU Autotools

24.1 Why autconfiscate

24.2 两种方法

24.3 Example: Quick And Dirty

24.4 Example: The Full Pull

25. 在Cygnus Cygwin中使用Autotools

25.1 Preliminaries

25.2 Installing GNU Autotools on Cygwin

25.3 Writing A Cygwin Friendly Package

25.3.1 Text vs Binary Modes

25.3.2 File System Limitations

25.3.2.1 8.3 Filenames

25.3.2.2 Separators and Drive Letters

25.3.3 Executable Filename Extensions

25.4 DLLs with Libtool

25.4.1 DLL Support with GNU Autotools

25.4.2 A Makefile.am for DLLs

25.4.3 A configure.in for DLLs

25.4.4 Handling Data Exports from DLLs

25.4.5 Runtime Loading of DLLs

25.5 Package Installation

26. 用GNU Autotools进行交叉编译

26.1 Host and Target

26.2 Specifying the Target

26.3 Using the Target Type

26.4 Building with a Cross Compiler

26.4.1 Canadian Cross Example

26.4.2 Canadian Cross Concepts

26.4.3 Build Cross Host Tools

26.4.4 Build and Host Options

26.4.5 Canadian Cross Tools

26.4.6 Supporting Building with a Cross Compiler

26.4.6.1 Supporting Building with a Cross Compiler in Configure Scripts

26.4.6.2 Supporting Building with a Cross Compiler in Makefiles

A. 安装GNU Autotools

A.1 Prerequisite tools

A.2 Downloading GNU Autotools

A.3 Installing the tools

B. 平台

C. 生成文件的依赖关系

C.1 aclocal

C.2 autoheader

C.3 automake and libtoolize

C.4 autoconf

C.5 configure

C.6 make

D. Autoconf 宏参考

E. 公开发行许可证

Index

__________________________________________________________________

你可能感兴趣的:(C++,c,windows,unix,C#)