Release 1.1.6.
[rocl] / Makefile
CommitLineData
5a74fac2 1### Makefile for RIGHT ON COMMAND-LINE
1304202a 2
5a74fac2
MW
3###--------------------------------------------------------------------------
4### Configuration stuff.
1304202a 5
5a74fac2 6## Compiling and linking.
1304202a 7CC = gcc
924f49bf 8INCLUDES = -I/usr/include/tcl
10bdc1e4 9CFLAGS = \
a5412de5 10 -O2 -g -Wall -fPIC -funroll-loops -fomit-frame-pointer \
10bdc1e4 11 $(INCLUDES)
1304202a 12LD = gcc
13LDFLAGS = -shared
14
5a74fac2 15## Installation.
1304202a 16INST =
17prefix = /usr/local
18tcllibdir = $(prefix)/lib
19pkglibdir = $(tcllibdir)/elite
20bindir = $(prefix)/bin
21
22INSTALL = install
23RM = rm
24
5a74fac2
MW
25###--------------------------------------------------------------------------
26### Main machinery.
27###
28### Shouldn't need to fiddle with this stuff.
1304202a 29
30PACKAGE = rocl
4041fdd8 31VERSION = $(shell ./auto-version)
1304202a 32
33TCLSCRIPTS = \
34 elite-editor elite-pairs elite-path elite-find elite-map \
74bdd262 35 elite-prices elite-describe elite-reach elite-cmdr elite-salesman \
36 elite-tantalus
1304202a 37
10bdc1e4 38SRCFILES = elite.c vec.c vec.h graph.c
39
40PKGFILES = elite.so vec.so graph.so elite.tcl
41
42all: $(PKGFILES) pkgIndex.tcl
1304202a 43
44elite.so: elite.o
45 $(LD) $(LDFLAGS) elite.o -o elite.so
10bdc1e4 46vec.so: vec.o
47 $(LD) $(LDFLAGS) vec.o -o vec.so
5a74fac2
MW
48graph.so: graph.o vec.so
49 $(LD) $(LDFLAGS) -Wl,-rpath,$(pkglibdir) graph.o vec.so -o graph.so
10bdc1e4 50graph.o vec.o: vec.h
1304202a 51
52.SUFFIXES: .c .o
53.c.o:; $(CC) -c $(CFLAGS) -o $@ $<
54
10bdc1e4 55pkgIndex.tcl: $(PKGFILES)
5a74fac2
MW
56 LD_LIBRARY_PATH=$$(pwd) \
57 echo "pkg_mkIndex -verbose -direct -load Vec . $(PKGFILES) " | \
58 tclsh
1304202a 59
60install: all
61 $(INSTALL) -d $(INST)$(bindir) $(INST)$(pkglibdir)
10bdc1e4 62 $(INSTALL) -m 644 $(PKGFILES) pkgIndex.tcl $(INST)$(pkglibdir)
1304202a 63 $(INSTALL) -m 755 $(TCLSCRIPTS) $(INST)$(bindir)
64
65clean:
10bdc1e4 66 $(RM) -f *.o *.so pkgIndex.tcl
1304202a 67
ef16cccd 68distdir = $(PACKAGE)-$(VERSION)
94b6e365 69DISTFILES = \
f4ca3294 70 COPYING README Makefile $(SRCFILES) elite.tcl steele.cmdr \
4041fdd8 71 elite.def vec.def graph.def $(TCLSCRIPTS) auto-version \
924f49bf
MW
72 debian/rules debian/control debian/copyright debian/changelog \
73 debian/compat debian/source/format
1304202a 74distdir: $(DISTFILES)
ef16cccd
MW
75 $(RM) -rf $(distdir)
76 mkdir $(distdir) $(distdir)/debian
4041fdd8 77 echo $(VERSION) >$(distdir)/RELEASE
8d722cca 78 for i in $(DISTFILES); do \
79 case $$i in \
80 */*) \
81 dir=$${i%/*}; \
82 up=`echo $$dir | sed 's:[^/]\+:..:g'`; \
ef16cccd 83 mkdir -p $(distdir)/$$dir;; \
8d722cca 84 *) dir= up=;; \
85 esac; \
ef16cccd 86 ln -s ../$$up/$$i $(distdir)/$$i; \
8d722cca 87 done
74dd4846 88disttar: distdir
ef16cccd 89 tar chofz $(INST)$(distdir).tar.gz $(distdir)
74dd4846 90distzip: distdir
ef16cccd 91 cd $(distdir) && zip -rq ../$(INST)$(distdir).zip .
74dd4846 92dist: disttar distzip
ef16cccd 93 $(RM) -rf $(distdir)
74dd4846 94distcheck: dist
95 @echo "*** Packing..."
96 $(MAKE) dist
97 @echo "*** Unpacking..."
ef16cccd 98 tar xfz $(distdir).tar.gz
74dd4846 99 @echo "*** Test building..."
100 set -e; \
ef16cccd 101 cd $(distdir); \
74dd4846 102 $(MAKE) clean; \
103 $(MAKE); \
104 $(MAKE) install INST=inst; \
105 $(MAKE) dist
106 @echo "*** Tidying up..."
ef16cccd 107 rm -rf $(distdir)
74dd4846 108 @echo "*** All OK"
109
110.PHONY: all install clean dist disttar distzip distdir distcheck
1304202a 111
5a74fac2 112###----- That's all, folks --------------------------------------------------