# $Id: Makefile,v 1.16 2002/03/02 21:08:51 sverrehu Exp $ PROG = sol DIST = $(PROG) VERMAJ = 1 VERMIN = 0 VERPAT = 7 VERSION = $(VERMAJ).$(VERMIN).$(VERPAT) COMPILED_DATE = `date '+%Y-%m-%d %H:%M:%S'` COMPILED_BY = `whoami` ########################################################################### # Where are shhmsg, shhopt, xalloc, shhcards, Xpm and X11? # GNU/Linux at home INCDIR = -I${LOCALBASE}/include -I${X11BASE}/include LIBDIR = -L${LOCALBASE}/lib -L${X11BASE}/lib EXTRA_LIBS = -lSM -lICE # Irix at Ifi ifeq ($(HOSTTYPE),sgi) INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ -I/usr/include/X11 LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ -L/usr/lib/X11 endif # Solaris at Ifi ifeq ($(HOSTTYPE),sol) INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ -I/usr/openwin/include -I/usr/local/X11R5/include LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ -L/usr/openwin/lib -L/usr/local/X11R5/lib EXTRA_LD_OPT = -R$(LD_RUN_PATH):/usr/openwin/lib endif # SunOS at Ifi ifeq ($(HOSTTYPE),sun4) INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ -I/usr/include/X11 -I/usr/local/X11R5/include LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ -L/usr/lib/X11 -L/usr/local/X11R5/lib EXTRA_LIBS = -liberty endif # Ultrix at Ifi ifeq ($(HOSTTYPE),ds) INCDIR = -I$$HOME/include -I/usr/local/hacks/include \ -I/usr/include/X11 -I/usr/local/X11R5/include LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/local/hacks/lib/$$HOSTTYPE \ -L/usr/lib/X11 -L/usr/local/X11R5/lib EXTRA_LIBS = -liberty endif # DEC Alpha at USIT #ifeq ($(HOSTTYPE),alpha) #INCDIR = -I$$HOME/include -I/usr/include/X11 \ # -I/usr/local/X11R5/include #LIBDIR = -L$$HOME/lib/$$HOSTTYPE -L/usr/lib/X11 -L/usr/local/X11R5/lib #endif ########################################################################### # Where do you want to install the program and the highscore file? INSTLIBDIR = ${PREFIX}/lib/games INSTBINDIR = ${PREFIX}/games INSTMANDIR = ${PREFIX}/man/man6 #INSTLIBDIR = /hom/sverrehu/lib #INSTBINDIR = /hom/sverrehu/bin/$$HOSTTYPE #INSTMANDIR = /hom/sverrehu/man/man6 # Game user. Program runs suid, so this must not be root. OWNER = games GROUP = games #OWNER = sverrehu #GROUP = sverrehu SCOREBASEFILE = $(PROG).score SCOREFILE = $(INSTLIBDIR)/$(SCOREBASEFILE) DEFINES = -DVERSION=\"$(VERSION)\" \ "-DCOMPILED_DATE=\"$(COMPILED_DATE)\"" \ "-DCOMPILED_BY=\"$(COMPILED_BY)\"" \ -DSCOREFILE=\"$(SCOREFILE)\" ########################################################################### #CC = gcc OPTIM = -s -O2 CCOPT = $(INCDIR) $(DEFINES) $(CFLAGS) LDOPT = $(LIBDIR) $(LDFLAGS) $(EXTRA_LD_OPT) LIBS = -lshhopt -lshhmsg -lxalloc -lshhcards \ -lXaw -lXt -lXpm -lXext -lXmu -lX11 $(EXTRA_LIBS) OBJS = about.o board.o card.o envvar.o game.o \ highscores.o options.o parsefile.o pile.o \ rcfile.o readme.o score.o sol.o suid.o win.o ########################################################################### all: $(PROG) $(PROG): $(OBJS) .o: $(OBJS) $(CC) $(CCOPT) -o $@ $(OBJS) $(LDOPT) $(LIBS) .c.o: $(CC) -o $@ -c $(CCOPT) $< readme.var: README echo "static char *readmeText =" > readme.var sed -e 's/"/\\"/g' < README | \ awk '{ print "\"" $$0 "\\n\"" }' >> readme.var echo ";" >> readme.var clean: rm -f *.o core depend readme.var *~ install: $(PROG) install -d -m 755 $(INSTBINDIR) $(INSTLIBDIR) $(INSTMANDIR) install -s -m 4755 -o $(OWNER) -g $(GROUP) $(PROG) $(INSTBINDIR) ln -sf $(PROG) $(INSTBINDIR)/$(PROG)scores install -m 644 $(PROG).6 $(INSTMANDIR) if test ! -f $(SCOREFILE); then \ install -m 644 -o $(OWNER) -g $(GROUP) \ $(SCOREBASEFILE) $(INSTLIBDIR); fi depend dep: readme.var $(CC) $(INCDIR) -MM *.c >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 TODO $(LSMFILE) $(PROG).6 \ $(DIST).lsm.in ChangeLog Makefile $(SCOREBASEFILE) \ about.c board.c card.c envvar.c game.c \ highscores.c options.c parsefile.c pile.c \ rcfile.c readme.c score.c sol.c suid.c win.c \ about.h board.h card.h envvar.h game.h \ highscores.h options.h parsefile.h pile.h \ rcfile.h readme.h score.h suid.h win.h \ readme.var shapes.xpm BINDISTDIR = $(DIST)-$(VERSION)-bin BINDISTFILE = $(DIST)-$(VERSION)-bin.tar.gz BINDISTFILES = README.static $(PROG).static $(PROG).6 \ Makefile.static $(SCOREBASEFILE) # Linux executable with my libraries and Xpm statically linked. static $(PROG).static: $(OBJS) $(CC) $(CCOPT) -o $(PROG).static $(OBJS) $(LDOPT) \ /local/lib/libshhopt.a /local/lib/libshhmsg.a \ /local/lib/libxalloc.a /local/lib/libshhcards.a \ /local/lib/X11/libXpm.a \ -lXaw -lXt -lXext -lXmu -lX11 $(EXTRA_LIBS) $(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) $(SCOREBASEFILE): $(SCOREBASEFILE).ifi echo "1" > $(SCOREBASEFILE) grep "^sverrehu," $(SCOREBASEFILE).ifi >> $(SCOREBASEFILE) chmod: chmod -R a+rX * veryclean: clean rm -f $(PROG) $(PROG).static $(DISTFILE) $(BINDISTFILE) $(LSMFILE) dist: $(LSMFILE) $(SCOREBASEFILE) chmod mkdir $(DISTDIR) chmod a+rx $(DISTDIR) for q in $(DISTFILES); do \ if test -r $$q; then \ ln -s ../$$q $(DISTDIR); \ else echo "warning: no file $$q"; fi; \ done tar -cvhzf $(DISTFILE) --exclude \*/CVS $(DISTDIR) chmod a+r $(DISTFILE) rm -rf $(DISTDIR) bindist: $(PROG).static $(SCOREBASEFILE) chmod mkdir $(BINDISTDIR) chmod a+rx $(BINDISTDIR) for q in $(BINDISTFILES); do \ if test -r $$q; then \ ln -s ../$$q $(BINDISTDIR)/`basename $$q .static`; \ else echo "warning: no file $$q"; fi; \ done tar -cvhzf $(BINDISTFILE) --exclude \*/CVS $(BINDISTDIR) chmod a+r $(BINDISTFILE) rm -rf $(BINDISTDIR) ifeq (depend,$(wildcard depend)) include depend endif