CC=cc
CFLAGS=-I/usr/local/include -I./deps/
DEPS = bbs.h
JAMLIB = deps/jamlib/jamlib.a
ZMODEM = deps/Xmodem/libzmodem.a
LUA = deps/lua/liblua.a
ODOORS = deps/odoors/libs-`uname -s`/libODoors.a

all: magicka magimail magiedit

${LUA}:
	cd deps/lua && $(MAKE) -f Makefile freebsd MAKEFLAGS=
 
${JAMLIB}:
	cd deps/jamlib && $(MAKE) -f Makefile.linux MAKEFLAGS=
 
${ZMODEM}:
	cd deps/Xmodem && $(MAKE) MAKEFLAGS=

${ODOORS}:
	cd deps/odoors/ && $(MAKE)

OBJ = inih/ini.o bbs.o main.o users.o main_menu.o mail_menu.o doors.o bbs_list.o chat_system.o email.o files.o settings.o lua_glue.o strings.o bluewave.o hashmap/hashmap.o
%.o: %.c $(DEPS)
	$(CC) -c -o $@ $< $(CFLAGS)

magicka: $(OBJ) ${LUA} ${JAMLIB} ${ZMODEM}
	$(CC) -o magicka -o $@ $^ $(CFLAGS) -L/usr/local/lib -lsqlite3 $(JAMLIB) $(ZMODEM) $(LUA) -lutil -lm -lssl -lcrypto -lssh

magimail: $(JAMLIB)
	cd utils/magimail && $(MAKE) freebsd

magiedit: $(ODOORS)
	cd utils/magiedit && $(MAKE)

.PHONY: clean

clean:
	rm -f $(OBJ) magicka
	cd deps/lua && $(MAKE) clean
	cd deps/jamlib && $(MAKE) -f Makefile.linux clean
	cd deps/Xmodem && $(MAKE) clean
	cd utils/magimail && $(MAKE) cleanfreebsd
	cd utils/magiedit && $(MAKE) clean
	cd deps/odoors/ && rm -rf libs-`uname -s` objs-`uname -s` exe-`uname -s`