首先,謝謝netman大大提共的文件 供小弟參考 實在感激
而本文的內容只是取文件中的精隨加以解釋^^ 謝謝
在開始之前我簡單說一下我們會甚麼會須要到"自"作
其實說穿了,是要讓使用者方便安裝我們所篆寫的程式
再來,不論是rpm 或是 tarball 都或多或少替我們解決了部份相依性的問題
(當然,,rpm在這部份作的十分完整,,,)
那我們開始吧,,
在開始的時候 無疑的我們須要一個工作環境 so ,,我們先為這隻程式建立一個dir
$ mkdir hw-1.0 // 產生一個資料夾 請記得盡量在家目錄底下()
cd hw-1.0 // 到這個資料夾裡去
開始寫原始碼
用c 來寫一個簡單的helloword
vi hw.c
main.c
int main() {
printit();
}
printit.c
#include <stdio.h>
void printit() {
printf("Hello, world!\n");
}
compile:
gcc -c main.c
gcc -c printit.c
gcc -o hw main.o printit.o
(偷偷說一下 這個不是我寫滴 簡單來說 是"偷"來滴, 噓 不要說出去唷)
再來,, run一下剛剛所寫的這隻程式 可以跑的話接下來就是Makefile的部份了
Makefile
定意 make
all: hw
hw: hw.c
gcc -o hw hw.c
clean: ///在這裡定意 make clean 的內容
rm -f hw
install: hw
cp hw /usr/bin
接下來就比較複雜了
vi configure
#!/bin/bash / 這是一個shell
for COMD in gcc make; do
which $COMD || {
echo ERROR: $COMD found!
exit 1
}
done
for FILE in main.c printit.c; do
echo checking $FILE...
test -f $FILE || {
echo ERROR: $FILE not found!
exit 2
}
done
////以上是兩個判段的回圈 m_m ,,
如果沒有成立會印上 Error
cat > Makefile <<END
CC = gcc
hw: main.o printit.o
\$(CC) -o hw main.o printit.o
main.o: main.c
\$(CC) -c main.c
printit.o: printit.c
\$(CC) -c printit.c
install:
install -m 755 hw /usr/local/bin/hw
clean:
rm -f *.o
rm -f hw
fresh:
rm -f *.o
rm -f hw
rm -f Makefile
uninstall:
rm -f /usr/local/bin/hw
END
到這邊,, 第一階段完成了 也就是說... 你以經把你做的東西install
接下來就run看看摟
./configure
make
make install ///這個只是測試一下 測完請uninstall 然後往下做
這個時後,,你可以寫一個readme檔包進去 ,,有些程式設計師也會將 readme install分開寫成兩份文件^^
==接下來 pwd 看一下自己的工作目錄是否在 [hw-1.0]的上一層,如果不是的話
請到hw-1.0的上一層進行tar 的打包
tar zcvf hw-1.0-2.tgz hw-1.0
前面加上了個z我想各位高手都知道意思吧,,^^不過小弟還是在此補充一下
順便簡單介紹一下tar與gzip
基本上tar是一個封裝程式,不過他只能包單一個檔案,所以呢一般的人都會先把一堆檔案丟到gzip在用tar做一次壓縮m_m , 本來滴話是要tar和gzip 分開作 加上z 的話,就可以在tar指令之下把gzip也一起解開,,
這樣子就大工告成了,,剩下就是甚麼ㄋ!?
就是再把tarball install回電腦溜^^
Installation Procedure:
$ tar zxvf hw-<version>.tgz
$ cd hw-<version>
$ less README
$ ./configure
$ make
$ su
# make install
# exit
$ hw
===========
此份教學文件原始碼皆由netman大哥所篆寫 小弟只是加上一點中文的助解^^"
可能會有很多錯誤的地方,還請個位高手勿見笑^_^ 也請個位大大可以加以補充m_m 下次來時在補上rpm的部份 還有一個可以auto configure的部份會加上
以加上..rpm
令外在study area還有這兩篇精彩的文件
http://www.study-area.org/tips/rpm_pc2000.htmlhttp://www.study-area.org/tips/automake/index.html