1 From: hasufell <julian.ospald@googlemail.com>
2 Date: Fri Apr 13 18:57:29 UTC 2012
5 ignore bundled 3rd party sources and assume system libs/headers instead
11 CRYPTODIR=deps/luacrypto
14 -BINDIR?=${DESTDIR}${PREFIX}/bin
15 -INCDIR?=${DESTDIR}${PREFIX}/include/luvit
16 -LIBDIR?=${DESTDIR}${PREFIX}/lib/luvit
18 -OPENSSL_LIBS=$(shell pkg-config openssl --libs 2> /dev/null)
19 -ifeq (${OPENSSL_LIBS},)
25 +BINDIR_LUVIT?=${PREFIX}/bin
26 +INCDIR_LUVIT?=${PREFIX}/include/luvit
27 +LIBDIR_LUVIT?=${PREFIX}/${LIBDIR}/luvit
29 OS_NAME=$(shell uname -s)
30 MH_NAME=$(shell uname -m)
37 LDFLAGS+=-L${BUILDDIR}
38 -LIBS += ${ZLIBDIR}/libz.a \
41 - ${LUADIR}/src/libluajit.a \
42 - -lluvit -lm -ldl -lpthread
43 -ifeq (${USE_SYSTEM_SSL},1)
49 + -lluvit -ldl -lpthread \
50 + $(shell pkg-config --libs-only-l lua) \
51 + $(shell pkg-config --libs-only-l luajit) \
52 + $(shell pkg-config --libs-only-l zlib) \
53 + $(shell pkg-config --libs-only-l openssl)
56 + -I${PREFIX}/include/libuv \
57 + -I${PREFIX}/include/http-parser \
58 + -I${PREFIX}/include/yajl
61 CPPFLAGS+=$(shell pkg-config --cflags openssl)
64 -CPPFLAGS+=-I${SSLDIR}/openssl/include
65 -LIBS+=${SSLDIR}/libopenssl.a
68 ifeq (${OS_NAME},Linux)
71 CPPFLAGS += -DOPENSSL_NO_SEED
72 CPPFLAGS += -DOPENSSL_NO_SOCK
74 -ifeq (${MH_NAME},x86_64)
75 -CPPFLAGS += -I${SSLDIR}/openssl-configs/x64
77 -CPPFLAGS += -I${SSLDIR}/openssl-configs/ia32
80 LUVLIBS=${BUILDDIR}/utils.o \
81 ${BUILDDIR}/luv_fs.o \
82 ${BUILDDIR}/luv_dns.o \
84 ${BUILDDIR}/luv_zlib.o \
85 ${BUILDDIR}/lhttp_parser.o
87 -DEPS=${LUADIR}/src/libluajit.a \
91 - ${HTTPDIR}/http_parser.o
93 -ifeq (${USE_SYSTEM_SSL},0)
94 -DEPS+=${SSLDIR}/libopenssl.a
97 all: ${BUILDDIR}/luvit
100 - git submodule update --init ${LUADIR}
102 -${LUADIR}/src/libluajit.a: ${LUADIR}/Makefile
103 - touch -c ${LUADIR}/src/*.h
104 - $(MAKE) -C ${LUADIR}
106 -${YAJLDIR}/CMakeLists.txt:
107 - git submodule update --init ${YAJLDIR}
109 -${YAJLDIR}/Makefile: deps/Makefile.yajl ${YAJLDIR}/CMakeLists.txt
110 - cp deps/Makefile.yajl ${YAJLDIR}/Makefile
112 -${YAJLDIR}/yajl.a: ${YAJLDIR}/Makefile
113 - rm -rf ${YAJLDIR}/src/yajl
114 - cp -r ${YAJLDIR}/src/api ${YAJLDIR}/src/yajl
115 - $(MAKE) -C ${YAJLDIR}
118 - git submodule update --init ${UVDIR}
120 -${UVDIR}/uv.a: ${UVDIR}/Makefile
121 - $(MAKE) -C ${UVDIR} uv.a
123 -${HTTPDIR}/Makefile:
124 - git submodule update --init ${HTTPDIR}
126 -${HTTPDIR}/http_parser.o: ${HTTPDIR}/Makefile
127 - $(MAKE) -C ${HTTPDIR} http_parser.o
129 -${ZLIBDIR}/zlib.gyp:
130 - git submodule update --init ${ZLIBDIR}
132 -${ZLIBDIR}/libz.a: ${ZLIBDIR}/zlib.gyp
133 - cd ${ZLIBDIR} && ${CC} -c *.c && \
134 - $(AR) rvs libz.a *.o
136 -${SSLDIR}/Makefile.openssl:
137 - git submodule update --init ${SSLDIR}
139 -${SSLDIR}/libopenssl.a: ${SSLDIR}/Makefile.openssl
140 - $(MAKE) -C ${SSLDIR} -f Makefile.openssl
142 -${BUILDDIR}/%.o: src/%.c ${DEPS}
143 +${BUILDDIR}/%.o: src/%.c
145 - $(CC) ${CPPFLAGS} ${CFLAGS} --std=c89 -D_GNU_SOURCE -g -Wall -Werror -c $< -o $@ \
146 - -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR}/src -I${YAJLDIR}/src/api \
147 - -I${YAJLDIR}/src -I${ZLIBDIR} -I${CRYPTODIR}/src \
150 + ${CFLAGS} --std=c89 -D_GNU_SOURCE -g -Wall -Werror \
152 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 \
153 - -DUSE_SYSTEM_SSL=${USE_SYSTEM_SSL} \
154 + -DUSE_SYSTEM_SSL=1 \
155 -DHTTP_VERSION=\"${HTTP_VERSION}\" \
156 -DUV_VERSION=\"${UV_VERSION}\" \
157 -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" \
158 -DLUVIT_VERSION=\"${VERSION}\" \
159 -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\"
161 -${BUILDDIR}/libluvit.a: ${CRYPTODIR}/Makefile ${LUVLIBS} ${DEPS}
162 - $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS} ${DEPS}
164 -${CRYPTODIR}/Makefile:
165 - git submodule update --init ${CRYPTODIR}
167 -${CRYPTODIR}/src/lcrypto.o: ${CRYPTODIR}/Makefile
168 - ${CC} ${CPPFLAGS} -c -o ${CRYPTODIR}/src/lcrypto.o -I${CRYPTODIR}/src/ \
169 - -I${LUADIR}/src/ ${CRYPTODIR}/src/lcrypto.c
170 +${BUILDDIR}/libluvit.a: ${LUVLIBS}
171 + $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS}
173 -${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o ${CRYPTODIR}/src/lcrypto.o
174 +${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o
175 $(CC) ${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -g -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a \
176 - ${CRYPTODIR}/src/lcrypto.o ${LIBS}
180 ${MAKE} -C ${LUADIR} clean
181 @@ -209,21 +146,14 @@
186 - install ${BUILDDIR}/luvit ${BINDIR}/luvit
188 - cp lib/luvit/*.lua ${LIBDIR}
189 - mkdir -p ${INCDIR}/luajit
190 - cp ${LUADIR}/src/lua.h ${INCDIR}/luajit/
191 - cp ${LUADIR}/src/lauxlib.h ${INCDIR}/luajit/
192 - cp ${LUADIR}/src/luaconf.h ${INCDIR}/luajit/
193 - cp ${LUADIR}/src/luajit.h ${INCDIR}/luajit/
194 - cp ${LUADIR}/src/lualib.h ${INCDIR}/luajit/
195 - mkdir -p ${INCDIR}/http_parser
196 - cp ${HTTPDIR}/http_parser.h ${INCDIR}/http_parser/
197 - mkdir -p ${INCDIR}/uv
198 - cp -r ${UVDIR}/include/* ${INCDIR}/uv/
199 - cp src/*.h ${INCDIR}/
200 + install -d ${DESTDIR}${BINDIR_LUVIT}
201 + install -m755 ${BUILDDIR}/luvit ${DESTDIR}${BINDIR_LUVIT}/luvit
202 + install -d ${DESTDIR}${LIBDIR_LUVIT}
203 + for i in `ls lib/luvit`; do \
204 + install -Dm644 lib/luvit/$$i ${DESTDIR}${LIBDIR_LUVIT}/$$i; done
205 + install -d ${DESTDIR}${INCDIR_LUVIT}/luajit
206 + for i in `ls src/*.h`; do \
207 + install -Dm644 $$i ${DESTDIR}${INCDIR_LUVIT}/$$(basename $$i); done
209 bundle: build/luvit ${BUILDDIR}/libluvit.a
210 build/luvit tools/bundler.lua