From: Julian Ospald Date: Thu Mar 1 14:56:42 CET 2012 changes "lib" to "@LIBDIR@" for later sed-calls (multilib support) respects system CFLAGS (not recommended) respects system LDFLAGS does not use bundled sources for luajit and yajl --- Makefile +++ Makefile @@ -1,7 +1,7 @@ VERSION=0.2.0 -LUADIR=deps/luajit +LUADIR=/usr/include/luajit-2.0 LUAJIT_VERSION=v2.0.0-beta9-15-g10ef109 -YAJLDIR=deps/yajl +YAJLDIR=/usr/include/yajl YAJL_VERSION=2.0.4-1-g8b48967 UVDIR=deps/uv UV_VERSION=gfbc2154 @@ -12,18 +12,18 @@ PREFIX?=/usr/local BINDIR?=${DESTDIR}${PREFIX}/bin INCDIR?=${DESTDIR}${PREFIX}/include/luvit -LIBDIR?=${DESTDIR}${PREFIX}/lib/luvit +LIBDIR?=${DESTDIR}${PREFIX}/@LIBDIR@/luvit OS_NAME=$(shell uname -s) MH_NAME=$(shell uname -m) ifeq (${OS_NAME},Darwin) ifeq (${MH_NAME},x86_64) -LDFLAGS=-framework CoreServices -pagezero_size 10000 -image_base 100000000 +LDFLAGS+=-framework CoreServices -pagezero_size 10000 -image_base 100000000 else -LDFLAGS=-framework CoreServices +LDFLAGS+=-framework CoreServices endif else ifeq (${OS_NAME},Linux) -LDFLAGS=-Wl,-E +LDFLAGS+=-Wl,-E endif # LUAJIT CONFIGURATION # #XCFLAGS=-g @@ -36,9 +36,9 @@ MAKEFLAGS+=-e LDFLAGS+=-L${BUILDDIR} -lluvit -LDFLAGS+=${LUADIR}/src/libluajit.a +LDFLAGS+=/usr/@LIBDIR@/libluajit-5.1.a LDFLAGS+=${UVDIR}/uv.a -LDFLAGS+=${YAJLDIR}/yajl.a +LDFLAGS+=/usr/@LIBDIR@/libyajl_s.a LDFLAGS+=-Wall -lm -ldl -lpthread ifeq (${OS_NAME},Linux) @@ -67,31 +67,13 @@ ${BUILDDIR}/los.o \ ${BUILDDIR}/lhttp_parser.o -DEPS=${LUADIR}/src/libluajit.a \ - ${YAJLDIR}/yajl.a \ - ${UVDIR}/uv.a \ - ${HTTPDIR}/http_parser.o +DEPS=/usr/@LIBDIR@/libyajl_s.a \ + /usr/@LIBDIR@/libluajit-5.1.a \ + ${UVDIR}/uv.a \ + ${HTTPDIR}/http_parser.o all: ${BUILDDIR}/luvit -${LUADIR}/Makefile: - git submodule update --init ${LUADIR} - -${LUADIR}/src/libluajit.a: ${LUADIR}/Makefile - touch -c ${LUADIR}/src/*.h - $(MAKE) -C ${LUADIR} - -${YAJLDIR}/CMakeLists.txt: - git submodule update --init ${YAJLDIR} - -${YAJLDIR}/Makefile: deps/Makefile.yajl ${YAJLDIR}/CMakeLists.txt - cp deps/Makefile.yajl ${YAJLDIR}/Makefile - -${YAJLDIR}/yajl.a: ${YAJLDIR}/Makefile - rm -rf ${YAJLDIR}/src/yajl - cp -r ${YAJLDIR}/src/api ${YAJLDIR}/src/yajl - $(MAKE) -C ${YAJLDIR} - ${UVDIR}/Makefile: git submodule update --init ${UVDIR} @@ -106,18 +88,16 @@ ${BUILDDIR}/%.o: src/%.c ${DEPS} mkdir -p ${BUILDDIR} - $(CC) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -c $< -o $@ -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR}/src -I${YAJLDIR}/src/api -I${YAJLDIR}/src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" + $(CC) $(CFLAGS) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -c $< -o $@ -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR} -I${YAJLDIR} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" ${BUILDDIR}/libluvit.a: ${LUVLIBS} ${DEPS} $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS} ${DEPS} ${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o - $(CC) -g -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a ${LDFLAGS} + $(CC) $(CFLAGS) -g -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a ${LDFLAGS} clean: - ${MAKE} -C ${LUADIR} clean ${MAKE} -C ${HTTPDIR} clean - ${MAKE} -C ${YAJLDIR} clean ${MAKE} -C ${UVDIR} distclean ${MAKE} -C examples/native clean rm -rf build bundle @@ -129,12 +109,6 @@ chmod +x ${BINDIR}/luvit-config mkdir -p ${LIBDIR} cp lib/luvit/*.lua ${LIBDIR} - mkdir -p ${INCDIR}/luajit - cp ${LUADIR}/src/lua.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/lauxlib.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/luaconf.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/luajit.h ${INCDIR}/luajit/ - cp ${LUADIR}/src/lualib.h ${INCDIR}/luajit/ mkdir -p ${INCDIR}/http_parser cp ${HTTPDIR}/http_parser.h ${INCDIR}/http_parser/ mkdir -p ${INCDIR}/uv @@ -144,9 +118,9 @@ bundle: build/luvit ${BUILDDIR}/libluvit.a build/luvit tools/bundler.lua - $(CC) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -DBUNDLE -c src/luvit_exports.c -o bundle/luvit_exports.o -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR}/src -I${YAJLDIR}/src/api -I${YAJLDIR}/src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" - $(CC) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -DBUNDLE -c src/luvit_main.c -o bundle/luvit_main.o -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR}/src -I${YAJLDIR}/src/api -I${YAJLDIR}/src -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" - $(CC) -g -o bundle/luvit ${BUILDDIR}/libluvit.a `ls bundle/*.o` ${LDFLAGS} + $(CC) $(CFLAGS) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -DBUNDLE -c src/luvit_exports.c -o bundle/luvit_exports.o -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR} -I${YAJLDIR} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" + $(CC) $(CFLAGS) --std=c89 -D_GNU_SOURCE -g -Wall -Werror -DBUNDLE -c src/luvit_main.c -o bundle/luvit_main.o -I${HTTPDIR} -I${UVDIR}/include -I${LUADIR} -I${YAJLDIR} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHTTP_VERSION=\"${HTTP_VERSION}\" -DUV_VERSION=\"${UV_VERSION}\" -DYAJL_VERSIONISH=\"${YAJL_VERSION}\" -DLUVIT_VERSION=\"${VERSION}\" -DLUAJIT_VERSION=\"${LUAJIT_VERSION}\" + $(CC) $(CFLAGS) -g -o bundle/luvit ${BUILDDIR}/libluvit.a `ls bundle/*.o` ${LDFLAGS} test: ${BUILDDIR}/luvit cd tests && ../${BUILDDIR}/luvit runner.lua