본문 바로가기

Linux

lighttpd static compile


lighttpd 를 컴파일해서 사용해야 할 일이 종종 있을때마다 참조할려고 만들었다.

인터넷을 참조하였는데,  static 컴파일 시 -fPIC를 추가해야 하는 듯.

필요한 것들도 모두 컴파일해서 링크하는 형태로 하였다.


lighttpd를 컴파일하기 위해서 필요한 것들은

=> zlib, bzip2, pcre, openssl, lua, libxml, sqlite, e2fsprogs

물론 필요없으면, --without-~~~ 로 하면 된다.


다운로드 파일:

a.sh



#!/bin/sh
export DEST=/home/sound79/projects/opensource/lighttpd
CC=gcc
AR=ar
RANLIB=ranlib

wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxf zlib-1.2.8.tar.gz
cd zlib-1.2.8
CFLAGS="$CFLAGS -O3 -fPIC" ./configure --prefix=$DEST --static
make clean && make
ZLIB=`pwd`
cd ..

wget http://bzip.org/1.0.6/bzip2-1.0.6.tar.gz
tar zxf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6/
make clean
make libbz2.a CC=$CC AR=$AR RANLIB=$RANLIB CFLAGS="$CFLAGS -Wall -O3 -fPIC -g -D_FILE_OFFSET_BITS=64"
BZIP=`pwd`
cd ..

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
tar zxf pcre-8.33.tar.gz
cd pcre-8.33
CFLAGS="$CFLAGS -O3 -I$ZLIB -fPIC -I$BZIP" CXXFLAGS="$CFLAGS" LDFLAGS="-L$ZLIB -L$BZIP" ./configure --prefix=$DEST --enable-pcregrep-libz --enable-pcregrep-libbz2 --enable-unicode-properties --disable-shared
make clean && make
PCRE=`pwd`
cd ..

wget http://openssl.org/source/openssl-1.0.0f.tar.gz
tar zxf openssl-1.0.0f.tar.gz
cd openssl-1.0.0f
./Configure linux-generic32 -DL_ENDIAN -fPIC --prefix=$DEST --openssldir=$DEST/etc/ssl no-shared no-zlib-dynamic --with-zlib-include=$ZLIB --with-zlib-lib=$ZLIB
sed -i -e "s/CFLAG= /CFLAG=${CFLAGS} /g" Makefile
make clean && make && make install_sw
rm -fr $DEST/include
rm -fr $DEST/lib
OPENSSL=`pwd`
cd ..

wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxf lua-5.1.4.tar.gz
cd lua-5.1.4/
make clean
make PLAT=linux INSTALL_TOP=$DEST RANLIB=$RANLIB CC=$CC AR="$AR rcu" CFLAGS="$CFLAGS -O3 -Wall " LIBS="-lm "
LUA=`pwd`
cd ..

wget ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz
tar zxf libxml2-2.7.8.tar.gz
cd libxml2-2.7.8
CFLAGS="$CFLAGS -O3 -fPIC -I$ZLIB" LDFLAGS="$LDFLAGS -L$ZLIB -lz -lm" ./configure --prefix=$DEST --with-zlib --without-python --disable-shared
make clean && make
LIBXML=`pwd`
cd ..

wget http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz
tar zxf sqlite-autoconf-3070900.tar.gz
cd sqlite-autoconf-3070900/
CFLAGS="$CFLAGS -O3 -fPIC" LIBS="-ldl -lpthread" ./configure --prefix=$DEST --enable-shared=no
make clean && make
SQLITE=`pwd`
cd ..

wget http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/1.42/e2fsprogs-libs-1.42.tar.gz
tar zxf e2fsprogs-libs-1.42.tar.gz
cd e2fsprogs-libs-1.42/
CFLAGS="$CFLAGS -O3 -fPIC" ./configure --prefix=$DEST --disable-elf-shlibs
cd lib/uuid/
make clean && make
LIBUUID=`pwd`
cd ../../..

wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.30.tar.gz
tar zxf lighttpd-1.4.30.tar.gz
cd lighttpd-1.4.30/
CFLAGS="$CFLAGS -O3 -I$ZLIB -I$BZIP -I$PCRE -DPCRE_STATIC -I$OPENSSL/include -I$LIBUUID/.." LDFLAGS="$LDFLAGS -L$ZLIB -L$BZIP -L$PCRE/.libs -L$OPENSSL -L$LIBUUID" LIBS="-lz -lbz2 -lpcre -luuid -lssl -lcrypto -ldl -lm -lpthread" LUA_CFLAGS="-I$LUA/src" LUA_LIBS="-L$LUA/src" XML_CFLAGS="-I$LIBXML/include" XML_LIBS="-L$LIBXML/.libs -lxml2 -lm" SQLITE_CFLAGS="-I$SQLITE" SQLITE_LIBS="-L$SQLITE/.libs -lsqlite3" ac_cv_path_PCRECONFIG=$PCRE/pcre-config ./configure --prefix=$DEST --with-openssl --with-pcre --with-zlib --with-bzip2 --with-lua --with-webdav-props --with-webdav-locks
make clean && make && make install
find $DEST -executable -type f -exec $STRIP "{}" \; 


'Linux' 카테고리의 다른 글

Makefile Tips #1  (0) 2014.05.26
리눅스에서 EBS 라디오 듣기  (0) 2014.05.07
[Ubuntu] Full Circle Magazine 소개  (0) 2013.11.02
Primiscuous mode  (0) 2013.09.26
apt 패키지 관리의 이해 (1)  (0) 2013.09.25