chiark / gitweb /
Lots of new files.
[rocl] / Makefile
index 83c19774af9344ee53e0722a4479d4db4e3c207e..4af2d9820f2ad6c9f8234490898db74054e4ba45 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,6 @@
 # Makefile for RIGHT ON COMMAND-LINE
+#
+# $Id: Makefile,v 1.7 2003/03/07 00:47:26 mdw Exp $
 
 #----- Configuration stuff --------------------------------------------------
 
@@ -6,7 +8,9 @@
 
 CC = gcc
 INCLUDES = 
-CFLAGS = -O2 -g -pedantic -Wall $(INCLUDES)
+CFLAGS = \
+       -O2 -g -pedantic -Wall -funroll-loops -fomit-frame-pointer \
+       $(INCLUDES)
 LD = gcc
 LDFLAGS = -shared
 
@@ -26,41 +30,68 @@ RM = rm
 # Shouldn't need to fiddle with thiis stuff.
 
 PACKAGE = rocl
-VERSION = 1.0.0
+VERSION = 1.1.0
 
 TCLSCRIPTS = \
        elite-editor elite-pairs elite-path elite-find elite-map \
-       elite-prices elite-describe elite-reach
+       elite-prices elite-describe elite-reach elite-cmdr
+
+SRCFILES = elite.c vec.c vec.h graph.c
 
-all: elite.so pkgIndex.tcl
+PKGFILES = elite.so vec.so graph.so elite.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
+       $(LD) $(LDFLAGS) graph.o -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)
+       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.def $(TCLSCRIPTS)
+DISTFILES = README Makefile $(SRCFILES) elite.tcl elite.def $(TCLSCRIPTS)
 distdir: $(DISTFILES)
        $(RM) -rf $(DISTDIR)
        mkdir $(DISTDIR)
        for i in $(DISTFILES); do ln -s ../$$i $(DISTDIR); done
-dist: distdir
+disttar: distdir
        tar chofz $(DISTDIR).tar.gz $(DISTDIR)
+distzip: distdir
+       cd $(DISTDIR) && zip -rq ../$(DISTDIR).zip .
+dist: disttar distzip
        $(RM) -rf $(DISTDIR)
-
-.PHONY: all install clean dist distdir
+distcheck: dist
+       @echo "*** Packing..."
+       $(MAKE) dist
+       @echo "*** Unpacking..."
+       tar xfz $(DISTDIR).tar.gz
+       @echo "*** Test building..."
+       set -e; \
+       cd $(DISTDIR); \
+       $(MAKE) clean; \
+       $(MAKE); \
+       $(MAKE) install INST=inst; \
+       $(MAKE) dist
+       @echo "*** Tidying up..."
+       rm -rf $(DISTDIR)
+       @echo "*** All OK"
+
+.PHONY: all install clean dist disttar distzip distdir distcheck
 
 #----- That's all, folks ----------------------------------------------------