DESTDIR    = /usr/local/
bindir	   = bin
libdir	   = lib

INSTALL_PROGRAM=install -m 755
LDCONFIG       = ldconfig

RM     = rm 
#RM      = del

#CC     =icc
#GENEXE = /Fe 
#O      =.obj
#CFLAGS =/Ti -I. -Iinc

aoREP  =r
AR     =ar
#CC     =gcc
exLIB  = .a
GENEXE = -o $(_SP) 
GENLIB = -o $(_SP) 
O      =.o
CFLAGS =-Iinc -D_8_3_NAMES
SL     =/

my_distdir = $(abs_distdir)
SUBDIRS    = inc apps src
DISTFILES  =

#MY_LIBS        = $(SL)lib$(SL)dos
MY_LIBS        = .

LIB_XMLTOK     = expat$(exLIB)
PATH_XMLTOK_A  = $(MY_LIBS)$(SL)$(LIB_XMLTOK)
PATH_XMLTOK_SO  = $(MY_LIBS)$(SL)libexpat.so

# Use one of the next two lines; unixfilemap is better if it works.
FILEMAP_OBJ=src/unix_fm$(O)
#FILEMAP_OBJ=read_fm$(O)

OBJS=   \
  xmltok$(O)   \
  xmlrole$(O)  \
  xmlparse$(O) \
  hashtabl$(O) \
#  expat-wrapper$(O) \
  $(FILEMAP_OBJ)


lib: $(PATH_XMLTOK_A)

shared_lib: $(PATH_XMLTOK_SO)
        
exe: xmlproc xmlwf show-arg

all: shared_lib lib # exe

install-so: shared_lib
	$(INSTALL_PROGRAM) $(PATH_XMLTOK_SO) $(DESTDIR)$(libdir)
	$(LDCONFIG)
        
install-a: lib
	$(INSTALL_PROGRAM) $(PATH_XMLTOK_A) $(DESTDIR)$(libdir)

install:
	@echo "##########################################################"
	@echo "## makefile expat: do not forget to install libexpat.so"
	@echo "## (if you have not done yet) by saying"
	@echo "##     make install-so"
	@echo "##########################################################"
        
messages:

%: apps$(SL)%.c
	$(CC) $(CFLAGS) $< $(PATH_XMLTOK_A) $(GENEXE) $@

xmlproc  : $(PATH_XMLTOK_A)
xmlwf    : $(PATH_XMLTOK_A)
show-arg : apps$(SL)show-arg.c

$(PATH_XMLTOK_A) : $(OBJS)
	$(AR) $(aoREP) $@ $?

$(PATH_XMLTOK_SO) : $(OBJS)
	$(CC) -shared -Wl,-soname,$@ -o $@ $?

distdir: distclean $(DISTFILES)
	echo $(my_distdir)
	for file in `ls`; do \
	  test -f $$file &&  \
	  cp $$file $(my_distdir);     \
	done;  \
	for subdir in $(SUBDIRS); do  \
	  test -d $(my_distdir)/$$subdir  \
	  || mkdir $(my_distdir)/$$subdir  \
	  || exit 3;  \
	  chmod 777 $(my_distdir)/$$subdir;  \
	  for file in `ls $$subdir`; do \
	    cp  $$subdir/$$file $(my_distdir)/$$subdir  \
	    || exit 2; \
	  done \
	done

clean:
	-$(RM) *~
	-$(RM) *.o
	-$(RM) xmlproc
	-$(RM) xmlwf
	-$(RM) show-arg

distclean: clean
	-$(RM) $(PATH_XMLTOK_A)
	-$(RM) $(PATH_XMLTOK_SO)

inc$(SL)nametab.h: gennmtab
	$(RM) $@
	gennmtab >$@

gennmtab: apps$(SL)gennmtab.c
	$(CC) $(CFLAGS) $(GENEXE) $@ apps$(SL)gennmtab.c

%$(O) : src$(SL)%.c
	$(CC) -O2 $(CFLAGS) -c -o $@ $<

%$(O) : src$(SL)%.cpp
	$(CC) -O2 $(CFLAGS) -c -o $@ $<
