#
# Makefile for Regina Rexx Interpreter
# This file is especially for AIX, as AIX treats static and dynamic libraries
# equally.
#
# The variable 'srcdir' refers to the source-distribution, and can be set with
# the configure script by "--srcdir=DIR".
#

SHELL           = /bin/sh
THIS            = Makefile

@SET_MAKE@




VER=@VERSION_NODOT@
VERDOT=@VERSION@
REG_DIR=Regina-$(VERDOT)

srcdir  = @srcdir@
prefix  = @prefix@
exec_prefix = @exec_prefix@
libdir  = @libdir@
bindir  = @bindir@
includedir  = @includedir@
mandir  = @mandir@
sharedir = $(prefix)/share/regina
target = @target@

INSTALL         = $(srcdir)/install-sh

CC              = @CC@
LN_S            = @LN_S@
CFLAGS          = @CFLAGS@

CEXTRA =           @CEXTRA@ @DLFCNINCDIR@ -DREGINA_SHARE_DIRECTORY=\"$(sharedir)\" @unsigned_char@
DEBUG =            @DEBUG@
TRACEMEM =         @TRACEMEM@
FLISTS =           @FLISTS@
THREADING_COMPILE = @THREADING_COMPILE@
THREADING_LINK = @THREADING_LINK@
SHL_SCRIPT = @SHL_SCRIPT@
MT_FILE = @MT_FILE@
EEXTRA =           @EEXTRA@
EXECISER_DEP =     @EXECISER_DEP@
LIBPRE  =          @LIBPRE@
LIBFILE  =         @LIBFILE@
SHLFILE =          @SHLFILE@
ALLOCA =           @ALLOCA@
ALLOCA_SHO =       @ALLOCA_SHO@
STATICLIB =        @STATICLIB@
OSAVE  =           @OSAVE@
OBJ  =             @OBJ@
EXE  =             @EXE@
LIBPST  =          @LIBPST@
LIBEXE  =          @LIBEXE@
LIBFLAGS  =        @LIBFLAGS@
LIBLINK  =         @LIBLINK@
LINKSHL  =         @LINKSHL@
SHLPRE =           @SHLPRE@
SHLPST =           @SHLPST@
OBJECTS  =         @OBJECTS@
DYN_COMP  =        @DYN_COMP@
SYS_DEFS  =        @SYS_DEFS@
BOTHLIBS  =        @BOTHLIBS@  @DLFCNLIBDIR@
SHLIBS  =          @SHLIBS@ @DLFCNLIBDIR@
LD_RXLIB_A1  =     @LD_RXLIB_A1@
LD_RXLIB_A2  =     @LD_RXLIB_A2@
LD_RXLIB_B1  =     @LD_RXLIB_B1@
LD_RXLIB_B2  =     @LD_RXLIB_B2@
DYNAMIC_LDFLAGS  = @DYNAMIC_LDFLAGS@
SHL_LD  =          @SHL_LD@
SHL_TARGETS  =     @SHL_TARGETS@
OTHER_INSTALLS = @OTHER_INSTALLS@
O2SAVE  =          @O2SAVE@
O2SHO  =           @O2SHO@
CC2O   =           @CC2O@
SAVE2O  =          @SAVE2O@
PURIFY =           @PURIFY@
TEST1EXPORTS =     @TEST1EXPORTS@
TEST2EXPORTS =     @TEST2EXPORTS@
TEST1EXP =         @TEST1EXP@
TEST2EXP =         @TEST2EXP@
REGINAEXP =        @REGINAEXP@

#
# Some settings that you may wish to change, these are used only
# for the 'install' target:
#
#   TOPDIR    The top of the directory hierarchy in which to install
#   BINDIR    Where to install the compiled 'rexx' program
#   LIBDIR    Where to install the 'regina' library
#   MANEXT    The extention of the manual page
#   MANDIR    Where to install the manual page
#   PROGNAME  What to call the compiled program
#
BINDIR = $(TOPDIR)/bin
LIBDIR = $(TOPDIR)/lib
MANEXT = l
MANDIR = $(TOPDIR)/man/man$(MANEXT)

MISCDEFS = -DHAVE_CONFIG_H $(TRACEMEM) $(FLISTS) -I. -I$(srcdir) $(SYS_DEFS)

COPT = $(DEBUG) $(CFLAGS) $(CEXTRA) $(MISCDEFS) $(THREADING_COMPILE)
LINKOPT = $(DEBUG) $(CFLAGS) $(EEXTRA) $(THREADING_LINK)

README = $(REG_DIR)/README.??? $(REG_DIR)/COPYING-LIB $(REG_DIR)/INSTALL $(REG_DIR)/regina.1 $(REG_DIR)/BUGS $(REG_DIR)/TODO

FILES = funcs builtin error variable interprt debug dbgfuncs \
        memory parsing files misc os2funcs unxfuncs cmsfuncs shell rexxext stack \
        tracing interp cmath convert strings library strmath signals \
        macros envir extlib wrappers options doscmd #r2perl

OFILES = funcs.$(OBJ) builtin.$(OBJ) error.$(OBJ) variable.$(OBJ) \
	interprt.$(OBJ) debug.$(OBJ) dbgfuncs.$(OBJ) memory.$(OBJ) parsing.$(OBJ) files.$(OBJ) \
	misc.$(OBJ) unxfuncs.$(OBJ) cmsfuncs.$(OBJ) os2funcs.$(OBJ) shell.$(OBJ) rexxext.$(OBJ) stack.$(OBJ) \
	tracing.$(OBJ) interp.$(OBJ) cmath.$(OBJ) convert.$(OBJ) strings.$(OBJ) library.$(OBJ) \
	strmath.$(OBJ) signals.$(OBJ) macros.$(OBJ) envir.$(OBJ) expr.$(OBJ) extstack.$(OBJ) \
	extlib.$(OBJ) yaccsrc.$(OBJ) lexsrc.$(OBJ) options.$(OBJ) doscmd.$(OBJ) rexxbif.$(OBJ) \
	wrappers.$(OBJ) $(ALLOCA) $(MT_FILE).$(OBJ) instore.$(OBJ) #r2perl.$(OBJ)

SHOFILES = $(OFILES) \
	drexx.$(OBJ) client.$(OBJ) rexxsaa.$(OBJ)

DEMODIR = $(REG_DIR)/demo
DEMOFILES = $(DEMODIR)/*
TRIPDIR = $(REG_DIR)/trip
TRIPFILES = $(TRIPDIR)/*
CONFFILES = $(REG_DIR)/configure.in $(REG_DIR)/config.h.in $(REG_DIR)/Makefile.in \
            $(REG_DIR)/install-sh $(REG_DIR)/config.guess $(REG_DIR)/config.sub $(REG_DIR)/aclocal.m4 \
            $(REG_DIR)/configure
YACCLEX_FILES = $(REG_DIR)/yaccsrc.y $(REG_DIR)/lexsrc.l

ALLSRC = $(CFILES) $(HFILES)

MTSSRC = $(srcdir)/en.mts $(srcdir)/pt.mts $(srcdir)/no.mts \
         $(srcdir)/de.mts $(srcdir)/es.mts
MTBFILES = en.mtb pt.mtb no.mtb \
           de.mtb es.mtb

HFILES = $(REG_DIR)/rexx.h $(REG_DIR)/defs.h $(REG_DIR)/extern.h $(REG_DIR)/regina_t.h \
         $(REG_DIR)/strings.h $(REG_DIR)/configur.h $(REG_DIR)/yaccsrc.h \
         $(REG_DIR)/rxiface.h $(REG_DIR)/rexxsaa.h $(REG_DIR)/utsname.h
CFILES = $(CSRCFILES) $(REG_DIR)/yaccsrc.c $(REG_DIR)/lexsrc.c $(REG_DIR)/execiser.c \
         $(REG_DIR)/rexxsaa.c $(REG_DIR)/rexx.c $(REG_DIR)/regina.c $(REG_DIR)/client.c \
         $(REG_DIR)/r2perl.c $(REG_DIR)/test1.c $(REG_DIR)/test2.c

JUNK = *.o $(STATICLIB) execiser$(EXE) threader$(EXE) rxqueue$(EXE) rxstack$(EXE) rexx$(EXE) trexx$(EXE) $(SHL_TARGETS) *.exp

#.SUFFIXES: .sho $(SUFFIXES)
#
# Do not use default suffixes rule
#
.SUFFIXES:

all : rexx$(EXE) execiser$(EXE) trexx$(EXE) $(SHL_TARGETS) rxstack$(EXE) rxqueue$(EXE) $(MTBFILES)

$(srcdir)/rexx.h : $(srcdir)/extern.h $(srcdir)/strings.h $(srcdir)/defs.h $(srcdir)/regina_t.h $(srcdir)/mt.h

$(srcdir)/mt.h : $(srcdir)/$(MT_FILE).h

rexx$(EXE) : $(OFILES) rexx.$(OBJ) nosaa.$(OBJ)
	$(PURIFY) $(CC) $(LINKOPT) $(STATIC_LDFLAGS) -o rexx $(OFILES) rexx.$(OBJ) nosaa.$(OBJ) $(SHLIBS)
	$(LDEXTRA)

regina$(EXE) : $(EXECISER_DEP) regina.$(OBJ)
	$(PURIFY) $(CC) $(LINKOPT) $(DYNAMIC_LDFLAGS) -o regina$(EXE) regina.$(OBJ) $(LINKSHL) $(SHLIBS)
	$(LDEXTRA)

execiser$(EXE) : execiser.$(OBJ) $(EXECISER_DEP)
	$(PURIFY) $(CC) $(LINKOPT) -o execiser execiser.$(OBJ) $(LINKSHL) $(BOTHLIBS) $(SHLIBS)
	$(LDEXTRA)

rxstack$(EXE) : rxstack.$(OBJ) erexxbif.$(OBJ) eextstack.$(OBJ)
	$(PURIFY) $(CC) $(LINKOPT) $(DYNAMIC_LDFLAGS) -o rxstack$(EXE) rxstack.$(OBJ) erexxbif.$(OBJ) eextstack.$(OBJ) $(LINKSHL) $(BOTHLIBS) $(SHLIBS)
	$(LDEXTRA)

rxqueue$(EXE) : rxqueue.$(OBJ) erexxbif.$(OBJ) eextstack.$(OBJ)
	$(PURIFY) $(CC) $(LINKOPT) $(DYNAMIC_LDFLAGS) -o rxqueue$(EXE) rxqueue.$(OBJ) erexxbif.$(OBJ) eextstack.$(OBJ) $(LINKSHL) $(BOTHLIBS) $(SHLIBS)
	$(LDEXTRA)

threader$(EXE) : threader.$(OBJ) $(EXECISER_DEP)
	$(PURIFY) $(CC) $(LINKOPT) -o threader threader.$(OBJ) $(LINKSHL) $(BOTHLIBS) $(SHLIBS)
	$(LDEXTRA)

$(SHLPRE)$(SHLFILE)$(SHLPST): $(SHOFILES) $(REGINAEXP)
	$(SHL_LD)

#
# Rules for lex and yacc source - not used at this stage
#
#$(srcdir)/yaccsrc.h $(srcdir)/yaccsrc.c: $(srcdir)/yaccsrc.y
#	bison -o$(srcdir)/yaccsrc.c -d $(srcdir)/yaccsrc.y
#
#$(srcdir)/lexsrc.c: $(srcdir)/lexsrc.l
#	flex -Scontrib/flex.skl -8 -o$(srcdir)/lexsrc.c $(srcdir)/lexsrc.l

#
# Convert .mts to .mtb
#
$(MTBFILES): msgcmp$(EXE) $(MTSSRC)
	./msgcmp $(MTSSRC)

msgcmp$(EXE): msgcmp.$(OBJ)
	$(PURIFY) $(CC) $(LINKOPT) -o msgcmp$(EXE) msgcmp.$(OBJ)

msgcmp.$(OBJ): $(srcdir)/msgcmp.c
	$(CC) $(COPT) $(CC2O) -c $(srcdir)/msgcmp.c

#
# Rules for static objects
#
funcs.$(OBJ) :   $(srcdir)/funcs.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/funcs.c

builtin.$(OBJ) : $(srcdir)/builtin.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/builtin.c

error.$(OBJ) :   $(srcdir)/error.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/error.c

variable.$(OBJ) :$(srcdir)/variable.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/variable.c

interprt.$(OBJ) :$(srcdir)/interprt.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/interprt.c

debug.$(OBJ) :   $(srcdir)/debug.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/debug.c

dbgfuncs.$(OBJ) :$(srcdir)/dbgfuncs.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/dbgfuncs.c

memory.$(OBJ) :  $(srcdir)/memory.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/memory.c

parsing.$(OBJ) : $(srcdir)/parsing.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/parsing.c

files.$(OBJ) :   $(srcdir)/files.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/files.c

misc.$(OBJ) :    $(srcdir)/misc.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/misc.c

unxfuncs.$(OBJ) :$(srcdir)/unxfuncs.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/unxfuncs.c

os2funcs.$(OBJ) :$(srcdir)/os2funcs.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/os2funcs.c

cmsfuncs.$(OBJ) :$(srcdir)/cmsfuncs.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/cmsfuncs.c

shell.$(OBJ) :   $(srcdir)/shell.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/shell.c

rexxext.$(OBJ) : $(srcdir)/rexxext.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rexxext.c

stack.$(OBJ) :   $(srcdir)/stack.c $(srcdir)/extstack.h $(srcdir)/rexxbif.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/stack.c

tracing.$(OBJ) : $(srcdir)/tracing.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/tracing.c

interp.$(OBJ) :  $(srcdir)/interp.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/interp.c

cmath.$(OBJ) :   $(srcdir)/cmath.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/cmath.c

convert.$(OBJ) : $(srcdir)/convert.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/convert.c

strings.$(OBJ) : $(srcdir)/strings.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/strings.c

library.$(OBJ) : $(srcdir)/library.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/library.c

strmath.$(OBJ) : $(srcdir)/strmath.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/strmath.c

signals.$(OBJ) : $(srcdir)/signals.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/signals.c

macros.$(OBJ) :  $(srcdir)/macros.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/macros.c

envir.$(OBJ) :   $(srcdir)/envir.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/envir.c

expr.$(OBJ) :    $(srcdir)/expr.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/expr.c

extlib.$(OBJ) :  $(srcdir)/extlib.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/extlib.c

wrappers.$(OBJ) :$(srcdir)/wrappers.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/wrappers.c

options.$(OBJ) : $(srcdir)/options.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/options.c

extstack.$(OBJ) : $(srcdir)/extstack.c $(srcdir)/extstack.h $(srcdir)/rexxbif.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/extstack.c

rexxbif.$(OBJ) : $(srcdir)/rexxbif.c $(srcdir)/rexxbif.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rexxbif.c

doscmd.$(OBJ) :  $(srcdir)/doscmd.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/doscmd.c

rexx.$(OBJ) :    $(srcdir)/rexx.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rexx.c

client.$(OBJ) :    $(srcdir)/client.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/client.c

rexxsaa.$(OBJ) :    $(srcdir)/rexxsaa.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rexxsaa.c

regina.$(OBJ) :  $(srcdir)/regina.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/regina.c

drexx.$(OBJ) : $(srcdir)/rexx.c
	-mv rexx.$(OBJ) rexx$(OSAVE)
	$(CC) $(COPT) -c -DRXLIB $(srcdir)/rexx.c
	 -mv rexx.$(OBJ) drexx.$(OBJ)
	-mv rexx$(OSAVE) rexx.$(OBJ)

lexsrc.$(OBJ) : $(srcdir)/lexsrc.c $(srcdir)/rexx.h $(srcdir)/yaccsrc.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/lexsrc.c

yaccsrc.$(OBJ) : $(srcdir)/yaccsrc.c $(srcdir)/defs.h $(srcdir)/rexx.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c -DYYMAXDEPTH=10000 $(srcdir)/yaccsrc.c

execiser.$(OBJ) : $(srcdir)/execiser.c $(srcdir)/rexx.h
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/execiser.c

alloca.$(OBJ) :    $(srcdir)/alloca.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/alloca.c

mt_notmt.$(OBJ) : $(srcdir)/mt_notmt.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/mt_notmt.c

mt_posix.$(OBJ) : $(srcdir)/mt_posix.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/mt_posix.c

nosaa.$(OBJ) : $(srcdir)/nosaa.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/nosaa.c

instore.$(OBJ) : $(srcdir)/instore.c
	$(CC) $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/instore.c


rxstack.$(OBJ) : $(srcdir)/rxstack.c $(srcdir)/rexxbif.h
	$(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rxstack.c

rxqueue.$(OBJ) : $(srcdir)/rxqueue.c $(srcdir)/rexxbif.h
	$(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rxqueue.c

eextstack.$(OBJ) : $(srcdir)/extstack.c $(srcdir)/extstack.h $(srcdir)/rexxbif.h
	$(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/extstack.c

erexxbif.$(OBJ) : $(srcdir)/rexxbif.c $(srcdir)/rexxbif.h
	$(CC) -DEXTERNAL_TO_REGINA $(COPT) $(CC2O) $(DYN_COMP) -c $(srcdir)/rexxbif.c

#
# Rules for sample programs
#
test1.$(OBJ): $(srcdir)/test1.c
	$(CC) -c $(COPT) $(CC2O) $(DYN_COMP) $(srcdir)/test1.c

$(SHLPRE)test1$(SHLPST): test1.$(OBJ) $(SHLPRE)$(SHLFILE)$(SHLPST) $(TEST1EXP)
	$(LD_RXLIB_A1) $@ $(TEST1EXPORTS) test1.$(OBJ) $(LD_RXLIB_B1)

test2.$(OBJ): $(srcdir)/test2.c
	$(CC) -c $(COPT) $(CC2O) $(DYN_COMP) $(srcdir)/test2.c

$(SHLPRE)test2$(SHLPST): test2.$(OBJ) $(SHLPRE)$(SHLFILE)$(SHLPST) $(TEST2EXP)
	$(LD_RXLIB_A2) $@ $(TEST2EXPORTS) test2.$(OBJ) $(LD_RXLIB_B2)

regina.exp: ./rexx$(EXE) $(srcdir)/regina_w32_dll.def $(srcdir)/def2exp.rexx
	./rexx$(EXE) $(srcdir)/def2exp.rexx $(srcdir)/regina_w32_dll.def regina.exp

test1.exp: ./rexx$(EXE) $(srcdir)/test1_w32_dll.def $(srcdir)/def2exp.rexx
	./rexx$(EXE) $(srcdir)/def2exp.rexx $(srcdir)/test1_w32_dll.def test1.exp

test2.exp: ./rexx$(EXE) $(srcdir)/test2_w32_dll.def $(srcdir)/def2exp.rexx
	./rexx$(EXE) $(srcdir)/def2exp.rexx $(srcdir)/test2_w32_dll.def test2.exp

ARCHIVE_FILES = $(ALLSRC) $(README) $(REG_DIR)/makefile.* $(REG_DIR)/oldmakefiles/makefile* \
        $(REG_DIR)/oldmakefiles/README $(REG_DIR)/*.rsp $(DEMOFILES) $(TRIPFILES) \
        $(CONFFILES) $(REG_DIR)/*.def $(REG_DIR)/*.ico $(REG_DIR)/*.rc \
        $(REG_DIR)/file_id* $(REG_DIR)/*.bat $(REG_DIR)/*.cmd $(YACCLEX_FILES) \
        $(REG_DIR)/*.rexx $(REG_DIR)/yaccsrc.bound

dist:
	(cd $(srcdir)/..; \
	tar -cvf - $(ARCHIVE_FILES) | gzip > Regina-REXX-$(VERDOT).tar.gz )

tar:
	(cd $(srcdir)/..; \
	tar -cvf - $(ARCHIVE_FILES) | compress > Regina-REXX-$(VERDOT).tar.Z )

zip:
	(cd $(srcdir)/..; \
	zip regna$(VER) $(ARCHIVE_FILES) )

binary: all
	-rm -fr ./tmpdir
	-mkdir -p ./tmpdir/bin
	-mkdir -p ./tmpdir/lib
	-mkdir -p ./tmpdir/include
	-mkdir -p ./tmpdir/man/man1
	-mkdir -p ./tmpdir/doc/regina
	-mkdir -p ./tmpdir/rexx
	./rexx $(srcdir)/makebinary.rexx -s$(srcdir) -d./tmpdir -u$(USE_ABI) -a$(ABI_MINOR) -A$(ABI_MAJOR) -p$(SHLPRE) -P$(SHLPST) -S$(SHL) -l$(LIBPRE) -L$(LIBPST)
	(cd ./tmpdir; \
	tar cvf - * | gzip > ../Regina-$(VERDOT)-$(target).tgz )

#
# installation rules
#
install: all
	$(INSTALL) -m 755 -d $(bindir)
	$(INSTALL) -m 755 -d $(libdir)
	$(INSTALL) -m 755 -d $(includedir)
	$(INSTALL) -m 755 -d $(sharedir)
	$(INSTALL) -m 755 -d $(mandir)/man1
	$(INSTALL) -m 755 -c ./rexx $(bindir)/rexx
	$(INSTALL) -m 755 -c ./rxqueue $(bindir)/rxqueue
	$(INSTALL) -m 755 -c ./rxstack $(bindir)/rxstack
	$(INSTALL) -m 755 -c ./regina $(bindir)/regina
	$(INSTALL) -m 755 -c ./trexx $(bindir)/trexx
	$(INSTALL) -m 755 -c ./tregina $(bindir)/tregina
	$(INSTALL) -m 755 -c ./regina-config $(bindir)/$(SHLFILE)-config
	$(INSTALL) -m 755 -c ./$(SHLPRE)$(SHLFILE).a $(libdir)/$(SHLPRE)$(SHLFILE).a
	$(INSTALL) -m 744 -c $(srcdir)/regina.1 $(mandir)/man1/regina.1
	$(INSTALL) -m 744 -c $(srcdir)/rexxsaa.h $(includedir)/rexxsaa.h
	$(INSTALL) -m 744 -c ./pt.mtb $(sharedir)/pt.mtb
	$(INSTALL) -m 744 -c ./no.mtb $(sharedir)/no.mtb
	$(INSTALL) -m 744 -c ./de.mtb $(sharedir)/de.mtb
	$(INSTALL) -m 744 -c ./es.mtb $(sharedir)/es.mtb
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/rexxcps.rexx  $(sharedir)/rexxcps.rexx
	-chmod 755 $(sharedir)/rexxcps.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/animal.rexx   $(sharedir)/animal.rexx
	-chmod 755 $(sharedir)/animal.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/block.rexx    $(sharedir)/block.rexx
	-chmod 755 $(sharedir)/block.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/dateconv.rexx $(sharedir)/dateconv.rexx
	-chmod 755 $(sharedir)/dateconv.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/timeconv.rexx $(sharedir)/timeconv.rexx
	-chmod 755 $(sharedir)/timeconv.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/dynfunc.rexx  $(sharedir)/dynfunc.rexx
	-chmod 755 $(sharedir)/dynfunc.rexx
	$(bindir)/rexx $(srcdir)/preinst.rexx $(bindir)/rexx $(srcdir)/demo/newstr.rexx   $(sharedir)/newstr.rexx
	-chmod 755 $(sharedir)/newstr.rexx
	$(INSTALL) -m 755 -c ./regina $(bindir)/regina
	$(INSTALL) -m 755 -c ./$(SHLPRE)test1$(SHLPST) $(libdir)/$(SHLPRE)test1$(SHLPST)
	$(INSTALL) -m 755 -c ./$(SHLPRE)test2$(SHLPST) $(libdir)/$(SHLPRE)test2$(SHLPST)

clean:
	rm -f $(JUNK)
#
# End of makefile
#
