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