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