CYCC := cyclone
CYC_FLAGS := -O3 -I. -I../lib $(DEFINES)

ifdef DEBUG
CYC_FLAGS += -g -detailedlocation -pp -save-c
endif
ifdef PROFILE
CYC_FLAGS += -pa -DNDEBUG -DDIE_ON_DISCONNECT
endif
ifdef GC_PROFILE
CYC_FLAGS += -pa -DNDEBUG -DDIE_ON_DISCONNECT -DNO_FREE
endif
ifdef OPT
CYC_FLAGS += -DNDEBUG
endif

LIBS := -L../lib -lcycutil -lcycweb -lxml -lcrypt

DALI_LIB_DIR = ../dali-lib
DALI_INC_DIR = ../dali-include

ifdef WINDIR
EXE=.exe
else
EXE=
endif

ALLFILES := streambuff streambuff-heap component mpegcomp seqcomp monitor configure arrqueue link setup schedule medianet-http calibrate loop main
ALLOBJFILES := $(addsuffix .o,$(ALLFILES))
ALLCFILES := $(addsuffix .o,$(ALLFILES))

all: medianet$(EXE)

test: streambufftest$(EXE)

medianet$(EXE): $(ALLOBJFILES)
	$(CYCC) $(CYC_FLAGS) -o $@ $^ $(LIBS) -L$(DALI_LIB_DIR) -ldvmmpeg -ldvmbasic

comptest$(EXE): $(addsuffix .o,streambuff component mpegcomp seqcomp tests/comptest)
	$(CYCC) $(CYC_FLAGS) -o $@ $(LIBS) $^

streambufftest$(EXE): $(addsuffix .o,streambuff tests/streambufftest)
	$(CYCC) $(CYC_FLAGS) -o $@ $^

%.o %.c: %.cyc
	$(CYCC) $(CYC_FLAGS) -o $@ -c $<

clean:
	$(RM) *.o *~ medianet$(EXE) comptest$(EXE) streambufftest$(EXE) tests/*.o

# DEPENDENCIES

%.d: %.cyc
	$(CYCC) -M -MG $(CYC_FLAGS) $< > $@

full_clean: clean
	$(RM) *.d $(ALLCFILES)

ifndef NODEPS
-include $(addsuffix .d, $(ALLFILES))
endif
