Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

122 lines (99 sloc) 4.327 kB
VERSION=$(shell head -1 Changes | sed 's/ .*//')
RELEASEDATE=$(shell head -1 Changes | sed 's/.* //')
# The path to where the module's source files should be installed.
LUA_CPATH:=$(shell pkg-config lua5.1 --define-variable=prefix=$(PREFIX) \
# Uncomment this to run the regression tests with valgrind.
#VALGRIND = valgrind -q --leak-check=yes --show-reachable=yes --num-callers=10
OBJECTS = memoryfile.lo
SOURCES := $(OBJECTS:.lo=.c)
LIBTOOL := libtool --quiet
CFLAGS := -ansi -pedantic -Wall -W -Wshadow -Wpointer-arith \
-Wcast-align -Wwrite-strings -Wstrict-prototypes \
-Wmissing-prototypes -Wnested-externs -Wno-long-long \
$(shell pkg-config --cflags lua5.1) \
LDFLAGS := $(shell pkg-config --libs lua5.1)
# Uncomment this line to enable optimization. Comment it out when running
# the test suite because it makes the assert() errors clearer and avoids
# warnings about ridiculously long string constants with some versions of gcc.
#CFLAGS := $(CFLAGS) -O3 -fomit-frame-pointer
# Uncomment this line to enable debugging.
DEBUG := -g
# Uncomment this line to prevent the module from being unloaded when Lua exits,
# so that Valgrind can still access the debugging symbols.
# Uncomment one of these lines to enable profiling and/or gcov coverage testing.
#DEBUG := $(DEBUG) -pg
#DEBUG := $(DEBUG) -fprofile-arcs -ftest-coverage
all: manpages
# This is for building the Windows DLL for the module. You might have to
# tweak the location of the MingW32 compiler and the Lua library and include
# files to get it to work. The defaults here are set up for the Lua libraries
# to be unpacked in the current directory, and to compile on Debian Linux
# with the Windows cross compiler from the 'mingw32' package.
WIN32CC = /usr/bin/i586-mingw32msvc-cc
WIN32CFLAGS := -O2 -I/usr/i586-mingw32msvc/include -Iinclude \
WIN32LDFLAGS := -L. -llua5.1 -L/usr/i586-mingw32msvc/lib \
--no-undefined --enable-runtime-pseudo-reloc
win32bin: memoryfile.dll
memoryfile.win32.o: memoryfile.c memoryfile.h
$(WIN32CC) $(DEBUG) $(WIN32CFLAGS) -c -o $@ $<
memoryfile.dll: memoryfile.win32.o
$(WIN32CC) $(DEBUG) -O -Wl,-S -shared -o $@ $< $(WIN32LDFLAGS)
manpages: doc/lua-memoryfile.3
doc/lua-memoryfile.3: doc/lua-memoryfile.pod Changes
sed 's/E<copy>/(c)/g' <$< | sed 's/E<ndash>/-/g' | \
pod2man --center="In-memory file handles for Lua" \
--name="LUA-MEMORYFILE" --section=3 \
--release="$(VERSION)" --date="$(RELEASEDATE)" >$@
test: all
$(VALGRIND) ./lunit test/*.lua
install: all
mkdir -p $(LUA_CPATH)
install --mode=644 .libs/ $(LUA_CPATH)/
mkdir -p $(PREFIX)/share/man/man3
gzip -c doc/lua-memoryfile.3 >$(PREFIX)/share/man/man3/lua-memoryfile.3.gz;
@if [ -e tmp ]; then \
echo "Can't proceed if file 'tmp' exists"; \
false; \
dist: all checktmp
mkdir -p tmp/$(DISTNAME)
tar cf - --files-from MANIFEST | (cd tmp/$(DISTNAME) && tar xf -)
cd tmp && tar cf - $(DISTNAME) | gzip -9 >../$(DISTNAME).tar.gz
cd tmp && tar cf - $(DISTNAME) | bzip2 -9 >../$(DISTNAME).tar.bz2
rm -rf tmp
win32dist: win32bin checktmp
mkdir -p tmp/$(DISTNAME).win32
rm -f $(DISTNAME)
cp memoryfile.dll tmp/$(DISTNAME).win32/
cp README.win32bin tmp/$(DISTNAME).win32/README
cd tmp && zip -q -r -9 ../$(DISTNAME) $(DISTNAME).win32
rm -rf tmp
# Dependencies.
%.d: %.c
@echo 'DEP>' $@
@$(CC) -M $(CFLAGS) $< | \
sed -e 's,\($*\)\.o[ :]*,\1.lo $@ : ,g' > $@
-include $(SOURCES:.c=.d)
%.lo: %.c
@echo 'CC>' $@
@$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) $(DEBUG) -c -o $@ $< memoryfile.lo
@echo 'LD>' $@
@$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(DEBUG) -o $@ $< -rpath $(LIBDIR)
rm -f *.o *.lo *.d core
rm -f memoryfile.win32.o memoryfile.dll
rm -rf .libs
rm -f gmon.out *.bb *.bbg *.da *.gcov
realclean: clean
rm -f doc/lua-memoryfile.3
.PHONY: all win32bin test install checktmp dist win32dist clean realclean
Jump to Line
Something went wrong with that request. Please try again.