MYCODEDIR := .
FTPMOUNT := /usr/bin/ftpmount

AUTOMOUNTED_FTP_DIR := /mnt/ftpfs
AUTOMOUNT_FILES := /etc

# Directories to search for header files

SEARCHDIRS := -I- -I${MYCODEDIR}

# makemake variables

DEPENDFLAGS  := -g -Wall -Werror ${SEARCHDIRS}
TOUCHHEADERS := ${MYCODEDIR}/*.h

# C preprocessor (C, C++, FORTRAN)

CPPFLAGS = 

# C compiler

CC     := gcc
CFLAGS  = ${DEPENDFLAGS}

%.o : %.c
	${CC} ${CPPFLAGS} ${CFLAGS} -c $< -o $@

# C linker

LINKER    := gcc
LDFLAGS    = 
LOADLIBES := 


# This is what makemake added


# ftpmount

ftpmount :: ./ftpmount.o
  ifeq (${suffix ftpmount}, .a)
	@${RM} $@
	${AR} crs $@ ${filter-out %.a %.so, $^}
  else
  ifeq (${suffix ftpmount}, .so)
	${LINKER} -shared ${LDFLAGS} -o $@ ${filter-out %.a %.so, $^} ${LOADLIBES}
  else
	${LINKER} ${LDFLAGS} -o $@ ${filter-out %.a %.so, $^} ${LOADLIBES}
  endif
  endif

automount :: ./automount.o
	${LINKER} ${LDFLAGS} -o $@ ${filter-out %.a %.so, $^} ${LOADLIBES}

# list of all source files

MM_ALL_TARGETS := ftpmount automount

# target for making everything

.PHONY : all
all: ${MM_ALL_TARGETS}

# target for removing all object files

.PHONY : tidy
tidy::
	@${RM} core ./ftpmount.o ./automount.o

# target for removing all object files

.PHONY : clean
clean:: tidy
	@${RM} ${MM_ALL_TARGETS}

# list of all source files

MM_ALL_SOURCES := ./ftpmount.c ./automount.c

# target for checking a source file

CHECKSYNTAXFILE := ${basename ${filter %${CHECKSTRING}, ${MM_ALL_SOURCES}}}

.PHONY : checksyntax
checksyntax:
  ifneq (${CHECKSYNTAXFILE},)
	@${MAKE} ${addsuffix .o, ${CHECKSYNTAXFILE}}
  else
	@echo No target to make ${CHECKSTRING}
  endif


# target for touching appropriate source files

.PHONY : touch
touch::
	@list=$$(grep -l ${TOUCHSTRING} ${MM_ALL_SOURCES}); \
     for file in $$list; do { echo $$file; touch $$file; } done


# target for calculating dependencies (MAKEMAKE)

.PHONY : jdepend
jdepend:
	@${MAKEMAKE} --depend Makefile -- ${DEPENDFLAGS} --  ./ftpmount.c ./ftpmount.o
	@${MAKEMAKE} --depend Makefile -- ${DEPENDFLAGS} --  ./automount.c ./automount.o

install: ftpmount
	strip ./ftpmount
	install -m755 --owner=0 --group=0 -b -D ftpmount ${FTPMOUNT}


uninstall:
	rm -f ${FTPMOUNT}
	
install_automount: automount
	install -m755 --owner=0 --group=0 -b -D automount ${AUTOMOUNT_FILES}/auto.ftp
	install -d -m755 --owner=0 --group=0 ${AUTOMOUNTED_FTP_DIR}
	cp ${AUTOMOUNT_FILES}/auto.master ${AUTOMOUNT_FILES}/auto.master.ftpfs
	echo "${AUTOMOUNTED_FTP_DIR} ${AUTOMOUNT_FILES}/auto.ftp" >> ${AUTOMOUNT_FILES}/auto.master
	service autofs restart

uninstall_automount:
	mv ${AUTOMOUNT_FILES}/auto.master.ftpfs ${AUTOMOUNT_FILES}/auto.master
	rm ${AUTOMOUNT_FILES}/auto.ftp
	service autofs restart
	rmdir ${AUTOMOUNTED_FTP_DIR}

