view src/module.mk @ 30908:87de38eb52d9 stable

addpref.m: Recode BIST test to work with multiple running instances of Octave. When running multiple instances of the Octave test suit (such as on the build bots) there can be conflict over the file /tmp/.octave_prefs. Avoid that conflict by having a per-Octave-instance directory. * addpref.m: Use tempname() and mkdir() to create a per-Octave-instance directory used for BIST test. Delete the temporary directory at the end of the test.
author Rik <rik@octave.org>
date Wed, 06 Apr 2022 14:54:05 -0700
parents 15ae4d97a632
children
line wrap: on
line source

%canon_reldir%_EXTRA_DIST =

%canon_reldir%_CLEANFILES =
%canon_reldir%_DISTCLEANFILES =
%canon_reldir%_MAINTAINERCLEANFILES =

## Search local directories before those specified by the user.

SRC_DIR_CPPFLAGS = \
  -Iliboctave -I$(srcdir)/liboctave \
  -I$(srcdir)/liboctave/array \
  -I$(srcdir)/liboctave/numeric \
  -I$(srcdir)/liboctave/system \
  -I$(srcdir)/liboctave/util \
  -Iliboctave/wrappers -I$(srcdir)/liboctave/wrappers \
  -Ilibinterp -I$(srcdir)/libinterp \
  -Ilibinterp/corefcn -I$(srcdir)/libinterp/corefcn \
  -I$(srcdir)/src

EXTRA_DIST += \
  %reldir%/main.in.cc \
  %reldir%/mkoctfile.in.cc \
  %reldir%/octave-build-info.in.cc \
  %reldir%/octave-config.in.cc

bin_PROGRAMS += \
  %reldir%/mkoctfile \
  %reldir%/octave \
  %reldir%/octave-cli \
  %reldir%/octave-config

OCTAVE_INTERPRETER_TARGETS += \
  $(bin_PROGRAMS) \
  $(OCTAVE_VERSION_LINKS)

octinclude_HEADERS += \
  %reldir%/octave-build-info.h

noinst_HEADERS += \
  %reldir%/display-available.h \
  %reldir%/octave-qsvghandler.h \
  %reldir%/shared-fcns.h

OCTAVE_VERSION_LINKS += %reldir%/octave-cli-$(version)$(EXEEXT)

if AMCOND_BUILD_QT_GUI
  archlib_PROGRAMS += %reldir%/octave-gui
  OCTAVE_VERSION_LINKS += %reldir%/octave-gui-$(version)$(EXEEXT)

  OCTAVE_INTERPRETER_TARGETS += %reldir%/octave-gui$(EXEEXT)
endif

if AMCOND_BUILD_QT_GUI
  archlib_PROGRAMS += %reldir%/octave-svgconvert
  OCTAVE_INTERPRETER_TARGETS += %reldir%/octave-svgconvert$(EXEEXT)
endif

OCTAVE_CORE_LIBS = \
  libinterp/liboctinterp.la \
  liboctave/liboctave.la \
  libgnu/libgnu.la

nodist_%canon_reldir%_octave_SOURCES = %reldir%/main.cc

%canon_reldir%_octave_SOURCES = %reldir%/display-available.c

%canon_reldir%_octave_LDADD = \
  liboctave/wrappers/libwrappers.la \
  libgnu/libgnu.la \
  $(X11_LIBS) \
  $(CARBON_LIBS) \
  $(GNULIB_LINK_DEPS)

%canon_reldir%_octave_LDFLAGS = \
  $(NO_UNDEFINED_LDFLAG) \
  $(OCTAVE_LINK_OPTS) \
  $(WARN_LDFLAGS) \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

if AMCOND_BUILD_QT_GUI
  OCTAVE_CPPFLAGS = -DHAVE_OCTAVE_QT_GUI
endif

%canon_reldir%_octave_CPPFLAGS = \
  $(SRC_DIR_CPPFLAGS) \
  $(OCTAVE_CPPFLAGS)

%canon_reldir%_octave_cli_SOURCES = %reldir%/main-cli.cc
nodist_%canon_reldir%_octave_cli_SOURCES = %reldir%/octave-build-info.cc

%canon_reldir%_octave_cli_LDADD = \
  $(OCTAVE_CORE_LIBS) \
  $(OCTAVE_LINK_DEPS)

%canon_reldir%_octave_cli_LDFLAGS = \
  $(NO_UNDEFINED_LDFLAG) \
  $(OCTAVE_LINK_OPTS) \
  $(WARN_LDFLAGS) \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

%canon_reldir%_octave_cli_CPPFLAGS = \
  $(SRC_DIR_CPPFLAGS) \
  $(OCTAVE_CPPFLAGS)

if AMCOND_BUILD_QT_GUI
  %canon_reldir%_octave_gui_SOURCES = %reldir%/main-gui.cc
  nodist_%canon_reldir%_octave_gui_SOURCES = %reldir%/octave-build-info.cc
  OCTAVE_GUI_LIBS = libgui/liboctgui.la
  OCTAVE_GUI_CPPFLAGS = -I$(srcdir)/libgui -Ilibgui/src -I$(srcdir)/libgui/src
endif

%canon_reldir%_octave_gui_CPPFLAGS = \
  $(SRC_DIR_CPPFLAGS) \
  $(OCTAVE_GUI_CPPFLAGS)

%canon_reldir%_octave_gui_LDADD = \
  $(OCTAVE_GUI_LIBS) \
  $(OCTAVE_CORE_LIBS) \
  $(OCTAVE_GUI_LINK_DEPS)

%canon_reldir%_octave_gui_LDFLAGS = \
  $(NO_UNDEFINED_LDFLAG) \
  $(OCTAVE_GUI_LINK_OPTS) \
  $(WARN_LDFLAGS) \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

%canon_reldir%_octave_svgconvert_SOURCES = %reldir%/octave-svgconvert.cc

%canon_reldir%_octave_svgconvert_CPPFLAGS = $(QT_CPPFLAGS)

%canon_reldir%_octave_svgconvert_LDADD = $(QT_LIBS)

%canon_reldir%_octave_svgconvert_LDFLAGS = \
  $(QT_LDFLAGS) \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

%canon_reldir%_mkoctfile_SOURCES =

nodist_%canon_reldir%_mkoctfile_SOURCES = %reldir%/mkoctfile.cc

%canon_reldir%_mkoctfile_LDADD = \
  liboctave/wrappers/libwrappers.la \
  libgnu/libgnu.la $(LIBS)

%canon_reldir%_mkoctfile_LDFLAGS = \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

%canon_reldir%_mkoctfile_CPPFLAGS = \
  $(SRC_DIR_CPPFLAGS) \
  $(OCTAVE_CPPFLAGS)

%canon_reldir%_octave_config_SOURCES =

nodist_%canon_reldir%_octave_config_SOURCES = %reldir%/octave-config.cc

%canon_reldir%_octave_config_LDADD = \
  libinterp/corefcn/libcorefcn.la \
  libgnu/libgnu.la \
  $(LIBS)

%canon_reldir%_octave_config_LDFLAGS = \
  $(OCTAVE_UNICODE_EXE_LDFLAGS)

%canon_reldir%_octave_config_CPPFLAGS = \
  $(SRC_DIR_CPPFLAGS) \
  $(OCTAVE_CPPFLAGS)

DIRSTAMP_FILES += %reldir%/$(octave_dirstamp)

mostlyclean-local: src-mostlyclean-local
.PHONY: src-mostlyclean-local

if AMCOND_CROSS_TOOLS

## Building cross mkoctfile.

OCTAVE_CROSS_TOOLS += %reldir%/$(host_triplet)-mkoctfile$(BUILD_EXEEXT)

if AMCOND_RELOCATE_ALL
  OCTAVE_REPLACE_PREFIX_CPPFLAGS = -DOCTAVE_REPLACE_PREFIX
endif

%reldir%/$(host_triplet)-mkoctfile$(BUILD_EXEEXT): %reldir%/$(host_triplet)-mkoctfile.cc
	$(BUILD_CXX) -o %reldir%/$(host_triplet)-mkoctfile$(BUILD_EXEEXT) $(OCTAVE_REPLACE_PREFIX_CPPFLAGS) -DCROSS=1 $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) -I$(srcdir)/src %reldir%/$(host_triplet)-mkoctfile.cc

%reldir%/$(host_triplet)-mkoctfile.cc: %reldir%/mkoctfile.in.cc build-aux/subst-cross-config-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-cross-config-vals.sh)

## Building cross octave-config.

OCTAVE_CROSS_TOOLS += %reldir%/$(host_triplet)-octave-config$(BUILD_EXEEXT)

%reldir%/$(host_triplet)-octave-config$(BUILD_EXEEXT): %reldir%/$(host_triplet)-octave-config.cc
	$(BUILD_CXX) -o %reldir%/$(host_triplet)-octave-config$(BUILD_EXEEXT) -DCROSS=1 $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) -I$(srcdir)/src %reldir%/$(host_triplet)-octave-config.cc

%reldir%/$(host_triplet)-octave-config.cc: %reldir%/octave-config.in.cc build-aux/subst-config-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-config-vals.sh)

src-mostlyclean-local:
	-rm -f $(OCTAVE_CROSS_TOOLS)

else

src-mostlyclean-local:

endif

%reldir%/octave-config.cc: %reldir%/octave-config.in.cc build-aux/subst-config-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-config-vals.sh)

%reldir%/mkoctfile.cc: %reldir%/mkoctfile.in.cc build-aux/subst-config-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-config-vals.sh)

%reldir%/main.cc: %reldir%/main.in.cc build-aux/subst-config-vals.sh | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(call simple-filter-rule,build-aux/subst-config-vals.sh)

%reldir%/octave-build-info.cc: %reldir%/octave-build-info.in.cc HG-ID | %reldir%/$(octave_dirstamp)
	$(AM_V_GEN)$(build-info-commands)

ALL_LOCAL_TARGETS += $(OCTAVE_CROSS_TOOLS)

install-exec-hook: make-version-links

uninstall-local: remove-version-links

make-version-links:
	cd $(DESTDIR)$(bindir) && \
	for f in $(notdir $(basename $(bin_PROGRAMS))); do \
	  mv $$f$(EXEEXT) $$f-$(version)$(EXEEXT) && \
	    $(LN_S) $$f-$(version)$(EXEEXT) $$f$(EXEEXT); \
	done

remove-version-links:
	for f in $(notdir $(basename $(bin_PROGRAMS))); do \
	  rm -f $(DESTDIR)$(bindir)/$$f-$(version)$(EXEEXT); \
	done

.PHONY: make-version-links remove-version-links

## We need these filenames in the build tree because the wrapper
## program (main.cc) will try to invoke the versioned binaries.

%reldir%/octave-cli-$(version)$(EXEEXT): %reldir%/octave-cli$(EXEEXT)
	$(AM_V_GEN)rm -f $@ && \
	cd $(@D) && $(LN_S) $(<F) $(@F)

%reldir%/octave-gui-$(version)$(EXEEXT): %reldir%/octave-gui$(EXEEXT)
	$(AM_V_GEN)rm -f $@ && \
	cd $(@D) && $(LN_S) $(<F) $(@F)

%canon_reldir%_CLEANFILES += \
  $(OCTAVE_VERSION_LINKS) \
  %reldir%/main.cc \
  %reldir%/mkoctfile.cc \
  %reldir%/octave-build-info.cc \
  %reldir%/octave-config.cc

CLEANFILES += $(%canon_reldir%_CLEANFILES)
DISTCLEANFILES += $(%canon_reldir%_DISTCLEANFILES)
MAINTAINERCLEANFILES += $(%canon_reldir%_MAINTAINERCLEANFILES)

src-clean:
	rm -f $(%canon_reldir%_CLEANFILES)

src-distclean: src-clean
	rm -f $(%canon_reldir%_DISTCLEANFILES)

src-maintainer-clean: src-distclean
	rm -f $(%canon_reldir%_MAINTAINERCLEANFILES)