CFLAGS_EXT	=
LDFLAGS_EXT	=
LIBS_EXT	=

#{ OS specific part

## Linux
CFLAGS_OS = -Wall
#CFLAGS_OS += -DDAC_DEV=\"/dev/dsp2\"
#CFLAGS_OS += -pedantic
CFLAGS_OPT = -g
CFLAGS_HIOPT = -O2 -funroll-loops
LDFLAGS_OS =
LIBS_OS =
DACIO_ARCH = dacio-linux.c

## A certain SVR4.2 based OS
#CC	= /usr/abiccs/bin/cc
#CFLAGS_OS =
#CFLAGS_OPT = -g
#CFLAGS_HIOPT = -O
#LDFLAGS_OS =
#LIBS_OS =
#DACIO_ARCH = dacio-ews48.c

#}

CFLAGS	= $(CFLAGS_OS) $(CFLAGS_OPT) $(CFLAGS_EXT)
CFLAGS_HIOPT_ = $(CFLAGS_OS) $(CFLAGS_HIOPT) $(CFLAGS_EXT)
LDFLAGS	= $(LDFLAGS_OS) $(LDFLAGS_EXT)
LIBS	= $(LIBS_EXT) $(LIBS_OS)

PROG	= nspmod
all:	$(PROG)

OBJS0	= nspmod.o play-s3m.o play-mod.o play-mtm.o ovs.o magic.o playnote.o \
	inst.o hirev.o mem.o
OBJS	= $(OBJS0) dacio.o
$(PROG): $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $(OBJS)

hirev.o: hirev.c
	$(CC) $(CFLAGS_HIOPT_) -c hirev.c
#	$(CC) $(CFLAGS_HIOPT_) -S hirev.c

dacio.o: dacio.c
	$(CC) $(CFLAGS_HIOPT_) -c dacio.c
#	$(CC) $(CFLAGS_HIOPT_) -S dacio.c

dacio.c: $(DACIO_ARCH)
	ln -s $(DACIO_ARCH) $@

TAR	= tar
TARTAR	= nspmod.tar
TARTARSRC = nspmod-0.1.lsm README COPYING TODO nspmod.1 \
	Makefile makeproto proto.pl depend \
	defs.h dacio-linux.c \
	$(OBJS0:.o=.c) $(OBJS:.o=.h) $(OBJS:.o=.h_)
tar:	$(TARTAR)
$(TARTAR): $(TARTARSRC)
	$(TAR) cvf $(TARTAR) $(TARTARSRC)
clean:
	$(RM) *.o $(PROG)
diff:
	$(RM) diffs
	-for i in *.org; do \
		diff -u $$i `basename $$i .org` >> diffs; \
	done
proto:
	$(MAKE) -f makeproto CFLAGS="$(CFLAGS)" $(OBJS:.o=.h_)
DEPS	= $(OBJS:.o=.c)
dep:	$(DEPS)
	gcc $(CFLAGS) -MM $(DEPS) > depend

include depend
