### AZ-Prolog Interpreter Makefile For Linux

CC =gcc

AZProlog = /usr/local
#AZProlog = /usr

PDIR =   $(AZProlog)/share/azprolog/system/pl
CDIR =   $(AZProlog)/share/azprolog/system/C
EXTDIR = $(AZProlog)/lib/azprolog/ext
OBJDIR = $(AZProlog)/lib/azprolog/obj

AZLIB = $(AZProlog)/lib/libazp.a
ADLIB = /lib ssl /lib crypto

BASE_BLTN_C= $(CDIR)/azsocket.c $(CDIR)/mytime.c $(CDIR)/az_unix_socket.c $(CDIR)/az_syslog.c $(CDIR)/azsocketbin.c

# BASE_BLTNPL = $(PDIR)/clp.pl $(PDIR)/mlt_parent.pl $(PDIR)/setof.pl $(PDIR)/utility.pl $(PDIR)/iso_pred.pl

BASE_BLTNPL = $(PDIR)/mlt_parent.pl $(PDIR)/setof.pl $(PDIR)/utility.pl $(PDIR)/iso_pred.pl

CURSES_BLTNPL = $(BASE_BLTNPL) $(PDIR)/OLD/azedit.pl
CGI_BLTNPL    = $(BASE_BLTNPL) $(PDIR)/prologcgi.pl
CHILD_BLTNPL  = $(BASE_BLTNPL) $(PDIR)/mlt_child.pl $(PDIR)/manual.pl 

AZPCFLAGS  = /message /s_verbos /cc $(CC)

### When you want to use static azprolog-library 
# AZPCFLAGS  = /message /s_verbos /cc $(CC) /static

###############
system : prolog prolog_c prologcgi clp.so azedit.so

prolog : $(CURSES_BLTNPL) $(AZLIB) $(BASE_BLTN_C) 
	azpc -p $(BASE_BLTN_C) $(BASE_BLTNPL) /i $(AZPCFLAGS)  $(ADLIB) $(PDIR)/manual.pl 

prolog_c : $(CHILD_BLTNPL) $(AZLIB) $(BASE_BLTN_C)
	azpc -p $(BASE_BLTN_C) $(CHILD_BLTNPL) /i $(AZPCFLAGS) /dcurses /e prolog_c  $(ADLIB)

prologcgi : $(CGI_BLTNPL) $(AZLIB) $(BASE_BLTN_C)
	azpc -p $(BASE_BLTN_C) $(CGI_BLTNPL) /i $(AZPCFLAGS) /dcurses /e prologcgi /no  $(ADLIB)

clp.so: $(PDIR)/clp.pl
	azpc -p $(PDIR)/clp.pl /ncc
	$(CC) -Wall -O4 -fPIC -o clp.o -c clp.c
	$(CC) -shared -dynamiclib -o $@ clp.o
	sudo chmod 644 $@
	sudo cp clp.so $(EXTDIR) 

azedit.so: $(PDIR)/OLD/azedit.pl $(OBJDIR)/curses.o
	azpc -p $(PDIR)/OLD/azedit.pl /ncc
	$(CC) -Wall -O4 -fPIC -o azedit.o -c azedit.c
	$(CC) -shared -dynamiclib -o $@ azedit.o $(OBJDIR)/curses.o
	sudo chmod 644 $@
	sudo cp azedit.so $(EXTDIR) 

###############
clean :
	rm -f mkaz *.[co] *.so
	rm -f prolog prolog_c prologcgi
	rm -f *~ .*~
