# $Id: Makefile,v 1.2 2005/01/13 05:14:59 Melifaro Exp $
#
# YSM/ICQGATE Makefile.
# Leave automake alone, we can do the job!
#

CC=		gcc
LS=		/bin/ls
CFLAGS=		-g -O2 -I../../include -I../../adns -I/usr/local/include -I. -Wall
MODULE_FLAGS=	-fPIC -DPIC -shared -lm
W_FLAGS=	-Wshadow -Wmissing-declarations
TARGET=		/usr/home/melifaro/project-icq/chimera-bin
INSTALL=	/usr/bin/install -c
MODULES_DIR=	$(TARGET)/modules/autoload/
PROG=		GATE_module.so
PROG_FLAGS=	$(CFLAGS) $(CPPFLAGS)
SRCS=		YSM_Network.c YSM_ToolBox.c
SRC_NEW=	GATE_lists.c GATE_tcp.c GATE_misc.c GATE_events.c \
		GATE_flood.c GATE_message.c GATE_bans.c GATE_config.c \
		GATE_KEEPER.c GATE_colors.c GATE_help.c GATE_ICQBOT.c \
		GATE_cl.c GATE_ICQBOTsub.c

YACC=		bison -y
LEX=		flex
F_PR=		g_yy
CONF_O=		lex.$(F_PR).o y.tab.o


OBJS=		$(SRCS:.c=.o)
OBJS_NEW=	$(SRC_NEW:.c=.o)
all: ver $(PROG) module

.PHONY:	clean

clean:
	@./ver.sh clean
	-rm -f *.o core *.core *.bak $(VER_HEADER) $(PROG)

.c.o:
	$(CC) $(CFLAGS) -shared -c $< -o $@

$(PROG): $(OBJS) $(OBJS_NEW)

ver:
	@./ver.sh

module: config
	$(CC) $(MODULE_FLAGS) $(CFLAGS) $(PREFIX) GATE_module.c $(OBJS) $(OBJS_NEW) $(CONF_O) -o $(PROG)
	@echo -e \
	"\n"\
	"**********************************************************\n"\
	"**         GATE Module compiled successfully		 **\n"\
	"**********************************************************"
	@$(LS) -l $(PROG)
distclean: clean

install: all
	$(INSTALL) -m 644 $(PROG) $(MODULES_DIR)


y.tab.o:        y.tab.c
	${CC} ${CPPFLAGS} ${CFLAGS} -c y.tab.c

# Note GNU bison uses <file>.tab.c not y.tab.c
bison:
	@${YACC} -d -p $(F_PR) GATE_parser.y

config:
	${CC} ${CPPFLAGS} ${CFLAGS} -c lex.$(F_PR).c y.tab.c

all-config:  bison lex config

lex:
	@${LEX} -P$(F_PR) GATE_lexer.l

confclean:
	rm -f lex.$(F_PR).* y.tab.*

gettarget:
	i_target=`./target.sh`
	echo $(i_target)

