# Makefile for analog 5.22, Acorn RiscOS
# Please read docs/Readme.html, or http://www.analog.cx/
#
# THIS WAS A MAKEFILE FOR VERSION 4 OF ANALOG. IT WON'T WORK FOR VERSION 5.
#
CC = cc            # which compiler to use: eg cc, acc, gcc. NB Different
#                    compilers need different CFLAGS, e.g., -O instead of -O2.
CFLAGS =           # options, e.g. for optimisation or ANSI compilation.
DEFS =             # any of -DNOPIPES -DNODNS -DNODIRENT -DNOOPEN ...
#                    ... -DEBCDIC -DNOGMTIME -DNEED_STRCMP -DNEED_MEMMOVE ...
#                    ... -DNEED_STRTOUL -DNEED_DIFFTIME -DHAVE_ADDR_T ...
#                    ... -DNEED_FLOATINGPOINT_H
#                    All the options are explained at the bottom of this file.
OS = RISCOS        # Operating system: UNIX, DOS, WIN32, MAC, OS2, OSX, VMS
#                    RISCOS, BEOS, NEXTSTEP, MPEIX, BS2000, AS400
LIBS = c:o.Stubs   # extra libraries needed

PROGRAM = analog
OBJS = alias.o analog.o cache.o dates.o globals.o hash.o init.o init2.o \
	input.o macinput.o macstuff.o output.o output2.o pcre.o process.o \
	settings.o sort.o tree.o utils.o win32.o
HEADERS = anlghead.h anlghea2.h anlghea3.h anlghea4.h macdir.h pcre.h

all: $(PROGRAM)

$(PROGRAM): $(OBJS) $(HEADERS)
	link -aif -o $(PROGRAM) $(OBJS) $(LIBS)
	@echo '***'
	@echo '***IMPORTANT: You must read the licence before using analog'
	@echo '***'

.SUFFIXES: .o .c
.c.o:;  $(CC) $(CFLAGS) -c -IC: $(DEFS) -D$(OS) -o $@ $<

clean:
	remove analog
	wipe o.* ~v~c

# OK, here's the details on all the DEFS options, in case anyone needs to know.
# NOPIPES excludes non-ANSI functions popen() and pclose(). You will lose the
#   UNCOMPRESS command.
# NODNS excludes all the DNS lookup code. This is platform-dependent, but
#   typically involves header files <net*.h> and functions like inet_addr()
#   and gethostbyaddr().
# NODIRENT stops you using wildcards in logfile names. Again, the code is
#   platform-dependent, but usually the header file <dirent.h> and functions
#   opendir(), readdir() and closedir() are involved.
# NOOPEN excludes non-ANSI functions open() and fdopen(). This results in an
#   alternative, less safe locking mechanism for DNS files and cache files.
#
# ** If all of the above are defined only features defined in ANSI C are used.
#
# EBCDIC is needed if your server uses the EBCDIC character set, not ASCII.
# NEED_STRCMP, NEED_MEMMOVE, NEED_STRTOUL and NEED_DIFFTIME provide
#   replacements for standard functions missing on some systems.
# NOGMTIME doesn't use the gmtime() function.
# NEED_FLOATINGPOINT_H includes a header file called <floatingpoint.h>.
# HAVE_ADDR_T is needed if inet_addr() returns in_addr_t which is not the
#   same as unsigned long.
