青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

不會(huì)飛的鳥(niǎo)

2010年12月10日 ... 不鳥(niǎo)他們?。?! 我要用自己開(kāi)發(fā)的分布式文件系統(tǒng)、分布式調(diào)度系統(tǒng)、分布式檢索系統(tǒng), 做自己的搜索引擎?。?!大魚(yú)有大志?。?! ---楊書(shū)童

linux c 一個(gè)autotools的最簡(jiǎn)單例子

  1、準(zhǔn)備:
     

   需要工具autoscan aclocal autoheader automake autoconf make 等工具.


  2、測(cè)試程序編寫(xiě):
     


      建立目錄:mkdir include src
     
      編寫(xiě)程序:include/str.h
      
#include <stdio.h>

int str(char *string);

      編寫(xiě)程序:src/str.c
      
#include "str.h"
//print string
int str(char *string){
        printf(
"\n----PRINT STRING----\n\"%s\"\n",string);
        
return 0;
}


//interface of this program
int main(int argc , char **argv){
        
char str_read[1024];
        printf(
"Please INPUT something end by [ENTER]\n");
        scanf(
"%s",str_read);
        
return str(str_read );
}


3、生成configure.in
   

configure.in是automake的輸入文件,所以必須先生成該文件。
    執(zhí)行命令:
[root@localhost str]# ls
include  src
[root
@localhost str]# autoscan
autom4te: configure.ac: no such file or directory
autoscan
: /usr/bin/autom4te failed with exit status: 1
[root
@localhost str]# ls
autoscan.log  configure.scan  include  src
[root
@localhost str]# cp configure.scan configure.in 

修改 configure.in
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ(
2.59)
AC_INIT(FULL
-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_CONFIG_SRCDIR([include
/str.h])
AC_CONFIG_HEADER([config
.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT

修改
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)

AC_INIT(str,0.0.1, [bug@sounos.org])

FULL-PACKAGE-NAME 為程序名稱(chēng),VERSION為當(dāng)前版本, BUG-REPORT-ADDRESS為bug匯報(bào)地址
    添加AM_INIT_AUTOMAKE
    添加AC_CONFIG_FILES([Makefile])
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.


AC_PREREQ(
2.59)
#AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_INIT(str, 0.0.1, [bug@sounos.org])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([include
/str.h])
AC_CONFIG_HEADER([config
.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_CONFIG_FILES([Makefile])
AC_OUTPUT

4、執(zhí)行aclocal

[root@localhost str]# aclocal
/usr/share/aclocal/libfame.m4:6: warning: underquoted definition of AM_PATH_LIBFAME
  run info 
'(automake)Extending aclocal'
  or see http
://sources.redhat.com/automake/automake.html#Extending-aclocal

5、制作Makefile.am


[root@localhost str]# cat Makefile.am
#Makefile.am

bin_PROGRAMS    = str
str_SOURCES     
= include/str.h src/str.c
str_CPPFLAGS    
= -I include/

6、autoheader

[root@localhost str]# autoheader

7、automake必須文件:


    *  install-sh
    
* missing
    
* INSTALL
    
* NEWS
    
* README
    
* AUTHORS
    
* ChangeLog
    
* COPYING
    
* depcomp 
其中
    * install-sh
    
* missing
    
* INSTALL
    
* COPYING
    
* depcomp 
可以通過(guò)automake -a選項(xiàng)自動(dòng)生成,所以這里只需要建立如下文件
[root@localhost str]# touch NEWS README AUTHORS ChangeLog

8、執(zhí)行automake


[root@localhost str]# automake -a
configure.ac: installing `./install-sh'
configure.ac: installing `./missing
'
Makefile
.am: installing `./INSTALL'
Makefile.am: installing `./COPYING
'
Makefile
.am: installing `./compile'
Makefile.am: installing `./depcomp
'

9、autoconf

[root@localhost str]# autoconf
[root@localhost str]# ls
aclocal.m4      autoscan.log  config.h.in   configure.scan  include     Makefile.am  NEWS
AUTHORS         ChangeLog     configure     COPYING         INSTALL     Makefile
.in  README
autom4te
.cache  compile       configure.ac  depcomp         install-sh  missing      src

10、執(zhí)行測(cè)試:


      
執(zhí)行./configure
[root@localhost str]# ./configure --prefix=/u
checking for a BSD-compatible install /usr/bin/install -c
checking whether build environment is sane
 yes
checking 
for gawk gawk
checking whether make sets $(MAKE)
 yes
checking 
for gcc gcc
checking 
for C compiler default output file name a.out
checking whether the C compiler works
 yes
checking whether we are cross compiling
 no
checking 
for suffix of executables
checking 
for suffix of object files o
checking whether we are using the GNU C compiler
 yes
checking whether gcc accepts 
-g yes
checking 
for gcc option to accept ANSI C none needed
checking 
for style of include used by make GNU
checking dependency style of gcc
 gcc3
configure
: creating ./config.status
config
.status: creating Makefile
config
.status: creating config.h
config
.status: config.h is unchanged
config
.status: executing depfiles commands
執(zhí)行 make
[root@localhost str]# make
make  all-am
make[
1]: Entering directory `/data/devel/c/str'
if gcc -DHAVE_CONFIG_H -I. -I. -I.  -I include/   -g -O2 -MT str-str.o -MD -MP -MF ".deps/str-str.Tpo" -c -o str-str.o `test -f 
'src/str.c' || echo './'`src/str.c; \
then mv -f ".deps/str-str.Tpo" ".deps/str-str.Po"; else rm -f ".deps/str-str.Tpo"; exit 1; fi
gcc  -g -O2   -o str  str-str.o
make[1]: Leaving directory `/data/devel/c/str
'
執(zhí)行 make install
[root@localhost str]# make install
make[1]: Entering directory `/data/devel/c/str'
test -z "/u/bin" || mkdir -p -- "/u/bin"
  /usr/bin/install -c 
'str' '/u/bin/str'
make[1]: Nothing to be done for `install-data-am
'.
make[
1]: Leaving directory `/data/devel/c/str'

11、測(cè)試程序:

[root@localhost str]# /u/bin/str
Please INPUT something end by [ENTER]
abcksdhfklsdklfdjlkfd

----PRINT STRING----
"abcksdhfklsdklfdjlkfd"

到此結(jié)束!!



--------------------

添加測(cè)試包:
[root@localhost str]# make dist-gzip
{ test ! -d str-0.0.1 || { find str-0.0.1 -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr str-0.0.1; }; }
mkdir str-0.0.1
find str
-0.0.1 -type d ! -perm -777 -exec chmod a+rwx {} \-\
  
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \-\
  
! -type d ! -perm -400 -exec chmod a+r {} \-\
  
! -type d ! -perm -444 -exec /bin/sh /data/devel/c/str/install-sh --m a+r {} {} \\
|| chmod -R a+r str-0.0.1
tardir
=str-0.0.1 && /bin/sh /data/devel/c/str/missing --run tar chof - "$tardir" | GZIP=--best gzip ->str-0.0.1.tar.gz
{ test 
! -d str-0.0.1 || { find str-0.0.1 -type d ! -perm -200 -exec chmod u+w {} ';' && rm -fr str-0.0.1; }; }

添加一個(gè)支持子目錄、靜態(tài)庫(kù)、自定義configure選項(xiàng)的包

支持子目錄Makefile.am 選項(xiàng) SUBDIR =
#Automake interface 
SUBDIRS = src
支持靜態(tài)庫(kù)Makefile.am
EXTRA_DIST  用于添加除源碼外的文件到dist包
#Automake interface
bin_PROGRAMS = hello
hello_SOURCES 
= hello.c lib/sbase.h
hello_CPPFLAGS 
= -I lib
hello_LDFLAGS 
= -static lib/libsbase.a
EXTRA_DIST 
= lib/libsbase.a
configure.in
AC_PREREQ(2.59)
#AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_INIT(hello, 0.0.1, [SounOS@gmail.com])
#AM 聲明
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src
/hello.c])
AC_CONFIG_HEADER([config
.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.

AC_HEADER_STDC
AC_CHECK_HEADERS([stdint
.h stdlib.h sys/socket.h])

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T

#用于自定義configure 選項(xiàng),見(jiàn)acinclude.am
AC_CHECK_EXTRA_OPTIONS
# Checks for library functions.

AC_CONFIG_FILES([Makefile
                 src
/Makefile])
AC_OUTPUT

posted on 2009-05-14 17:31 不會(huì)飛的鳥(niǎo) 閱讀(2040) 評(píng)論(1)  編輯 收藏 引用

評(píng)論

# re: linux c 一個(gè)autotools的最簡(jiǎn)單例子 2010-01-20 09:32 微凌秋白

講解詳細(xì)到位,很有實(shí)用價(jià)值,能不能寫(xiě)一篇關(guān)于Makefile.am內(nèi)容編寫(xiě)的帖子,那就太感謝了  回復(fù)  更多評(píng)論   


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美高潮视频| 日韩视频永久免费| 午夜精品亚洲| 免费在线看一区| 亚洲精品在线观看免费| 亚洲小视频在线| 欧美日韩成人一区| 在线观看国产成人av片| 亚洲欧美日韩精品一区二区 | 亚洲国产精品一区二区久| 久久不射中文字幕| 亚洲一级在线观看| 欧美日韩另类一区| 亚洲精品美女91| 欧美不卡视频一区发布| 欧美在线视频在线播放完整版免费观看| 欧美理论在线播放| 亚洲精品欧美日韩专区| 欧美激情视频在线播放| 裸体一区二区三区| 尤妮丝一区二区裸体视频| 亚洲欧美成人一区二区在线电影| 亚洲国产精品久久久久秋霞不卡 | 国产日本精品| 久久国产精品久久w女人spa| 午夜亚洲福利| 国产亚洲欧洲| 亚洲一区二区欧美| 在线视频亚洲| 国产精品综合| 欧美一区午夜视频在线观看| 性久久久久久久久久久久| 国产九九精品| 久久亚洲欧洲| 久久影音先锋| 91久久精品国产91久久性色| 亚洲承认在线| 欧美日韩视频在线一区二区 | 亚洲人成久久| 欧美国产综合| 欧美成人在线影院| 日韩一区二区精品在线观看| 99精品视频免费| 国产精品久久毛片a| 性色av一区二区三区| 欧美在线视屏| 亚洲精品免费电影| 99视频一区| 国产一区二区三区四区五区美女| 欧美一区二区三区四区在线观看地址 | 亚洲在线视频观看| 午夜视频一区| 91久久精品国产| 亚洲视频二区| 欧美日韩一级视频| 蜜桃久久精品乱码一区二区| 母乳一区在线观看| 欧美一区二区三区免费观看| 久久国产精品99国产| 久久国产加勒比精品无码| 一区二区三区欧美| 亚洲午夜精品一区二区三区他趣| 久久综合久久久| 欧美老女人xx| 亚洲丰满少妇videoshd| 国产精品大片免费观看| 亚洲国产成人av在线| 久久久精品日韩| 亚洲午夜在线观看视频在线| 国产精品美女久久久久av超清| 久久久噜噜噜久噜久久| 欧美精品粉嫩高潮一区二区| 午夜精品理论片| 欧美~级网站不卡| 91久久精品一区| 亚洲女女女同性video| 亚洲精品中文字幕在线| 欧美一区日韩一区| 亚洲视频欧美在线| 久久手机精品视频| 欧美一区二区三区视频在线| 欧美片网站免费| 鲁大师影院一区二区三区| 国产精品你懂的在线| 亚洲激情综合| 在线看片成人| 在线观看亚洲a| 亚洲午夜精品久久久久久浪潮 | 欧美激情精品| 免费日韩av电影| 国产欧美一区二区白浆黑人| 亚洲精品免费一区二区三区| 久久亚洲美女| 久久综合99re88久久爱| 国产视频久久| 亚洲午夜精品久久| 亚洲欧美日韩中文播放| 欧美视频中文字幕在线| 亚洲麻豆国产自偷在线| 亚洲全部视频| 欧美成人资源| 亚洲欧洲在线视频| 亚洲美女视频在线观看| 欧美插天视频在线播放| 麻豆精品在线视频| 精品1区2区3区4区| 欧美在线一二三区| 久久久久久国产精品mv| 国产一区二区在线观看免费播放| 亚洲私人影院| 欧美一区二区三区视频| 国产欧美日韩三级| 欧美一级专区| 久久精品在线| 伊人婷婷久久| 欧美成人综合| 亚洲视频中文字幕| 久久精品一区二区三区不卡| 好看的亚洲午夜视频在线| 性做久久久久久免费观看欧美| 欧美资源在线| 在线成人av| 美女成人午夜| 亚洲精品精选| 西西裸体人体做爰大胆久久久| 国产精品一页| 久久理论片午夜琪琪电影网| 欧美搞黄网站| 亚洲一区二区三区成人在线视频精品| 欧美色欧美亚洲另类二区| 亚洲在线视频免费观看| 久久久水蜜桃| 99热免费精品在线观看| 国产精品久久久久久久免费软件| 欧美一区日本一区韩国一区| 欧美福利一区| 亚洲一区久久久| 国语自产偷拍精品视频偷| 欧美电影免费观看| 亚洲色无码播放| 免费看成人av| 一区二区三区国产精华| 国产精品一区一区| 免费观看日韩av| 性亚洲最疯狂xxxx高清| 欧美激情一区三区| 午夜精品久久久久久久男人的天堂| 韩国一区二区三区美女美女秀| 欧美激情综合五月色丁香| 亚洲自拍另类| 亚洲国产成人av| 久久久久久久久一区二区| 99精品视频网| 亚洲高清视频在线| 国产精品美女一区二区在线观看| 美女精品在线| 香蕉国产精品偷在线观看不卡| 亚洲欧洲一区二区在线播放 | 欧美性大战久久久久| 久久男人资源视频| 亚洲视频在线一区观看| 亚洲高清免费在线| 久久九九精品99国产精品| 亚洲精品国产精品国自产观看| 国产亚洲一级高清| 国产精品久久91| 欧美国产日韩一区二区| 久久久久国产精品厨房| 亚洲免费一在线| 亚洲精品国偷自产在线99热| 久久综合五月| 久久久av水蜜桃| 亚洲视频一二| 一道本一区二区| 亚洲国产日韩一区| 亚洲午夜国产一区99re久久| 这里只有精品丝袜| 国产精品外国| 久久精品首页| 欧美性色综合| 欧美成人免费视频| 国产毛片一区| 99精品欧美一区| 亚洲天堂网站在线观看视频| 久久人人97超碰国产公开结果| 午夜免费日韩视频| 欧美色综合网| 中文在线资源观看网站视频免费不卡 | 国产在线视频欧美| 欧美日韩免费区域视频在线观看| 久久久精品欧美丰满| 噜噜噜在线观看免费视频日韩| 亚洲欧洲精品一区| 最新成人av网站| 国产精品久久久久久久久搜平片| 欧美一区二区三区四区在线观看| 久久激情中文| 99re6这里只有精品| 亚洲精品影视| 欧美紧缚bdsm在线视频|