1# $Id: Makefile,v 1.16 2002/03/02 21:08:51 sverrehu Exp $ 2PROG = sol 3DIST = $(PROG) 4VERMAJ = 1 5VERMIN = 0 6VERPAT = 8 7VERSION = $(VERMAJ).$(VERMIN).$(VERPAT) 8COMPILED_DATE = `date '+%Y-%m-%d %H:%M:%S'` 9COMPILED_BY = `whoami` 10 11########################################################################### 12 13# Where are shhmsg, shhopt, xalloc, shhcards, Xpm and X11? 14 15# GNU/Linux at home 16INCDIR = -I${LOCALBASE}/include 17LIBDIR = -L${LOCALBASE}/lib 18EXTRA_LIBS = -lSM -lICE 19 20# Irix at Ifi 21ifeq ($(HOSTTYPE),sgi) 22INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ 23 -I/usr/include/X11 24LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ 25 -L/usr/lib/X11 26endif 27 28# Solaris at Ifi 29ifeq ($(HOSTTYPE),sol) 30INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ 31 -I/usr/openwin/include -I/usr/local/X11R5/include 32LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ 33 -L/usr/openwin/lib -L/usr/local/X11R5/lib 34EXTRA_LD_OPT = -R$(LD_RUN_PATH):/usr/openwin/lib 35endif 36 37# SunOS at Ifi 38ifeq ($(HOSTTYPE),sun4) 39INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ 40 -I/usr/include/X11 -I/usr/local/X11R5/include 41LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ 42 -L/usr/lib/X11 -L/usr/local/X11R5/lib 43EXTRA_LIBS = -liberty 44endif 45 46# Ultrix at Ifi 47ifeq ($(HOSTTYPE),ds) 48INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ 49 -I/usr/include/X11 -I/usr/local/X11R5/include 50LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ 51 -L/usr/lib/X11 -L/usr/local/X11R5/lib 52EXTRA_LIBS = -liberty 53endif 54 55# DEC Alpha at USIT 56#ifeq ($(HOSTTYPE),alpha) 57#INCDIR = -I$$HOME/include -I/usr/include/X11 \ 58# -I/usr/local/X11R5/include 59#LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/lib/X11 -L/usr/local/X11R5/lib 60#endif 61 62########################################################################### 63 64# Where do you want to install the program and the highscore file? 65INSTLIBDIR = ${PREFIX}/lib/games 66INSTBINDIR = ${PREFIX}/games 67INSTMANDIR = ${PREFIX}/man/man6 68#INSTLIBDIR = /hom/sverrehu/lib 69#INSTBINDIR = /hom/sverrehu/bin/$$HOSTTYPE 70#INSTMANDIR = /hom/sverrehu/man/man6 71 72# Game user. Program runs suid, so this must not be root. 73OWNER = games 74GROUP = games 75#OWNER = sverrehu 76#GROUP = sverrehu 77 78SCOREBASEFILE = $(PROG).score 79SCOREFILE = $(INSTLIBDIR)/$(SCOREBASEFILE) 80DEFINES = -DVERSION=\"$(VERSION)\" \ 81 "-DCOMPILED_DATE=\"$(COMPILED_DATE)\"" \ 82 "-DCOMPILED_BY=\"$(COMPILED_BY)\"" \ 83 -DSCOREFILE=\"$(SCOREFILE)\" 84 85########################################################################### 86 87#CC = gcc 88 89OPTIM = -s -O2 90CCOPT = $(INCDIR) $(DEFINES) $(CFLAGS) 91LDOPT = $(LIBDIR) $(LDFLAGS) $(EXTRA_LD_OPT) 92 93LIBS = -lshhopt -lshhmsg -lxalloc -lshhcards \ 94 -lXaw -lXt -lXpm -lXext -lXmu -lX11 $(EXTRA_LIBS) 95 96OBJS = about.o board.o card.o envvar.o game.o \ 97 highscores.o options.o parsefile.o pile.o \ 98 rcfile.o readme.o score.o sol.o suid.o win.o 99 100########################################################################### 101 102all: $(PROG) 103 104$(PROG): $(OBJS) 105 106.o: $(OBJS) 107 $(CC) $(CCOPT) -o $@ $(OBJS) $(LDOPT) $(LIBS) 108 109.c.o: 110 $(CC) -o $@ -c $(CCOPT) $< 111 112readme.var: README 113 echo "static char *readmeText =" > readme.var 114 sed -e 's/"/\\"/g' < README | \ 115 awk '{ print "\"" $$0 "\\n\"" }' >> readme.var 116 echo ";" >> readme.var 117 118clean: 119 rm -f *.o core depend readme.var *~ 120 121install: $(PROG) 122 install -d -m 755 $(INSTBINDIR) $(INSTLIBDIR) $(INSTMANDIR) 123 install -s -m 4755 -o $(OWNER) -g $(GROUP) $(PROG) $(INSTBINDIR) 124 ln -sf $(PROG) $(INSTBINDIR)/$(PROG)scores 125 install -m 644 $(PROG).6 $(INSTMANDIR) 126 if test ! -f $(SCOREFILE); then \ 127 install -m 644 -o $(OWNER) -g $(GROUP) \ 128 $(SCOREBASEFILE) $(INSTLIBDIR); fi 129 130depend dep: readme.var 131 $(CC) $(INCDIR) -MM *.c >depend 132 133########################################################################### 134 135# To let the author make a distribution. The rest of the Makefile 136# should be used by the author only. 137LSMFILE = $(DIST)-$(VERSION).lsm 138DISTDIR = $(DIST)-$(VERSION) 139DISTFILE = $(DIST)-$(VERSION).tar.gz 140DISTFILES = README INSTALL CREDITS TODO $(LSMFILE) $(PROG).6 \ 141 $(DIST).lsm.in ChangeLog Makefile $(SCOREBASEFILE) \ 142 about.c board.c card.c envvar.c game.c \ 143 highscores.c options.c parsefile.c pile.c \ 144 rcfile.c readme.c score.c sol.c suid.c win.c \ 145 about.h board.h card.h envvar.h game.h \ 146 highscores.h options.h parsefile.h pile.h \ 147 rcfile.h readme.h score.h suid.h win.h \ 148 readme.var shapes.xpm 149BINDISTDIR = $(DIST)-$(VERSION)-bin 150BINDISTFILE = $(DIST)-$(VERSION)-bin.tar.gz 151BINDISTFILES = README.static $(PROG).static $(PROG).6 \ 152 Makefile.static $(SCOREBASEFILE) 153 154# Linux executable with my libraries and Xpm statically linked. 155static $(PROG).static: $(OBJS) 156 $(CC) $(CCOPT) -o $(PROG).static $(OBJS) $(LDOPT) \ 157 /local/lib/libshhopt.a /local/lib/libshhmsg.a \ 158 /local/lib/libxalloc.a /local/lib/libshhcards.a \ 159 /local/lib/X11/libXpm.a \ 160 -lXaw -lXt -lXext -lXmu -lX11 $(EXTRA_LIBS) 161 162$(LSMFILE): $(DIST).lsm.in 163 VER=$(VERSION); \ 164 DATE=`date "+%d%b%y"|tr '[a-z]' '[A-Z]'`; \ 165 sed -e "s/VER/$$VER/g;s/DATE/$$DATE/g" $(DIST).lsm.in > $(LSMFILE) 166 167$(SCOREBASEFILE): $(SCOREBASEFILE).ifi 168 echo "1" > $(SCOREBASEFILE) 169 grep "^sverrehu," $(SCOREBASEFILE).ifi >> $(SCOREBASEFILE) 170 171chmod: 172 chmod -R a+rX * 173 174veryclean: clean 175 rm -f $(PROG) $(PROG).static $(DISTFILE) $(BINDISTFILE) $(LSMFILE) 176 177dist: $(LSMFILE) $(SCOREBASEFILE) chmod 178 mkdir $(DISTDIR) 179 chmod a+rx $(DISTDIR) 180 for q in $(DISTFILES); do \ 181 if test -r $$q; then \ 182 ln -s ../$$q $(DISTDIR); \ 183 else echo "warning: no file $$q"; fi; \ 184 done 185 tar -cvhzf $(DISTFILE) --exclude \*/CVS $(DISTDIR) 186 chmod a+r $(DISTFILE) 187 rm -rf $(DISTDIR) 188 189bindist: $(PROG).static $(SCOREBASEFILE) chmod 190 mkdir $(BINDISTDIR) 191 chmod a+rx $(BINDISTDIR) 192 for q in $(BINDISTFILES); do \ 193 if test -r $$q; then \ 194 ln -s ../$$q $(BINDISTDIR)/`basename $$q .static`; \ 195 else echo "warning: no file $$q"; fi; \ 196 done 197 tar -cvhzf $(BINDISTFILE) --exclude \*/CVS $(BINDISTDIR) 198 chmod a+r $(BINDISTFILE) 199 rm -rf $(BINDISTDIR) 200 201ifeq (depend,$(wildcard depend)) 202include depend 203endif 204