view libcruft/Makefile.in @ 1911:c02829e877a1

[project @ 1996-02-10 03:18:29 by jwe]
author jwe
date Sat, 10 Feb 1996 03:20:22 +0000
parents 0cc78377d25c
children 8637abd0da0b
line wrap: on
line source

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

# List of the directories that contain Fortran source.  Simply copying
# a new .f file into one of these directories is sufficient to have it
# added to libcruft.a.  If you add a new directory here, you also need
# generate a new configure script in the top-level directory (edit
# configure.in and run autoconf).

CRUFT_DIRS = balgen blas dassl eispack fftpack fsqp lapack linpack \
	minpack misc npsol odepack qpsol quadpack ranlib slatec-fn \
	villad

SUBDIRS = $(CRUFT_DIRS)

DISTFILES = Makefile.in Makerules.in $(SOURCES) STOP.patch

all: $(SUBDIRS) libcruft.a stamp-shared
.PHONY: all

$(SUBDIRS):
	echo making all in $@
	cd $@; $(MAKE) all
.PHONY: $(SUBDIRS)

CRUFT_FSRC := $(foreach dir, $(SUBDIRS), $(wildcard $(srcdir)/$(dir)/*.f))
CRUFT_OBJ3 := $(patsubst $(srcdir)/%, %, $(CRUFT_FSRC))
CRUFT_OBJ2 := $(patsubst %.f, %.o, $(CRUFT_OBJ3))
CRUFT_OBJ1 := $(subst misc/d1mach.o, , $(CRUFT_OBJ2))
CRUFT_OBJ := $(CRUFT_OBJ1) misc/d1mach.o misc/dostop.o misc/misc-extern.o

ifeq ($(SHARED_LIBS), true)
  ifdef FPICFLAG
    CRUFT_OBJ_DIR := $(dir $(CRUFT_OBJ))
    CRUFT_OBJ_PICDIR := $(addsuffix pic/, $(CRUFT_OBJ_DIR))
    CRUFT_OBJ_NOTDIR := $(notdir $(CRUFT_OBJ))
    CRUFT_PICOBJ := $(join $(CRUFT_OBJ_PICDIR), $(CRUFT_OBJ_NOTDIR))
  else
    CRUFT_PICOBJ := $(CRUFT_OBJ)
  endif
endif

libcruft.a: $(CRUFT_OBJ)
	rm -f libcruft.a
	$(AR) $(ARFLAGS) libcruft.a $(CRUFT_OBJ)
	$(RANLIB) libcruft.a

stamp-shared:
	if $(SHARED_LIBS); then \
	  $(CXX) -shared -o libcruft.$(SHLEXT) $(CRUFT_PICOBJ) $(FLIBS); \
	else true; fi
	touch stamp-shared

$(CRUFT_OBJ):

check: all
.PHONY: check

install uninstall clean mostlyclean distclean maintainer-clean::
	@$(subdir-for-command)

install::
	$(top_srcdir)/mkinstalldirs $(libdir)
	rm -f $(libdir)/libcruft.a
	$(INSTALL_DATA) libcruft.a $(libdir)/libcruft.a
	$(RANLIB) $(libdir)/libcruft.a
	if $(SHARED_LIBS); then \
	  rm -f $(libdir)/libcruft.$(SHLEXT); \
	  $(INSTALL_DATA) libcruft.$(SHLEXT) $(libdir)/libcruft.$(SHLEXT); \
	fi

uninstall::
	rm -f $(libdir)/libcruft.a

tags TAGS:: $(SOURCES)
	$(SUBDIR_FOR_COMMAND)

tags::
	ctags $(SOURCES)

TAGS:: $(SOURCES)
	etags $(SOURCES)

clean mostlyclean::
	rm -f *.a *.o
	if $(SHARED_LIBS); then rm -f *.$(SHLEXT); fi

distclean:: clean
	rm -f Makefile Makerules

maintainer-clean:: distclean
	rm -f tags TAGS

local-dist:
	for dir in $(SUBDIRS); do mkdir ../`cat ../.fname`/libcruft/$$dir; cd $$dir; $(MAKE) $@; cd ..; done
	ln $(DISTFILES) ../`cat ../.fname`/libcruft
.PHONY: local-dist

dist:
	for dir in $(SUBDIRS); do mkdir ../`cat ../.fname`/libcruft/$$dir; cd $$dir; $(MAKE) $@; cd ..; done
	ln $(DISTFILES) ../`cat ../.fname`/libcruft
.PHONY: dist