#
# Architecture configurations for the MIDI library
#

RANLIB = touch

default:
	@echo "You must specify a target architecture"

#
# Solaris, tested on Solaris 2.6 on an UltraSparc
#

solaris-cc:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = cc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DSOLARISREALTIME" \
	"OPTS = -v -fast" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

solaris-gcc:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = gcc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DSOLARISREALTIME" \
	"OPTS = -O2 -Wall -pedantic" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

solaris-cc-posix4:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = cc" \
	"MIDIQ = -DPOSIXQUEUES" \
	"REALTIME = -DPOSIXREALTIME" \
	"OPTS = -v -fast" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

solaris-gcc-posix4:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = gcc" \
	"MIDIQ = -DPOSIXQUEUES" \
	"REALTIME = -DPOSIXREALTIME" \
	"OPTS = -O2 -Wall -pedantic" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

#
# extra configuration used for testing builds that use
# select() for timing instead of nanosleep();
#
solaris-cc-select:
	@$(MAKE) all \
	"OS = -DSYSV -DNO_NANOSLEEP" \
	"CC = cc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DSOLARISREALTIME" \
	"OPTS = -fast" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

#
# lcc has a few problems with varargs/stdargs, and errno.h
#
solaris-lcc:
	@$(MAKE) all \
	"OS = -DSYSV -DNO_NANOSLEEP" \
	"CC = lcc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DNOREALTIME" \
	"OPTS = -A -A " \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

solaris-lcc-posix4:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = lcc" \
	"MIDIQ = -DPOSIXQUEUES" \
	"REALTIME = -DNOREALTIME" \
	"OPTS = -A -A " \
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lposix4"

# 
# Irix 5.3 completely untested.. 
#
irix-cc:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = cc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DNOREALTIME" \
	"OPTS = -O"\
	"AR = ar" \
	"ARFLAGS = rv" \
	"LIBS = -lmd"


#
# OpenBSD 2.2, compiles but has trouble with serial I/O 
# on certain machines, due to hardware flow control behaviour.
#
openbsd:
	@$(MAKE) all \
	"OS = -DBSD" \
	"CC = cc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DNOREALTIME" \
	"OPTS = -O2" \
	"AR = ar" \
	"ARFLAGS = rv" \
	"RANLIB = ranlib" \
	"LIBS = "


#
# Linux, marginally tested.
#



# For a linux system running at high sysclock rate  > 200Hz... 
linux-fastclock:
	@$(MAKE) all \
	"OS = -DSYSV" \
	"CC = gcc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DPOSIXREALTIME" \
	"OPTS = -O2"\
	"AR = ar" \
	"ARFLAGS = rv" \
	"RANLIB = ranlib" \
	"LIBS = "


# for normal run of the mill linux systems...
linux:
	@$(MAKE) all \
	"OS = -DSYSV -DUSE_GETTIMEOFDAY" \
	"CC = gcc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DPOSIXREALTIME" \
	"OPTS = -O2"\
	"AR = ar" \
	"ARFLAGS = rv" \
	"RANLIB = ranlib" \
	"LIBS = "

aix:
	@$(MAKE) all \
	"OS = -DSYSV -DNO_NANOSLEEP" \
	"CC = cc" \
	"MIDIQ = -DSYSVQUEUES" \
	"REALTIME = -DNOREALTIME" \
	"OPTS = -O3" \
	"AR = ar" \
	"ARFLAGS = r" \
	"LIBS = "


