view liboctave/Makefile.in @ 1783:da0fc3c3a7b2

[project @ 1996-01-24 08:10:09 by jwe]
author jwe
date Wed, 24 Jan 1996 08:10:57 +0000
parents 5215571ea783
children 28b9e76f7736
line wrap: on
line source

#
# Makefile for octave's liboctave 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@

MATRIX_INC := Array.h Array-idx.h MArray.h Matrix.h mx-base.h \
	mx-defs.h mx-ext.h CColVector.h CDiagMatrix.h CMatrix.h \
	CRowVector.h CmplxAEPBAL.h CmplxCHOL.h CmplxDET.h CmplxHESS.h \
	CmplxLU.h CmplxQR.h CmplxQRP.h CmplxSCHUR.h CmplxSVD.h EIG.h \
	chMatrix.h \
	dColVector.h dDiagMatrix.h dMatrix.h dRowVector.h dbleAEPBAL.h \
	dbleCHOL.h dbleDET.h dbleGEPBAL.h dbleHESS.h dbleLU.h dbleQR.h \
	dbleQRP.h dbleSCHUR.h dbleSVD.h

INCLUDES := Bounds.h CollocWt.h DAE.h DAEFunc.h FEGrid.h FSQP.h \
	LinConst.h LP.h LPsolve.h NLConst.h NLEqn.h NLFunc.h NLP.h \
	NPSOL.h ODE.h ODEFunc.h Objective.h QP.h QPSOL.h Quad.h \
	Range.h base-min.h dir-ops.h file-ops.h f77-uscore.h \
	idx-vector.h lo-error.h oct-cmplx.h oct-math.h statdefs.h \
	str-vec.h sun-utils.h sysdir.h \
	$(MATRIX_INC)

TEMPLATE_SRC := Array.cc MArray.cc

TI_SRC := Array-C.cc Array-ch.cc Array-i.cc Array-d.cc Array-s.cc \
	Array-str.cc \
	MArray-C.cc MArray-ch.cc MArray-i.cc MArray-d.cc MArray-s.cc

MATRIX_SRC := Array-ext.cc CColVector.cc CDiagMatrix.cc CMatrix.cc \
	CRowVector.cc CmplxAEPBAL.cc CmplxCHOL.cc CmplxDET.cc \
	CmplxHESS.cc CmplxLU.cc CmplxQR.cc CmplxQRP.cc CmplxSCHUR.cc \
	CmplxSVD.cc EIG.cc chMatrix.cc dColVector.cc dDiagMatrix.cc \
	dMatrix.cc dRowVector.cc dbleAEPBAL.cc dbleCHOL.cc \
	dbleDET.cc dbleGEPBAL.cc dbleHESS.cc dbleLU.cc dbleQR.cc \
	dbleQRP.cc dbleSCHUR.cc dbleSVD.cc

SOURCES := Bounds.cc CollocWt.cc DAE.cc FEGrid.cc FSQP.cc LinConst.cc \
	LPsolve.cc NLEqn.cc NPSOL.cc ODE.cc QPSOL.cc Quad.cc \
	Range.cc acosh.c asinh.c atanh.c dir-ops.cc erf.c erfc.c \
	file-ops.cc filemode.c gamma.c idx-vector.cc lo-error.cc \
	lgamma.c mkdir.c rename.c rmdir.c sun-utils.cc \
	$(TEMPLATE_SRC) \
	$(TI_SRC) \
	$(MATRIX_SRC)

EXTRAS := mx-inlines.cc

DISTFILES := Makefile.in safe-xstat.cin safe-xstat.hin \
	$(SOURCES) $(INCLUDES) $(EXTRAS)

MAKEDEPS_1 := $(patsubst %.cc, %.d, $(SOURCES))
MAKEDEPS := $(patsubst %.c, %.d, $(MAKEDEPS_1))

OBJECTS_1 := $(patsubst %.cc, %.o, $(SOURCES))
OBJECTS := $(patsubst %.c, %.o, $(OBJECTS_1))

ifeq ($(SHARED_LIBS), true)
  ifdef CXXPICFLAG
    PICOBJ := $(addprefix pic/, $(OBJECTS))
  else
    PICOBJ := $(OBJECTS)
  endif
endif

LIBOCTAVE_DEPEND := $(patsubst %, liboctave.a(%), $(OBJECTS))

all: safe-stat.h safe-lstat.h stamp-picdir liboctave.a stamp-shared
.PHONY: all

stamp-picdir:
	if [ -n "$(CXXPICFLAG)" ]; then \
	  if [ -d pic ]; then true; else mkdir pic ; fi ; \
	else true; fi
	touch stamp-picdir

liboctave.a: $(OBJECTS)
	$(AR) $(ARFLAGS) liboctave.a $(OBJECTS)
	$(RANLIB) liboctave.a

stamp-shared:
	if $(SHARED_LIBS); then \
	  $(CXX) -shared -o liboctave.$(SHLEXT) $(PICOBJ) \
	  -L../libcruft -lcruft; \
	else true; fi
	touch stamp-shared

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

install: all
	$(top_srcdir)/mkinstalldirs $(libdir) $(includedir)
	rm -f $(libdir)/liboctave.a
	$(INSTALL_DATA) liboctave.a $(libdir)/liboctave.a
	$(RANLIB) $(libdir)/liboctave.a
	if $(SHARED_LIBS); then \
	  rm -f $(libdir)/liboctave.$(SHLEXT); \
	  $(INSTALL_DATA) liboctave.$(SHLEXT) $(libdir)/liboctave.$(SHLEXT); \
	fi
	for f in $(INCLUDES) $(TEMPLATE_SRC) ; do \
	  rm -f $(includedir)/$$f ; \
	  $(INSTALL_DATA) $(srcdir)/$$f $(includedir)/$$f ; \
	done
.PHONY: install

uninstall:
	rm -f $(libdir)/liboctave.a
	for f in $(INCLUDES) ; do rm -f $(includedir)/$$f ; done
.PHONY: uninstall

tags: $(SOURCES)
	ctags $(SOURCES)

TAGS: $(SOURCES)
	etags $(SOURCES)

clean:
	rm -f safe-stat.h safe-lstat.h *.a *.o *.d pic/*.o
	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi
.PHONY: clean

mostlyclean: clean
.PHONY: mostlyclean

distclean: clean
	rm -f Makefile
.PHONY: distclean

maintainer-clean: distclean
	rm -f tags TAGS
.PHONY: maintainer-clean

local-dist:
	ln $(DISTFILES) ../`cat ../.fname`/liboctave
.PHONY: local-dist

dist:
	ln $(DISTFILES) ../`cat ../.fname`/liboctave
.PHONY: dist

ifndef omit_deps
-include $(MAKEDEPS)
endif