# $Id: Makefile,v 1.5 2002/03/02 20:35:52 sverrehu Exp $ DIST = xalloc VERMAJ = 1 VERMIN = 0 VERPAT = 4 VERSION = $(VERMAJ).$(VERMIN).$(VERPAT) ########################################################################### # Define SHARED as 1 for Linux shared ELF library #SHARED = 1 ifeq ($(SHARED),1) LIBTARGET = lib$(DIST).so.$(VERSION) LIBTARGETSO = lib$(DIST).so LIBTARGETSOMAJ = $(LIBTARGETSO).$(VERMAJ) CCSHRD = -fPIC else LIBTARGET = lib$(DIST).a endif LIBHEAD = $(DIST).h TARGETS = $(LIBTARGET) ########################################################################### INSTBASEDIR = /usr/local INSTLIBDIR = $(INSTBASEDIR)/lib INSTINCDIR = $(INSTBASEDIR)/include INSTALL = install -m 644 MKDIRP = install -d -m 755 ########################################################################### CC = gcc OPTIM = -O2 LIBDIR = -L. INCDIR = -I. CCOPT = -Wall $(OPTIM) $(INCDIR) LDOPT = $(LIBDIR) # Object files to store in the library LIBOBJS = xalloc.o xmalloc.o xcalloc.o xrealloc.o xstrdup.o ########################################################################### all: $(TARGETS) $(LIBTARGET): $(LIBOBJS) ifeq ($(SHARED),1) $(CC) -shared -Wl,-soname,$(LIBTARGETSOMAJ) -o $(LIBTARGET) $(LIBOBJS) else ar rcs $(LIBTARGET) $(LIBOBJS) endif .c.o: $(CC) $(CCSHRD) -o $@ -c $(CCOPT) $< depend dep: $(CC) $(INCDIR) -MM *.c >depend install: $(LIBTARGET) $(MKDIRP) $(INSTLIBDIR) $(INSTINCDIR) $(INSTALL) $(LIBTARGET) $(INSTLIBDIR) $(INSTALL) $(LIBHEAD) $(INSTINCDIR) ifeq ($(SHARED),1) ln -sf $(LIBTARGET) $(INSTLIBDIR)/$(LIBTARGETSOMAJ) ln -sf $(LIBTARGETSOMAJ) $(INSTLIBDIR)/$(LIBTARGETSO) echo "Now run ldconfig if necessary." endif clean: rm -f *.o core *~ depend ########################################################################### # To let the author make a distribution. The rest of the Makefile # should be used by the author only. LSMFILE = $(DIST)-$(VERSION).lsm DISTDIR = $(DIST)-$(VERSION) DISTFILE = $(DIST)-$(VERSION).tar.gz DISTFILES = README INSTALL CREDITS $(LSMFILE) ChangeLog Makefile \ xalloc.h \ xalloc.c xcalloc.c xmalloc.c xrealloc.c xstrdup.c $(LSMFILE): $(DIST).lsm.in VER=$(VERSION); \ DATE=`date "+%d%b%y"|tr '[a-z]' '[A-Z]'`; \ sed -e "s/VER/$$VER/g;s/DATE/$$DATE/g" $(DIST).lsm.in > $(LSMFILE) chmod: chmod -R a+rX * veryclean: clean rm -f $(LIBTARGET) $(DIST)-$(VERSION).tar.gz $(LSMFILE) dist: $(LSMFILE) chmod mkdir $(DISTDIR) chmod a+rx $(DISTDIR) for q in $(DISTFILES); do \ if test -e $$q; then \ ln -s ../$$q $(DISTDIR); \ else echo "warning: no file $$q"; fi; \ done tar -cvhzf $(DISTFILE) $(DISTDIR) chmod a+r $(DISTFILE) rm -rf $(DISTDIR) ifeq (depend,$(wildcard depend)) include depend endif