CYCC := cyclone
CYC_FLAGS := -O3 -detailedlocation $(DEFINES)
RANLIB := ranlib

ifdef DEBUG
CYC_FLAGS += -g -pp -save-c
endif
ifdef PROFILE
CYC_FLAGS += -pa
endif
ifdef OPT
CYC_FLAGS += -DNDEBUG
endif

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

LIBFILES := ioutil computil packet server timeval_util d_printf
WEBFILES := tdate_parse http 

LIBOBJFILES := mpeg.o $(addsuffix .o, $(LIBFILES))
WEBOBJFILES := $(addsuffix .o, $(WEBFILES))

ALLFILES := $(LIBFILES) $(WEBFILES)
ALLCFILES := $(addsuffix .c, $(ALLFILES))

all: libcycutil.a libcycweb.a

libcycutil.a: $(LIBOBJFILES)
	-$(RM) $@
	ar rc $@ $(LIBOBJFILES)
	$(RANLIB) $@

libcycweb.a: $(WEBOBJFILES)
	-$(RM) $@
	ar rc $@ $(WEBOBJFILES)
	$(RANLIB) $@

mpeg.o: mpeg.c
	$(CC) -c $(CFLAGS) -I$(DALI_INC_DIR) $< -o $@

mime_types.h: mime_types.txt
	rm -f mime_types.h
	sed < mime_types.txt > mime_types.h \
	  -e 's/#.*//' -e 's/[ 	]*$$//' -e '/^$$/d' \
	  -e 's/[ 	][ 	]*/", "/' -e 's/^/{ "/' -e 's/$$/" },/'

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

http.o: http.cyc mime_types.h
	$(CYCC) $(CYC_FLAGS) --inline-checks -o $@ -c $<

clean:
	$(RM) *.o *~ *.a

# DEPENDENCIES

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

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

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