Makefile.am是比Makefile更高层次的规则,只需指定要生成什么目标,它由什么源文件生成,要安装到什么目录等。 在Makefile.am中,某些以特定字符串结尾的变量有特别意义。比如以_PROGRAMS结尾的变量,它指定一个Makefile应该构建的程序列表。 bin_PROGRAMS = hello 按照automake的术语,这个_PROGRAMS后缀叫做primary。其他pri...
client_LDADD:表示连接时所需要的库文件,这里表示需要两个库文件的支持,下面会看到这个库文件又是怎么用Makefile.am文件后成的。 如图表二: 全局变量,可能有人注意到文件中的$(top_builddir)等全局变量,其实这个是Makefile.am系统定义的一个基本路径变量,表示生成目标文件的最上层目录,如果这个Makefile.am文件变成...
于是Makefile闪亮登场。 Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编...
而test_LDFLAGS只是链接时的选项,编译时同样需要指明该选项,所以需要DEFS来指明编译选项,由于 DEFS已经有初始值,所以这里用+=的形式指明。从这里可以看出,Makefile.am中的语法与Makefile的语法一致,也可以采用条件表达 式。如果你的程序还包含其他的库,除了用AC_CHECK_LIB宏来指明外,还可以用LIBS来指明。 如果你只...
LDFLAGS_PROGRAM += $(LDFLAGS_GNULIB) CPPFLAGS_PROGRAM += $(CPPFLAGS_GNULIB) CCASFLAGS_PROGRAM += $(CCASFLAGS_GNULIB) include $(srcdir)/Makefile.util.am # XXX Use Automake's LEX & YACC support grub_script.tab.h: $(top_srcdir)/grub-core/script/parser.y ...
client_LDFLAGS = -export-dynamic -lmemcached noinst_HEADERS = client.h INCLUDES = -I/usr/local/libmemcached/include/ client_LDADD = $(top_builddir)/sx/libsession.la \ $(top_builddir)/util/libutil.la 上面就是一个全部的Makefile.am文件,这个文件用于生成client可执行应用程序,引用了两个静态库...
然后src文件夹中:相比之前多了一个Makefile.am文件 lib里面:注意,这一次,我是将静态库放在这里一起make出来,而不是之前make好,然后在调用! 所有看lib中内容: 也有一个Makefile.am,是为了生成libnew.a而需要的! include文件夹中:还是和以前一样 OK,基本结构说完了,然后需要说的是这些新增加的文件的意义!!!
test_LDFLAGS中指明。而test_LDFLAGS只是链接时的选项,编译时同样需要指明该选项,所以需要DEFS来指明编译选项,由于 DEFS已经有初始值,所以这里用+=的形式指明。从这里可以看出,Makefile.am中的语法与Makefile的语法一致,也可以采用条件表达 式。如果你的程序还包含其他的库,除了用AC_CHECK_LIB宏来指明外,还可以用LIB...
test_LDFLAGS中指明。而test_LDFLAGS只是链接时的选项,编译时同样需要指明该选项,所以需要DEFS来指明编译选项,由于 DEFS已经有初始值,所以这里用+=的形式指明。从这里可以看出,Makefile.am中的语法与Makefile的语法一致,也可以采用条件表达 式。如果你的程序还包含其他的库,除了用AC_CHECK_LIB宏来指明外,还可以用LIB...
client_LDFLAGS = -export-dynamic -lmemcached noinst_HEADERS = client.h INCLUDES = -I/usr/local/libmemcached/include/ client_LDADD = $(top_builddir)/sx/libsession.la \ $(top_builddir)/util/libutil.la 上面就是一个Makefile.am示例文件,这个文件是用于生成client可执行应用程序,引用了两个静态库...