Mozilla non-source-dir build
เริ่มกระบวนการใช้พลังของ เครื่องตั้งโต๊ะจากคุณ wd ต่อ วันนี้จัดการ checkout mozilla source มาที่เครื่องใหม่ แล้วก็ถือโอกาส config การ build นอก source tree เสียเลย ซึ่งก็ไม่ยากอะไร เนื่องจากระบบ build ของ mozilla ได้ออกแบบมารองรับเรื่องนี้โดยเฉพาะอยู่แล้ว
ก็ ตามคู่มือ เลยครับ:
$ hg clone -r default http://hg.mozilla.org/mozilla-central/ $ cd mozilla-central $ autoconf $ cd js/src; autoconf; cd ../..
ตรง autoconf นี่ บน Debian ใช้วิธีติดตั้ง autoconf2.13
แล้วเรียก autoconf
wrapper script เอา มันจะไปเลือก autoconf รุ่นที่เหมาะสม ระหว่าง 2.13 กับ 2.50 ให้เอง ซึ่ง manpage ของ Debian แนะนำให้ทำแบบนี้
จากนั้น ผมก็สร้างไดเรกทอรี ~/build
เอาไว้ build โปรแกรมโดยเฉพาะ ทั้ง mozilla และ GNOME
จากนั้นก็สร้าง ~/.mozconfig
เอาไว้ ตาม คู่มือ เลยครับ ปรับเอาตามสะดวก:
$ vi ~/.mozconfig
. $topsrcdir/browser/config/mozconfig mk_add_options MOZ_OBJDIR=~/build/mozilla_hg/mozilla-central ac_add_options --disable-optimize ac_add_options --disable-debug ac_add_options --enable-tests ac_add_options --with-system-bz2 ac_add_options --with-system-jpeg #ac_add_options --with-system-png ac_add_options --with-system-zlib
ตรง --with-system-*
ทั้งหลายนี่ ก็ลงแพกเกจ lib*-dev
ของระบบเอา ไม่ต้อง build ซ้ำซ้อน ยกเว้น libpng ซึ่ง mozilla มันฟ้องว่า libpng ของระบบไม่รองรับ APNG เลยไม่ยอม build ให้ ต้องใช้โค้ดของ mozilla แทน เลย comment ออกไปก่อน
สร้างเสร็จแล้ว ก็มาถึงตอนสำคัญ คือการ build นอก source tree.. แต่นแต๊น..
$ cd ~/build/mozilla_hg/mozilla-central $ make -f ~/vcs/mozilla_hg/mozilla-central/client.mk \ build TOPSRCDIR=~/vcs/mozilla_hg/mozilla-central
จุดสำคัญอยู่ที่การกำหนดตัวแปร TOPSRCDIR
ให้กับ make
เครื่องตั้งโต๊ะนี้ ผมกะให้เป็น build server อย่างเดียว ไม่ได้ต่อจอ ไม่ลง X server หรือ display manager ใด ๆ โปรแกรมที่ build ได้ ก็จะเป็น X client ซึ่งสามารถเรียกทำงานผ่าน SSH tunnel ได้:
$ ssh -X server $ cd build/mozilla_hg/mozilla-central $ dist/bin/firefox
จบละ ลดภาระการคอมไพล์ของเครื่องโน้ตบุ๊กไปได้หนึ่งเรื่อง ต่อไปก็ตา GNOME ไว้ blog ต่อคราวหน้า
ปล. blog ซะละเอียดอย่างนี้ คนที่รู้แล้วอย่าเพิ่งเบื่อนะครับ เขียนบันทึกไว้ให้มีเอกสารเป็นภาษาไทยเสียบ้าง
2 ความเห็น:
ณ 31 มกราคม 2552 เวลา 15:47 , rchatsiri แถลง…
เอ๋..แต่ว่า build คนละเรื่องจะเอา programs ที่ build มาใช้ได้เหรอครับ.?
ณ 31 มกราคม 2552 เวลา 15:57 , Thep แถลง…
โปรแกรมที่ build เสร็จแล้ว ก็จะอยู่ที่เครื่องที่ build ครับ เวลารันก็รันที่นั่น เพียงแต่มายีมใช้ X server ของเครื่องลูกในการแสดงผลแค่นั้น
แต่อันที่จริง ถ้าเครื่องที่ build กับเครื่องลูกมี architecture เหมือนกัน (เช่น เป็น amd64 เหมือนกัน) ลง library ชุดเดียวกัน ก็สามารถเอา binary มารันที่เครื่องลูกได้เหมือนกัน ความจริงถ้าทำเป็น *.deb ได้เลยจะสมบูรณ์แบบครับ คือให้ apt ช่วยดึง library ที่ต้องใช้มาลงให้ได้ด้วย
แสดงความเห็น (มีการกลั่นกรองสำหรับ blog ที่เก่ากว่า 14 วัน)
<< กลับหน้าแรก