#!/bin/sh

# ensure script files in this directory have correct permissions

#
# Note
#  most scripts here are intended to be executed from a target architecture
#  directory, via a command such as
#       ../util/boot37
#  but this one (setexec) and "makes.bat" should be executed with
# this util directory current.

# chmod +x setexec       but hard to do while being executed?

# makes.bat can be run after compiling "makemake.c" and rebuilds
# system-specific Makefiles from the basic file "makebase"

chmod +x makes.bat

# full37 is the build script to use supposing that all the C code
# (in directory csl-c) has already been built. It is the only rebuild
# job needed in normal circumstances

chmod +x full37

# patchup arranges that the most recent patches (installed in the file
# packages/support/patches.red within the top-level REDUCE directory)
# get installed into the current REDUCE image.

chmod +x patchup

# testall called on its own runs all known test scripts.
# If followed by a package name it just runs the test for that package.
# testrest is similar, except that it only updates logs that seem out of
# date.

chmod +x testall 
chmod +x testrest

# checkall produces a log (in log/checkall.log) of differences between
# the logs creates by testall and reference ones. "checkall XXX" produces
# a log that relates to just that one package.

chmod +x checkall

#
# If (for any reason) you want to recompile just one package that forms
# part of REDUCE you can go
#   ../util/package  <packagename>
# This will recompile such modules that are parts of the given package
# and whose source files are newer than the compiled versions stored
# within the REDUCE image file.  This may be useful if you have updated
# some of the source code. Note that if you add extra packages to REDUCE
# you will need to update the "package.red" file in the REDUCE root
# directory and follow the rukes about having a file for each package
# that identifies all of the other relevant source files.
#

chmod +x package

#
# The next scripts are only needed if you want to rebuild everything
# from scratch. "boot37" uses a "slowr37" executable and builds a
# bootstrap version of REDUCE. "testslow" is like "testall" but tests this
# version. "profile" collects profile data, and then "c-code37" compiles
# the hot-spot functions into C. "clash" looks for places in the REDUCE
# source where two packages each define a function with the same name.
#

chmod +x boot37
chmod +x testslow
chmod +x profile 
chmod +x c-code37

chmod +x clash 

# the "makeall" script does all the above and provides a hands-free
# utterly complete reconstruction and test.

chmod +x makeall

# For Linux the object files for REDUCE will be distributed. The "relink"
# script makes executables out of them again. Those who have the
# "professional" version of REDUCE will probably prefer to use "make"
# to achieve this effect, but when source files are not avauilable the
# dependancy information in the Makefile can cause pain - this small
# free-standing script may avoid that.

chmod +x relink

# end of setexec script


