adsense728x90


apache module을 linux, mac에서 개발하기: autotools 이용 Linux


c source code를 여러 개발 환경에서 이용하기 위해서
target, host, ide가 다른 project 파일을 만들어야 하겠는데,
Makefile을 만들어주는 tool은 autotools와 CMake가 있겠다.

  1. linux, mac에서 이용할 수 있어야 하고,
  2. mac에서는 주로 eclipse cdt를 이용할 것인데,
autoconf가 좋겠다.
eclipse cdt에 autotools plugin이 있더라고.
인 것 같은데,

linux tools project plugin을 설치하면 됐다.
eclipse kepler 에서는 이미 plugin software distribution url이 들어 있었다.

screenshot 보기

mac에서 autoconf는 따로 설치해야 됐다.
brew install autoconf

sh -c "autoreconf -i" 

sh: autoreconf: command not found


eclipse cdt 설정에서 path까지 다 적어줘야되나?
Properties - Autotools Settings

Properties - Autotools Settings


난 mac에서 brew install했으므로 /usr/local/bin/ 를 붙였다.
libtoolize의 경우에는, /usr/local/bin/glibtoolize

Can't exec "aclocal": No such file or directory at /usr/local/Cellar/autoconf/2.69/share/autoconf/Autom4te/FileUtils.pm
는 homebrew bug인가? lion만의 문제인가보다.

$ mv /usr/local/Cellar/ /usr/local/Cellar-0.9.5
$ mv /usr/local/.git /usr/local/.git-0.9.5
$ brew cleanup
로 homebrew를 지운 다음에 다시 설치했는데, 다시 설치해봐도 
$ brew --version
0.9.5
-0-;;;

수정사항을 보니,
$ brew install apple-gcc42
만 하면 되나보네, 해결된 것 같다.

apache module build 설정하기

이것도 sample

더 좋아 보이는 sample 

configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found.
autoscan만 하면 다 되는 것은 아니었네.
  1. Create your C sources. See portability for portability issues.
  2. Create your Makefile.am. See Makefile.am examples.
  3. run autoscan and copy configure.scan to configure.in
  4. Add AM_INIT_AUTOMAKE(progversion) to configure.in right after AC_INIT where prog is the name of the program you are building and version is the release number.
  5. Add AC_PROG_CC to configure.in (if you use a C compiler)
  6. If this is a deep configuration, you should add AC_PROG_MAKE_SET and (for libraries) AC_PROG_RANLIB
  7. Add Makefile [ src/Makefile ...] to AC_OUTPUT (see Chicken and the egg)
  8. run aclocal to create aclocal.m4
  9. run autoconf
  10. Optionally run autoheader (see autoheader example to use config.h)
  11. Run automake -a --foreign (unless you are REALLY making a gnu distribution. Then leave off the --foreign and add the gnu specific files. (see the automake info file.)) If you are not using gnu c, add the -i switch.
  12. Test the configuration. run:
    1. ./configure
    2. make
    3. make dist
  13. distribute the prog-version.tar.gz file. see note.
library 별도의 CFLAGS, LDFLAGS 를 만드는 것도 configure.ac에서 해줘야 했다.

여기서 그 외 고쳤던 것은
아직 main함수가 없으므로, PROGRAM은 제외했고,
INCLUDE 대신 AM_CFLAGS 를 썼다.

configure가 apxs를 못 찾으면,
$ ./configure --with-apxs=/usr/.../apache2/bin/apxs --with-apr-config=/usr/.../apache2/bin/apr-1-config
처럼 parameter로 입력해줄 수도 있다.

autoconf gnu basic sample

한편, autoconf를 쓰지 않는 경우에 apache module project를 build하려면,
를 이용해서 기본 Makefile을 만든다.
기본 template이 어떻게 생겼는지 알 수 있다.




덧글

댓글 입력 영역