#############################################################################
#############################################################################
#
#	Makefile for sndserver
#
#	by Patrice Mandin
#
#############################################################################
#############################################################################

###############	Choose the configuration to compile for :
#
#	Configurations allowed are:
#
#	SYSTEM	CPU
#
#	linux	x86
#	atari	m68k

SYSTEM=		linux
CPU=		x86

###############	Different initializations values

CPU_IS_m68k=	-m68030 -D__BIG_ENDIAN__
CPU_IS_x86=	-m486 -ffast-math -malign-loops=2 -malign-functions=2 -malign-jumps=2

SYS_IS_linux=	-DLINUX
SYS_IS_atari=	-DATARI

###############	Parse configuration now

SYSTEMFLAGS=	$(SYS_IS_$(SYSTEM))
CPUFLAGS=	$(CPU_IS_$(CPU))

###############	Common variables

CC=		gcc
LD=		gcc

INCLUDES=	-Iinclude
SRCDIR=		./src
OBJDIR=		./obj
SYSTEMLIBS=	-lm
CFLAGS=		-Wall -O2 -fomit-frame-pointer -DNORMALUNIX

###############	Program name , source and object files

PROGRAM=	sndserver

OBJS=	\
	$(OBJDIR)/$(SYSTEM).o \
	$(OBJDIR)/sounds.o \
	$(OBJDIR)/soundsrv.o \
	$(OBJDIR)/m_swap.o \
	$(OBJDIR)/wadread.o

###############	Rules to build program

all:	 $(PROGRAM) strip $(SYSTEM)

clean:
	rm -rf $(OBJDIR)
	rm -f $(PROGRAM)

strip:
	strip	$(PROGRAM)

$(PROGRAM):	$(OBJS)
	$(LD) $(OBJS) $(SYSTEMLIBS) -o $(PROGRAM)

$(OBJDIR)/%.o:	$(SRCDIR)/%.c
	@if [ ! -d $(OBJDIR) ]; then \
		mkdir $(OBJDIR); \
	fi
	$(CC) $(INCLUDES) $(CFLAGS) $(SYSTEMFLAGS) $(CPUFLAGS) -c $< -o $@

###############	System dependent rules

linux:

atari:
	fixstk 131072 $(PROGRAM)
