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