Mercurial > octave-nkf
view src/Makefile.in @ 1684:f85887dfe06c
[project @ 1995-12-30 03:46:07 by jwe]
author | jwe |
---|---|
date | Sat, 30 Dec 1995 03:51:15 +0000 |
parents | b7a5f305df27 |
children | b3ce842b4975 |
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 missing-math.h oct-gperf.h \ octave-hist.h oct-map.h oct-obj.h pager.h parse.h pathlen.h \ pathsearch.h pr-output.h procstream.h sighandlers.h \ statdefs.h symtab.h sysdep.h sysdir.h systime.h syswait.h \ token.h toplev.h tree-base.h tree-cmd.h tree-const.h \ tree-expr.h tree-misc.h tree-plot.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-tc.cc \ SLStack-i.cc SLStack-pc.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 := acosh.c arith-ops.cc asinh.c atanh.c data.cc dirfns.cc \ dynamic-ld.cc erf.c erfc.c error.cc file-info.cc file-io.cc \ filemode.c fnmatch.c getopt.c getopt1.c gripes.cc help.cc \ input.cc lex.l load-save.cc mappers.cc mkdir.c \ octave-hist.cc oct-map.cc oct-obj.cc pager.cc parse.y \ pr-output.cc procstream.cc rename.c resource.cc rmdir.c \ sighandlers.cc strcasecmp.c strncase.c strfns.cc strftime.c \ symtab.cc sysdep.cc tempname.c timefns.cc tempnam.c token.cc \ toplev.cc tree-base.cc tree-cmd.cc tree-const.cc \ tree-expr.cc tree-misc.cc tree-plot.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 safe-xstat.cin safe-xstat.hin \ $(INCLUDES) $(DLD_SRC) $(SOURCES) $(TEMPLATE_SRC) $(TI_SRC) all: defaults.h safe-stat.h safe-lstat.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 $(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 safe-stat.h safe-lstat.h \ defaults.h *.d *.def .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 $@ extract_stat = sed 's/@l@//g; s/@L@//g; /@LSTAT_ONLY@/d' extract_lstat = sed 's/@l@/l/g; s/@L@/L/g; s/ *@LSTAT_ONLY@//' safe-lstat.c: safe-xstat.cin @echo "making $@ from $<" @$(extract_lstat) $< > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ safe-lstat.h: safe-xstat.hin @echo "making $@ from $<" @$(extract_lstat) $< > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ safe-stat.c: safe-xstat.cin @echo "making $@ from $<" @$(extract_stat) $< > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ safe-stat.h: safe-xstat.hin @echo "making $@ from $<" @$(extract_stat) $< > $@.tmp @$(top_srcdir)/move-if-change $@.tmp $@ safe-stat.o: safe-stat.h safe-lstat.o: safe-lstat.h safe-stat.h check: all .PHONY: check ifndef omit_deps -include $(MAKEDEPS) endif