--- Makefile.old 2012-02-25 07:02:12.000000000 +0100 +++ Makefile.old 2012-03-29 17:58:08.000000000 +0200 @@ -9,21 +9,23 @@ HTTP_VERSION=v1.0-61-g4898606 BUILDDIR=build -PREFIX?=/usr/local -BINDIR?=${DESTDIR}${PREFIX}/bin -INCDIR?=${DESTDIR}${PREFIX}/include/luvit -LIBDIR?=${DESTDIR}${PREFIX}/lib/luvit +# Paths +PREFIX?=/usr +LIBDIR?=lib +BINDIR_LUVIT?=${DESTDIR}${PREFIX}/bin +INCDIR_LUVIT?=${DESTDIR}${PREFIX}/include/luvit +LIBDIR_LUVIT?=${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 @@ -35,17 +37,28 @@ export Q= MAKEFLAGS+=-e -LDFLAGS+=-L${BUILDDIR} -lluvit -LDFLAGS+=${LUADIR}/src/libluajit.a -LDFLAGS+=${UVDIR}/uv.a -LDFLAGS+=${YAJLDIR}/yajl.a -LDFLAGS+=-Wall -lm -ldl -lpthread +CC ?= gcc + +LDFLAGS += \ + -L${BUILDDIR} \ + -Wall + +LIBS += \ + -lluajit-5.1 \ + -luv \ + -lyajl \ + -lhttp_parser \ + -lluvit -lm -ldl -lpthread -lrt + +INCLUDES += \ + -I${PREFIX}/include/libuv \ + -I${PREFIX}/include/http-parser \ + -I${PREFIX}/include/yajl ifeq (${OS_NAME},Linux) LDFLAGS+= -lrt endif - LUVLIBS=${BUILDDIR}/utils.o \ ${BUILDDIR}/luv_fs.o \ ${BUILDDIR}/luv_dns.o \ @@ -67,86 +80,37 @@ ${BUILDDIR}/los.o \ ${BUILDDIR}/lhttp_parser.o -DEPS=${LUADIR}/src/libluajit.a \ - ${YAJLDIR}/yajl.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} - -${UVDIR}/uv.a: ${UVDIR}/Makefile - $(MAKE) -C ${UVDIR} uv.a - -${HTTPDIR}/Makefile: - git submodule update --init ${HTTPDIR} - -${HTTPDIR}/http_parser.o: ${HTTPDIR}/Makefile - ${MAKE} -C ${HTTPDIR} http_parser.o - -${BUILDDIR}/%.o: src/%.c ${DEPS} +${BUILDDIR}/%.o: src/%.c 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 -Wall -Werror -c $< -o $@ ${INCLUDES} -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}/libluvit.a: ${LUVLIBS} + $(AR) rvs ${BUILDDIR}/libluvit.a ${LUVLIBS} ${BUILDDIR}/luvit: ${BUILDDIR}/libluvit.a ${BUILDDIR}/luvit_main.o - $(CC) -g -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a ${LDFLAGS} + $(CC) $(CFLAGS) ${LDFLAGS} -o ${BUILDDIR}/luvit ${BUILDDIR}/luvit_main.o ${BUILDDIR}/libluvit.a ${LIBS} 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 install: all - mkdir -p ${BINDIR} - install ${BUILDDIR}/luvit ${BINDIR}/luvit - cp bin/luvit-config.lua ${BINDIR}/luvit-config - 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 - cp ${UVDIR}/include/uv.h ${INCDIR}/uv/ - cp src/*.h ${INCDIR}/ - - -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} + mkdir -p ${BINDIR_LUVIT} + install -Dm755 ${BUILDDIR}/luvit ${BINDIR_LUVIT}/luvit + install -Dm755 bin/luvit-config.lua ${BINDIR_LUVIT}/luvit-config + for i in `ls lib/luvit`; do \ + install -Dm644 lib/luvit/$$i ${LIBDIR_LUVIT}/$$i; done + for i in `ls src/*.h`; do \ + install -Dm644 $$i ${INCDIR_LUVIT}/$$(basename $$i); done + +#bundle: build/luvit-1 ${BUILDDIR}/libluvit.a +# build/luvit tools/bundler.lua +# $(CC) --std=c89 -D_GNU_SOURCE -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 -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) -o bundle/luvit-1 ${BUILDDIR}/libluvit.a `ls bundle/*.o` ${LDFLAGS} + test: ${BUILDDIR}/luvit cd tests && ../${BUILDDIR}/luvit runner.lua @@ -156,26 +120,26 @@ api.markdown: $(wildcard lib/*.lua) find lib -name "*.lua" | grep -v "luvit.lua" | sort | xargs -l luvit tools/doc-parser.lua > $@ -DIST_DIR?=${HOME}/luvit.io/dist -DIST_NAME=luvit-${VERSION} -DIST_FOLDER=${DIST_DIR}/${VERSION}/${DIST_NAME} -DIST_FILE=${DIST_FOLDER}.tar.gz -tarball: - rm -rf ${DIST_FOLDER} ${DIST_FILE} - mkdir -p ${DIST_DIR} - git clone . ${DIST_FOLDER} - cp deps/gitmodules.local ${DIST_FOLDER}/.gitmodules - cd ${DIST_FOLDER} ; git submodule update --init - find ${DIST_FOLDER} -name ".git*" | xargs rm -r - rm -rf ${DIST_FOLDER}/deps/zlib - sed -e 's/^VERSION=.*/VERSION=${VERSION}/' \ +#DIST_DIR?=${HOME}/luvit.io/dist +#DIST_NAME=luvit-${VERSION} +#DIST_FOLDER=${DIST_DIR}/${VERSION}/${DIST_NAME} +#DIST_FILE=${DIST_FOLDER}.tar.gz +#tarball: +# rm -rf ${DIST_FOLDER} ${DIST_FILE} +# mkdir -p ${DIST_DIR} +# git clone . ${DIST_FOLDER} +# cp deps/gitmodules.local ${DIST_FOLDER}/.gitmodules +# cd ${DIST_FOLDER} ; git submodule update --init +# find ${DIST_FOLDER} -name ".git*" | xargs rm -r +# rm -rf ${DIST_FOLDER}/deps/zlib +# sed -e 's/^VERSION=.*/VERSION=${VERSION}/' \ -e 's/^LUAJIT_VERSION=.*/LUAJIT_VERSION=${LUAJIT_VERSION}/' \ -e 's/^UV_VERSION=.*/UV_VERSION=${UV_VERSION}/' \ -e 's/^HTTP_VERSION=.*/HTTP_VERSION=${HTTP_VERSION}/' \ -e 's/^YAJL_VERSION=.*/YAJL_VERSION=${YAJL_VERSION}/' < ${DIST_FOLDER}/Makefile > ${DIST_FOLDER}/Makefile.patched - mv ${DIST_FOLDER}/Makefile.patched ${DIST_FOLDER}/Makefile - tar -czf ${DIST_FILE} -C ${DIST_DIR}/${VERSION} ${DIST_NAME} - rm -rf ${DIST_FOLDER} +# mv ${DIST_FOLDER}/Makefile.patched ${DIST_FOLDER}/Makefile +# tar -czf ${DIST_FILE} -C ${DIST_DIR}/${VERSION} ${DIST_NAME} +# rm -rf ${DIST_FOLDER} .PHONY: test install all api.markdown bundle tarball