In the presence of foreign code the .opt' and .trans_opt' files

Estimated hours taken: 10
Branches: main

In the presence of foreign code the `.opt' and `.trans_opt' files
aren't grade independent, so install them in grade-dependent
directories.

scripts/Mmake.vars.in:
	Define $(INSTALL_GRADE_INT_DIR), which holds `.opt'
	and `.trans_opt' files.

	Pass the extra libraries to mmc using `--ml' and `--mld'
	(`--mercury-library' and `--mercury-library-directory')
	options, rather than just a `-I' option. This is needed
	so that $(INSTALL_GRADE_INT_DIR) is searched for `.opt'
	files before $(INSTALL_INT_DIR)

	Fix a bug -- the `-I' options for libraries should
	go in CFLAGS, not MGNUCFLAGS.

scripts/Mmake.rules:
	Create INSTALL_GRADE_INT_DIR in the install_grade_dirs target.

compiler/modules.m:
	Install `.opt' and `.trans_opt' files in $(INSTALL_GRADE_INT_DIR).

	`.int0' files are needed by `.opt' files for sub-modules, so
	install them.

	<module>.int0s now only contains the names of modules with sub-modules
	(this is needed to avoid attempting to install nonexistent `.int0'
	files).

compiler/handle_options.m:
	Add $(INSTALL_GRADE_INT_DIR) for each `--mercury-library' option
	to `--intermod-directories'.

Mmakefile:
scripts/Mmake.vars.in:
scripts/Mmake.rules:
	Simplify the code to copy/remove the grade dependent files
	before building the libraries in a new grade when installing.

	Copy/remove all grade-dependent files, including `.opt' files
	and `.dv' files.
This commit is contained in:
Simon Taylor
2002-08-22 02:34:21 +00:00
parent c536e2516a
commit a77d488245
5 changed files with 192 additions and 104 deletions

110
Mmakefile
View File

@@ -402,22 +402,18 @@ install_deep_profiler: deep_profiler
.PHONY: install_grades
install_grades: scripts
cd boehm_gc && rm -rf tmp_dir && mkdir tmp_dir && \
{ mv -f *.$O *.pic_o *.$A *.so tmp_dir || true; }
cd runtime && rm -rf tmp_dir && mkdir tmp_dir && \
{ mv -f *.$O *.pic_o *.$A *.so tmp_dir || true; }
cd library && rm -rf tmp_dir && mkdir tmp_dir && \
{ mv -f *.dep *.mih *.c *.c_date *.$O *.pic_o *.$A *.so \
*.used Mercury/useds/*.used Mercury/deps/*.dep \
Mercury/cs/*.c Mercury/c_dates/*.c_date \
Mercury/mihs/*.mih Mercury/os/*.$O tmp_dir || true; }
cd browser && rm -rf tmp_dir && mkdir tmp_dir && \
{ mv -f *.dep *.mih *.c *.c_date *.$O *.pic_o *.$A *.so \
*.used Mercury/useds/*.used Mercury/deps/*.dep \
Mercury/cs/*.c Mercury/c_dates/*.c_date \
Mercury/mihs/*.mih Mercury/os/*.$O tmp_dir || true; }
cd trace && rm -rf tmp_dir && mkdir tmp_dir && \
{ mv -f *.$O *.pic_o *.$A *.so tmp_dir || true; }
for dir in boehm_gc runtime trace; do \
( cd $$dir; rm -rf tmp_dir; mkdir tmp_dir; \
mv -f *.$O *.pic_o *.$A *.so tmp_dir; true ); \
done
for dir in library browser; do \
( cd $$dir && rm -rf tmp_dir && mkdir tmp_dir && \
for ext in $(GRADE_SUBDIR_EXTS); do \
mv -f *.$$ext Mercury/$${ext}s/*.$$ext tmp_dir; \
done; \
mv -f $(deps_subdir)*.dep $(deps_subdir)*.dv *.$O \
Mercury/os/*.$O *.$A *.so tmp_dir; true ); \
done
#
# Use the newly installed compiler to build the libraries
# in various different grades. We need to override MC=mmc
@@ -441,42 +437,32 @@ install_grades: scripts
$(SUBDIR_MMAKE) MC=mmc GRADE=$$grade install_library ) && \
( cd trace && \
$(SUBDIR_MMAKE) MC=mmc GRADE=$$grade install_lib ) && \
( cd boehm_gc && rm -f *.$O *.pic_o *.$A *.so ) && \
( cd runtime && rm -f *.$O *.pic_o *.$A *.so ) && \
( cd library && rm -f *.dep *.mih *.c *.c_date \
*.$O *.pic_o *.$A *.so Mercury/cs/*.c \
Mercury/c_dates/*.c_date Mercury/mihs/*.mih \
Mercury/os/*.$O ) && \
( cd browser && rm -f *.dep *.mih *.c *.c_date \
*.$O *.pic_o *.$A *.so Mercury/cs/*.c \
Mercury/c_dates/*.c_date Mercury/mihs/*.mih \
Mercury/os/*.$O ) && \
( cd trace && rm -f *.$O *.pic_o *.$A *.so ) && \
true \
for dir in boehm_gc runtime trace; do \
( cd $$dir && rm -f *.$O *.pic_o *.$A *.so ); \
done && \
for dir in library browser; do \
( cd $$dir && \
for ext in $(GRADE_SUBDIR_EXTS); do \
rm -f *.$$ext Mercury/$${ext}s/*.$$ext; \
done && \
rm -f $(deps_subdir)*.dep $(deps_subdir)*.dv *.$O \
Mercury/os/*.$O *.$A *.so ); \
done \
|| { scripts/mercury_cleanup_install; exit 1; }; \
fi; \
done
cd boehm_gc && { mv tmp_dir/* . ; rmdir tmp_dir; true; }
cd runtime && { mv tmp_dir/* . ; rmdir tmp_dir; true; }
cd library && { [ -d Mercury/cs ] && mv tmp_dir/*.c Mercury/cs; \
[ -d Mercury/mihs ] && mv tmp_dir/*.mih Mercury/mihs; \
[ -d Mercury/os ] && mv tmp_dir/*.$O Mercury/os; \
[ -d Mercury/deps ] && mv tmp_dir/*.dep Mercury/deps;\
[ -d Mercury/c_dates ] && \
mv tmp_dir/*.c_date Mercury/c_dates;\
[ -d Mercury/useds ] && \
mv tmp_dir/*.used Mercury/useds;\
mv tmp_dir/* . ; rmdir tmp_dir; true; }
cd browser && { [ -d Mercury/cs ] && mv tmp_dir/*.c Mercury/cs; \
[ -d Mercury/mihs ] && mv tmp_dir/*.mih Mercury/mihs; \
[ -d Mercury/os ] && mv tmp_dir/*.$O Mercury/os; \
[ -d Mercury/deps ] && mv tmp_dir/*.dep Mercury/deps;\
[ -d Mercury/c_dates ] && \
mv tmp_dir/*.c_date Mercury/c_dates;\
[ -d Mercury/useds ] && \
mv tmp_dir/*.used Mercury/useds;\
mv tmp_dir/* . ; rmdir tmp_dir; true; }
cd trace && { mv tmp_dir/* . ; rmdir tmp_dir; true; }
for dir in boehm_gc runtime trace; do \
( cd $$dir && { mv tmp_dir/* . ; rmdir tmp_dir; true; } ); \
done
for dir in library browser; do \
( cd $$dir && { \
for ext in $(GRADE_SUBDIR_EXTS); do \
[ -d Mercury/$${ext}s ] && \
mv tmp_dir/*.$$ext Mercury/$${ext}s; \
done; \
mv tmp_dir/*.dep tmp_dir/*.dv $(deps_subdir).; \
mv tmp_dir/* . ; rmdir tmp_dir; true; } ); \
done
.PHONY: install_split_library
install_split_library: scripts dep_library
@@ -490,23 +476,25 @@ install_split_library: scripts dep_library
+cd library && \
rm -rf tmp_dir && \
mkdir tmp_dir && \
{ mv -f *.dir *.dep *.mih *.c *.c_date *.$O *.pic_o *.$A *.so \
Mercury/cs/*.c Mercury/c_dates/*.c Mercury/mihs/*.mih \
Mercury/c_dates Mercury/os/*.$O tmp_dir || true; } && \
for ext in $(GRADE_SUBDIR_EXTS); do \
mv -f *.$$ext Mercury/$${ext}s/*.$$ext $tmp_dir; \
done || true && \
{ mv -f $(deps_subdir)*.dep $(deps_subdir)*.dv *.$O Mercury/os/*.$O \
*.$A *.so tmp_dir || true; }) && \
for grade in $(GRADE) $(LIBGRADES); do \
$(SUBDIR_MMAKE) MC=mmc GRADE=$$grade depend && \
$(SUBDIR_MMAKE) MC=mmc GRADE=$$grade install_split_library || \
{ scripts/mercury_cleanup_install; exit 1; }; \
rm -rf *.dir *.dep *.mih *.c *.$O *.pic_o *.$A *.so \
Mercury/cs/*.c Mercury/c_dates/*.c Mercury/mihs/*.mih \
Mercury/c_dates Mercury/os/*.$O; \
for ext in $(GRADE_SUBDIR_EXTS); do \
rm -f *.$$ext Mercury/$${ext}s/*.$$ext; \
done; \
rm -f *.$O Mercury/os/*.$O *.$A *.so; \
done && \
{ [ -d Mercury/cs ] && mv tmp_dir/*.c Mercury/cs; \
[ -d Mercury/c_dates ] && mv tmp_dir/*.c_date Mercury/c_dates; \
[ -d Mercury/mihs ] && mv tmp_dir/*.mih Mercury/mihs; \
[ -d Mercury/os ] && mv tmp_dir/*.$O Mercury/os; \
[ -d Mercury/deps ] && mv tmp_dir/*.dep Mercury/deps; \
mv tmp_dir/* . ; rmdir tmp_dir; true; }
{ for $$ext in $(GRADE_SUBDIR_EXTS); do \
[ -d Mercury/$${ext}s ] && mv tmp_dir/*.$$ext Mercury/$${ext}s; \
done; \
mv tmp_dir/*.dep tmp_dir/*.dv $(deps_subdir).; \
mv tmp_dir/* . ; rmdir tmp_dir; true; }
#-----------------------------------------------------------------------------#
#

View File

@@ -904,8 +904,9 @@ postprocess_options_2(OptionTable0, Target, GC_Method, TagsMethod,
),
%
% Handle C header and library search directories. These couldn't
% be handled by options.m because they are grade dependent.
% Handle the `.opt', C header and library search directories.
% These couldn't be handled by options.m because they are grade
% dependent.
%
globals__io_lookup_accumulating_option(mercury_library_directories,
MercuryLibDirs),
@@ -930,7 +931,19 @@ postprocess_options_2(OptionTable0, Target, GC_Method, TagsMethod,
globals__io_lookup_accumulating_option(c_include_directory,
CIncludeDirs),
globals__io_set_option(c_include_directory,
accumulating(ExtraCIncludeDirs ++ CIncludeDirs))
accumulating(ExtraCIncludeDirs ++ CIncludeDirs)),
{ ExtraIntermodDirs = list__map(
(func(MercuryLibDir) =
dir__make_path_name(MercuryLibDir,
dir__make_path_name("ints",
GradeString
))
), MercuryLibDirs) },
globals__io_lookup_accumulating_option(intermod_directories,
IntermodDirs0),
globals__io_set_option(intermod_directories,
accumulating(ExtraIntermodDirs ++ IntermodDirs0))
;
{ MercuryLibDirs = [] }
),
@@ -942,12 +955,11 @@ postprocess_options_2(OptionTable0, Target, GC_Method, TagsMethod,
UseSearchDirs),
( { UseSearchDirs = yes } ->
globals__io_lookup_accumulating_option(intermod_directories,
IntermodDirs0),
IntermodDirs1),
globals__io_lookup_accumulating_option(search_directories,
SearchDirs),
{ list__append(IntermodDirs0, SearchDirs, IntermodDirs) },
globals__io_set_option(intermod_directories,
accumulating(IntermodDirs))
accumulating(IntermodDirs1 ++ SearchDirs))
;
[]
),
@@ -965,11 +977,11 @@ postprocess_options_2(OptionTable0, Target, GC_Method, TagsMethod,
% to find the `.opt' files in the current directory.
%
globals__io_lookup_accumulating_option(intermod_directories,
IntermodDirs1),
IntermodDirs2),
{ GradeSubdirIntermodDirs =
["Mercury"/GradeString/FullArch |
list__filter(isnt(unify(dir__this_directory)),
IntermodDirs1)] },
IntermodDirs2)] },
globals__io_set_option(intermod_directories,
accumulating(GradeSubdirIntermodDirs))
;

View File

@@ -925,6 +925,7 @@ choose_file_name(_ModuleName, BaseName, Ext, Search, MkDir, FileName) -->
; Ext = ".realclean"
; Ext = ".depend"
; Ext = ".install_ints"
; Ext = ".install_opts"
; Ext = ".install_hdrs"
; Ext = ".install_grade_hdrs"
; Ext = ".check"
@@ -3964,13 +3965,16 @@ generate_dv_file(SourceFileName, ModuleName, DepsMap, DepStream) -->
Basis, DepStream),
io__write_string(DepStream, "\n"),
% The .int0s list should really only include modules that
% contain sub-modules. But currently it's only used for
% the `mmake clean' rule, so it doesn't matter.
% `.int0' files are only generated for modules with sub-modules.
{ ModulesWithSubModules = list__filter(
(pred(Module::in) is semidet :-
map__lookup(DepsMap, Module,
deps(_, ModuleImports)),
ModuleImports ^ children \= []
), Modules) },
io__write_string(DepStream, MakeVarName),
io__write_string(DepStream, ".int0s = "),
write_compact_dependencies_list(Modules, "$(int0s_subdir)", ".int0",
Basis, DepStream),
write_dependencies_list(ModulesWithSubModules, ".int0", DepStream),
io__write_string(DepStream, "\n"),
io__write_string(DepStream, MakeVarName),
@@ -4246,9 +4250,31 @@ generate_dep_file(SourceFileName, ModuleName, DepsMap, DepStream) -->
module_name_to_lib_file_name("lib", ModuleName, ".install_ints", no,
LibInstallIntsTargetName),
{ Intermod = yes -> OptStr = " opt" ; OptStr = "" },
{
Intermod = yes,
map__member(DepsMap, _, deps(_, Imports)),
Imports ^ children \= []
->
% The `.int0' files only need to be installed with
% `--intermodule-optimization'.
Int0Str = " int0",
MaybeInt0sVar = "$(" ++ MakeVarName ++ ".int0s) "
;
Int0Str = "",
MaybeInt0sVar = ""
},
{ TransOpt = yes -> TransOptStr = " trans_opt" ; TransOptStr = "" },
{ MmcMakeDeps = yes -> DepStr = " module_dep" ; DepStr = "" },
{ InstallIntsRuleBody = string__append_list([
io__write_strings(DepStream, [
".PHONY : ", LibInstallIntsTargetName, "\n",
LibInstallIntsTargetName, " : $(", MakeVarName, ".ints) $(",
MakeVarName, ".int3s) ", MaybeInt0sVar, MaybeOptsVar,
MaybeTransOptsVar, MaybeModuleDepsVar,
" install_lib_dirs\n",
"\tfiles=""$(", MakeVarName, ".ints) $(", MakeVarName,
".int3s) ", MaybeInt0sVar, MaybeOptsVar,
MaybeTransOptsVar, MaybeModuleDepsVar, """; \\\n",
" for file in $$files; do \\
target=""$(INSTALL_INT_DIR)/`basename $$file`""; \\
if cmp -s ""$$file"" ""$$target""; then \\
@@ -4261,7 +4287,8 @@ generate_dep_file(SourceFileName, ModuleName, DepsMap, DepStream) -->
# The following is needed to support the `--use-subdirs' option
# We try using `ln -s', but if that fails, then we just use
# `$(INSTALL)'.
for ext in int int2 int3", OptStr, TransOptStr, DepStr, "; do \\
for ext in int int2 int3", Int0Str, OptStr,
TransOptStr, DepStr, "; do \\
dir=""$(INSTALL_INT_DIR)/Mercury/$${ext}s""; \\
rm -f ""$$dir""; \\
ln -s .. ""$$dir"" || { \\
@@ -4270,20 +4297,51 @@ generate_dep_file(SourceFileName, ModuleName, DepsMap, DepStream) -->
$(INSTALL) ""$(INSTALL_INT_DIR)""/*.$$ext \\
""$$dir""; \\
} || exit 1; \\
done\n\n"]) },
io__write_strings(DepStream, [
".PHONY : ", LibInstallIntsTargetName, "\n",
LibInstallIntsTargetName, " : $(", MakeVarName, ".ints) $(",
MakeVarName, ".int3s) ", MaybeOptsVar,
MaybeTransOptsVar, MaybeModuleDepsVar,
"install_lib_dirs\n",
"\tfiles=""$(", MakeVarName, ".ints) $(", MakeVarName,
".int3s) ", MaybeOptsVar, MaybeTransOptsVar,
MaybeModuleDepsVar, """; \\\n",
InstallIntsRuleBody
done\n\n"
]),
%
% XXX Note that we install the `.opt' and `.trans_opt' files
% in two places: in the `lib/$(GRADE)/opts' directory, so
% that mmc will find them, and also in the `ints' directory,
% so that Mmake will find them. That's not ideal, but it works.
%
module_name_to_lib_file_name("lib", ModuleName,
".install_opts", no, LibInstallOptsTargetName),
io__write_strings(DepStream,
[".PHONY : ", LibInstallOptsTargetName, "\n",
LibInstallOptsTargetName, " : "]),
( { Intermod \= yes, TransOpt \= yes } ->
io__write_string(DepStream, "\n\t@:\n\n")
;
io__write_strings(DepStream, [
MaybeOptsVar, MaybeTransOptsVar, "install_grade_dirs\n",
"\tfiles=""", MaybeOptsVar, MaybeTransOptsVar, """; \\\n",
" for file in $$files; do \\
target=""$(INSTALL_GRADE_INT_DIR)/`basename $$file`"";\\
if cmp -s ""$$file"" ""$$target""; then \\
echo \"$$target unchanged\"; \\
else \\
echo \"installing $$target\"; \\
$(INSTALL) ""$$file"" ""$$target""; \\
fi; \\
done
# The following is needed to support the `--use-subdirs' option
# We try using `ln -s', but if that fails, then we just use
# `$(INSTALL)'.
for ext in ", OptStr, TransOptStr, "; do \\
dir=""$(INSTALL_GRADE_INT_DIR)/Mercury/$${ext}s""; \\
rm -f ""$$dir""; \\
ln -s .. ""$$dir"" || { \\
{ [ -d ""$$dir"" ] || \\
$(INSTALL_MKDIR) ""$$dir""; } && \\
$(INSTALL) ""$(INSTALL_GRADE_INT_DIR)""/*.$$ext \\
""$$dir""; \\
} || exit 1; \\
done\n\n"
])
),
%
% XXX Note that we install the header files in two places:
% in the `lib/inc' or `lib/$(GRADE)/$(FULLARCH)/inc' directory,

View File

@@ -472,52 +472,68 @@ lib%.install_init: %.init install_lib_dirs
.PHONY: lib%.install_library
lib%.install_library: lib%.a lib%.$(EXT_FOR_SHARED_LIB) \
install_grade_dirs lib%.install_grade_hdrs
install_grade_dirs lib%.install_grade_hdrs \
lib%.install_opts
$(INSTALL) `vpath_find lib$*.a lib$*.$(EXT_FOR_SHARED_LIB)` \
$(INSTALL_MERC_LIB_DIR)
lib%.install_split_library: %.split.a install_grade_dirs
$(INSTALL) `vpath_find $*.split.a` $(INSTALL_MERC_LIB_DIR)/lib$*.a
# XXX grade_files only contains the files for the default grade, not the
# current grade in each iteration of the loop over ALL_LIBGRADES below.
lib%.install_grades:
rm -rf tmp_dir && \
mkdir tmp_dir && \
{ mv -f $(deps_subdir)$*.dep $($*.mihs) $($*.cs) $($*.c_dates) \
$($*.os) $($*.pic_os) *.a *.so tmp_dir || true; } && \
grade_files="$(foreach ext,$(GRADE_SUBDIR_EXTS),$($*.$(ext)s))" && \
for file in x $$grade_files; do \
if [ "$$file" != "x" ]; then \
mv -f $$file tmp_dir > /dev/null 2>&1; \
fi; \
done && \
{ mv -f $(deps_subdir)$*.dep $(deps_subdir)$*.dv \
*.a *.so tmp_dir || true; } && \
for grade in x $(ALL_LIBGRADES); do \
if [ "$$grade" != "x" ]; then \
$(MMAKE) GRADE=$$grade $*.depend || \
exit 1; \
$(MMAKE) GRADE=$$grade lib$*.install_library || \
exit 1; \
rm -f $(deps_subdir)$*.dep $($*.mihs) $($*.cs) \
$($*.c_dates) $($*.os) $($*.pic_os) *.a *.so; \
for file in x $$grade_files; do \
if [ "$$file" != "x" ]; then \
rm -f $$file; \
fi; \
done; \
rm -f $(deps_subdir)$*.dep $(deps_subdir)$*.dv \
*.a *.so; \
fi; \
done && \
{ mv tmp_dir/*.c $(cs_subdir). ; \
mv tmp_dir/*.$O $(os_subdir). ; \
mv tmp_dir/*.c_date $(c_dates_subdir). ; \
mv tmp_dir/*.pic_o $(os_subdir). ; \
mv tmp_dir/*.dep $(deps_subdir). ; \
mv tmp_dir/* . ; rmdir tmp_dir ; true; }
for file in x $$grade_files; do \
if [ "$$file" != "x" ]; then \
mv -f tmp_dir/`basename $$file` $$file > /dev/null 2>&1; \
fi; \
done && \
{ mv -f tmp_dir/*.dep tmp_dir/*.dv $(deps_subdir).; \
mv -f tmp_dir/* .; rmdir tmp_dir; true; }
lib%.install_split_grades:
rm -rf tmp_dir && \
mkdir tmp_dir && \
{ mv -f $(deps_subdir)$*.dep $($*.mihs) $($*.dirs) *.a *.so \
tmp_dir || true; } && \
{ mv -f $(deps_subdir)$*.dep $(deps_subdir)$*.dv $($*.mihs) \
$($*.dirs) *.a *.so tmp_dir || true; } && \
for grade in x $(ALL_LIBGRADES); do \
if [ "$$grade" != "x" ]; then \
$(MMAKE) GRADE=$$grade $*.depend || \
exit 1; \
$(MMAKE) GRADE=$$grade lib$*.install_split_library || \
exit 1; \
rm -rf $(deps_subdir)$*.dep $($*.mihs) $($*.dirs) \
*.a *.so; \
rm -rf $(deps_subdir)$*.dep $(deps_subdir)$*.dv \
$($*.mihs) $($*.dirs) *.a *.so; \
fi; \
done && \
{ mv tmp_dir/*.dir $(dirs_subdir). ; \
mv tmp_dir/*.dep $(deps_subdir). ; \
mv tmp_dir/*.dv $(deps_subdir). ; \
mv tmp_dir/* . ; rmdir tmp_dir ; true; }
@@ -536,8 +552,12 @@ install_grade_dirs: #install_lib_dirs
$(INSTALL_MKDIR) $(INSTALL_MERC_LIB_DIR)
-[ -d $(INSTALL_GRADE_INC_DIR) ] || \
$(INSTALL_MKDIR) $(INSTALL_GRADE_INC_DIR)
-[ -d $(INSTALL_GRADE_INT_DIR) ] || \
$(INSTALL_MKDIR) $(INSTALL_GRADE_INT_DIR)
# The following is needed to support the `--use-subdirs' option
-[ -d $(INSTALL_GRADE_INC_DIR)/Mercury ] || \
$(INSTALL_MKDIR) $(INSTALL_GRADE_INC_DIR)/Mercury
-[ -d $(INSTALL_GRADE_INT_DIR)/Mercury ] || \
$(INSTALL_MKDIR) $(INSTALL_GRADE_INT_DIR)/Mercury
#-----------------------------------------------------------------------------#

View File

@@ -105,7 +105,8 @@ MC = mmc
ALL_MCFLAGS = $(MCFLAGS) $(EXTRA_MCFLAGS) $(TARGET_MCFLAGS) $(LIB_MCFLAGS)
MCFLAGS =
EXTRA_MCFLAGS =
LIB_MCFLAGS = $(patsubst %,-I %,$(EXTRA_INT_DIRS))
LIB_MCFLAGS = $(patsubst %,--mld %,$(EXTRA_LIB_DIRS)) \
$(patsubst %,--ml %,$(EXTRA_LIBRARIES))
# Flags for use with `mmc --make'.
# Pass the options as a Mercury.options file on stdin rather
@@ -531,6 +532,14 @@ maybe-base-JAVACFLAGS-undefined =
# `--use-subdirs' option.
#
# Extensions for which the subdirectory contains grade-dependent files
# which need to be moved away or deleted before building a library
# in another grade. There must be a $(main_module.$(ext)s) variable
# for each of these extensions.
GRADE_SUBDIR_EXTS = \
mih optdate trans_opt trans_opt_date c c_date java java_date \
class il il_date dll s s_date pic_s pic_s_date o pic_o
ifeq ($(MMAKE_USE_SUBDIRS),yes)
# If you change any of these, you may need to update
@@ -682,6 +691,7 @@ INSTALL_CGI_DIR = @CGIDIR@
INSTALL_MODULE_DIR = $(INSTALL_LIBDIR)/modules
INSTALL_INT_DIR = $(INSTALL_LIBDIR)/ints
INSTALL_GRADE_INT_DIR = $(INSTALL_LIBDIR)/ints/$(GRADESTRING)
INSTALL_INC_DIR = $(INSTALL_LIBDIR)/inc
INSTALL_MMAKE_DIR = $(INSTALL_LIBDIR)/mmake
FULLARCH = @FULLARCH@