Mercurial > octave-nkf
view src/Makefile.in @ 8968:91d53dc37f79
Add perm * sparse, perm \ sparse, sparse * perm, and sparse / perm operations.
Nothing terribly fancy in any of this. There probably is some
mechanism for using the permutation vectors and some assign or index
method in the sparse classes, but I've never understood all the
intricacies. I'm opting for a simple implementation at the cost of
possibly duplicating some functionality.
author | Jason Riedy <jason@acm.org> |
---|---|
date | Tue, 10 Mar 2009 21:54:44 -0400 |
parents | f4f4d65faaa0 |
children | 71fca0fc2436 |
line wrap: on
line source
# Makefile for octave's src directory # # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 John W. Eaton # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. TOPDIR = .. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@:@srcdir@/DLD-FUNCTIONS:@srcdir@/OPERATORS:@srcdir@/TEMPLATE-INST include $(TOPDIR)/Makeconf DLL_CDEFS = @OCTINTERP_DLL_DEFS@ DLL_CXXDEFS = @OCTINTERP_DLL_DEFS@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ PT_FLAGS = -fexternal-templates -fno-implicit-templates CXXFLAGS_NO_PT_FLAGS = $(filter-out $(PT_FLAGS), $(ALL_CXXFLAGS)) %.df : %.cc @echo making $@ from $< @(echo "// DO NOT EDIT! Generated automatically by mkdefs." ; \ egrep '^(///*|/\*) *PKG_ADD:' $< ; \ $(CXXCPP) $(CPPFLAGS) $(CXXFLAGS_NO_PT_FLAGS) -DMAKE_BUILTINS $< \ | $(srcdir)/mkdefs) > $@-t @mv $@-t $@ # How to make a .oct file from a .o file: ifeq ($(ENABLE_DYNAMIC_LINKING), true) ifdef CXXPICFLAG %.oct : pic/%.o octave$(EXEEXT) $(DL_LD) $(DL_LDFLAGS) -o $@ $< $(OCT_LINK_DEPS) else %.oct : %.o octave$(EXEEXT) $(DL_LD) $(DL_LDFLAGS) -o $@ $< $(OCT_LINK_DEPS) endif endif OPT_BASE := $(addsuffix -opts, DASPK DASRT DASSL LSODE Quad) OPT_HANDLERS := $(addsuffix .cc, $(OPT_BASE)) OPT_IN := $(addprefix ../liboctave/, $(addsuffix .in, $(OPT_BASE))) OPT_INC := $(addprefix ../liboctave/, $(addsuffix .h, $(OPT_BASE))) DLD_XSRC := amd.cc balance.cc besselj.cc betainc.cc bsxfun.cc \ cellfun.cc chol.cc ccolamd.cc colamd.cc colloc.cc \ conv2.cc convhulln.cc daspk.cc dasrt.cc dassl.cc det.cc \ dispatch.cc dlmread.cc dmperm.cc eig.cc eigs.cc fft.cc \ fft2.cc fftn.cc fftw.cc filter.cc find.cc fltk_backend.cc \ gammainc.cc gcd.cc getgrent.cc getpwent.cc getrusage.cc \ givens.cc hess.cc hex2num.cc inv.cc kron.cc lookup.cc \ lsode.cc lu.cc luinc.cc matrix_type.cc max.cc md5sum.cc \ pinv.cc qr.cc quad.cc qz.cc rand.cc rcond.cc regexp.cc \ schur.cc sparse.cc spparms.cc sqrtm.cc svd.cc syl.cc \ symrcm.cc symbfact.cc time.cc tsearch.cc typecast.cc \ urlwrite.cc __contourc__.cc __delaunayn__.cc \ __dsearchn__.cc __glpk__.cc __lin_interpn__.cc \ __magick_read__.cc __pchip_deriv__.cc __qp__.cc \ __voronoi__.cc __convn__.cc DLD_SRC := $(addprefix DLD-FUNCTIONS/, $(DLD_XSRC)) DLD_OBJ_1 := $(patsubst %.l, %.o, $(DLD_XSRC)) DLD_OBJ := $(patsubst %.cc, %.o, $(DLD_OBJ_1)) ifeq ($(ENABLE_DYNAMIC_LINKING), true) OCT_FILES := $(patsubst %.o, %.oct, $(DLD_OBJ)) ifdef CXXPICFLAG DLD_PICOBJ := $(addprefix pic/, $(DLD_OBJ)) else DLD_PICOBJ := $(DLD_OBJ) endif else DLD_STATIC_OBJ := $(DLD_OBJ) endif OV_INTTYPE_INC := ov-base-int.h ov-int-traits.h ov-intx.h \ ov-int8.h ov-int16.h ov-int32.h ov-int64.h \ ov-uint8.h ov-uint16.h ov-uint32.h ov-uint64.h OV_INCLUDES := ov-re-mat.h ov-cx-mat.h ov-ch-mat.h ov-cs-list.h ov-list.h \ ov-struct.h ov-scalar.h ov-range.h ov-complex.h \ ov-colon.h ov-base.h ov-base-mat.h ov-base-scalar.h \ ov-str-mat.h ov-bool-mat.h ov-null-mat.h ov-bool.h \ ov-base-diag.h ov-re-diag.h ov-flt-re-diag.h ov-cx-diag.h \ ov-flt-cx-diag.h ov-perm.h \ ov-cell.h ov.h ov-fcn.h ov-builtin.h ov-dld-fcn.h \ ov-mex-fcn.h ov-usr-fcn.h ov-fcn-handle.h \ ov-fcn-inline.h ov-class.h ov-typeinfo.h ov-type-conv.h \ ov-flt-re-mat.h ov-flt-cx-mat.h ov-float.h ov-flt-complex.h \ $(OV_INTTYPE_INC) OV_SPARSE_INCLUDES := \ ov-base-sparse.h ov-bool-sparse.h ov-cx-sparse.h ov-re-sparse.h PT_INCLUDES := pt.h pt-all.h pt-arg-list.h pt-assign.h pt-binop.h \ pt-bp.h pt-cbinop.h pt-cell.h pt-check.h pt-cmd.h pt-colon.h \ pt-const.h pt-decl.h pt-eval.h pt-except.h pt-exp.h pt-fcn-handle.h \ pt-id.h pt-idx.h pt-jump.h pt-loop.h pt-mat.h pt-misc.h \ pt-pr-code.h pt-select.h pt-stmt.h pt-unop.h pt-walk.h INCLUDES := Cell.h base-list.h builtins.h c-file-ptr-stream.h \ comment-list.h debug.h defun-dld.h defun-int.h defun.h \ dirfns.h display.h dynamic-ld.h error.h file-io.h gl-render.h \ gripes.h help.h input.h lex.h load-path.h load-save.h ls-hdf5.h \ ls-mat-ascii.h ls-mat4.h ls-mat5.h ls-oct-ascii.h ls-ascii-helper.h \ ls-oct-binary.h ls-utils.h mex.h mexproto.h oct-errno.h \ oct-fstrm.h oct-hdf5.h oct-hist.h oct-iostrm.h oct-map.h oct-obj.h \ oct-prcstrm.h oct-procbuf.h oct-stdstrm.h oct-stream.h \ zfstream.h oct-strstrm.h oct-lvalue.h oct.h octave.h ops.h \ pager.h parse.h pr-output.h procstream.h sighandlers.h \ siglist.h sparse-xdiv.h sparse-xpow.h symtab.h sysdep.h \ token.h toplev.h unwind-prot.h utils.h variables.h \ version.h xdiv.h xnorm.h xpow.h \ $(OV_INCLUDES) \ $(PT_INCLUDES) \ $(OV_SPARSE_INCLUDES) TI_XSRC := Array-os.cc Array-tc.cc TI_SRC := $(addprefix TEMPLATE-INST/, $(TI_XSRC)) INTTYPE_OP_XSRC := op-int-concat.cc op-int-conv.cc \ op-i8-i8.cc op-i16-i16.cc op-i32-i32.cc op-i64-i64.cc \ op-ui8-ui8.cc op-ui16-ui16.cc op-ui32-ui32.cc op-ui64-ui64.cc SPARSE_OP_XSRC := op-bm-sbm.cc op-b-sbm.cc op-cm-scm.cc op-cm-sm.cc \ op-cs-scm.cc op-cs-sm.cc op-m-scm.cc op-m-sm.cc op-sbm-b.cc \ op-sbm-bm.cc op-sbm-sbm.cc op-scm-cm.cc op-scm-cs.cc op-scm-m.cc \ op-scm-s.cc op-scm-scm.cc op-scm-sm.cc op-sm-cm.cc \ op-sm-cs.cc op-sm-m.cc op-sm-s.cc op-sm-scm.cc op-sm-sm.cc \ op-s-scm.cc op-s-sm.cc DOUBLE_OP_XSRC := op-double-conv.cc op-cm-cm.cc op-cm-cs.cc op-cm-m.cc \ op-cm-s.cc op-cs-cm.cc op-cs-cs.cc op-cs-m.cc \ op-cs-s.cc op-m-cm.cc \ op-m-cs.cc op-m-m.cc op-m-s.cc op-s-cm.cc \ op-s-cs.cc op-s-m.cc op-s-s.cc FLOAT_OP_XSRC := op-float-conv.cc op-fcm-fcm.cc op-fcm-fcs.cc op-fcm-fm.cc \ op-fcm-fs.cc op-fcs-fcm.cc op-fcs-fcs.cc op-fcs-fm.cc \ op-fcs-fs.cc op-fm-fcm.cc \ op-fm-fcs.cc op-fm-fm.cc op-fm-fs.cc op-fs-fcm.cc \ op-fs-fcs.cc op-fs-fm.cc op-fs-fs.cc DIAG_OP_XSRC := op-cdm-cdm.cc op-cdm-cm.cc op-cdm-cs.cc op-cdm-dm.cc \ op-cdm-m.cc op-cdm-s.cc op-cm-cdm.cc op-cm-dm.cc op-dm-cdm.cc \ op-dm-cm.cc op-dm-cs.cc op-dm-dm.cc op-dm-m.cc op-dm-s.cc \ op-m-cdm.cc op-m-dm.cc op-dm-sm.cc op-dm-scm.cc FDIAG_OP_XSRC := op-fcdm-fcdm.cc op-fcdm-fcm.cc op-fcdm-fcs.cc op-fcdm-fdm.cc \ op-fcdm-fm.cc op-fcdm-fs.cc op-fcm-fcdm.cc op-fcm-fdm.cc \ op-fdm-fcdm.cc op-fdm-fcm.cc op-fdm-fcs.cc op-fdm-fdm.cc \ op-fdm-fm.cc op-fdm-fs.cc op-fm-fcdm.cc op-fm-fdm.cc PERM_OP_XSRC := op-cm-pm.cc op-fcm-pm.cc op-fm-pm.cc op-pm-fcm.cc \ op-pm-fm.cc op-m-pm.cc op-pm-cm.cc op-pm-m.cc op-pm-pm.cc \ op-pm-sm.cc op-pm-scm.cc OP_XSRC := op-b-b.cc op-b-bm.cc op-bm-b.cc op-bm-bm.cc op-cell.cc \ op-chm.cc op-class.cc op-list.cc op-range.cc op-str-m.cc \ op-str-s.cc op-str-str.cc op-struct.cc \ $(DOUBLE_OP_XSRC) $(FLOAT_OP_XSRC) $(INTTYPE_OP_XSRC) \ $(SPARSE_OP_XSRC) $(DIAG_OP_XSRC) $(FDIAG_OP_XSRC) $(PERM_OP_XSRC) OP_SRC := $(addprefix OPERATORS/, $(OP_XSRC)) OP_INCLUDES := OPERATORS/op-int.h \ OPERATORS/op-dm-template.cc OPERATORS/op-dms-template.cc OPERATORS/op-pm-template.cc OV_INTTYPE_SRC := \ ov-int8.cc ov-int16.cc ov-int32.cc ov-int64.cc \ ov-uint8.cc ov-uint16.cc ov-uint32.cc ov-uint64.cc OV_SPARSE_SRC := \ ov-base-sparse.cc ov-bool-sparse.cc ov-cx-sparse.cc ov-re-sparse.cc OV_SRC := ov-base.cc ov-ch-mat.cc \ ov-cs-list.cc ov-list.cc ov-re-mat.cc ov-cx-mat.cc \ ov-range.cc ov-scalar.cc ov-complex.cc ov-str-mat.cc \ ov-struct.cc \ ov-colon.cc ov-bool-mat.cc ov-bool.cc ov-null-mat.cc ov-cell.cc \ ov.cc ov-fcn.cc ov-builtin.cc ov-dld-fcn.cc \ ov-mex-fcn.cc ov-usr-fcn.cc ov-fcn-handle.cc ov-fcn-inline.cc \ ov-class.cc ov-typeinfo.cc \ ov-flt-re-mat.cc ov-flt-cx-mat.cc ov-float.cc ov-flt-complex.cc \ ov-re-diag.cc ov-flt-re-diag.cc ov-cx-diag.cc ov-flt-cx-diag.cc \ ov-perm.cc \ $(OV_INTTYPE_SRC) \ $(OV_SPARSE_SRC) PT_SRC := pt.cc pt-arg-list.cc pt-assign.cc pt-bp.cc pt-binop.cc \ pt-cbinop.cc pt-cell.cc pt-check.cc pt-cmd.cc pt-colon.cc \ pt-const.cc pt-decl.cc pt-eval.cc pt-except.cc pt-exp.cc \ pt-fcn-handle.cc pt-id.cc pt-idx.cc pt-jump.cc pt-loop.cc \ pt-mat.cc pt-misc.cc pt-pr-code.cc pt-select.cc pt-stmt.cc \ pt-unop.cc DIST_SRC := Cell.cc bitfcns.cc c-file-ptr-stream.cc comment-list.cc \ cutils.c data.cc debug.cc defaults.cc defun.cc dirfns.cc \ display.cc dynamic-ld.cc error.cc file-io.cc gl-render.cc \ graphics.cc gripes.cc help.cc input.cc lex.l load-path.cc \ load-save.cc ls-hdf5.cc ls-mat-ascii.cc ls-mat4.cc \ ls-mat5.cc ls-oct-ascii.cc ls-ascii-helper.cc \ ls-oct-binary.cc ls-utils.cc main.c mappers.cc matherr.c \ mex.cc oct-fstrm.cc oct-hist.cc oct-iostrm.cc oct-map.cc \ oct-obj.cc oct-prcstrm.cc oct-procbuf.cc oct-stream.cc \ octave.cc zfstream.cc oct-strstrm.cc oct-lvalue.cc pager.cc \ parse.y pr-output.cc procstream.cc sighandlers.cc \ siglist.c sparse-xdiv.cc sparse-xpow.cc strfns.cc \ syscalls.cc symtab.cc sysdep.cc token.cc toplev.cc \ unwind-prot.cc utils.cc variables.cc xdiv.cc xnorm.cc xpow.cc \ $(OV_SRC) \ $(PT_SRC) SOURCES := $(DIST_SRC) $(OP_SRC) $(TI_SRC) BUILT_EXTRAS := graphics.h mxarray.h EXTRAS := ov-base-int.cc ov-base-mat.cc ov-base-diag.cc ov-base-scalar.cc graphics-props.cc EXTRA_OBJECTS := oct-errno.o octave.o builtins.o ops.o INCLUDES_FOR_INSTALL := $(INCLUDES) $(EXTRAS) $(BUILT_EXTRAS) OBJECTS_4 := $(notdir $(SOURCES)) OBJECTS_3 := $(patsubst %.l, %.o, $(OBJECTS_4)) OBJECTS_2 := $(patsubst %.y, %.o, $(OBJECTS_3)) OBJECTS_1 := $(patsubst %.c, %.o, $(OBJECTS_2)) OBJECTS := $(patsubst %.cc, %.o, $(OBJECTS_1)) $(EXTRA_OBJECTS) ifeq ($(SHARED_LIBS), true) ifdef CXXPICFLAG PICOBJ := $(addprefix pic/, $(OBJECTS)) else PICOBJ := $(OBJECTS) endif endif # Ugh. DEP_5 := $(SOURCES) $(DLD_SRC) builtins.cc oct-errno.cc ops.cc main.c DEP_4 := $(notdir $(DEP_5)) DEP_3 := $(patsubst %.l, %.cc, $(DEP_4)) DEP_2 := $(patsubst %.y, %.cc, $(DEP_3)) DEP_1 := $(patsubst %.c, %.d, $(DEP_2)) MAKEDEPS := $(patsubst %.cc, %.d, $(DEP_1)) # Some stupid egreps don't like empty elements in alternation patterns, # so we have to repeat ourselves because some stupid egreps don't like # empty elements in alternation patterns. DEFUN_PATTERN = "^[ \t]*DEF(CONSTFUN|CMD|UN|UN_DLD|UNX_DLD|UN_TEXT)[ \t]*\\(" DLD_DEF_FILES_1 := $(patsubst %.l, %.df, $(DLD_XSRC)) DLD_DEF_FILES := $(patsubst %.cc, %.df, $(DLD_DEF_FILES_1)) DEF_4 := $(addprefix $(srcdir)/, $(SOURCES)) DEF_3 := $(notdir $(shell egrep -l $(DEFUN_PATTERN) $(DEF_4))) DEF_2 := $(patsubst %.y, %.df, $(DEF_3)) DEF_1 := $(patsubst %.l, %.df, $(DEF_2)) DEF_FILES := $(patsubst %.cc, %.df, $(DEF_1)) $(DLD_DEF_FILES) DOC_FILES := $(sort $(DEF_FILES)) OCTAVE_LFLAGS = -L$(TOPDIR)/liboctave -L$(TOPDIR)/libcruft \ -L$(TOPDIR)/src $(RLD_FLAG) ifeq ($(ENABLE_DYNAMIC_LINKING), true) OCTAVE_LIBS = $(LIBOCTINTERP) $(LIBOCTAVE) \ $(SPECIAL_MATH_LIB) $(LIBCRUFT) \ $(LIBPLPLOT) $(LIBGLOB) else OCTAVE_LIBS = $(LIBOCTINTERP) $(LIBOCTAVE) $(QHULL_LIBS) \ $(GLPK_LIBS) $(MAGICK_LIBS) $(REGEX_LIBS) $(SPECIAL_MATH_LIB) $(LIBCRUFT) \ $(LIBPLPLOT) $(LIBGLOB) endif OCTINTERP_LINK_DEPS = \ -L../liboctave $(LIBOCTAVE) -L../libcruft $(LIBCRUFT) $(LIBS) $(FLIBS) \ $(OPENGL_LIBS) OCT_LINK_DEPS = \ -L../libcruft $(LIBCRUFT) -L../liboctave $(LIBOCTAVE) \ -L. $(LIBOCTINTERP) $(CHOLMOD_LIBS) $(UMFPACK_LIBS) $(AMD_LIBS) \ $(CAMD_LIBS) $(COLAMD_LIBS) $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) $(BLAS_LIBS) \ $(FFTW_LIBS) $(QRUPDATE_LIBS) $(ARPACK_LIBS) $(LIBS) $(FLIBS) BUILT_DISTFILES = DOCSTRINGS oct-gperf.h parse.cc lex.cc y.tab.h \ $(OPT_HANDLERS) $(BUILT_EXTRAS) DISTFILES = Makefile.in ChangeLog genprops.awk mkdefs mkops mkgendoc \ mkbuiltins mk-errno-list mk-pkg-add \ defaults.h.in graphics.h.in mxarray.h.in oct-conf.h.in \ oct-errno.cc.in octave.gperf \ $(INCLUDES) $(DIST_SRC) $(EXTRAS) all: octave$(EXEEXT) $(OCT_FILES) PKG_ADD DOCSTRINGS .PHONY: all objects: $(OBJECTS) lex.o parse.o pic/lex.o pic/parse.o: \ ALL_CXXFLAGS := $(filter-out -Wold-style-cast, $(ALL_CXXFLAGS)) $(DLD_PICOBJ): \ ALL_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(ALL_CXXFLAGS)) fltk_backend.o pic/fltk_backend.o: \ ALL_CXXFLAGS := $(filter-out $(DLL_CXXDEFS), $(ALL_CXXFLAGS) $(GRAPHICS_CFLAGS)) XERBLA = ../libcruft/blas-xtra/xerbla.o ifdef FPICFLAG PIC_XERBLA = ../libcruft/blas-xtra/pic/xerbla.o else PIC_XERBLA = $(XERBLA) endif ifeq ($(SHARED_LIBS), true) ifeq ($(STATIC_LIBS), true) LIBRARIES = $(LIBPRE)octinterp.$(LIBEXT) $(SHLLIBPRE)octinterp.$(SHLEXT_VER) else LIBRARIES = $(SHLLIBPRE)octinterp.$(SHLEXT_VER) endif else ifeq ($(STATIC_LIBS), true) LIBRARIES = $(LIBPRE)octinterp.$(LIBEXT) else ## This is not going to work, but hey, you asked for it... LIBRARIES = endif endif libraries: $(LIBRARIES) .PHONY: libraries $(LIBPRE)octinterp.$(LIBEXT): $(OBJECTS) $(XERBLA) rm -f $@ $(TEMPLATE_AR) $(TEMPLATE_ARFLAGS) $@ $^ $(RANLIB) $@ $(SHLLIBPRE)octinterp.$(SHLEXT_VER): $(SHLLIBPRE)octinterp.$(SHLEXT) rm -f $@ $(LN_S) $< $@ $(SHLLIBPRE)octinterp.$(SHLEXT): $(PICOBJ) $(PIC_XERBLA) rm -f $@ $(SH_LD) $(SH_LDFLAGS) $(SONAME_FLAGS) -o $@ $^ $(OCTINTERP_LINK_DEPS) octave$(EXEEXT): $(LIBRARIES) main.o $(DLD_STATIC_OBJ) $(LD_CXX) $(CPPFLAGS) $(ALL_CXXFLAGS) $(RDYNAMIC_FLAG) \ $(ALL_LDFLAGS) -o $@ \ main.o $(DLD_STATIC_OBJ) \ $(OCTAVE_LFLAGS) \ $(OCTAVE_LIBS) \ $(LEXLIB) $(UMFPACK_LIBS) $(AMD_LIBS) $(CAMD_LIBS) $(COLAMD_LIBS) \ $(CHOLMOD_LIBS) $(CCOLAMD_LIBS) $(CXSPARSE_LIBS) $(BLAS_LIBS) \ $(FFTW_LIBS) $(QRUPDATE_LIBS) $(ARPACK_LIBS) $(OPENGL_LIBS) \ $(X11_LIBS) $(CARBON_LIBS) $(LIBS) $(FLIBS) stmp-pic: pic @if [ -f stmp-pic ]; then \ true; \ else \ echo "touch stmp-pic"; \ touch stmp-pic; \ fi pic: @if [ -d pic ]; then \ true; \ else \ echo "mkdir pic"; \ mkdir pic; \ fi $(PICOBJ): stmp-pic builtins.cc: $(DEF_FILES) mkbuiltins @echo making $@ @echo DEF_FILES = $(DEF_FILES) @echo $(DEF_FILES) > def-files @$(srcdir)/mkbuiltins def-files > $@-t @mv $@-t $@ ## FIXME -- maybe genprops.awk should write both output files? ## Or maybe there should be separate commands to generate each file? graphics.h graphics-props.cc: graphics.h.in genprops.awk @echo making graphics.h and graphics-props.cc @$(AWK) -f $(srcdir)/genprops.awk $< > graphics.h-t @mv graphics.h-t graphics.h PKG_ADD: $(DLD_DEF_FILES) $(srcdir)/mk-pkg-add $(DLD_DEF_FILES) > $@-t @mv $@-t $@ DOCSTRINGS: gendoc$(BUILD_EXEEXT) @echo making $@ @./gendoc > $@-t @mv $@-t $@ doc-files: $(DOC_FILES) @echo making $@ @echo DOC_FILES = $(DOC_FILES) @echo $(DOC_FILES) > $@-t mv $@-t $@ gendoc.cc: doc-files mkgendoc @echo making $@ @$(srcdir)/mkgendoc doc-files > $@-t @mv $@-t $@ gendoc$(BUILD_EXEEXT): gendoc.cc $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) ops.cc: $(OP_SRC) mkops @echo making $@ from $(OP_SRC) @$(srcdir)/mkops $(OP_SRC) > $@-t @mv $@-t $@ PREREQ := defaults.h graphics.h oct-conf.h oct-errno.cc oct-gperf.h parse.cc lex.cc $(DEF_FILES): $(OPT_INC) mkdefs ifndef omit_deps $(MAKEDEPS): $(OPT_INC) $(OPT_HANDLERS) $(PREREQ) endif check: all .PHONY: check install: install-bin install-oct install-lib install-inc .PHONY: install install-strip: $(MAKE) INSTALL_PROGRAM="$(INSTALL_PROGRAM) -s" install .PHONY: install-strip install-bin: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir) rm -f $(DESTDIR)$(bindir)/octave$(EXEEXT) $(INSTALL_PROGRAM) octave$(EXEEXT) $(DESTDIR)$(bindir)/octave-$(version)$(EXEEXT) cd $(DESTDIR)$(bindir) ; $(LN_S) octave-$(version)$(EXEEXT) octave$(EXEEXT) .PHONY: install-bin install-oct: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octfiledir) $(INSTALL_DATA) PKG_ADD $(DESTDIR)$(octfiledir)/PKG_ADD if [ -n "$(OCT_FILES)" ]; then \ xfiles="$(OCT_FILES)"; \ for f in $$xfiles; do \ $(INSTALL_PROGRAM) $$f $(DESTDIR)$(octfiledir)/$$f; \ done; \ fi .PHONY: install-oct install-lib: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octlibdir) if $(STATIC_LIBS); then \ rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \ $(INSTALL_DATA) $(LIBPRE)octinterp.$(LIBEXT) \ $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \ $(RANLIB) $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \ fi if $(SHARED_LIBS); then \ rm -f $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLEXT_VER); \ $(INSTALL) $(SHLLIBPRE)octinterp.$(SHLLIB) \ $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER); \ rm -f $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB); \ (cd $(DESTDIR)$(octlibdir) ; $(LN_S) $(SHLLIBPRE)octinterp.$(SHLLIB_VER) $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB)); \ if test x$(SHLBIN) != x ; then \ rm -f $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN); \ $(INSTALL_PROGRAM) \ $(SHLBINPRE)octinterp.$(SHLBIN) $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN); \ fi; \ fi .PHONY: install-lib install-inc: $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octincludedir)/octave for f in $(INCLUDES_FOR_INSTALL); do \ rm -f $(DESTDIR)$(octincludedir)/octave/$$f; \ if [ -f $$f ]; then \ $(INSTALL_DATA) $$f $(DESTDIR)$(octincludedir)/octave/$$f; \ else \ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(octincludedir)/octave/$$f; \ fi ; \ done for f in defaults.h oct-conf.h oct-gperf.h; do \ rm -f $(DESTDIR)$(octincludedir)/octave/$$f; \ if [ -f $$f ]; then \ $(INSTALL_DATA) $$f $(DESTDIR)$(octincludedir)/octave/$$f ; \ else \ $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(octincludedir)/octave/$$f ; \ fi ; \ done .PHONY: install-inc uninstall: rm -f $(DESTDIR)$(bindir)/octave$(EXEEXT) rm -f $(DESTDIR)$(bindir)/octave-$(version)$(EXEEXT) rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT) rm -f $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB) rm -f $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER) if test x$(SHLBIN) != x ; then \ rm -f $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN); \ rm -f $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN_VER); \ fi for f in $(INCLUDES_FOR_INSTALL) defaults.h oct-conf.h oct-gperf.h; do \ rm -f $(DESTDIR)$(octincludedir)/octave/$$f; \ done if [ -n "$(OCT_FILES)" ]; then \ xfiles="$(OCT_FILES)"; \ for f in $$xfiles; do \ rm -f $(DESTDIR)$(octfiledir)/$$f; \ done; \ fi rm -f $(DESTDIR)$(octfiledir)/PKG_ADD -rmdir $(DESTDIR)$(octincludedir)/octave -rmdir $(DESTDIR)$(octincludedir) -rmdir $(DESTDIR)$(octlibdir) -rmdir $(DESTDIR)$(octfiledir) .PHONY: uninstall tags: $(SOURCES) $(DLD_SRC) ctags $(SOURCES) $(DLD_SRC) TAGS: $(SOURCES) $(DLD_SRC) etags $(SOURCES) $(DLD_SRC) clean: rm -f $(LIBPRE)octinterp.$(LIBEXT) rm -f $(SHLLIBPRE)octinterp.$(SHLEXT_VER) $(SHLLIBPRE)octinterp.$(SHLEXT) rm -f $(SHLBINPRE)octinterp.$(SHLBIN_VER) $(SHLBINPRE)octinterp.$(SHLBIN) rm -f $(OBJECTS) $(DLD_OBJ) $(MAKEDEPS) $(DOC_FILES) $(OCT_FILES) rm -f $(PICOBJ) $(DLD_PICOBJ) stmp-pic gendoc$(EXEEXT) rm -f builtins.cc ops.cc defaults.h oct-conf.h def-files rm -f PKG_ADD -rmdir pic .PHONY: clean mostlyclean: clean .PHONY: mostlyclean distclean: clean rm -f Makefile octave$(EXEEXT) .fname so_locations oct-errno.cc rm -f tags TAGS y.output yy.lex.c parse.output rm -f stamp-liboctave-prereq rm -f doc-files gendoc.cc graphics.h graphics-props.cc mxarray.h DOCSTRINGS .PHONY: distclean maintainer-clean: distclean rm -f lex.cc parse.cc y.tab.h rm -f oct-gperf.h $(OPT_HANDLERS) .PHONY: maintainer-clean dist: parse.cc lex.cc oct-gperf.h ln $(addprefix $(srcdir)/, $(DISTFILES)) ../`cat ../.fname`/src ln $(BUILT_DISTFILES) ../`cat ../.fname`/src for f in DLD-FUNCTIONS OPERATORS TEMPLATE-INST; do \ if [ -d ../`cat ../.fname`/src/$$f ]; then \ true; \ else \ mkdir ../`cat ../.fname`/src/$$f; \ fi; \ done ln $(addprefix $(srcdir)/, $(DLD_SRC)) ../`cat ../.fname`/src/DLD-FUNCTIONS ln $(addprefix $(srcdir)/, $(OP_SRC)) ../`cat ../.fname`/src/OPERATORS ln $(addprefix $(srcdir)/, $(OP_INCLUDES)) ../`cat ../.fname`/src/OPERATORS ln $(addprefix $(srcdir)/, $(TI_SRC)) ../`cat ../.fname`/src/TEMPLATE-INST rm -f parse.cc lex.cc y.tab.h y.output yy.lex.c rm -f oct-gperf.h defaults.h oct-conf.h *.d *.df builtins.cc .PHONY: dist conf-dist: ln $(addprefix $(srcdir)/, octave.cc Makefile.in) ../`cat ../.fname`/src .PHONY: conf-dist # Special rules -- these files need special things to be defined. $(OPT_HANDLERS) : %.cc : $(top_srcdir)/liboctave/%.in $(top_srcdir)/mk-opts.pl @echo making $@ from $< @$(PERL) $(top_srcdir)/mk-opts.pl --opt-handler-fcns $< > $@-t @mv $@-t $@ ## We require Bison. parse.cc : parse.y @echo "expect 14 shift/reduce conflicts" $(YACC) $(YFLAGS) --output=$@ --defines=y.tab.h $< lex.cc : lex.l $(LEX) $(LFLAGS) $< > $(@F)-t @mv $(@F)-t $@ $(OPT_INC) : %.h : %.in $(MAKE) -C $(@D) $@ ## We want to force an update of defaults.h and oct-conf.h every ## time make is run because some values may come from the command ## line or the environment. The substitution rules use move-if-change, ## so this should not cause trouble if the file already exists and the ## newly generated file is not different. defaults.h: defaults.h.in ../Makeconf Makefile FORCE @$(do-subst-default-vals) oct-conf.h: oct-conf.h.in ../Makeconf Makefile FORCE @$(do-subst-config-vals) FORCE: .PHONY: FORCE oct-errno.cc: oct-errno.cc.in ../Makeconf Makefile @echo "making $@ from $<" @if test -n "$(PERL)"; then \ $(srcdir)/mk-errno-list --perl "$(PERL)" < $< > $@-t; \ elif test -n "$(PYTHON)"; then \ $(srcdir)/mk-errno-list --python "$(PYTHON)" < $< > $@-t; \ else \ $(SED) '/@SYSDEP_ERRNO_LIST@/D' $< > $@-t; \ fi @mv $@-t $@ ## Don't use a pipeline to process gperf output since if gperf ## is missing but sed is not, the exit status of the pipeline ## will still be success and we will end up creating an empty ## oct-gperf.h file. oct-gperf.h: octave.gperf $(GPERF) -t -C -D -G -L C++ -Z octave_kw_hash $< > $@-t1 $(SED) 's,lookup\[,gperf_lookup[,' < $@-t1 > $@-t2 mv $@-t2 $@ rm -f $@-t1 display.o: CPPFLAGS += $(X11_FLAGS) __magick_read__.d: CPPFLAGS += $(MAGICK_INCFLAGS) __magick_read__.df: CPPFLAGS += $(MAGICK_INCFLAGS) __magick_read__.o pic/__magick_read__.o: CPPFLAGS += $(MAGICK_INCFLAGS) __magick_read__.oct: OCT_LINK_DEPS += $(MAGICK_LIBS) convhulln.oct: OCT_LINK_DEPS += $(QHULL_LIBS) __delaunayn__.oct: OCT_LINK_DEPS += $(QHULL_LIBS) __voronoi__.oct: OCT_LINK_DEPS += $(QHULL_LIBS) eigs.oct: OCT_LINK_DEPS += $(ARPACK_LIBS) qr.oct: OCT_LINK_DEPS += $(QRUPDATE_LIBS) chol.oct: OCT_LINK_DEPS += $(QRUPDATE_LIBS) regexp.oct: OCT_LINK_DEPS += $(REGEX_LIBS) urlwrite.oct: OCT_LINK_DEPS += $(CURL_LIBS) __glpk__.oct: OCT_LINK_DEPS += $(GLPK_LIBS) fltk_backend.oct: OCT_LINK_DEPS += $(GRAPHICS_LIBS) $(FT2_LIBS) check: all .PHONY: check ifdef omit_deps .PHONY: $(MAKEDEPS) endif -include $(MAKEDEPS)