Files
mercury/profiler/Mmakefile
Julien Fischer 2bb3ad6f44 Install Java archives for the executables in the Mercury system.
If the compiler and (most of) the other tools are built in the Java grade then
have the install target also install the Java archives for the executables.

compiler/Mmakefile:
deep_profiler/Mmakefile:
mfilterjavac/Mmakefile:
profiler/Mmakefile:
slice/Mmakefile:
	As above.  (The ones for the deep profiling tools are are probably
	a bit useless in practice, but the others should all work.)
2015-09-03 20:53:33 +10:00

123 lines
3.6 KiB
Plaintext

#-----------------------------------------------------------------------------#
# vim: ts=8 sw=8 noexpandtab
#-----------------------------------------------------------------------------#
# Copyright (C) 1995-2000, 2002-2003, 2005, 2007, 2009-2010, 2012 The University of Melbourne.
# This file may only be copied under the terms of the GNU General
# Public Licence - see the file COPYING in the Mercury distribution.
#-----------------------------------------------------------------------------#
# Mmake - this is Mmake file for building the Mercury profiler
MERCURY_DIR=..
LINK_STATIC=yes
include $(MERCURY_DIR)/Mmake.common
# Module-specific options should go in Mercury.options so they
# can be found by `mmc --make'.
include Mercury.options
MAIN_TARGET=all
MERCURY_MAIN_MODULES=mercury_profile
PDBS = $(patsubst %,%.pdb,$(MERCURY_MAIN_MODULES))
VPATH = $(LIBRARY_DIR) $(SSDB_DIR)
#-----------------------------------------------------------------------------#
MLFLAGS += --shared
MCFLAGS += --flags PROF_FLAGS $(CONFIG_OVERRIDE)
#-----------------------------------------------------------------------------#
.PHONY: depend
depend: mercury_profile.depend
mercury_profile.depend: PROF_FLAGS
.PHONY: all
all: mercury_profile $(TAGS_FILE_EXISTS)
#-----------------------------------------------------------------------------#
# Add some additional dependencies, so that Mmake knows to remake the
# profiler if one of the libraries changes.
ifeq ("$(filter il% csharp% java% erlang%,$(GRADE))","")
mercury_profile: $(RUNTIME_DIR)/lib$(RT_LIB_NAME).$A
mercury_profile: $(LIBRARY_DIR)/lib$(STD_LIB_NAME).$A
# XXX Should also depend on $(BOEHM_GC_DIR)/libgc(_prof).$A, but only
# if in .gc(.prof) grade.
endif
$(cs_subdir)mercury_profile_init.c: $(UTIL_DIR)/mkinit$(EXT_FOR_EXE)
ifneq ("$(filter il% csharp% java% erlang%,$(GRADE))","")
MLOBJS =
endif
# Tell the C# compiler where the stdlib assembly is.
#
ifneq ("$(filter csharp%,$(GRADE))","")
CSCFLAGS=-lib:../library -r:mer_std.dll
endif
#-----------------------------------------------------------------------------#
.PHONY: check
check: mercury_profile.check
.PHONY: ints
ints: mercury_profile.ints
#-----------------------------------------------------------------------------#
tags: .profiler_tags
.profiler_tags: $(MTAGS) $(mercury_profile.ms) $(wildcard $(LIBRARY_DIR)/*.m)
$(MTAGS) $(mercury_profile.ms) $(LIBRARY_DIR)/*.m
@touch .profiler_tags
.PHONY: tags_file_exists
tags_file_exists:
@if test ! -f tags; then echo making tags; \
$(MTAGS) $(mercury_profile.ms) $(LIBRARY_DIR)/*.m ; \
touch .profiler_tags ; \
fi
#-----------------------------------------------------------------------------#
.PHONY: dates
dates:
touch $(mercury_profile.dates)
#-----------------------------------------------------------------------------#
.PHONY: os cs ils
os: $(mercury_profile.os) $(os_subdir)mercury_profile_init.o
cs: $(mercury_profile.cs) $(cs_subdir)mercury_profile_init.c
ils: $(mercury_profile.ils)
#-----------------------------------------------------------------------------#
realclean_local:
rm -f tags PROF_FLAGS PROF_FLAGS.date
rm -f $(PDBS) vc*.pdb
#-----------------------------------------------------------------------------#
# Installation targets
.PHONY: install
install: install_profiler
.PHONY: install_profiler
install_profiler: mercury_profile
-[ -d $(INSTALL_MERC_BIN_DIR) ] || mkdir -p $(INSTALL_MERC_BIN_DIR)
cp `vpath_find mercury_profile$(EXT_FOR_EXE)` $(INSTALL_MERC_BIN_DIR)
ifeq ($(findstring java,$(GRADE)),java)
cp `vpath_find mercury_profile.jar` $(INSTALL_MERC_BIN_DIR)
endif
#-----------------------------------------------------------------------------#