#
# This make file is the main make file of the IRIT solid modeller and its
# auxilary tools, under UNIX.
#
# Do the following before run make:
#
# 1. Edit 'makeflag.sas' for the exact path names to be used for libraries and
#    binaries. Set the proper C compiler and graphics library flags in
#    makeflag.sas as well.
# 2. Edit the makefiles in all subdirectories. Replace the text between
#    "#-----" with the contents of makeflag.sas. Do the same for this file,
#    and make sure that the MAKE variable points to the correct make program.
# 3. The gif.lib is not provided here. See the documentation on how to get
#    it. Without it poly3d-r cannot be built.
#    The make files are set as if gif.lib IS NOT PROVIDED.
#
#				Gershon Elber, Nov. 1991
#				Kriton Kyrimis, Dec. 1993
#

#-----
#
# The XXX_DIR variables below MUST have ABSOLUTE path. Since this file
# is sourced from several directories relative path specification will
# be simple wrong.
#

SRC_DIR = Boot:Home/T/Irit
#
# All libraries created will be installed into the LIB_DIR directory.
#
LIB_DIR = $(SRC_DIR)/lib

#
# All includes files associated with the installed libraries will be
# installed into the INC_DIR directory.
#
INC_DIR = $(SRC_DIR)/inc

#
# All binaries created will be installed into the BIN_DIR directory.
#
BIN_DIR = $(SRC_DIR)/bin

#
# Uncomment the correct set of variables to be used or modify it for
# your system.
#
# -D flags:
#
# -D__GL__ - if your system supports gl graphics library (SGI 4d & IBM R6000).
#
# -D__X11__ - if your system supports X11. Only one of __GL__ or __X11__ should
#	be used.
#
#  Emulation to the following function are available by defining the
#  following. Look at misc_lib/xgeneral.c/h for implementation.
# -DGETCWD - if getcwd is not defined in this system.
# -DSTRSTR - if strstr is not defined in this system.
# -DSTRDUP - if strdup is not defined in this system.
# -DSTRICMP - if stricmp and strincmp are not defined in this system.
#
# -DTIMES - if times is defined in your system, otherwise uses time.
#
# -DRAND - if the (s)rand random number generator exists.
# -DRAND48 - ?rand48 random number generators exists.
#	If non of RAND or RAND48 are defined, (s)random is used.
#
# -DNO_VOID_PTR - if your C compiler does not support (void *).
#
# -DUSE_VARARGS - if your system does not have stdarg.h and have the old
#	varargs.h.
#
# -DNO_CONCAT_STR - if 'char *p = "This is" "one string";' is illegal.
#
# -DGRAPDRVS - any combination of of 'xgldrvs', 'xgladap', 'x11drvs'.
#
# Other, possibly useful defines (for c code development):
#
# -DDEBUG - for some debugging functions in the code (that can be invoked
#		from a debugger).
#

#
# Flags for Amiga using SAS/C
#
# Use DEFINE=M68881 if you have a 68881/68882/68040
# Use DEFINE=MIEEE if you want to use the IEEE math library
# Use DEFINE=MFFP if you want to use the FFP math library
#
CC = sc
DFLAGS = DEFINE=M68881 DEFINE=RAND48
CFLAGS = $(DFLAGS) CPU=68040 MATH=68882 NOSTACKCHECK STRMERGE IGNORE=79
MORELIBS = $(LIB_DIR)/amg.lib
GRAPDRVS =nuldrvs

#
# Default rule for compilation.
#
.c.o:
	$(CC) $(CFLAGS) IDIR= IDIR=$(INC_DIR) IDIR=$(SRC_DIR)/amigalib $<

#
# All libraries.
LIBS = $(LIB_DIR)/geom.lib $(LIB_DIR)/prsr.lib $(LIB_DIR)/cagd.lib\
       $(LIB_DIR)/misc.lib #$(LIB_DIR)/gif.lib
#-----

MAKE = smake

#
# Uncomment the following variable to only see the actions taken.
#
# VIEW_ONLY = -n

all: 	binaries doc init

#
# Print info regarding initialization.
#
init:
	@echo ""
	@echo "Before executing the test suite and/or any usage of this"
	@echo "package you will have to issue the following commands:"
	@echo ""
	@echo "path add $(BIN_DIR)"
	@echo "setenv IRIT_PATH $(BIN_DIR)/"
	@echo ""
	@echo "and optionally the following commands:"
	@echo ""
	@echo "setenv IRIT_DISPLAY *"amidrvs -s-*""
	@echo "setenv IRIT_BIN_IPC 1"
	@echo "setenv IRIT_SERVER_PORT Irit"
	@echo ""
	@echo "or similar."

binaries:
	@execute makescr.ami amigalib $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami misc_lib $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami cagd_lib $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami prsr_lib $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami geom_lib $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami grapdrvs $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami irit $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami poly3d-h $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami illustrt $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami iritfltr $(MAKE) $(VIEW_ONLY) -f makefile.sas install
	@execute makescr.ami docs $(MAKE) $(VIEW_ONLY) -f makefile.sas install
#	@execute makescr.ami poly3d-r $(MAKE) $(VIEW_ONLY) -f makefile.sas install

#
# Make hardcopy documentation.
#
doc:
	@execute makescr.ami docs $(MAKE) $(VIEW_ONLY) -f makefile.sas\
	irit.tex irit.doc

clean:
	delete QUIET amigalib/\#?.lib amigalib/\#?.o misc_lib/\#?.lib\
misc_lib/\#?.o cagd_lib/\#?.lib cagd_lib/\#?.o prsr_lib/\#?.lib prsr_lib/\#?.o\
geom_lib/\#?.lib geom_lib/\#?.o grapdrvs/amidrvs grapdrvs/nuldrvs\
grapdrvs/\#?.o irit/irit irit/\#?.o poly3d-h/poly3d-h poly3d-h/\#?.o\
lib/cagd.lib lib/geom.lib lib/misc.lib lib/prsr.lib
	delete QUIET illustrt/illustrt illustrt/\#?.o iritfltr/irit2ray\
iritfltr/irit2ps iritfltr/irit2xfg iritfltr/irit2nff iritfltr/dat2irit\
iritfltr/dxf2irit iritfltr/irit2dxf iritfltr/irit2scn iritfltr/irit2plg\
iritfltr/skeletn1 iritfltr/\#?.o docs/irit.tex docs/irit.doc docs/irit.hlp\
docs/\#?.o poly3d-r/poly3d-r poly3d-r/\#?.o
