#-*-makefile-*-
# Usage: gmake [<general options>] [LOW_POWER_MPS=1]

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

ISOMP4 = 1
TOTAL_PATH_ADD += isomp4

# LOW POWER MPEG SURROUND
ifdef LOW_POWER_MPS
PARTIALLY_COMPLEX = 1
LOW_POWER_SBR = 1
endif

ifndef SPATIALAUDIO
SPATIALAUDIO=1
endif

ifndef SPATIAL_EMBED_STUDY_ON
SPATIAL_EMBED_STUDY_ON=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


TOTAL_PATH_ADD += sbr

ifndef LOW_POWER_SBR
LOW_POWER_SBR=0
endif

ifneq "$(LOW_POWER_SBR)" "0"
TOTAL_PATH_ADD += lp
endif

ifndef PARAMETRICSTEREO
PARAMETRICSTEREO=1
endif

ifneq "$(PARAMETRICSTEREO)" "0"
TOTAL_PATH_ADD += ps
endif


ifneq  "$(MAKELEVEL)" "0"

override ADDONDIR = $(TOTAL_PATH_ADD)
override DEFFLAGS += -DMPEG4V1

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

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


MPS_CONF_OBJS = audiofile_io.o \
                conf_bitdec.o \
                decoderConfTool.o \
                diff_pcm.o \
                downmix_parser.o \
                mps_decoder.o \
                qmf_inverseFilter.o \
                sbrmps_decoder.o

override DEFFLAGS += -DCT_SBR
ifeq "$(LOW_POWER_SBR)" "1"
override DEFFLAGS += -DLOW_POWER_SBR
endif

ifeq "$(SPATIAL_EMBED_STUDY_ON)" "1"
override DEFFLAGS += -DSPATIAL_EMBED_STUDY_ON
endif

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

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

ifeq "$(PARAMETRICSTEREO)" "1"
override DEFFLAGS += -DPARAMETRICSTEREO
endif

ifeq "$(SPATIALAUDIO)" "1"
ifdef LOW_POWER_MPS
COMLIBS  += -lspatialdec_lp
else
COMLIBS  += -lspatialdec
endif
override DEFFLAGS += -DSPATIALAUDIO
override INCL += -I../mp4spatialdec/src
override INCL += -I../mp4spatialdec/include
endif


ifdef LOW_POWER_MPS
COMLIBS_isoaac = -lmp4mcdec_lp
else
COMLIBS_isoaac = -lmp4mcdec
endif

ifdef LOW_POWER_MPS
ALL_BIN   = mpsConfTool_lp
else
ALL_BIN   = mpsConfTool
endif



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

.PHONY: all $(ALL_BIN) clean

all: $(ALL_BIN)

mpsConfTool:
	@$(MAKE) $(OPTIONS) TARGET=$@ COMLIBS="$(COMLIBS_isoaac) $(COMLIBS)" OBJS="$(MPS_CONF_OBJS)" binary

mpsConfTool_lp:
	@$(MAKE) $(OPTIONS) TARGET=$@ COMLIBS="$(COMLIBS_isoaac) $(COMLIBS)" OBJS="$(MPS_CONF_OBJS)" binary


ifeq "$(MAKELEVEL)" "0"

clean:
ifdef LOW_POWER_MPS
	@$(MAKE) TARGET="mpsConfTool_lp"   OBJS="$(MPS_CONF_OBJS)" clean_mode
else
	@$(MAKE) TARGET="mpsConfTool"      OBJS="$(MPS_CONF_OBJS)" clean_mode
endif

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

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

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