X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/rocl/blobdiff_plain/b328fdbfdbd5acf9b90c4c1987b355ef95ef0440..4041fdd8af852bf6fb4db0aa6ddd2c8c2f640574:/Makefile diff --git a/Makefile b/Makefile index 1c6f4a9..8a8d8a1 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,18 @@ -# Makefile for RIGHT ON COMMAND-LINE -# -# $Id: Makefile,v 1.5 2003/03/02 12:29:38 mdw Exp $ +### Makefile for RIGHT ON COMMAND-LINE -#----- Configuration stuff -------------------------------------------------- - -# --- Compiling and linking --- +###-------------------------------------------------------------------------- +### Configuration stuff. +## Compiling and linking. CC = gcc -INCLUDES = -CFLAGS = -O2 -g -pedantic -Wall $(INCLUDES) +INCLUDES = +CFLAGS = \ + -O2 -g -Wall -fPIC -funroll-loops -fomit-frame-pointer \ + $(INCLUDES) LD = gcc LDFLAGS = -shared -# --- Installation --- - +## Installation. INST = prefix = /usr/local tcllibdir = $(prefix)/lib @@ -23,64 +22,90 @@ bindir = $(prefix)/bin INSTALL = install RM = rm -#----- Main machinery ------------------------------------------------------- -# -# Shouldn't need to fiddle with thiis stuff. +###-------------------------------------------------------------------------- +### Main machinery. +### +### Shouldn't need to fiddle with this stuff. PACKAGE = rocl -VERSION = 1.0.2 +VERSION = $(shell ./auto-version) TCLSCRIPTS = \ elite-editor elite-pairs elite-path elite-find elite-map \ - elite-prices elite-describe elite-reach elite-cmdr + elite-prices elite-describe elite-reach elite-cmdr elite-salesman \ + elite-tantalus + +SRCFILES = elite.c vec.c vec.h graph.c + +PKGFILES = elite.so vec.so graph.so elite.tcl -all: elite.so pkgIndex.tcl +all: $(PKGFILES) pkgIndex.tcl elite.so: elite.o $(LD) $(LDFLAGS) elite.o -o elite.so +vec.so: vec.o + $(LD) $(LDFLAGS) vec.o -o vec.so +graph.so: graph.o vec.so + $(LD) $(LDFLAGS) -Wl,-rpath,$(pkglibdir) graph.o vec.so -o graph.so +graph.o vec.o: vec.h .SUFFIXES: .c .o .c.o:; $(CC) -c $(CFLAGS) -o $@ $< -pkgIndex.tcl: elite.so elite.tcl - echo "pkg_mkIndex -verbose -direct . elite.so elite.tcl" | tclsh +pkgIndex.tcl: $(PKGFILES) + LD_LIBRARY_PATH=$$(pwd) \ + echo "pkg_mkIndex -verbose -direct -load Vec . $(PKGFILES) " | \ + tclsh install: all $(INSTALL) -d $(INST)$(bindir) $(INST)$(pkglibdir) - $(INSTALL) -m 644 elite.so elite.tcl pkgIndex.tcl $(INST)$(pkglibdir) + $(INSTALL) -m 644 $(PKGFILES) pkgIndex.tcl $(INST)$(pkglibdir) $(INSTALL) -m 755 $(TCLSCRIPTS) $(INST)$(bindir) clean: - $(RM) -f elite.o elite.so pkgIndex.tcl + $(RM) -f *.o *.so pkgIndex.tcl -DISTDIR = $(PACKAGE)-$(VERSION) -DISTFILES = README Makefile elite.c elite.tcl elite.def $(TCLSCRIPTS) +distdir = $(PACKAGE)-$(VERSION) +DISTFILES = \ + COPYING README Makefile $(SRCFILES) elite.tcl steele.cmdr \ + elite.def vec.def graph.def $(TCLSCRIPTS) auto-version \ + debian/rules debian/control debian/copyright debian/changelog distdir: $(DISTFILES) - $(RM) -rf $(DISTDIR) - mkdir $(DISTDIR) - for i in $(DISTFILES); do ln -s ../$$i $(DISTDIR); done + $(RM) -rf $(distdir) + mkdir $(distdir) $(distdir)/debian + echo $(VERSION) >$(distdir)/RELEASE + for i in $(DISTFILES); do \ + case $$i in \ + */*) \ + dir=$${i%/*}; \ + up=`echo $$dir | sed 's:[^/]\+:..:g'`; \ + mkdir -p $(distdir)/$$dir;; \ + *) dir= up=;; \ + esac; \ + ln -s ../$$up/$$i $(distdir)/$$i; \ + done disttar: distdir - tar chofz $(DISTDIR).tar.gz $(DISTDIR) + tar chofz $(INST)$(distdir).tar.gz $(distdir) distzip: distdir - cd $(DISTDIR) && zip -rq ../$(DISTDIR).zip . + cd $(distdir) && zip -rq ../$(INST)$(distdir).zip . dist: disttar distzip - $(RM) -rf $(DISTDIR) + $(RM) -rf $(distdir) distcheck: dist @echo "*** Packing..." $(MAKE) dist @echo "*** Unpacking..." - tar xfz $(DISTDIR).tar.gz + tar xfz $(distdir).tar.gz @echo "*** Test building..." set -e; \ - cd $(DISTDIR); \ + cd $(distdir); \ $(MAKE) clean; \ $(MAKE); \ $(MAKE) install INST=inst; \ $(MAKE) dist @echo "*** Tidying up..." - rm -rf $(DISTDIR) + rm -rf $(distdir) @echo "*** All OK" .PHONY: all install clean dist disttar distzip distdir distcheck -#----- That's all, folks ---------------------------------------------------- +###----- That's all, folks --------------------------------------------------