diff --git a/Makefile b/Makefile index 82c01b5..868c807 100644 --- a/Makefile +++ b/Makefile @@ -51,8 +51,8 @@ depend: install: $(INSTALL_TARGET) install-netgen: - @echo --- installing executable to $(DESTDIR)${BINDIR} - @echo --- installing run-time files to $(DESTDIR)${LIBDIR} + @echo --- installing executable to $(DESTDIR)${INSTALL_BINDIR} + @echo --- installing run-time files to $(DESTDIR)${INSTALL_LIBDIR} @${MAKE} install-real >> install.log install-real: install-dirs @@ -60,15 +60,15 @@ install-real: install-dirs (cd $$dir && ${MAKE} install); done install-tcl-dirs: - ${NETGENDIR}/scripts/mkdirs $(DESTDIR)${BINDIR} \ - $(DESTDIR)${TCLDIR} $(DESTDIR)${PYDIR} + ${NETGENDIR}/scripts/mkdirs $(DESTDIR)${INSTALL_BINDIR} \ + $(DESTDIR)${TCLDIR} $(DESTDIR)${INSTALL_PYDIR} install-dirs: - ${NETGENDIR}/scripts/mkdirs $(DESTDIR)${BINDIR} + ${NETGENDIR}/scripts/mkdirs $(DESTDIR)${INSTALL_BINDIR} install-tcl: install-dirs - @echo --- installing executable to $(DESTDIR)${BINDIR} - @echo --- installing run-time files to $(DESTDIR)${LIBDIR} + @echo --- installing executable to $(DESTDIR)${INSTALL_BINDIR} + @echo --- installing run-time files to $(DESTDIR)${INSTALL_LIBDIR} @${MAKE} install-tcl-real 2>&1 >> install.log install-tcl-real: install-tcl-dirs diff --git a/doc/Makefile b/doc/Makefile index bef3c29..ce02bda 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -2,11 +2,11 @@ NETGENDIR = .. include ${NETGENDIR}/defs.mak -MANDIRS = $(DESTDIR)${MANDIR} $(DESTDIR)${MANDIR}/man1 -DOCDIRS = $(DESTDIR)${DOCDIR} +MANDIRS = $(DESTDIR)${INSTALL_MANDIR} $(DESTDIR)${INSTALL_MANDIR}/man1 +DOCDIRS = $(DESTDIR)${INSTALL_DOCDIR} MANFILES = -DOCFILES = $(DESTDIR)${DOCDIR}/netgen.doc +DOCFILES = $(DESTDIR)${INSTALL_DOCDIR}/netgen.doc install-tcl: ${DOCDIRS} ${DOCFILES} @@ -23,8 +23,8 @@ make-doc-dirs: ${SCRIPTS}/mkdirs ${DOCDIRS} # This file does not actually exist. . . -$(DESTDIR)${MANDIR}/man1/netgen.1: netgen.1 ${MANDIRS} - ${CP} netgen.1 $(DESTDIR)${MANDIR}/man1/netgen.1 +$(DESTDIR)${INSTALL_MANDIR}/man1/netgen.1: netgen.1 ${MANDIRS} + ${CP} netgen.1 $(DESTDIR)${INSTALL_MANDIR}/man1/netgen.1 -$(DESTDIR)${DOCDIR}/netgen.doc: netgen.doc ${DOCDIRS} - ${CP} netgen.doc $(DESTDIR)${DOCDIR}/netgen.doc +$(DESTDIR)${INSTALL_DOCDIR}/netgen.doc: netgen.doc ${DOCDIRS} + ${CP} netgen.doc $(DESTDIR)${INSTALL_DOCDIR}/netgen.doc diff --git a/lib/Makefile b/lib/Makefile index b3cbf70..ce15afd 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -4,14 +4,14 @@ include ${NETGENDIR}/defs.mak LIB_FILES = ntk2adl.sh spice spice.bot spice.top -LIB_INST_FILES= $(LIB_FILES:%=$(DESTDIR)${LIBDIR}/netgen/%) -BIN_INST_FILES= $(BIN_FILES:%=$(DESTDIR)${BINDIR}/%) +LIB_INST_FILES= $(LIB_FILES:%=$(DESTDIR)${INSTALL_LIBDIR}/netgen/%) +BIN_INST_FILES= $(BIN_FILES:%=$(DESTDIR)${INSTALL_BINDIR}/%) install-tcl: ${LIB_INST_FILES} install: ${LIB_INST_FILES} -$(DESTDIR)${LIBDIR}/netgen/%: % - ../scripts/mkdirs $(DESTDIR)${LIBDIR}/netgen - ${RM} $(DESTDIR)${LIBDIR}/netgen/$* - ${CP} $* $(DESTDIR)${LIBDIR}/netgen/$* +$(DESTDIR)${INSTALL_LIBDIR}/netgen/%: % + ../scripts/mkdirs $(DESTDIR)${INSTALL_LIBDIR}/netgen + ${RM} $(DESTDIR)${INSTALL_LIBDIR}/netgen/$* + ${CP} $* $(DESTDIR)${INSTALL_LIBDIR}/netgen/$* diff --git a/netgen/Makefile b/netgen/Makefile index 52beff7..269dadb 100644 --- a/netgen/Makefile +++ b/netgen/Makefile @@ -25,23 +25,23 @@ tclnetgen${SHDLIB_EXT}: ${EXTRA_LIBS} ${LD_RUN_PATH} ${EXTRA_LIBS} ${LD_EXTRA_LIBS} \ -lc ${LIBS} ${LIB_SPECS} ${LDFLAGS} -$(DESTDIR)${BINDIR}/netgen: +$(DESTDIR)${INSTALL_BINDIR}/netgen: ${RM} $@ ${CP} netgen $@ -$(DESTDIR)${BINDIR}/ntk2adl: +$(DESTDIR)${INSTALL_BINDIR}/ntk2adl: ${RM} $@ ${CP} ntk2adl $@ -$(DESTDIR)${BINDIR}/ntk2xnf: +$(DESTDIR)${INSTALL_BINDIR}/ntk2xnf: ${RM} $@ ${CP} ntk2xnf $@ -$(DESTDIR)${BINDIR}/netcomp: +$(DESTDIR)${INSTALL_BINDIR}/netcomp: ${RM} $@ ${CP} netcomp $@ -$(DESTDIR)${BINDIR}/inetcomp: +$(DESTDIR)${INSTALL_BINDIR}/inetcomp: ${RM} $@ ${CP} inetcomp $@ @@ -61,14 +61,14 @@ ntk2xnf: ntk2xnf.c ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS} ntk2xnf.c -o $@ ${EXTRA_LIBS} \ ${LIBS} ${LDFLAGS} -install: $(DESTDIR)${BINDIR}/netgen $(DESTDIR)${BINDIR}/netcomp \ - $(DESTDIR)${BINDIR}/inetcomp $(DESTDIR)${BINDIR}/ntk2adl \ - $(DESTDIR)${BINDIR}/ntk2xnf +install: $(DESTDIR)${INSTALL_BINDIR}/netgen $(DESTDIR)${INSTALL_BINDIR}/netcomp \ + $(DESTDIR)${INSTALL_BINDIR}/inetcomp $(DESTDIR)${INSTALL_BINDIR}/ntk2adl \ + $(DESTDIR)${INSTALL_BINDIR}/ntk2xnf -install-tcl: $(DESTDIR)${TCLDIR} $(DESTDIR)${TCLDIR}/tclnetgen${SHDLIB_EXT} +install-tcl: $(DESTDIR)${INSTALL_TCLDIR} $(DESTDIR)${INSTALL_TCLDIR}/tclnetgen${SHDLIB_EXT} -$(DESTDIR)${TCLDIR}/tclnetgen${SHDLIB_EXT}: tclnetgen${SHDLIB_EXT} - ${RM} $(DESTDIR)${TCLDIR}/tclnetgen${SHDLIB_EXT} - ${CP} tclnetgen${SHDLIB_EXT} $(DESTDIR)${TCLDIR}/tclnetgen${SHDLIB_EXT} +$(DESTDIR)${INSTALL_TCLDIR}/tclnetgen${SHDLIB_EXT}: tclnetgen${SHDLIB_EXT} + ${RM} $(DESTDIR)${INSTALL_TCLDIR}/tclnetgen${SHDLIB_EXT} + ${CP} tclnetgen${SHDLIB_EXT} $(DESTDIR)${INSTALL_TCLDIR}/tclnetgen${SHDLIB_EXT} include ${NETGENDIR}/rules.mak diff --git a/python/Makefile b/python/Makefile index 9aca2f6..2cf2bc5 100644 --- a/python/Makefile +++ b/python/Makefile @@ -4,7 +4,7 @@ SRCS = SCRIPTS = consoletext.py helpwindow.py lvs_manager.py treeviewsplit.py SCRIPTS += tksimpledialog.py tooltip.py lvs_help.txt -SCRIPTINSTALL = $(DESTDIR)${PYDIR} +SCRIPTINSTALL = $(DESTDIR)${INSTALL_PYDIR} include ${NETGENDIR}/defs.mak @@ -12,11 +12,11 @@ main: lvs_manager.py tcl-main: lvs_manager.py -$(DESTDIR)${PYDIR}/consoletext.py: +$(DESTDIR)${INSTALL_PYDIR}/consoletext.py: ${RM} $@ ${CP} consoletext.py $@ -$(DESTDIR)${PYDIR}/helpwindow.py: +$(DESTDIR)${INSTALL_PYDIR}/helpwindow.py: ${RM} $@ ${CP} helpwindow.py $@ @@ -24,31 +24,31 @@ lvs_manager.py: lvs_manager.py.in sed -e '/SUBST_SCRIPT_DIR/s#SUBST_SCRIPT_DIR#$(SCRIPTINSTALL)#' \ lvs_manager.py.in > lvs_manager.py -$(DESTDIR)${PYDIR}/lvs_manager.py: lvs_manager.py +$(DESTDIR)${INSTALL_PYDIR}/lvs_manager.py: lvs_manager.py ${RM} $@ ${CP} lvs_manager.py $@ -$(DESTDIR)${PYDIR}/treeviewsplit.py: treeviewsplit.py +$(DESTDIR)${INSTALL_PYDIR}/treeviewsplit.py: treeviewsplit.py ${RM} $@ ${CP} treeviewsplit.py $@ -$(DESTDIR)${PYDIR}/tksimpledialog.py: tksimpledialog.py +$(DESTDIR)${INSTALL_PYDIR}/tksimpledialog.py: tksimpledialog.py ${RM} $@ ${CP} tksimpledialog.py $@ -$(DESTDIR)${PYDIR}/tooltip.py: tooltip.py +$(DESTDIR)${INSTALL_PYDIR}/tooltip.py: tooltip.py ${RM} $@ ${CP} tooltip.py $@ -$(DESTDIR)${PYDIR}/lvs_help.txt: lvs_help.txt +$(DESTDIR)${INSTALL_PYDIR}/lvs_help.txt: lvs_help.txt ${RM} $@ ${CP} lvs_help.txt $@ install: install-tcl -install-tcl: $(DESTDIR)${PYDIR} $(DESTDIR)${PYDIR}/consoletext.py \ - $(DESTDIR)${PYDIR}/helpwindow.py $(DESTDIR)${PYDIR}/lvs_manager.py \ - $(DESTDIR)${PYDIR}/treeviewsplit.py $(DESTDIR)${PYDIR}/tksimpledialog.py \ - $(DESTDIR)${PYDIR}/tooltip.py $(DESTDIR)${PYDIR}/lvs_help.txt +install-tcl: $(DESTDIR)${INSTALL_PYDIR} $(DESTDIR)${INSTALL_PYDIR}/consoletext.py \ + $(DESTDIR)${INSTALL_PYDIR}/helpwindow.py $(DESTDIR)${INSTALL_PYDIR}/lvs_manager.py \ + $(DESTDIR)${INSTALL_PYDIR}/treeviewsplit.py $(DESTDIR)${INSTALL_PYDIR}/tksimpledialog.py \ + $(DESTDIR)${INSTALL_PYDIR}/tooltip.py $(DESTDIR)${INSTALL_PYDIR}/lvs_help.txt include ${NETGENDIR}/rules.mak diff --git a/scripts/configure b/scripts/configure index 001921b..996acb4 100755 --- a/scripts/configure +++ b/scripts/configure @@ -633,6 +633,7 @@ gr_srcs gr_libs gr_dflags gr_cflags +dist_prefix cadinstall programs unused @@ -734,6 +735,7 @@ ac_subst_files='' ac_user_opts=' enable_option_checking with_gnu_ld +with_distdir with_interpreter with_tcl with_tk @@ -1372,6 +1374,7 @@ Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-distdir=DIR install into location DIR for distribution --with-interpreter=arg enable interpreter --with-tcl=DIR Find tclConfig.sh in DIR --with-tk=DIR Find tkConfig.sh in DIR @@ -4798,6 +4801,24 @@ usingTcl=1 usingX11= +# For distributed installs, where the run-time files are installed in a +# place that is a temporary staging area, like DESTDIR, but unlike DESTDIR, +# the prefix is replaced by the destination directory, rather than appended +# to it. +dist_prefix="\${exec_prefix}" + +# Check whether --with-distdir was given. +if test "${with_distdir+set}" = set; then : + withval=$with_distdir; + if test "$withval" = "no" -o "$withval" = "NO" ; then + dist_prefix="\${exec_prefix}" + else + dist_prefix=$arg + fi + +fi + + # Check whether --with-interpreter was given. if test "${with_interpreter+set}" = set; then : @@ -6587,6 +6608,7 @@ fi + ac_config_files="$ac_config_files defs.mak" diff --git a/scripts/configure.in b/scripts/configure.in index 601a6df..dac42f5 100644 --- a/scripts/configure.in +++ b/scripts/configure.in @@ -249,6 +249,20 @@ usingX11= dnl Compile-time options below. . . +# For distributed installs, where the run-time files are installed in a +# place that is a temporary staging area, like DESTDIR, but unlike DESTDIR, +# the prefix is replaced by the destination directory, rather than appended +# to it. +dist_prefix="\${exec_prefix}" +AC_ARG_WITH(distdir, +[ --with-distdir=DIR install into location DIR for distribution], [ + if test "$withval" = "no" -o "$withval" = "NO" ; then + dist_prefix="\${exec_prefix}" + else + dist_prefix=$arg + fi +], ) + AC_ARG_WITH(interpreter, [ --with-interpreter=[arg] enable interpreter], [ if test "$withval" = "no" -o "$withval" = "NO"; then @@ -1272,6 +1286,7 @@ AC_SUBST(modules) AC_SUBST(unused) AC_SUBST(programs) AC_SUBST(cadinstall) +AC_SUBST(dist_prefix) AC_SUBST(gr_cflags) AC_SUBST(gr_dflags) diff --git a/scripts/defs.mak.in b/scripts/defs.mak.in index 1c2e9ae..39f93a1 100644 --- a/scripts/defs.mak.in +++ b/scripts/defs.mak.in @@ -35,6 +35,13 @@ DOCDIR = ${libdir}/netgen/doc TCLDIR = ${libdir}/netgen/tcl PYDIR = ${libdir}/netgen/python +INSTALL_BINDIR = @dist_prefix@/bin +INSTALL_MANDIR = @dist_prefix@/share/man +INSTALL_LIBDIR = @dist_prefix@/lib +INSTALL_DOCDIR = ${INSTALL_LIBDIR}/netgen/doc +INSTALL_TCLDIR = ${INSTALL_LIBDIR}/netgen/tcl +INSTALL_PYDIR = ${INSTALL_LIBDIR}/netgen/python + MAIN_EXTRA_LIBS = @extra_libs@ LD_EXTRA_LIBS = @ld_extra_libs@ LD_SHARED = @ld_extra_objs@ diff --git a/tcltk/Makefile b/tcltk/Makefile index 861e185..56beeed 100644 --- a/tcltk/Makefile +++ b/tcltk/Makefile @@ -12,15 +12,15 @@ CLEANS += netgen.sh netgen.tcl netgenexec${EXEEXT} CFLAGS += -I${NETGENDIR}/base TCL_FILES = \ - $(DESTDIR)${TCLDIR}/tkcon.tcl \ - $(DESTDIR)${TCLDIR}/console.tcl \ - $(DESTDIR)${TCLDIR}/netgen.tcl + $(DESTDIR)${INSTALL_TCLDIR}/tkcon.tcl \ + $(DESTDIR)${INSTALL_TCLDIR}/console.tcl \ + $(DESTDIR)${INSTALL_TCLDIR}/netgen.tcl tcl-main: netgenexec${EXEEXT} netgen.tcl netgen.sh -install-tcl: netgenexec${EXEEXT} $(DESTDIR)${BINDIR}/netgen.sh ${TCL_FILES} - ${RM} $(DESTDIR)${TCLDIR}/netgenexec${EXEEXT} - ${CP} netgenexec${EXEEXT} $(DESTDIR)${TCLDIR}/netgenexec${EXEEXT} +install-tcl: netgenexec${EXEEXT} $(DESTDIR)${INSTALL_BINDIR}/netgen.sh ${TCL_FILES} + ${RM} $(DESTDIR)${INSTALL_TCLDIR}/netgenexec${EXEEXT} + ${CP} netgenexec${EXEEXT} $(DESTDIR)${INSTALL_TCLDIR}/netgenexec${EXEEXT} netgenexec${EXEEXT}: netgenexec.c ${CC} ${CFLAGS} ${CPPFLAGS} ${DFLAGS_NOSTUB} netgenexec.c \ @@ -39,13 +39,13 @@ netgen.sh: netgen.sh.in -e 's%WISH_EXE%${WISH_EXE}%g' \ netgen.sh.in > netgen.sh -$(DESTDIR)${TCLDIR}/%: % - ${RM} $(DESTDIR)${TCLDIR}/$* - ${CP} $* $(DESTDIR)${TCLDIR}/$* +$(DESTDIR)${INSTALL_TCLDIR}/%: % + ${RM} $(DESTDIR)${INSTALL_TCLDIR}/$* + ${CP} $* $(DESTDIR)${INSTALL_TCLDIR}/$* -$(DESTDIR)${BINDIR}/netgen.sh: netgen.sh - ${RM} $(DESTDIR)${BINDIR}/netgen.sh $(DESTDIR)${BINDIR}/netgen - ${CP} netgen.sh $(DESTDIR)${BINDIR}/netgen - (cd $(DESTDIR)${BINDIR}; chmod 0755 netgen) +$(DESTDIR)${INSTALL_BINDIR}/netgen.sh: netgen.sh + ${RM} $(DESTDIR)${INSTALL_BINDIR}/netgen.sh $(DESTDIR)${INSTALL_BINDIR}/netgen + ${CP} netgen.sh $(DESTDIR)${INSTALL_BINDIR}/netgen + (cd $(DESTDIR)${INSTALL_BINDIR}; chmod 0755 netgen) include ${NETGENDIR}/rules.mak