### Makefile for RIGHT ON COMMAND-LINE ###-------------------------------------------------------------------------- ### Configuration stuff. ## Compiling and linking. CC = gcc INCLUDES = CFLAGS = \ -O2 -g -Wall -fPIC -funroll-loops -fomit-frame-pointer \ $(INCLUDES) LD = gcc LDFLAGS = -shared ## Installation. INST = prefix = /usr/local tcllibdir = $(prefix)/lib pkglibdir = $(tcllibdir)/elite bindir = $(prefix)/bin INSTALL = install RM = rm ###-------------------------------------------------------------------------- ### Main machinery. ### ### Shouldn't need to fiddle with this stuff. PACKAGE = rocl VERSION = $(shell ./auto-version) TCLSCRIPTS = \ elite-editor elite-pairs elite-path elite-find elite-map \ 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: $(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: $(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 $(PKGFILES) pkgIndex.tcl $(INST)$(pkglibdir) $(INSTALL) -m 755 $(TCLSCRIPTS) $(INST)$(bindir) clean: $(RM) -f *.o *.so pkgIndex.tcl 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) $(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 $(INST)$(distdir).tar.gz $(distdir) distzip: distdir cd $(distdir) && zip -rq ../$(INST)$(distdir).zip . dist: disttar distzip $(RM) -rf $(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 --------------------------------------------------