# Makefile 

ifndef COMPILING_WHOLE_TREE
TOPDIR:=$(shell pwd)
endif

include $(TOPDIR)/Rules.make 

CFLAGS += -W -Wall -Wundef -MMD -Isrc/include -DLIBPATH=\"/usr/lib/updatedd\"

OBJS  =  src/modules/base64encode.o src/modules/dprintf.o src/modules/get_connection.o src/modules/error.o src/modules/get_ifaddr.o src/updatedd.o
OBJS +=  src/lib/dyndns.o src/lib/ovh.o src/lib/ods.o src/lib/hn.o src/lib/noip.o
PLUGINS = bin/dyndns.so bin/noip.so
EXEC =  bin/updatedd

CONF_FILES = 
LIBS = 

LOCAL_CONF_DIR=$(ROOT_FS_DIR)/etc_ro_fs/hotspot/
LOCAL_EXEC_DIR=$(ROOT_FS_DIR)/usr/sbin

# CMO 
# Cette rgle est l pour faire un make clean si on modifie le Makefile.
.dummy : Makefile 
	make -C  . clean
	touch .dummy

all: .dummy $(EXEC) $(PLUGINS)

$(EXEC) : src/modules/error.o src/updatedd.o 
	$(CC) $(CFLAGS) -o $@ $^  -ldl
	$(STRIP) $@

bin/dyndns.so : src/modules/get_connection.o src/modules/error.o src/modules/base64encode.o src/modules/dprintf.o src/lib/dyndns.o
	$(CC) $(CFLAFS) -shared -Wl,-soname,$(shell basename $@) -o $@ $^
	$(STRIP) $@

bin/noip.so : src/modules/get_connection.o src/modules/error.o src/modules/get_ifaddr.o src/modules/dprintf.o src/lib/noip.o
	$(CC) $(CFLAFS) -shared -Wl,-soname,$(shell basename $@) -o $@ $^
	$(STRIP) $@

no_accent :
	for file in *.[ch] ; do tr "" "aceeeeiioouuACEEEEIIOOUU" < $$file > $$file.no_accent ; mv $$file.no_accent $$file ; done ; 

release:
	$(INSTALL) -o root -g root -m 644 dyndns.conf	$(ROOT_FS_DIR)/etc_ro_fs
	$(INSTALL) -o root -g root -m 755 bin/updatedd	$(ROOT_FS_DIR)/usr/sbin
	$(INSTALL) -o root -g root -m 755 dyndns	$(ROOT_FS_DIR)/usr/sbin
	$(INSTALL) -d $(ROOT_FS_DIR)/usr/lib/updatedd
	$(INSTALL) -o root -g root -m 755 bin/dyndns.so	$(ROOT_FS_DIR)/usr/lib/updatedd
	$(INSTALL) -o root -g root -m 755 bin/noip.so	$(ROOT_FS_DIR)/usr/lib/updatedd
	ln -sf dyndns.so $(ROOT_FS_DIR)/usr/lib/updatedd/default.so

clean:
	rm -f $(EXEC) $(OBJS) $(BUILDED_FILES)
	rm -f *.d

# CMO
# target indent : pour indenter les fichiers .c et .h automatiquement
indent:
	find -name "*.[ch]" -exec indent {} ";" 

#load file object dependencies
DEP:=$(wildcard *.d)

ifneq ($(DEP),)
include $(DEP)
endif
