# # 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. # # If you build with -DDEBUG_MSGS, nulib2 will be able to use the hidden # 'g' command, which generates a verbose archive dump for debugging. # # 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 Charset.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 Charset.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 need -fPIC, maybe -D_REENTRANT when compiling 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 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/ # dependency info COMMON_HDRS = NufxLibPriv.h NufxLib.h MiscStuff.h SysDefs.h Archive.o: Archive.c $(COMMON_HDRS) ArchiveIO.o: ArchiveIO.c $(COMMON_HDRS) Bzip2.o: Bzip2.c $(COMMON_HDRS) Charset.o: Charset.c $(COMMON_HDRS) Compress.o: Compress.c $(COMMON_HDRS) Crc16.o: Crc16.c $(COMMON_HDRS) Debug.o: Debug.c $(COMMON_HDRS) Deferred.o: Deferred.c $(COMMON_HDRS) Deflate.o: Deflate.c $(COMMON_HDRS) Entry.o: Entry.c $(COMMON_HDRS) Expand.o: Expand.c $(COMMON_HDRS) FileIO.o: FileIO.c $(COMMON_HDRS) Funnel.o: Funnel.c $(COMMON_HDRS) Lzc.o: Lzc.c $(COMMON_HDRS) Lzw.o: Lzw.c $(COMMON_HDRS) MiscStuff.o: MiscStuff.c $(COMMON_HDRS) MiscUtils.o: MiscUtils.c $(COMMON_HDRS) Record.o: Record.c $(COMMON_HDRS) SourceSink.o: SourceSink.c $(COMMON_HDRS) Squeeze.o: Squeeze.c $(COMMON_HDRS) Thread.o: Thread.c $(COMMON_HDRS) Value.o: Value.c $(COMMON_HDRS) Version.o: Version.c $(COMMON_HDRS) Makefile