Mercurial > octave
view src/Makefile.in @ 1773:5215571ea783
[project @ 1996-01-23 08:10:26 by jwe]
author | jwe |
---|---|
date | Tue, 23 Jan 1996 08:11:08 +0000 |
parents | 3a9462b655f1 |
children | da0fc3c3a7b2 |
line wrap: on
line source
# # Makefile for octave's src directory # # John W. Eaton # jwe@bevo.che.wisc.edu # University of Wisconsin-Madison # Department of Chemical Engineering TOPDIR = .. srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ include $(TOPDIR)/Makeconf INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ # Cancel default rule for .c from .y and make .cc from .y instead. %.c : %.y %.cc : %.y $(YACC) $(YFLAGS) $< @$(top_srcdir)/move-if-change y.tab.c $(@F) # Likewise for .c from .l. %.c : %.l %.cc : %.l $(LEX) $(LFLAGS) $< > $(@F) XALL_CXXFLAGS_1 = $(subst -fexternal-templates, , $(ALL_CXXFLAGS)) XALL_CXXFLAGS = $(subst -fno-implicit-templates, , $(XALL_CXXFLAGS_1)) %.def : %.cc @echo making $@ from $< @$(CXXCPP) -c $(CPPFLAGS) $(XALL_CXXFLAGS) -DMAKE_BUILTINS $< \ | $(srcdir)/mkdefs > $@.tmp @mv $@.tmp $@ # How to make a .oct file from a .o file: ifdef CXXPICFLAG %.oct: pic/%.o $(CXX) -shared -o $@ $< \ $(OCTAVE_LFLAGS) \ $(OCTAVE_LIBS) \ $(FLIBS) $(LEXLIB) $(TERMLIBS) $(LIBS) -lg++ else %.oct: %.o $(CXX) -shared -o $@ $< \ $(OCTAVE_LFLAGS) \ $(OCTAVE_LIBS) \ $(FLIBS) $(LEXLIB) $(TERMLIBS) $(LIBS) -lg++ endif DLD_SRC := balance.cc chol.cc colloc.cc dassl.cc det.cc eig.cc \ expm.cc fft.cc fft2.cc filter.cc find.cc fsolve.cc \ fsqp.cc givens.cc hess.cc ifft.cc ifft2.cc inv.cc log.cc \ lpsolve.cc lsode.cc lu.cc minmax.cc npsol.cc pinv.cc \ qpsol.cc qr.cc quad.cc qzval.cc rand.cc schur.cc sort.cc \ svd.cc syl.cc DLD_OBJ := $(patsubst %.cc, %.o, $(DLD_SRC)) ifeq ($(OCTAVE_LITE), true) OCT_FILES := $(patsubst %.o, %.oct, $(DLD_OBJ)) ifdef CXXPICFLAG DLD_PICOBJ := $(addprefix pic/, $(DLD_OBJ)) else DLD_PICOBJ := $(DLD_OBJ) endif ifeq ($(WITH_DYNAMIC_LINKING), false) DLD_STATIC_OBJ := $(DLD_OBJ) endif else DLD_STATIC_OBJ := $(DLD_OBJ) endif INCLUDES := arith-ops.h builtins.h defaults.h.in defun.h defun-dld.h \ defun-int.h dirfns.h dynamic-ld.h error.h file-info.h \ file-io.h fnmatch.h getopt.h gripes.h help.h \ input.h lex.h load-save.h mappers.h \ oct-gperf.h oct-hist.h oct-map.h oct-obj.h pager.h parse.h \ pathlen.h pathsearch.h pr-output.h procstream.h pt-base.h \ pt-cmd.h pt-const.h pt-exp-base.h pt-exp.h pt-fcn.h \ pt-fvc-base.h pt-fvc.h pt-mat.h pt-misc.h pt-mvr-base.h \ pt-mvr.h pt-plot.h sighandlers.h statdefs.h symtab.h sysdep.h \ sysdir.h systime.h syswait.h token.h toplev.h unwind-prot.h \ user-prefs.h utils.h variables.h version.h xdiv.h xpow.h Map.h \ SLStack.h Stack.h TI_SRC := Array-tc.cc Map-tc.cc DLList-fi.cc \ SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc \ SLList-tc.cc SLStack-i.cc SLStack-pc.cc SLStack-str.cc \ SLStack-sym.cc SLStack-tok.cc SLStack-tm.cc SLStack-ue.cc \ SLStack-ui.cc TI_OBJ := $(patsubst %.cc, %.o, $(TI_SRC)) TI_PICOBJ := $(TI_OBJ) ifdef CXXPICFLAG TI_PICOBJ := $(addprefix pic/, $(TI_OBJ)) endif SOURCES := arith-ops.cc data.cc dirfns.cc \ dynamic-ld.cc error.cc file-info.cc file-io.cc \ fnmatch.c getopt.c getopt1.c \ gripes.cc help.cc input.cc lex.l load-save.cc mappers.cc \ oct-hist.cc oct-map.cc oct-obj.cc pager.cc parse.y \ pathsearch.cc pr-output.cc procstream.cc pt-base.cc pt-cmd.cc \ pt-const.cc pt-exp-base.cc pt-exp.cc pt-fcn.cc pt-fvc-base.cc \ pt-fvc.cc pt-mat.cc pt-misc.cc pt-mvr-base.cc pt-mvr.cc \ pt-plot.cc resource.cc sighandlers.cc \ strcasecmp.c strncase.c strfns.cc strftime.c symtab.cc \ sysdep.cc tempname.c timefns.cc tempnam.c token.cc toplev.cc \ unwind-prot.cc user-prefs.cc utils.cc variables.cc xdiv.cc \ xpow.cc TEMPLATE_SRC = Map.cc SLStack.cc OBJECTS_4 := $(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)) ifeq ($(SHARED_LIBS), true) ifdef CXXPICFLAG PICOBJ := $(addprefix pic/, $(OBJECTS)) else PICOBJ := $(OBJECTS) endif endif # Ugh. DEP_SOURCES_3 := $(SOURCES) $(DLD_SRC) $(TI_SRC) builtins.cc DEP_SOURCES_2 := $(patsubst %.l, %.cc, $(DEP_SOURCES_3)) DEP_SOURCES_1 := $(patsubst %.y, %.cc, $(DEP_SOURCES_2)) DEP_SOURCES := $(patsubst %.c, %.d, $(DEP_SOURCES_1)) MAKEDEPS := $(patsubst %.cc, %.d, $(DEP_SOURCES)) DEF_FILES_5 := $(SOURCES) $(DLD_SRC) $(TI_SRC) DEF_FILES_4 := $(addprefix $(srcdir)/, $(DEF_FILES_5)) DEF_FILES_3 := $(notdir $(shell grep -l "^DEFUN" $(DEF_FILES_4))) DEF_FILES_2 := $(patsubst %.y, %.def, $(DEF_FILES_3)) DEF_FILES_1 := $(patsubst %.l, %.def, $(DEF_FILES_2)) DEF_FILES := $(patsubst %.cc, %.def, $(DEF_FILES_1)) OCTAVE_LFLAGS = -L../liboctave -L../libcruft -L../readline \ -L../kpathsea -L. $(RLD_FLAG) OCTAVE_LIBS = -loctinterp -loctave -ltinst -lcruft \ @LIBPLPLOT@ -lreadline -lkpathsea LIBS_TO_INSTALL = liboctinterp.a libtinst.a \ liboctinterp.$(SHLEXT) libtinst.$(SHLEXT) TERMLIBS = @TERMLIBS@ LIBS = @LIBS@ DISTFILES = Makefile.in mkdefs mkbuiltins octave.gperf octave.cc \ parse.cc lex.cc y.tab.h \ $(INCLUDES) $(DLD_SRC) $(SOURCES) $(TEMPLATE_SRC) $(TI_SRC) all: defaults.h stamp-picdir libraries \ $(OCT_FILES) octave .PHONY: all octave: octave.o builtins.o $(DLD_STATIC_OBJ) libraries $(CXX) $(CPPFLAGS) $(ALL_CXXFLAGS) $(ALL_LDFLAGS) -o octave \ octave.o builtins.o $(DLD_STATIC_OBJ) \ $(OCTAVE_LFLAGS) \ $(OCTAVE_LIBS) \ $(FLIBS) $(LEXLIB) $(TERMLIBS) $(LIBS) -lg++ stamp-picdir: if [ -n "$(CPICFLAG)" ]; then \ if [ -d pic ]; then true; else mkdir pic ; fi ; \ else true; fi touch stamp-picdir libraries: liboctinterp.a libtinst.a stamp-interp stamp-tinst liboctinterp.a: $(OBJECTS) $(AR) $(ARFLAGS) liboctinterp.a $(OBJECTS) $(RANLIB) liboctinterp.a libtinst.a: $(TI_OBJ) $(AR) $(ARFLAGS) libtinst.a $(TI_OBJ) $(RANLIB) libtinst.a stamp-interp: $(PICOBJ) if $(SHARED_LIBS); then \ $(CXX) -shared -o liboctinterp.$(SHLEXT) $(PICOBJ) \ $(OCTAVE_LFLAGS) \ -loctave -lcruft -ltinst -lreadline -lkpathsea \ $(TERMLIBS) $(LIBS) -lg++; \ else true; fi touch stamp-interp stamp-tinst: $(TI_PICOBJ) if $(SHARED_LIBS); then \ $(CXX) -shared -o libtinst.$(SHLEXT) $(TI_PICOBJ) \ $(OCTAVE_LFLAGS) \ -loctinterp -loctave -lcruft -lreadline -lkpathsea \ $(TERMLIBS) $(LIBS) -lg++; \ else true; fi touch stamp-tinst builtins.cc: $(DEF_FILES) mkbuiltins @echo making $@ from $(DEF_FILES) @$(srcdir)/mkbuiltins $(DEF_FILES) > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ $(DEF_FILES): mkdefs defun-int.h defun-dld.h defun.h defaults.h $(MAKEDEPS): defaults.h check: all .PHONY: check install: all install-bin install-lib install-oct .PHONY: install install-bin: $(top_srcdir)/mkinstalldirs $(bindir) rm -f $(bindir)/octave $(INSTALL) octave $(bindir)/octave-$(version) $(LN_S) $(bindir)/octave-$(version) $(bindir)/octave .PHONY: install-bin install-lib: $(top_srcdir)/mkinstalldirs $(libdir) for f in $(LIBS_TO_INSTALL); do \ if [ -f $$f ]; then $(INSTALL_DATA) $$f $(libdir)/$$f; fi; \ done .PHONY: install-lib install-oct: $(top_srcdir)/mkinstalldirs $(octfiledir) for f in $(OCT_FILES); do $(INSTALL_DATA) $$f $(octfiledir)/$$f; done $(srcdir)/mk-oct-links $(octfiledir) \ $(addprefix $(srcdir)/, $(DLD_SRC)) .PHONY: install-oct uninstall: rm -f $(bindir)/octave .PHONY: uninstall tags: $(SOURCES) $(DLD_SRC) $(TI_SRC) ctags $(SOURCES) $(DLD_SRC) $(TI_SRC) TAGS: $(SOURCES) $(DLD_SRC) $(TI_SRC) etags $(SOURCES) $(DLD_SRC) $(TI_SRC) clean: rm -f *.a *.o builtins.cc \ defaults.h *.d *.def if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi .PHONY: clean mostlyclean: rm -f *.o .PHONY: mostlyclean distclean: clean rm -f Makefile octave .fname .PHONY: distclean maintainer-clean: distclean rm -f tags TAGS y.tab.c y.tab.h y.output yy.lex.c \ lex.cc parse.cc oct-gperf.h .PHONY: maintainer-clean local-dist: parse.cc lex.cc oct-gperf.h ln $(DISTFILES) ../`cat ../.fname`/src rm -f parse.cc lex.cc y.tab.h y.output yy.lex.c rm -f oct-gperf.h defaults.h *.d *.def .PHONY: local-dist dist: parse.cc lex.cc oct-gperf.h ln $(DISTFILES) ../`cat ../.fname`/src rm -f parse.cc lex.cc y.tab.h y.output yy.lex.c rm -f oct-gperf.h defaults.h *.d *.def builtins.cc .PHONY: dist # Special rules -- these files need special things to be defined. defaults.h: defaults.h.in ../Makeconf Makefile @echo "making $@ from $<" @(sed < $< > $@.tmp \ -e "s;%DEFAULT_PAGER%;\"${DEFAULT_PAGER}\";" \ -e "s;%OCTAVE_PREFIX%;\"${prefix}\";" \ -e "s;%OCTAVE_EXEC_PREFIX%;\"${exec_prefix}\";" \ -e "s;%OCTAVE_DATADIR%;\"${datadir}\";" \ -e "s;%OCTAVE_BINDIR%;\"${bindir}\";" \ -e "s;%OCTAVE_LIBDIR%;\"${libdir}\";" \ -e "s;%OCTAVE_INFODIR%;\"${infodir}\";" \ -e "s;%OCTAVE_FCNFILEDIR%;\"${fcnfiledir}\";" \ -e "s;%OCTAVE_LOCALFCNFILEDIR%;\"${localfcnfiledir}\";" \ -e "s;%OCTAVE_LOCALFCNFILEPATH%;\"${localfcnfilepath}\";" \ -e "s;%OCTAVE_ARCHLIBDIR%;\"${archlibdir}\";" \ -e "s;%OCTAVE_OCTFILEDIR%;\"${octfiledir}\";" \ -e "s;%OCTAVE_LOCALOCTFILEPATH%;\"${localoctfilepath}\";" \ -e "s;%OCTAVE_FCNFILEPATH%;\"${fcnfilepath}\";" \ -e "s;%OCTAVE_IMAGEPATH%;\"${imagepath}\";" \ -e "s;%TARGET_HOST_TYPE%;\"${target_host_type}\";" \ -e "s;%FLIB_LIST%;\"${FLIB_LIST}\";" \ -e "s;%FLIB_PATH%;\"${FLIB_PATH}\";" \ -e "s;%CXXLIB_LIST%;\"${CXXLIB_LIST}\";" \ -e "s;%CXXLIB_PATH%;\"${CXXLIB_PATH}\";") @$(top_srcdir)/move-if-change $@.tmp $@ oct-gperf.h: octave.gperf gperf -a -C -E -H octave_kw_hash -g -N octave_kw_lookup -p -t \ $< > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ check: all .PHONY: check ifndef omit_deps -include $(MAKEDEPS) endif