1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
# path definitions
DESTDIR = /usr
INSTALL=install -c
INSTALL_DATA = ${INSTALL} -m 644
DIR_COMMON=../common/
DIR_LIBARCHIVE=./libarchive-2.5.5
# compiler options
CC = gcc
CPP = g++
CFLAGS =-I. -I/usr/include -I$(DIR_COMMON) \
-Wall -fPIC -O2 -g \
-DG_DISABLE_DEPRECATED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE \
-D__VERBOSE_DEBUGx
VFS_COMMON_OBJECTS=strutils.o treepathutils.o treepath_vfs.o vfsutils.o
VFS_OBJECTS=libarchive.o
.SUFFIXES: .c .cpp
.c.o:
$(CC) $(CFLAGS) `pkg-config glib-2.0 --cflags` -c $<
.cpp.o:
$(CPP) $(CFLAGS) `pkg-config glib-2.0 --cflags` -c $<
all: static
shared: $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS)
$(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(CFLAGS) `pkg-config glib-2.0 --libs` -larchive -lz -lbz2
static: CFLAGS += -I$(DIR_LIBARCHIVE)/libarchive
static: lib_libarchive_compile $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS)
$(CC) -shared -o libarchive_plugin.so $(VFS_COMMON_OBJECTS) $(VFS_OBJECTS) $(DIR_LIBARCHIVE)/.libs/libarchive.a $(CFLAGS) `pkg-config glib-2.0 --libs` -lz -lbz2
lib_libarchive_compile:
@which uudecode > /dev/null || exit 1;
@if test ! -f "$(DIR_LIBARCHIVE)/.libs/libarchive.a"; then \
echo "Building libarchive..."; echo; \
(cd "$(DIR_LIBARCHIVE)" && ./configure --enable-static --disable-shared --disable-bsdtar --disable-bsdcpio --with-pic && $(MAKE)) || exit 1; \
echo; echo "Libarchive build successful"; echo; \
fi;
strutils.o: strutils.c strutils.h
treepathutils.o: treepathutils.c treepathutils.h
vfsutils.o: vfsutils.c vfsutils.h
treepath_vfs.o: treepath_vfs.c treepath_vfs.h
install::
$(INSTALL) ./libarchive_plugin.so $(DESTDIR)/lib/tuxcmd/
clean:
rm -f *.o *.d *.gch libarchive_plugin.so
@if test -e $(DIR_LIBARCHIVE)/Makefile; then \
(cd "$(DIR_LIBARCHIVE)" && $(MAKE) clean) \
fi;
|