1# $Id: Makefile,v 1.6 2002/03/02 20:52:08 sverrehu Exp $ 2DIST = shhcards 3VERMAJ = 1 4VERMIN = 0 5VERPAT = 6 6VERSION = $(VERMAJ).$(VERMIN).$(VERPAT) 7 8########################################################################### 9 10# Define SHARED as 1 for Linux shared ELF library 11#SHARED = 1 12 13ifeq ($(SHARED),1) 14LIBTARGET = lib$(DIST).so.$(VERSION) 15LIBTARGETSO = lib$(DIST).so 16LIBTARGETSOMAJ = $(LIBTARGETSO).$(VERMAJ) 17CCSHRD = -fPIC 18else 19LIBTARGET = lib$(DIST).a 20endif 21 22LIBHEAD = $(DIST).h 23TARGETS = $(LIBTARGET) 24 25INSTBASEDIR = /usr/local 26INSTLIBDIR = $(INSTBASEDIR)/lib 27INSTINCDIR = $(INSTBASEDIR)/include 28INSTALL = install -m 644 29MKDIRP = install -d -m 755 30 31CC = gcc 32OPTIM = -O2 33 34########################################################################### 35 36# Where are Xpm and X11? 37 38# GNU/Linux at home 39INCDIR = -I. -I/usr/local/include -I/usr/X11R6/include \ 40 -I/opt/X11/include 41LIBDIR = -L. -L/usr/local/lib -L/usr/X11R6/lib -L/usr/local/lib/X11 \ 42 -L/opt/X11/lib 43EXTRA_LD_OPT = 44EXTRA_LIBS = 45 46# Irix at Ifi 47ifeq ($(HOSTTYPE),sgi) 48INCDIR = -I. -I/usr/local/hacks/include -I/usr/include/X11 \ 49 -I/usr/local/X11R5/include 50LIBDIR = -L. -L/usr/local/hacks/lib/$$HOSTTYPE -L/usr/lib/X11 \ 51 -L/usr/local/X11R5/lib 52endif 53 54# Solaris at Ifi 55ifeq ($(HOSTTYPE),sol) 56INCDIR = -I. -I/usr/local/hacks/include -I/usr/openwin/include \ 57 -I/usr/local/X11R5/include 58LIBDIR = -L. -L/usr/local/hacks/lib/$$HOSTTYPE -L/usr/openwin/lib \ 59 -L/usr/local/X11R5/lib 60EXTRA_LD_OPT = -R$(LD_RUN_PATH):/usr/openwin/lib 61endif 62 63# SunOS at Ifi 64ifeq ($(HOSTTYPE),sun4) 65INCDIR = -I. -I/usr/local/hacks/include -I/usr/include/X11 \ 66 -I/usr/local/X11R5/include 67LIBDIR = -L. -L/usr/local/hacks/lib/$$HOSTTYPE -L/usr/lib/X11 \ 68 -L/usr/local/X11R5/lib 69EXTRA_LIBS = -liberty -lXext 70endif 71 72# Alpha at USIT 73ifeq ($(HOSTTYPE),alpha) 74INCDIR = -I. -I/usr/include/X11 -I/usr/local/X11R5/include 75LIBDIR = -L. -L/usr/lib/X11 -L/usr/local/X11R5/lib 76endif 77 78########################################################################### 79 80CCOPT = -Wall $(OPTIM) $(INCDIR) $(CFLAGS) 81LDOPT = $(LIBDIR) $(LDFLAGS) 82 83# Object files to store in the library 84LIBOBJS = shhcards.o 85 86########################################################################### 87 88all: $(TARGETS) 89 90$(LIBTARGET): $(LIBOBJS) 91ifeq ($(SHARED),1) 92 $(CC) -shared -Wl,-soname,$(LIBTARGETSOMAJ) -o $(LIBTARGET) $(LIBOBJS) 93else 94 ar rcs $(LIBTARGET) $(LIBOBJS) 95endif 96 97all-cards.xpm: xpm/* 98 ./collect-all.pl 99 100tst: tst.o 101 $(CC) $(CCOPT) -o $@ tst.o $(OBJS) $(LDOPT) -lshhcards -lX11 -lXpm 102 103.c.o: 104 $(CC) $(CCSHRD) -o $@ -c $(CCOPT) $< 105 106clean: 107 rm -f *.o core depend *~ xpm/*~ 108 109install: $(LIBTARGET) 110 $(MKDIRP) $(INSTLIBDIR) $(INSTINCDIR) 111 $(INSTALL) $(LIBTARGET) $(INSTLIBDIR) 112 $(INSTALL) $(LIBHEAD) $(INSTINCDIR) 113ifeq ($(SHARED),1) 114 ln -sf $(LIBTARGET) $(INSTLIBDIR)/$(LIBTARGETSOMAJ) 115 ln -sf $(LIBTARGETSOMAJ) $(INSTLIBDIR)/$(LIBTARGETSO) 116 echo "Now run ldconfig if necessary." 117endif 118 119depend dep: 120 $(CC) $(INCDIR) -MM *.c >depend 121 122########################################################################### 123 124# To let the author make a distribution. The rest of the Makefile 125# should be used by the author only. 126LSMFILE = $(DIST)-$(VERSION).lsm 127DISTDIR = $(DIST)-$(VERSION) 128DISTFILE = $(DIST)-$(VERSION).tar.gz 129DISTFILES = README INSTALL CREDITS $(LSMFILE) ChangeLog \ 130 $(DIST).lsm.in Makefile collect-all.pl \ 131 shhcards.h shhcards.c tst.c \ 132 all-cards.xpm xpm/ 133 134$(LSMFILE): $(DIST).lsm.in 135 VER=$(VERSION); \ 136 DATE=`date "+%d%b%y"|tr '[a-z]' '[A-Z]'`; \ 137 sed -e "s/VER/$$VER/g;s/DATE/$$DATE/g" $(DIST).lsm.in > $(LSMFILE) 138 139chmod: 140 chmod -R a+rX * 141 142veryclean: clean 143 rm -f $(LIBTARGET) $(DIST)-$(VERSION).tar.gz $(LSMFILE) $(TARGETS) tst 144 145dist: $(LSMFILE) chmod 146 mkdir $(DISTDIR) 147 chmod a+rx $(DISTDIR) 148 for q in $(DISTFILES); do \ 149 if test -r $$q; then \ 150 ln -s ../$$q $(DISTDIR); \ 151 else echo "warning: no file $$q"; fi; \ 152 done 153 tar -cvhzf $(DISTFILE) --exclude \*/CVS $(DISTDIR) 154 chmod a+r $(DISTFILE) 155 rm -rf $(DISTDIR) 156 157ifeq (depend,$(wildcard depend)) 158include depend 159endif 160