#-*-makefile-*-
#for spatial (sub)project
# Usage: gmake [<general options>] [LOW_POWER_MPS=1]

include ../general/makefile.cfg
-include ../general/makefile.cfg-local
-include makefile.cfg
-include makefile.cfg-local


TOTAL_PATH_ADD =

# LOW POWER MPEG SURROUND
ifdef LOW_POWER_MPS
PARTIALLY_COMPLEX = 1
endif

ifndef PARTIALLY_COMPLEX
PARTIALLY_COMPLEX = 0
endif

ifndef HRTF_DYNAMIC_UPDATE
HRTF_DYNAMIC_UPDATE = 1
endif

ifneq "$(PARTIALLY_COMPLEX)" "0"
TOTAL_PATH_ADD += lpmps
endif

ifneq  "$(MAKELEVEL)" "0"

override ADDONDIR = $(TOTAL_PATH_ADD)

ifdef LOW_POWER_MPS
override  MODULELIBS += -lspatialdec_lp
else
override  MODULELIBS += -lspatialdec
endif

endif # ifneq  "$(MAKELEVEL)" "0"

# -include ../general/makefile.all spread in file
include ../general/makefile.platform
include ../general/makefile.rules

override INCL := $(INCL) -Iinclude -Isrc

ifeq "$(MAKELEVEL)" "0"

# Common
OBJS = sac_dec.o sac_polyphase.o sac_bitdec.o sac_process.o sac_reshuffdec1.o \
	sac_reshuffdec2.o sac_reshuffdec3.o sac_reshuffinit.o sac_bitinput.o \
	sac_calcM1andM2.o sac_resdecode.o sac_config.o sac_reshufftables.o \
	sac_resintrins.o sac_restns.o sac_hybfilter.o sac_smoothing.o \
	sac_tonality.o sac_mdct2qmf.o sac_decor.o \
	sac_nlc_dec.o sac_TPprocess.o sac_mdct2qmf_wf_tables.o \
	sac_nodes_cpc.o sac_nodes_icc.o sac_nodes_cld.o sac_nodes_pt0.o \
	sac_reshapeBBEnv.o sac_nodes_reshape.o sac_blind.o \
	sac_hrtffilter.o sac_hrtf.o spatial_filereader.o spatial_bdreader.o \
	sac_arbitraryTree.o sac_parallelReverb.o sac_partiallyComplex.o \
	spatial_hrtfreader.o

OBJS_SADEC = spatial_frontend.o 
OBJS_LIB       = $(OBJS)
SPATIAL_OBJS_ALL   = $(OBJS_LIB) $(OBJS_SADEC)

ifeq "$(PARTIALLY_COMPLEX)" "1"
override DEFFLAGS += -DPARTIALLY_COMPLEX
endif	

ifeq "$(HRTF_DYNAMIC_UPDATE)" "1"
override DEFFLAGS += -DHRTF_DYNAMIC_UPDATE
endif	

ifdef LOW_POWER_MPS
ALL_BIN      = spatialdec_lp
SPATIAL_LIBS = libspatialdec_lp.a
else
ALL_BIN      = spatialdec
SPATIAL_LIBS = libspatialdec.a
endif

SRCDIRS = src
OPTIONS = $(MFLAGS) SRCDIRS="$(SRCDIRS)" COMLIBS="$(COMLIBS)" EXTERNLIBS="$(EXTERNLIBS)" DEFFLAGS="$(DEFFLAGS)" LIBS="$(LIBS)" INCL="$(INCL)" INCLDEP=1


.PHONY: all $(ALL_BIN) $(SPATIAL_LIBS)  clean 

all: $(ALL_BIN)

libspatialdec.a:
	$(MAKE) $(OPTIONS) TARGET=$@ OBJS="$(OBJS_LIB)" library

libspatialdec_lp.a:
	$(MAKE) $(OPTIONS) TARGET=$@ OBJS="$(OBJS_LIB)" library

spatialdec: $(SPATIAL_LIBS)
	$(MAKE) $(OPTIONS) TARGET=$@ OBJS="$(OBJS_SADEC)" binary

spatialdec_lp: $(SPATIAL_LIBS)
	$(MAKE) $(OPTIONS) TARGET=$@ OBJS="$(OBJS_SADEC)" binary

clean:
ifdef LOW_POWER_MPS
	@$(MAKE) TARGET="spatialdec_lp libspatialdec_lp.a"   OBJS="$(SPATIAL_OBJS_ALL)"  clean_mode
else
	@$(MAKE) TARGET="spatialdec libspatialdec.a"   OBJS="$(SPATIAL_OBJS_ALL)"  clean_mode
endif

else # ifeq "$(MAKELEVEL)" "0"

clean_mode:
	@$(MAKE) TARGET="$(TARGET)" OBJS="$(OBJS)" clean

endif # ifeq "$(MAKELEVEL)" "0"
