[pure-lang-svn] SF.net SVN: pure-lang: [205] pure/trunk
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-06-13 10:33:42
|
Revision: 205 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=205&view=rev Author: agraef Date: 2008-06-13 03:33:49 -0700 (Fri, 13 Jun 2008) Log Message: ----------- Add support for installing different Pure versions in parallel. Modified Paths: -------------- pure/trunk/Makefile.in pure/trunk/lexer.ll pure/trunk/pure.cc Modified: pure/trunk/Makefile.in =================================================================== --- pure/trunk/Makefile.in 2008-06-13 09:59:39 UTC (rev 204) +++ pure/trunk/Makefile.in 2008-06-13 10:33:49 UTC (rev 205) @@ -57,9 +57,9 @@ CXXFLAGS = @CXXFLAGS@ # Pure library name. Currently we use a simple versioning scheme, which -# requires that the library version matches that of the interpreter. With some -# fiddling, this enables you to install different versions of the Pure -# interpreter on the same system. +# requires that the library version matches that of the interpreter. This +# enables you to install different versions of the Pure interpreter on the +# same system. libpure_base = $(name) libpure_vers = $(libpure_base)-$(version) @@ -130,7 +130,7 @@ ln -sf $(libpure) $(libpurelnk) pure.o: pure.cc - $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LLVM_FLAGS) -DPURELIB='"$(libdir)/pure"' -c -o $@ $< + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LLVM_FLAGS) -DPURELIB='"$(libdir)/pure-$(version)"' -c -o $@ $< interpreter.o: interpreter.cc $(CXX) $(CXXFLAGS) $(PIC) $(CPPFLAGS) $(LLVM_FLAGS) $(AUXLIBS) -c -o $@ $< @@ -190,17 +190,20 @@ # installation install: pure$(EXE) - for x in $(addprefix $(DESTDIR), $(bindir) $(libdir)/pure $(man1dir)); do $(INSTALL) -d $$x; done - $(INSTALL) pure$(EXE) $(DESTDIR)$(bindir)/pure$(EXE) + for x in $(addprefix $(DESTDIR), $(bindir) $(libdir)/pure-$(version) $(man1dir)); do $(INSTALL) -d $$x; done + $(INSTALL) pure$(EXE) $(DESTDIR)$(bindir)/pure-$(version)$(EXE) + ln -sf $(bindir)/pure-$(version)$(EXE) $(DESTDIR)$(bindir)/pure$(EXE) ifeq ($(sharedlib), yes) $(INSTALL) $(libpure) $(DESTDIR)$(libdir)/$(libpure) ln -sf $(libdir)/$(libpure) $(DESTDIR)$(libdir)/$(libpurelnk) endif - for x in $(srcdir)/lib/*.pure; do $(INSTALL) -m 644 $$x $(DESTDIR)$(libdir)/pure; done - $(INSTALL) -m 644 pure.1 $(DESTDIR)$(man1dir)/pure.1 + for x in $(srcdir)/lib/*.pure; do $(INSTALL) -m 644 $$x $(DESTDIR)$(libdir)/pure-$(version); done + ln -sf $(libdir)/pure-$(version) $(DESTDIR)$(libdir)/pure + $(INSTALL) -m 644 pure.1 $(DESTDIR)$(man1dir)/pure-$(version).1 + ln -sf $(man1dir)/pure-$(version).1 $(DESTDIR)$(man1dir)/pure.1 uninstall: - rm -rf $(DESTDIR)$(bindir)/pure$(EXE) $(DESTDIR)$(libdir)/$(libpure) $(DESTDIR)$(libdir)/$(libpurelnk) $(DESTDIR)$(libdir)/pure $(DESTDIR)$(man1dir)/pure.1 + rm -rf $(DESTDIR)$(bindir)/pure$(EXE) $(DESTDIR)$(bindir)/pure-$(version)$(EXE) $(DESTDIR)$(libdir)/$(libpure) $(DESTDIR)$(libdir)/$(libpurelnk) $(DESTDIR)$(libdir)/pure $(DESTDIR)$(libdir)/pure-$(version) $(DESTDIR)$(man1dir)/pure.1 $(DESTDIR)$(man1dir)/pure-$(version).1 # roll a distribution tarball Modified: pure/trunk/lexer.ll =================================================================== --- pure/trunk/lexer.ll 2008-06-13 09:59:39 UTC (rev 204) +++ pure/trunk/lexer.ll 2008-06-13 10:33:49 UTC (rev 205) @@ -12,6 +12,8 @@ #include "parser.hh" #include "util.hh" +#include "config.h" + /* Work around an incompatibility in flex (at least versions 2.5.31 through 2.5.33): it generates code that does not conform to C89. See Debian bug 333231 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */ @@ -196,7 +198,7 @@ if (*s && !isspace(*s)) REJECT; while (isspace(*s)) ++s; yylloc->step(); - string cmd = string("man ") + ((*s)?s:"pure"); + string cmd = string("man ") + ((*s)?s:("pure-" PACKAGE_VERSION)); system(cmd.c_str()); } ^ls.* { Modified: pure/trunk/pure.cc =================================================================== --- pure/trunk/pure.cc 2008-06-13 09:59:39 UTC (rev 204) +++ pure/trunk/pure.cc 2008-06-13 10:33:49 UTC (rev 205) @@ -25,7 +25,7 @@ #define PACKAGE_VERSION "0.0" #endif #ifndef PURELIB -#define PURELIB "/usr/local/lib/pure" +#define PURELIB "/usr/local/lib/pure-" PACKAGE_VERSION #endif #define COPYRIGHT "Copyright (c) 2008 by Albert Graef" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |