Submit Search
Upload
GNU Build System
•
Download as ODP, PDF
•
0 likes
•
362 views
imacat .
Follow
開放原始碼自由軟體的標準編譯流程—以Pidgin為例 2011/6/15晚上於WoFOSS第九次聚會
Read less
Read more
Technology
Report
Share
Report
Share
1 of 51
Download now
Recommended
Apache安装配置mod security
Apache安装配置mod security
Huang Toby
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
Will Huang
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
beehivedata
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
webpack 入門
webpack 入門
Anna Su
CP 值很高的 Gulp
CP 值很高的 Gulp
Yvonne Yu
前端框架發展
前端框架發展
Chi-wen Sun
Recommended
Apache安装配置mod security
Apache安装配置mod security
Huang Toby
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
Will Huang
Honey's Data Dinner#7 webpack 包達人(入門)
Honey's Data Dinner#7 webpack 包達人(入門)
beehivedata
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
webpack 入門
webpack 入門
Anna Su
CP 值很高的 Gulp
CP 值很高的 Gulp
Yvonne Yu
前端框架發展
前端框架發展
Chi-wen Sun
use Nagios on openSUSE 11.4
use Nagios on openSUSE 11.4
welong
Docker應用
Docker應用
Jui An Huang (黃瑞安)
项目开发实践No.1
项目开发实践No.1
pepsixp
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
Will Huang
前端各階段工作
前端各階段工作
Chi-wen Sun
02.python.开发最佳实践
02.python.开发最佳实践
Na Lee
Deployment with Capistrano
Deployment with Capistrano
旭 張
Hadoop平台搭建
Hadoop平台搭建
Liyang Tang
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
Continuous Delivery - Opening
Continuous Delivery - Opening
Rick Hwang
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
AWS EC2 for beginner
AWS EC2 for beginner
azole Lai
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
redhat9
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Chu-Siang Lai
Frontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
Yan Wang
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
Chu-Siang Lai
Afib slides-focused-update-2012
Afib slides-focused-update-2012
Alexandria University, Egypt
Tobacco budget update nov 2011a
Tobacco budget update nov 2011a
Brandon Williams
More Related Content
What's hot
use Nagios on openSUSE 11.4
use Nagios on openSUSE 11.4
welong
Docker應用
Docker應用
Jui An Huang (黃瑞安)
项目开发实践No.1
项目开发实践No.1
pepsixp
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
Will Huang
前端各階段工作
前端各階段工作
Chi-wen Sun
02.python.开发最佳实践
02.python.开发最佳实践
Na Lee
Deployment with Capistrano
Deployment with Capistrano
旭 張
Hadoop平台搭建
Hadoop平台搭建
Liyang Tang
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
Continuous Delivery - Opening
Continuous Delivery - Opening
Rick Hwang
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
謝 宗穎
AWS EC2 for beginner
AWS EC2 for beginner
azole Lai
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
redhat9
Koa 正在等一個人
Koa 正在等一個人
Fred Chien
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
Will Huang
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Philip Zheng
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Chu-Siang Lai
Frontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
Yan Wang
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
Chu-Siang Lai
What's hot
(20)
use Nagios on openSUSE 11.4
use Nagios on openSUSE 11.4
Docker應用
Docker應用
项目开发实践No.1
项目开发实践No.1
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
前端各階段工作
前端各階段工作
02.python.开发最佳实践
02.python.开发最佳实践
Deployment with Capistrano
Deployment with Capistrano
Hadoop平台搭建
Hadoop平台搭建
Node.js從無到有 基本課程
Node.js從無到有 基本課程
Continuous Delivery - Opening
Continuous Delivery - Opening
從軟體開發角度 談 Docker 的應用
從軟體開發角度 談 Docker 的應用
AWS EC2 for beginner
AWS EC2 for beginner
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Koa 正在等一個人
Koa 正在等一個人
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
容器與 Gitlab CI 應用
容器與 Gitlab CI 應用
Continuous Delivery with Ansible x GitLab CI
Continuous Delivery with Ansible x GitLab CI
Frontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
前端工程師一定要知道的 Docker 虛擬化容器技巧
前端工程師一定要知道的 Docker 虛擬化容器技巧
Viewers also liked
Afib slides-focused-update-2012
Afib slides-focused-update-2012
Alexandria University, Egypt
Tobacco budget update nov 2011a
Tobacco budget update nov 2011a
Brandon Williams
The holy bible new international version - niv (pdf)
The holy bible new international version - niv (pdf)
Alexandria University, Egypt
Biodinamika
Biodinamika
Matija Kojitijevrag
Appendix r straw bale structures
Appendix r straw bale structures
Matija Kojitijevrag
Ned med våbnene
Ned med våbnene
Association of Danish Museums / Organisationen Danske Museer
Group2 final proj lesson1
Group2 final proj lesson1
allisonmbell
Medicinsk Museion - Ikke bare et museum med ting
Medicinsk Museion - Ikke bare et museum med ting
Association of Danish Museums / Organisationen Danske Museer
Bjarne Henning Nielsen
Bjarne Henning Nielsen
Association of Danish Museums / Organisationen Danske Museer
Jakob Walløe Hansen geopark odsherred
Jakob Walløe Hansen geopark odsherred
Association of Danish Museums / Organisationen Danske Museer
123 rikke lagersted-olsen_romantikkens k+ªrestebreve
123 rikke lagersted-olsen_romantikkens k+ªrestebreve
Association of Danish Museums / Organisationen Danske Museer
Hans Mikkelsen - ferslev kirke
Hans Mikkelsen - ferslev kirke
Association of Danish Museums / Organisationen Danske Museer
Hans Mikkelsen - fjelstrup kirke
Hans Mikkelsen - fjelstrup kirke
Association of Danish Museums / Organisationen Danske Museer
Janet marstine - Museum ethics and museum change
Janet marstine - Museum ethics and museum change
Association of Danish Museums / Organisationen Danske Museer
Im db best actors - top 250 - a list by yves porters- copied by samir rafla
Im db best actors - top 250 - a list by yves porters- copied by samir rafla
Alexandria University, Egypt
Egypt at the 2016 summer olympics
Egypt at the 2016 summer olympics
Alexandria University, Egypt
44 jakob bonde_gravh+©j og gravplads i fraugde
44 jakob bonde_gravh+©j og gravplads i fraugde
Association of Danish Museums / Organisationen Danske Museer
Mathilde Schytz Marvit - co produktioner
Mathilde Schytz Marvit - co produktioner
Association of Danish Museums / Organisationen Danske Museer
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02
imacat .
Naya presentation
Naya presentation
ifcaonline
Viewers also liked
(20)
Afib slides-focused-update-2012
Afib slides-focused-update-2012
Tobacco budget update nov 2011a
Tobacco budget update nov 2011a
The holy bible new international version - niv (pdf)
The holy bible new international version - niv (pdf)
Biodinamika
Biodinamika
Appendix r straw bale structures
Appendix r straw bale structures
Ned med våbnene
Ned med våbnene
Group2 final proj lesson1
Group2 final proj lesson1
Medicinsk Museion - Ikke bare et museum med ting
Medicinsk Museion - Ikke bare et museum med ting
Bjarne Henning Nielsen
Bjarne Henning Nielsen
Jakob Walløe Hansen geopark odsherred
Jakob Walløe Hansen geopark odsherred
123 rikke lagersted-olsen_romantikkens k+ªrestebreve
123 rikke lagersted-olsen_romantikkens k+ªrestebreve
Hans Mikkelsen - ferslev kirke
Hans Mikkelsen - ferslev kirke
Hans Mikkelsen - fjelstrup kirke
Hans Mikkelsen - fjelstrup kirke
Janet marstine - Museum ethics and museum change
Janet marstine - Museum ethics and museum change
Im db best actors - top 250 - a list by yves porters- copied by samir rafla
Im db best actors - top 250 - a list by yves porters- copied by samir rafla
Egypt at the 2016 summer olympics
Egypt at the 2016 summer olympics
44 jakob bonde_gravh+©j og gravplads i fraugde
44 jakob bonde_gravh+©j og gravplads i fraugde
Mathilde Schytz Marvit - co produktioner
Mathilde Schytz Marvit - co produktioner
Object-Oriented Programming Design with Greenfoot 02
Object-Oriented Programming Design with Greenfoot 02
Naya presentation
Naya presentation
Similar to GNU Build System
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
MarsZ Chen
Centos下安装apache + subversion
Centos下安装apache + subversion
Yiwei Ma
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
xuebao_zx
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
Yiwei Ma
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
Yiwei Ma
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
imacat .
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
Puppet安装总结
Puppet安装总结
Yiwei Ma
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
cachowu
5, system admin
5, system admin
ted-xu
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?
zzzzzz gg
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
National Cheng Kung University
Bitbucket pipeline CI
Bitbucket pipeline CI
Zero Huang
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
Yiwei Ma
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
modou li
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
redhat9
Sery lvs+keepalived
Sery lvs+keepalived
colderboy17
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
Jason Zheng
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
haiyuan ning
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程
NJU OPEN
Similar to GNU Build System
(20)
Ruby on Rails 開發環境建置 for Ubuntu
Ruby on Rails 開發環境建置 for Ubuntu
Centos下安装apache + subversion
Centos下安装apache + subversion
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
X64服务器 lamp服务器部署标准 new
X64服务器 lamp服务器部署标准 new
GNU Autoconf / Automake #1
GNU Autoconf / Automake #1
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
Puppet安装总结
Puppet安装总结
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
5, system admin
5, system admin
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?
Build Your Own Android Toolchain from scratch
Build Your Own Android Toolchain from scratch
Bitbucket pipeline CI
Bitbucket pipeline CI
康盛创想项目部Linux 服务器部署标准(最新版)
康盛创想项目部Linux 服务器部署标准(最新版)
Uliweb cheat sheet_0.1
Uliweb cheat sheet_0.1
Bypat博客出品-利用cent os快速构建自己的发行版
Bypat博客出品-利用cent os快速构建自己的发行版
Sery lvs+keepalived
Sery lvs+keepalived
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
[精彩回顾]Linux新手教程
[精彩回顾]Linux新手教程
More from imacat .
A Room of WikiWomen's Own
A Room of WikiWomen's Own
imacat .
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機
imacat .
Crossing Office Applications
Crossing Office Applications
imacat .
OpenOffice Application with Python
OpenOffice Application with Python
imacat .
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs
imacat .
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversity
imacat .
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4
imacat .
OpenOffice, Open Business
OpenOffice, Open Business
imacat .
Multimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice Calc
imacat .
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012
imacat .
Mosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice Calc
imacat .
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
imacat .
Solitaire with Greenfoot #3
Solitaire with Greenfoot #3
imacat .
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
imacat .
Solitaire with Greenfoot #4
Solitaire with Greenfoot #4
imacat .
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2
imacat .
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
imacat .
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01
imacat .
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4
imacat .
OpenOffice UNO Application on Android
OpenOffice UNO Application on Android
imacat .
More from imacat .
(20)
A Room of WikiWomen's Own
A Room of WikiWomen's Own
Office寶可夢GO IV計算機
Office寶可夢GO IV計算機
Crossing Office Applications
Crossing Office Applications
OpenOffice Application with Python
OpenOffice Application with Python
從doc、docx、odt到Google Docs
從doc、docx、odt到Google Docs
More Girls – Creating a Community of Diversity
More Girls – Creating a Community of Diversity
Welcome to Apache OpenOffice 4
Welcome to Apache OpenOffice 4
OpenOffice, Open Business
OpenOffice, Open Business
Multimedia Fun with OpenOffice Calc
Multimedia Fun with OpenOffice Calc
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Welcome to Apache OpenOffice 3.4 COSCUP 2012
Mosaic Fun with OpenOffice Calc
Mosaic Fun with OpenOffice Calc
GNU Autoconf / Automake #4
GNU Autoconf / Automake #4
Solitaire with Greenfoot #3
Solitaire with Greenfoot #3
Solitaire with Greenfoot #1
Solitaire with Greenfoot #1
Solitaire with Greenfoot #4
Solitaire with Greenfoot #4
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2
Solitaire with Greenfoot #2/4
Solitaire with Greenfoot #2/4
Object-Oriented Programming Design with Greenfoot 01
Object-Oriented Programming Design with Greenfoot 01
Welcome to Apache OpenOffice 3.4
Welcome to Apache OpenOffice 3.4
OpenOffice UNO Application on Android
OpenOffice UNO Application on Android
GNU Build System
1.
由source到執行檔 開放原始碼自由軟體 標準編譯流程
以 Pidgin 為例 依瑪貓 / 楊士青 <imacat@mail.imacat.idv.tw> 2011-01-19 , 2011-6-15 修
2.
「由 source 到執行檔」簡報由
依瑪貓╱楊士青 製作, 以 創用CC Attribution-ShareAlike 3.0 Unported 授權條款 釋出。
3.
4.
./configure --enable-cyrus-sasl --with-system-
ssl-certs=/etc/ssl/certs
5.
make
6.
sudo make install
7.
編譯: 將source轉成執行檔,方便系統執行。
8.
9.
cd pidgin-2.8.0
10.
./configure
11.
make
12.
make check
13.
sudo make install
14.
但是,在編譯之前…
15.
安裝開發用的套件
16.
17.
build-essential 基本需要的編譯程式 gcc,
g++, make
18.
*-dev 開發用的套件
19.
舉例: libxss XScreenSaver營幕保護程式的函式庫
Pidgin引用,來偵測使用者idle的時間
20.
libxss1 執行用的函式庫 /usr/lib/libXss.so.1.0.0
21.
執行時期連結, 引用到的程式,執行時需要, 所以要執行程式,要一起拉進來。
22.
sudo apt-get install
pidgin 會一起拉進 libxss1
23.
libxss-dev 編譯用的定義檔 /usr/include/X11/extensions/scrnsaver.h
static函式庫 /usr/lib/libXss.a
24.
編譯時引用、連結,執行時不會用, 所以只有在編譯時才需要拉進來。 執行時不需要。
25.
apt-get install pidgin
時, 因為安裝的是已編譯好的執行檔, 所以只需要 libxss1 , 不需要 libxss-dev ,
26.
剩下的就很簡單了
27.
28.
cd pidgin-2.8.0
29.
./configure
30.
make
31.
make check
32.
sudo make install
33.
./configure 檢查系統設定,作出因應處理。
34.
configure 是 GNU
規定的標準工具, 是 autoconf 製作出來的 shell script 。 GNU的專案,規定要用autoconf。
35.
因為方便好用,所以非GNU的專案, 也常見使用GNU autoconf。
36.
使用GNU autoconf
configure 的非GNU專案: Apache BIND MySQL PostgreSQL Samba …
37.
./configure --enable-cyrus-sasl --with-system-ssl-certs=/etc/ssl/certs
--enable-cyrus-sasl : 使用 cyrus-sasl 功能 --with-system-ssl-certs : 指定 SSL 憑證目錄( /etc/ssl/certs )
38.
./configure –-help 查看有哪些可用的選項
39.
即使不是使用 GNU autoconf
的專案, 也常常使用類似名稱、類似功能的程式, 檢查系統設定,作出因應處理。
40.
Perl 使用 Configure
: ./Configure
41.
OpenSSL使用 config :
./config
42.
一點點深入瞭解GNU autoconf
43.
GNU autoconf由簡易的範本, 來建立強大的
configure 程式。
44.
configure 的範本檔為 configure.ac
。
45.
除了 configure 以外,
autoconf也用範本,製作其他檔案。
46.
autoconf的一般範本檔為 .in 檔尾。
例如: config.h.in => config.h Makefile.in => Makefile
47.
make 編譯,將原始碼轉成執行檔程式。
48.
make 根據 Makefile
的編譯規則編譯。
49.
前面提到, Makefile 由GNU
autoconf, 從 Makefile.in 範本製作而成。
50.
Makefile 中有很多特殊編譯功能。
51.
GNU標準的 Makefile 功能
52.
make check 自我檢查品管。
自我檢查編譯出來的功能是否正確。
53.
sudo make install
安裝。
54.
要安裝到系統目錄, 所以需要 sudo
,用 root 權限。
55.
sudo make install-strip
安裝同時 strip 。
56.
make clean 清除所有
.o 目的檔、 .a 及 .so 函式庫、 執行檔, 以便全部重新 make 。
57.
make distclean 除了
make clean 外, 移除所有distribution發行檔外的檔, 包括 ./configure 的cache, 以便全新重做 ./configure 。
58.
make dist 產生distribution發行檔。
如: pidgin-2.8.0.tar.gz
59.
make dist-bzip2 產生bzip2的distribution發行檔。
如: pidgin-2.8.0.tar.bz2
60.
make distdir 產生製作distribution發行檔的目錄,
如: pidgin-2.8.0/
61.
安裝在哪裏?
62.
預設使用者自己編譯安裝的程式, 都會在 /usr/local
下 /usr/local/bin/pidgin
63.
比較 /usr/bin/pidgin /usr/local/bin/pidgin
64.
問題與討論
Download now