2009年5月15日 星期五

修改IHU的configure檔案

因為要加入一些新的class到project裡面,因此,要重新修改Makefile

而這一個Makefile是由autoconf與automake所建立的,因此要修改使得可以建立新的Makefile,但是,因為我不熟autoconf與automake所以,目前還是失敗的,先列出我目前使用的步驟吧~

1. 複製SctpSocketHandler.cpp與SctpSocketHandler.h到src

2. 修改Makefile.am加入SctpSocketHandler.cpp與SctpSocketHandler.h

3. 在Receiver.hpp與Transmitter.hpp加入#include "SctpSocketHandler.h"

4. autoconf
產生configure檔案

5. aclocal
產生aclocal.m4

6. automake --add-missing
產生Makefile.in

7. LIBS=-lsctp ./configure
產生Makefile

8. make
編譯

[2009.05.26 補充]
要在ihu的專案中加入一個具有Q_OBJECT, slots, signals
必需要依以下步驟...
例如要加入Ren.hpp與Ren.cpp
這裡要注意的是, header file一定是要hpp的副檔名
1. 在Makefile.am的ihu_SOURCES加入src/Ren.hpp src/Ren.cpp

2. 同時在Makefile.am的nodist_ihu_SOURCES加入src/moc_Ren.cpp

3. 在configure.ac的AM_INIT_AUTOMAKE改成AM_INIT_AUTOMAKE(Ihu, 1.0)

4. 然後依以上方式執行autoconf;aclocal;automake --add-missing;LIBS=-lsctp ./configure

5. make

[2009.05.28 補充]
為了避免每一次configure均加上LIBS=-lsctp
我們要修改configure.ac檔案加入
下面這一個是加入一個sctp的library
AC_CHECK_LIB(sctp, sctp_recvmsg,, [AC_MSG_ERROR(You have get sctp to build the IHU)])

而下面這一行是檢查header file巨集
AC_CHECK_HEADER

相關autoconf與automake可以參考
【轉貼】自動產生Makefile - autoconf & automake

沒有留言: