support_cpp_scripts
changeset 52 835983eae74b
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/support_cpp_scripts	Thu Oct 30 11:35:04 2008 +0000
     1.3 @@ -0,0 +1,189 @@
     1.4 +Add Makefile/configure support for C++ version of mkoctfile, octave-config and octave-bug
     1.5 +
     1.6 +diff -r 229bd50e6e8f ChangeLog
     1.7 +--- a/ChangeLog	Tue Sep 09 18:56:51 2008 -0400
     1.8 ++++ b/ChangeLog	Wed Sep 10 13:00:54 2008 +0200
     1.9 +@@ -1,3 +1,20 @@
    1.10 ++2008-09-10  Michael Goffioul <michael.goffioul@gmail.com>
    1.11 ++
    1.12 ++	* configure.in (SCRIPTS_EXE_SUFFIX): New substituted
    1.13 ++	variable. Define to ".exe" for MSVC compilation.
    1.14 ++	* octMakefile.in (SCRIPTS_EXE_SUFFIX): New variable.
    1.15 ++	(DISTFILES): Add mkoctfile.cc.in, octave-config.cc.in and
    1.16 ++	octave-bug.cc.in.
    1.17 ++	(SHELL_SCRIPTS): Use SCRIPTS_EXE_SUFFIX.
    1.18 ++	(mkoctfile.cc, mkoctfile$(EXEEXT)): New build rules.
    1.19 ++	(octave-config.cc, octave-config$(EXEEXT)): Likewise.
    1.20 ++	(octave-bug.cc, octave-bug$(EXEEXT)): Likewise.
    1.21 ++	(install, install-strip, uninstall): Use SCRIPTS_EXE_SUFFIX.
    1.22 ++	(maintainer-clean, distclean): Remove mkoctfile.[cc|o|exe],
    1.23 ++	octave-config.[cc|o|exe] and octave-bug.[cc|o|exe].
    1.24 ++	(clean): Remove mkoctfile$(EXEEXT), octave-config$(EXEEXT),
    1.25 ++	octave-bug$(EXEEXT) and the corresponding object files.
    1.26 ++
    1.27 + 2008-09-08  John W. Eaton  <jwe@octave.org>
    1.28 + 
    1.29 + 	* mkoctfile.cc.in, octave-bug.cc.in, octave-config.cc.in: Style fixes.
    1.30 +diff -r 229bd50e6e8f configure.in
    1.31 +--- a/configure.in	Tue Sep 09 18:56:51 2008 -0400
    1.32 ++++ b/configure.in	Wed Sep 10 13:00:54 2008 +0200
    1.33 +@@ -1115,6 +1115,7 @@
    1.34 + OCTINTERP_DLL_DEFS=
    1.35 + OCTGRAPHICS_DLL_DEFS=
    1.36 + library_path_var=LD_LIBRARY_PATH
    1.37 ++SCRIPTS_EXE_SUFFIX=
    1.38 + case "$canonical_host_type" in
    1.39 +   *-*-386bsd* | *-*-netbsd*)
    1.40 +     SH_LD=ld
    1.41 +@@ -1188,6 +1189,7 @@
    1.42 +     OCTAVE_DLL_DEFS="-DOCTAVE_DLL"
    1.43 +     OCTINTERP_DLL_DEFS="-DOCTINTERP_DLL"
    1.44 +     OCTGRAPHICS_DLL_DEFS="-DOCTGRAPHICS_DLL"
    1.45 ++    SCRIPTS_EXE_SUFFIX='$(EXEEXT)'
    1.46 +   ;;
    1.47 +   *-*-linux* | *-*-gnu*)
    1.48 +     MKOCTFILE_DL_LDFLAGS="-shared -Wl,-Bsymbolic"
    1.49 +@@ -1319,6 +1321,7 @@
    1.50 + AC_SUBST(OCTINTERP_DLL_DEFS)
    1.51 + AC_SUBST(OCTGRAPHICS_DLL_DEFS)
    1.52 + AC_SUBST(library_path_var)
    1.53 ++AC_SUBST(SCRIPTS_EXE_SUFFIX)
    1.54 + 
    1.55 + ### special checks for odd OS specific things.
    1.56 + ###
    1.57 +diff -r 229bd50e6e8f octMakefile.in
    1.58 +--- a/octMakefile.in	Tue Sep 09 18:56:51 2008 -0400
    1.59 ++++ b/octMakefile.in	Wed Sep 10 13:00:54 2008 +0200
    1.60 +@@ -26,6 +26,8 @@
    1.61 + abs_top_srcdir = @abs_top_srcdir@
    1.62 + VPATH = @srcdir@
    1.63 + 
    1.64 ++SCRIPTS_EXE_SUFFIX = @SCRIPTS_EXE_SUFFIX@
    1.65 ++
    1.66 + include $(TOPDIR)/Makeconf
    1.67 + 
    1.68 + INSTALL = @INSTALL@
    1.69 +@@ -46,9 +48,9 @@
    1.70 + 	COPYING INSTALL NEWS \
    1.71 + 	NEWS.[0-9] PROJECTS README README.Linux README.Windows \
    1.72 + 	README.Cygwin README.MSVC README.kpathsea ROADMAP SENDING-PATCHES \
    1.73 +-	THANKS move-if-change octave-sh octave-bug.in \
    1.74 +-	octave-config.in missing mk-opts.pl mkinstalldirs \
    1.75 +-	mkoctfile.in run-octave.in ChangeLog ChangeLog.[0-9]
    1.76 ++	THANKS move-if-change octave-sh octave-bug.cc.in octave-bug.in \
    1.77 ++	octave-config.in octave-config.cc.in missing mk-opts.pl mkinstalldirs \
    1.78 ++	mkoctfile.in mkoctfile.cc.in run-octave.in ChangeLog ChangeLog.[0-9]
    1.79 + 
    1.80 + # Subdirectories in which to run `make all'.
    1.81 + SUBDIRS = libcruft liboctave src scripts doc examples
    1.82 +@@ -71,7 +73,8 @@
    1.83 +   $(localapioctfiledir) $(localveroctfiledir) $(imagedir) $(archlibdir) \
    1.84 +   $(localarchlibdir) $(localapiarchlibdir) $(localverarchlibdir)
    1.85 + 
    1.86 +-SHELL_SCRIPTS = octave-bug octave-config mkoctfile run-octave
    1.87 ++SHELL_SCRIPTS = octave-bug$(SCRIPTS_EXE_SUFFIX) octave-config$(SCRIPTS_EXE_SUFFIX) \
    1.88 ++		mkoctfile$(SCRIPTS_EXE_SUFFIX)  run-octave
    1.89 + 
    1.90 + all: $(SHELL_SCRIPTS) $(filter-out libcruft liboctave, $(SUBDIRS)) dist-info-files
    1.91 + 	@echo ""
    1.92 +@@ -95,13 +98,40 @@
    1.93 + 	@$(do-subst-config-vals)
    1.94 + 	chmod a+rx $@
    1.95 + 
    1.96 ++octave-bug.cc: octave-bug.cc.in Makeconf octMakefile
    1.97 ++	@$(do-subst-config-vals)
    1.98 ++
    1.99 ++ifneq ($(EXEEXT),)
   1.100 ++octave-bug$(EXEEXT): octave-bug.o
   1.101 ++	$(LD_CXX) $(CPPFLAGS) $(ALL_CXXFLAGS) $(RDYNAMIC_FLAG) \
   1.102 ++	    $(ALL_LDFLAGS) -o $@ octave-bug.o
   1.103 ++endif
   1.104 ++
   1.105 + octave-config: octave-config.in Makeconf octMakefile $(top_srcdir)/src/version.h
   1.106 + 	@$(do-subst-default-vals)
   1.107 + 	chmod a+rx $@
   1.108 + 
   1.109 ++octave-config.cc: octave-config.cc.in Makeconf octMakefile
   1.110 ++	@$(do-subst-default-vals)
   1.111 ++
   1.112 ++ifneq ($(EXEEXT),)
   1.113 ++octave-config$(EXEEXT): octave-config.o
   1.114 ++	$(LD_CXX) $(CPPFLAGS) $(ALL_CXXFLAGS) $(RDYNAMIC_FLAG) \
   1.115 ++	    $(ALL_LDFLAGS) -o $@ octave-config.o
   1.116 ++endif
   1.117 ++
   1.118 + mkoctfile: mkoctfile.in Makeconf octMakefile $(top_srcdir)/src/version.h
   1.119 + 	@$(do-subst-config-vals)
   1.120 + 	chmod a+rx $@
   1.121 ++
   1.122 ++mkoctfile.cc: mkoctfile.cc.in Makeconf octMakefile
   1.123 ++	@$(do-subst-config-vals)
   1.124 ++
   1.125 ++ifneq ($(EXEEXT),)
   1.126 ++mkoctfile$(EXEEXT): mkoctfile.o
   1.127 ++	$(LD_CXX) $(CPPFLAGS) $(ALL_CXXFLAGS) $(RDYNAMIC_FLAG) \
   1.128 ++	    $(ALL_LDFLAGS) -o $@ mkoctfile.o
   1.129 ++endif
   1.130 + 
   1.131 + run-octave: run-octave.in Makeconf octMakefile
   1.132 + 	@$(do-subst-script-vals)
   1.133 +@@ -122,25 +152,29 @@
   1.134 + install install-strip ::
   1.135 + 	$(top_srcdir)/mkinstalldirs $(addprefix $(DESTDIR), $(DIRS_TO_MAKE))
   1.136 + 	rm -f $(DESTDIR)$(bindir)/octave-bug
   1.137 +-	$(INSTALL_SCRIPT) octave-bug $(DESTDIR)$(bindir)/octave-bug-$(version)
   1.138 +-	(cd $(DESTDIR)$(bindir); $(LN_S) octave-bug-$(version) $(DESTDIR)$(bindir)/octave-bug)
   1.139 +-	rm -f $(DESTDIR)$(bindir)/octave-config
   1.140 ++	$(INSTALL_SCRIPT) octave-bug$(SCRIPTS_EXE_SUFFIX) \
   1.141 ++	    $(DESTDIR)$(bindir)/octave-bug-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.142 ++	(cd $(DESTDIR)$(bindir); $(LN_S) octave-bug-$(version)$(SCRIPTS_EXE_SUFFIX) \
   1.143 ++	    $(DESTDIR)$(bindir)/octave-bug$(SCRIPTS_EXE_SUFFIX))
   1.144 ++	rm -f $(DESTDIR)$(bindir)/octave-config$(SCRIPTS_EXE_SUFFIX)
   1.145 + 	$(INSTALL_SCRIPT) \
   1.146 +-	  octave-config $(DESTDIR)$(bindir)/octave-config-$(version)
   1.147 +-	(cd $(DESTDIR)$(bindir); $(LN_S) octave-config-$(version) $(DESTDIR)$(bindir)/octave-config)
   1.148 +-	rm -f $(DESTDIR)$(bindir)/mkoctfile
   1.149 +-	$(INSTALL_SCRIPT) mkoctfile $(DESTDIR)$(bindir)/mkoctfile-$(version)
   1.150 +-	(cd $(DESTDIR)$(bindir); $(LN_S) mkoctfile-$(version) $(DESTDIR)$(bindir)/mkoctfile)
   1.151 ++	  octave-config$(SCRIPTS_EXE_SUFFIX)  $(DESTDIR)$(bindir)/octave-config-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.152 ++	(cd $(DESTDIR)$(bindir); $(LN_S) octave-config-$(version)$(SCRIPTS_EXE_SUFFIX) \
   1.153 ++	    $(DESTDIR)$(bindir)/octave-config$(SCRIPTS_EXE_SUFFIX))
   1.154 ++	rm -f $(DESTDIR)$(bindir)/mkoctfile$(SCRIPTS_EXE_SUFFIX)
   1.155 ++	$(INSTALL_SCRIPT) mkoctfile$(SCRIPTS_EXE_SUFFIX) $(DESTDIR)$(bindir)/mkoctfile-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.156 ++	(cd $(DESTDIR)$(bindir); $(LN_S) mkoctfile-$(version)$(SCRIPTS_EXE_SUFFIX) \
   1.157 ++	    $(DESTDIR)$(bindir)/mkoctfile$(SCRIPTS_EXE_SUFFIX))
   1.158 + 	$(INSTALL_DATA) config.h $(DESTDIR)$(octincludedir)/octave/config.h
   1.159 + 	$(INSTALL_DATA) $(srcdir)/NEWS $(DESTDIR)$(datadir)/octave/$(version)/NEWS
   1.160 + 
   1.161 + uninstall::
   1.162 +-	rm -f $(DESTDIR)$(bindir)/octave-bug
   1.163 +-	rm -f $(DESTDIR)$(bindir)/octave-bug-$(version)
   1.164 +-	rm -f $(DESTDIR)$(bindir)/octave-config
   1.165 +-	rm -f $(DESTDIR)$(bindir)/octave-config-$(version)
   1.166 +-	rm -f $(DESTDIR)$(bindir)/mkoctfile
   1.167 +-	rm -f $(DESTDIR)$(bindir)/mkoctfile-$(version)
   1.168 ++	rm -f $(DESTDIR)$(bindir)/octave-bug$(SCRIPTS_EXE_SUFFIX)
   1.169 ++	rm -f $(DESTDIR)$(bindir)/octave-bug-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.170 ++	rm -f $(DESTDIR)$(bindir)/octave-config$(SCRIPTS_EXE_SUFFIX)
   1.171 ++	rm -f $(DESTDIR)$(bindir)/octave-config-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.172 ++	rm -f $(DESTDIR)$(bindir)/mkoctfile$(SCRIPTS_EXE_SUFFIX)
   1.173 ++	rm -f $(DESTDIR)$(bindir)/mkoctfile-$(version)$(SCRIPTS_EXE_SUFFIX)
   1.174 + 	rm -f $(DESTDIR)$(octincludedir)/octave/config.h
   1.175 + 	rm -f $(DESTDIR)$(datadir)/octave/$(version)/NEWS
   1.176 + 
   1.177 +@@ -167,10 +201,15 @@
   1.178 + 	rm -f config.cache config.h config.log config.status
   1.179 + 	rm -rf autom4te.cache
   1.180 + 	rm -f $(SHELL_SCRIPTS)
   1.181 ++	rm -f mkoctfile.cc octave-config.cc octave-bug.cc
   1.182 + 	rm -f unistd.h
   1.183 + 
   1.184 + maintainer-clean::
   1.185 + 	rm -f configure config.h.in BUGS INSTALL.OCTAVE
   1.186 ++
   1.187 ++maintainer-clean distclean clean::
   1.188 ++	rm -f mkoctfile$(EXEEXT) octave-config$(EXEEXT) octave-bug$(EXEEXT)
   1.189 ++	rm -f mkoctfile.o octave-config.o octave-bug.o
   1.190 + 
   1.191 + # Rules for making a source distribution.
   1.192 +