diff options
Diffstat (limited to 'main/lzo/B/generic')
-rw-r--r-- | main/lzo/B/generic/Makefile | 91 | ||||
-rwxr-xr-x | main/lzo/B/generic/build.sh | 69 | ||||
-rwxr-xr-x | main/lzo/B/generic/build_freestanding.sh | 8 | ||||
-rwxr-xr-x | main/lzo/B/generic/build_gcc.sh | 25 | ||||
-rwxr-xr-x | main/lzo/B/generic/clean.sh | 7 |
5 files changed, 200 insertions, 0 deletions
diff --git a/main/lzo/B/generic/Makefile b/main/lzo/B/generic/Makefile new file mode 100644 index 00000000..acddb04e --- /dev/null +++ b/main/lzo/B/generic/Makefile @@ -0,0 +1,91 @@ +# Copyright (C) 1996-2011 Markus F.X.J. Oberhumer +# +# this is modelled after build.sh; needs GNU make 3.80 or better + +SHELL = /bin/sh + +## +## setup flags +## + +##top_srcdir ?= ../.. +top_srcdir ?= $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))../.. +AR ?= ar +CC ?= cc +CFLAGS ?= -O + +CFI = -I$(top_srcdir)/include -I$(top_srcdir) -I$(top_srcdir)/src +BNAME = lzo2 +BLIB = lib$(BNAME).a + +CF = $(CPPFLAGS) $(CFI) $(CFLAGS) +LF = $(LDFLAGS) $(LZO_EXTRA_LDFLAGS) +LL = $(BLIB) $(LIBS) $(LZO_EXTRA_LIBS) + + +## +## setup files +## + +__map = $(foreach __map_v,$(2),$(call $(1),$(__map_v))) +__object_filename = $(addsuffix .o,$(basename $(notdir $(1)))) + +BLIB_SOURCES := $(wildcard $(top_srcdir)/src/*.c) +BLIB_SOURCES += $(LZO_EXTRA_SOURCES) +BLIB_OBJECTS := $(call __map,__object_filename,$(BLIB_SOURCES)) +PROGRAMS = dict.out lzopack.out precomp.out precomp2.out simple.out lzotest.out + + +## +## rules +## + +all.targets ?= $(BLIB) $(PROGRAMS) testmini.out +all: $(all.targets) + +clean: + rm -f *.d *.o $(BLIB) $(PROGRAMS) testmini.out + +$(BLIB): $(BLIB_OBJECTS) $(LZO_EXTRA_OBJECTS) + rm -f $@ + $(AR) rcs $@ $^ + +# dynamically construct object rules +define BLIB_OBJECT_template + $(call __object_filename,$(1)) : $(1) ; $$(CC) $$(CF) $$(LZO_EXTRA_CPPFLAGS) $$(LZO_EXTRA_CFLAGS) -c $$< +endef +$(foreach s,$(BLIB_SOURCES),$(eval $(call BLIB_OBJECT_template,$(s)))) + +dict.out: $(top_srcdir)/examples/dict.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) +lzopack.out: $(top_srcdir)/examples/lzopack.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) +precomp.out: $(top_srcdir)/examples/precomp.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) +precomp2.out: $(top_srcdir)/examples/precomp2.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) +simple.out: $(top_srcdir)/examples/simple.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) +lzotest.out: $(top_srcdir)/lzotest/lzotest.c + $(CC) $(CF) $(LF) -o $@ $< $(LL) + +testmini.out: $(top_srcdir)/minilzo/testmini.c $(top_srcdir)/minilzo/minilzo.c + $(CC) $(CF) $(LF) -I$(top_srcdir)/include/lzo -o $@ $^ $(LIBS) + + +# dependencies +$(PROGRAMS): $(BLIB) +# object dependencies are generated via -MMD +-include *.d + + +# debug +show_vars: + @echo "BLIB_SOURCES = $(BLIB_SOURCES)" + @echo "BLIB_OBJECTS = $(BLIB_OBJECTS)" + @echo "PROGRAMS = $(PROGRAMS)" + @echo "LZO_EXTRA_SOURCES = $(LZO_EXTRA_SOURCES)" + @echo "LZO_EXTRA_OBJECTS = $(LZO_EXTRA_OBJECTS)" + +.PHONY: all clean show_vars + diff --git a/main/lzo/B/generic/build.sh b/main/lzo/B/generic/build.sh new file mode 100755 index 00000000..1bf5585b --- /dev/null +++ b/main/lzo/B/generic/build.sh @@ -0,0 +1,69 @@ +#! /bin/sh +# vi:ts=4:et +set -e +echo "// Copyright (C) 1996-2011 Markus F.X.J. Oberhumer" +echo "//" +echo "// Generic Posix/Unix system" +echo "// Generic C compiler" + +test "X${top_srcdir}" = X && top_srcdir=`echo "$0" | sed 's,[^/]*$,,'`../.. + +test "X${AR}" = X && AR="ar" +test "X${CC}" = X && CC="cc" +test "X${CFLAGS+set}" = Xset || CFLAGS="-O" +# CPPFLAGS, LDFLAGS, LIBS +# LZO_EXTRA_CPPFLAGS, LZO_EXTRA_CFLAGS, LZO_EXTRA_LDFLAGS +# LZO_EXTRA_SOURCES, LZO_EXTRA_OBJECTS, LZO_EXTRA_LIBS + +CFI="-I${top_srcdir}/include -I${top_srcdir} -I${top_srcdir}/src" +BNAME=lzo2 +BLIB=lib${BNAME}.a + +CF="$CPPFLAGS $CFI $CFLAGS" +# info: we restrict ourselves to pure ANSI C library functions for the examples +CF="-DLZO_LIBC_ISOC90=1 $CF" +# info: we do not use _any_ external functions in freestanding mode +test -z "$LZO_CFG_FREESTANDING" || CF="-DLZO_CFG_FREESTANDING=1 $CF" +LF="$LDFLAGS $LZO_EXTRA_LDFLAGS" +LL="$BLIB $LIBS $LZO_EXTRA_LIBS" + +. $top_srcdir/B/generic/clean.sh + +for f in $top_srcdir/src/*.c $LZO_EXTRA_SOURCES; do + echo $CC $CF $LZO_EXTRA_CPPFLAGS $LZO_EXTRA_CFLAGS -c $f + $CC $CF $LZO_EXTRA_CPPFLAGS $LZO_EXTRA_CFLAGS -c $f +done + +echo $AR rcs $BLIB *.o $LZO_EXTRA_OBJECTS + $AR rcs $BLIB *.o $LZO_EXTRA_OBJECTS + + +if test -n "$LZO_CFG_FREESTANDING"; then + +echo "//" +echo "// Building $BLIB in freestanding mode was successful. All done." +echo "// Now try 'nm --extern-only $BLIB'" + +else + +for f in dict lzopack precomp precomp2 simple; do + echo $CC $CF $LF -o $f.out $top_srcdir/examples/$f.c $LL + $CC $CF $LF -o $f.out $top_srcdir/examples/$f.c $LL +done +echo $CC $CF $LF -o lzotest.out $top_srcdir/lzotest/lzotest.c $LL + $CC $CF $LF -o lzotest.out $top_srcdir/lzotest/lzotest.c $LL + +for f in minilzo.c testmini.c; do + XF="-I$top_srcdir/include/lzo $CF $LZO_EXTRA_CPPFLAGS $LZO_EXTRA_CFLAGS" + echo $CC $XF -c $top_srcdir/minilzo/$f + $CC $XF -c $top_srcdir/minilzo/$f +done +echo $CC $CF $LF -o testmini.out testmini.o minilzo.o $LIBS $LZO_EXTRA_LIBS + $CC $CF $LF -o testmini.out testmini.o minilzo.o $LIBS $LZO_EXTRA_LIBS + + +echo "//" +echo "// Building LZO was successful. All done." + +fi +true diff --git a/main/lzo/B/generic/build_freestanding.sh b/main/lzo/B/generic/build_freestanding.sh new file mode 100755 index 00000000..9473dd6d --- /dev/null +++ b/main/lzo/B/generic/build_freestanding.sh @@ -0,0 +1,8 @@ +#! /bin/sh +# vi:ts=4:et + +test "X${top_srcdir}" = X && top_srcdir=`echo "$0" | sed 's,[^/]*$,,'`../.. + +LZO_CFG_FREESTANDING=1 + +. $top_srcdir/B/generic/build.sh diff --git a/main/lzo/B/generic/build_gcc.sh b/main/lzo/B/generic/build_gcc.sh new file mode 100755 index 00000000..179d8c0f --- /dev/null +++ b/main/lzo/B/generic/build_gcc.sh @@ -0,0 +1,25 @@ +#! /bin/sh +# vi:ts=4:et +set -e +echo "// Using GNU C compiler." +echo "//" + +test "X${top_srcdir}" = X && top_srcdir=`echo "$0" | sed 's,[^/]*$,,'`../.. +UNAME_MACHINE=unknown + +CC="gcc -fPIC" +CC="gcc -static" +CC="gcc" +CFLAGS="-Wall -O2 -fomit-frame-pointer" + +# delete the next line to disable assembler support +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +case $UNAME_MACHINE in + i[34567]86) + CC="$CC -m32" + CPPFLAGS="-DLZO_USE_ASM" + LZO_EXTRA_SOURCES=$top_srcdir/asm/i386/src_gas/*.S + ;; +esac + +. $top_srcdir/B/generic/build.sh diff --git a/main/lzo/B/generic/clean.sh b/main/lzo/B/generic/clean.sh new file mode 100755 index 00000000..11c23951 --- /dev/null +++ b/main/lzo/B/generic/clean.sh @@ -0,0 +1,7 @@ +#! /bin/sh +# vi:ts=4:et +# Copyright (C) 1996-2011 Markus F.X.J. Oberhumer + +rm -f *.o liblzo2.a dict.out lzopack.out precomp.out precomp2.out simple.out lzotest.out testmini.out + +true |