# # NuFX archive manipulation library # Copyright (C) 2000-2007 by Andy McFadden, All Rights Reserved. # This is free software; you can redistribute it and/or modify it under the # terms of the BSD License, see the file COPYING-LIB. # # Makefile for nufxlib (should work with non-GNU "make"). # # You can use: # make (builds library and sample applications) # make shared (builds shared library if you're using GNU ld or similar) # # The shared library support currently leaves much to be desired. # # NufxLib install location. prefix = @prefix@ exec_prefix = @exec_prefix@ includedir = @includedir@ libdir = @libdir@ srcdir = @srcdir@ SHELL = @SHELL@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ CC = @CC@ AR = ar rcv #OPT = @CFLAGS@ -DNDEBUG OPT = @CFLAGS@ #OPT = @CFLAGS@ -DDEBUG_MSGS #OPT = @CFLAGS@ -DDEBUG_VERBOSE GCC_FLAGS = -Wall -Wwrite-strings -Wstrict-prototypes -Wpointer-arith -Wshadow CFLAGS = @BUILD_FLAGS@ -I. @DEFS@ -DOPTFLAGSTR="\"$(OPT)\"" SRCS = Archive.c ArchiveIO.c Bzip2.c Compress.c Crc16.c Debug.c \ Deferred.c Deflate.c Entry.c Expand.c FileIO.c Funnel.c \ Lzc.c Lzw.c MiscStuff.c MiscUtils.c Record.c SourceSink.c \ Squeeze.c Thread.c Value.c Version.c OBJS = Archive.o ArchiveIO.o Bzip2.o Compress.o Crc16.o Debug.o \ Deferred.o Deflate.o Entry.o Expand.o FileIO.o Funnel.o \ Lzc.o Lzw.o MiscStuff.o MiscUtils.o Record.o SourceSink.o \ Squeeze.o Thread.o Value.o Version.o STATIC_PRODUCT = libnufx.a SHARED_PRODUCT = libnufx.so PRODUCT = $(STATIC_PRODUCT) # # Build stuff # all: $(PRODUCT) samples @true install: $(STATIC_PRODUCT) $(srcdir)/mkinstalldirs $(libdir) $(INSTALL_DATA) $(STATIC_PRODUCT) $(libdir) $(srcdir)/mkinstalldirs $(includedir) $(INSTALL_DATA) NufxLib.h $(includedir) install-shared: $(SHARED_PRODUCT) $(srcdir)/mkinstalldirs $(libdir) $(INSTALL_DATA) $(SHARED_PRODUCT) $(libdir) $(srcdir)/mkinstalldirs $(includedir) $(INSTALL_DATA) NufxLib.h $(includedir) samples:: @echo "Building samples..." @(cd samples; set +e; unset CFLAGS OBJS; set -e; \ @SET_MAKE@ LIB_PRODUCT="../$(PRODUCT)" $(MAKE)) shared:: PRODUCT="$(SHARED_PRODUCT)" $(MAKE) -e $(STATIC_PRODUCT): $(OBJS) -rm -f $(STATIC_PRODUCT) $(SHARED_PRODUCT) $(AR) $@ $(OBJS) @RANLIB@ $@ # BUG: we probably want -fPIC -D_REENTRANT on the compile lines for this. # BUG: for Linux we may want -Wl,-soname,libnufx.so.1 on the link line. $(SHARED_PRODUCT): $(OBJS) -rm -f $(STATIC_PRODUCT) $(SHARED_PRODUCT) $(CC) @SHARE_FLAGS@ -o $@ $(OBJS) @LIBS@ clean: (cd samples; make clean) -rm -f *.o core -rm -f $(SHARED_PRODUCT) $(STATIC_PRODUCT) # build tags; assumes fancy GNU tag generation tags:: @ctags -R --totals * @#ctags *.[ch] distclean: clean (cd samples; make distclean) -rm -f Version.c -rm -f Makefile Makefile.bak -rm -f config.log config.cache config.status config.h -rm -f tags # Make a tarfile with a backup of the essential files. We include "Makefile" # so that we can do a "make distclean" during packaging. baktar: @tar cvf nufxlib.tar *.txt COPYING-LIB INSTALL configure *.in Makefile \ Makefile.msc Makefile.dll install-sh config.guess config.sub \ mkinstalldirs *.[ch] samples/*.txt samples/Makefile* samples/*.[ch] @gzip -9 nufxlib.tar @mv -i nufxlib.tar.gz /home/fadden/BAK/ depend: makedepend -- $(CFLAGS) -I/usr/local/include -- $(SRCS) @(cd samples; unset CFLAGS OBJS; @SET_MAKE@ $(MAKE) depend) # catch OPTFLAGSTR updates Version.o: Makefile # DO NOT DELETE THIS LINE -- make depend depends on it.