★ make 重編程式 ★
一、基礎版
二、進階版
本文件是寫給要安裝 itoc 所維護的 bbs 程式版本所使用的,並不適用
其他 bbs 版本。
這篇是說明在改完程式以後,怎麼掛上新程式的方法。
[~bbs/src] -bbs- % abcdefg 表示是用 bbs 身分,在 ~bbs/src 執行 abcdefg
[~bbs/src] -root- # abcdefg 表示是用 root 身分,在 ~bbs/src 執行 abcdefg
假設作業系統是 freebsd,如果是 linux 就把 make freebsd 換成 make linux
把握進階版的原則,就可以盡量少 reboot,也不需要關 bbs 站。
一、基礎版
+如果是改了 *.c 的話 (src/lib/*.c 除外)
[~bbs/src] -bbs- % make freebsd install
[anywhere] -root- # reboot 或 shutdown -r now
+如果是改了 src/lib/*.c 或 src/include/*.h 的話
[~bbs/src] -bbs- % make clean freebsd install
[anywhere] -root- # reboot 或 shutdown -r now
二、進階版
+如果是改了 src/lib/*.c 的話
把所有的人都踢下站,換新的程式
[~bbs/src] -bbs- % make clean freebsd install
[~bbs/src/sh] -bbs- % ./killbbs.sh
[~bbs/bin] -bbs- % ./account
[~bbs/bin] -bbs- % ./camera
倘若是 Linux 的話,請再執行
[anywhere] -bbs- % ipcrm shm 1998
[anywhere] -bbs- % ipcrm shm 2997
[anywhere] -bbs- % ipcrm shm 2999
+如果是改了 src/so/*.c 的話
以 xyz.c 為例,其他也是一樣
[~bbs/src/so] -bbs- % make freebsd
[~bbs/src/so] -bbs- % cp xyz.so ~/bin/
若把 沒變動.so 也 install 到 ~/bin/ 會造成線上正在使用這
外掛功能的人可能斷線。
+如果是改了 src/util/*.c src/util/*/*.c 的話
[~bbs/src/util] -bbs- % make freebsd install
若是改 account.c camera.c 還要多執行一步
[~bbs/bin] -bbs- % ./account (倘若改的是 src/util/account.c)
[~bbs/bin] -bbs- % ./camera (倘若改的是 src/util/camera.c)
+如果是改了 src/bgopherd/*.c 或 src/bmtad/*.c 或 src/bpop3d/*.c 或
src/innbbsd/*.c 或 src/maple/*.c
[~bbs/src/xxxx] -bbs- % make freebsd install update
就是在那目錄下 make freebsd install update
若是沒有跑 inetd 或 xinetd,那麼還要多執行一步
[~bbs/bin] -root- # ./gemd (倘若改的是 src/bgopherd/*.c)
[~bbs/bin] -root- # ./bmtad (倘若改的是 src/bmtad/*.c)
[~bbs/bin] -root- # ./bpop3d (倘若改的是 src/bpop3d/*.c)
[~bbs/innd] -root- # ./innbbsd (倘若改的是 src/innbbsd/*.c)
[~bbs/bin] -root- # ./xchatd (倘若改的是 src/maple/xchatd.c)
[~bbs/bin] -root- # ./bguard (倘若改的是 src/maple/bguard.c)
[~bbs/bin] -root- # ./bbsd (倘若改的是 src/maple/其他 *.c)
+如果是改了 src/include/*.h (改變了 struct)
倘若有動到 struct.c 中的 struct ACCT UTMP UCACHE BCACHE FCACHE
其中的任何一項,(例如改 PAL_MAX 會動到 UTMP;改 MAXACTIVE 會動到 UCACHE)
都得踢掉站上所有使用者,並重開所有服務,乾脆 reboot 好了
[anywhere] -root- # reboot 或 shutdown -r now
+如果是改了 src/include/*.h (沒異動 struct)
倘若沒有動到 ACCT UTMP UCACHE BCACHE FCACHE,那麼就只要
看被改的那項被哪些程式 include 了,然後重編那些程式即可,
這樣可以省下很多時間。
例如 config.h:HOST_ALIASES 對應到 mail.c bmtad.c
那麼就等效上改了這 mail.c bmtad.c,所以要
[~bbs/src/maple] -bbs- % rm mail.o
[~bbs/src/maple] -bbs- % make freebsd install update
[~bbs/src/bmtad] -bbs- % rm bmtad.o
[~bbs/src/bmtad] -bbs- % make freebsd install update
--
交大電子 杜宇軒
E-Mail: itoc.bbs@bbs.tnfsh.tn.edu.tw
WWW: http://home.pchome.com.tw/soho/itoc
|