After much thought and deliberation... a change in EPANET repo

policy regarding Makefiles and their output targets.  
Used to create library and executable file names that included
the compiler (e.g., *_gcc_*) and the SVN rev (*_309_*).  This
was to allow development along the trunk while keeping clean track
of the SVN versions that objects were made from.  

Maybe a good idea in part, but no longer.  It collapsed under its
own complexity.  The need to keep track of all the specific
file names became more burdensome that the need to keep track
of which source actually built an object.

As of now, Makefiles produce unadorned file names:

Linux:
lib<name>.so
<name>
Cygwin:
cyg<name>.dll
cyg<name>.exe
libcyg<name>.dll.a
MSVC:
<name>.dll
<name>.exe
<name>.lib
MinGW:
Same as MSVC
Darwin:
Don't know about this, but I think they already were produced
with just dy extensions

Under this scheme MinGW looks just like MSVC, but I guess that's 
the whole point...



git-svn-id: https://epanet.svn.sourceforge.net/svnroot/epanet/BASE/trunk@314 c320cabd-cc23-0410-96d8-e60fbf53ed7f
This commit is contained in:
James Uber
2009-08-18 08:17:28 +00:00
parent c9920ba7db
commit 95d57ceae2
8 changed files with 454 additions and 56 deletions

View File

@@ -1,26 +1,26 @@
# Linux Makefile for EPANET
# This will build EPANET as a shared object library
# (libepanet_gcc_<Rev>.so) under Linux/Unix, and a standalone
# executable (epanet_gcc_<Rev>).
# (libepanet2.so) under Linux/Unix, and a standalone
# executable (epanet2).
# The following targets are defined:
# make
# -Builds libepanet_gcc_<Rev>.so, epanet_gcc_<Rev>
# -Builds libepanet2.so, epanet2
# make install
# -Creates shell wrapper runepanet_<Rev>.sh that executes epanet_gcc_<Rev>.exe.
# The runepanet_<Rev>.sh wrapper simply exports
# -Creates shell wrapper runepanet2.sh that executes epanet2.
# The runepanet2.sh wrapper simply exports
# environment variables that help locate the runtime library,
# allowing you to specify your own library locations.
# -Installs epanet_gcc_<Rev> and runepanet_<Rev>.sh
# -Installs epanet2 and runepanet2.sh
# in <prefix>/bin, where <prefix> defaults to ~ (and can be set
# below to something different - see "Install directories")
# -Installs libepanet_gcc_<Rev>.so in <prefix>/lib
# -Installs libepanet2.so in <prefix>/lib
# -Installs epanet2.h in <prefix>/include. This is the required
# header file for the EPANET programmer's toolkit, and thus
# <prefix>/include should be on your CPP include search path
# for subsequent use of the toolkit and linking with the
# library libepanet_gcc_<Rev>.so
# library libepanet2.so
# make clean
# -Removes object and library files, returning the build directory
# to its pristine state.
@@ -31,15 +31,12 @@
SHELL = /bin/sh
# Target filenames
# svnname.sh constructs a name: <prefix><root><Rev><postfix>
# where <Rev> is the atomic revision number of the svn repo.
epanetsvnpath = ../../..
epanetrootname := $(shell ../svnname.sh $(epanetsvnpath) "" epanet_gcc_ "")
epanetrootname := epanet2
libname := lib$(epanetrootname).so
exename := $(epanetrootname)
# Shell wrapper
runcmdtemplate = runepanet.sh.template
runcmdname = $(shell ../svnname.sh $(epanetsvnpath) "" runepanet_ .sh)
runcmdname = runepanet2.sh
# Location of EPANET toolkit includes
epanetincludedir = ../../include
# Search path for sources