#include "../../FWF.tmpl"

#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'

CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(STD_INCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)

REGH		=	RegExp.h
REGSRC		=	RegExp.c
REGOBJ		=	RegExp.o
REGTESTSRC	=	RegExpT.c
REGTESTOBJ	=	RegExpT.o
REGTEST		=	$(FWF_BINDIR)/RegExpT
REGOBJS		=	$(REGOBJ) $(REGTESTOBJ)
REGSRCS		=	$(REGSRC) $(REGTESTSRC)

DIRH		=	Directory.h
DIRSRC		=	Directory.c
DIROBJ		=	Directory.o
DIRTESTSRC	=	DirectoryT.c
DIRTESTOBJ	=	DirectoryT.o
DIRTEST		=	$(FWF_BINDIR)/DirectoryT
DIROBJS		=	$(DIROBJ) $(DIRTESTOBJ)
DIRSRCS		=	$(DIRSRC) $(DIRTESTSRC)

DIRMGRH		=	DirMgr.h
DIRMGRSRC	=	DirMgr.c
DIRMGROBJ	=	DirMgr.o
DIRMGRTESTSRC	=	DirMgrT.c
DIRMGRTESTOBJ	=	DirMgrT.o
DIRMGRTEST	=	$(FWF_BINDIR)/DirMgrT
DIRMGROBJS	=	$(DIRMGROBJ) $(DIRMGRTESTOBJ)
DIRMGRSRCS	=	$(DIRMGRSRC) $(DIRMGRTESTSRC)

DIR_LIBNAME	=	libDir.a

PROGRAMS = $(REGTEST) $(DIRTEST) $(DIRMGRTEST)
LIB_OBJS = $(REGOBJ) $(DIROBJ) $(DIRMGROBJ)
EXT_OBJS = $(REGTESTOBJ) $(DIRTESTOBJ) $(DIRMGRTESTOBJ)

INCS = $(FWF_INCDIR)/$(REGH) $(FWF_INCDIR)/$(DIRH) $(FWF_INCDIR)/$(DIRMGRH)
SRCS = $(REGSRCS) $(DIRSRCS) $(DIRMGRSRCS)

LOCALLIBS = $(DIR_LIB)
DEPLIBS = $(DIR_LIB)
SYSLIBS =

AddToLibraryTarget(archive,$(FWF_LIBDIR),$(DIR_LIBNAME),$(REGOBJ))
AddToLibraryTarget(archive,$(FWF_LIBDIR),$(DIR_LIBNAME),$(DIROBJ))
AddToLibraryTarget(archive,$(FWF_LIBDIR),$(DIR_LIBNAME),$(DIRMGROBJ))

ObjectRuleWithFlags($(CFLAGS) -I$(XPM_INCDIR) -I$(FWF_INCBASE))

RequireThisFileForInit($(FWF_INCDIR)/$(REGH))
RequireThisFileForInit($(FWF_INCDIR)/$(DIRH))
RequireThisFileForInit($(FWF_INCDIR)/$(DIRMGRH))

FileCopyWhenNeeded(.,$(REGH),$(FWF_INCDIR),$(REGH))
FileCopyWhenNeeded(.,$(DIRH),$(FWF_INCDIR),$(DIRH))
FileCopyWhenNeeded(.,$(DIRMGRH),$(FWF_INCDIR),$(DIRMGRH))

NormalProgramTarget($(REGTEST),$(REGOBJS),$(DEPLIBS),$(LOCALLIBS),$(SYSLIBS))
NormalProgramTarget($(DIRTEST),$(DIROBJS),$(DEPLIBS),$(LOCALLIBS),$(SYSLIBS))
NormalProgramTarget($(DIRMGRTEST),$(DIRMGROBJS),$(DEPLIBS),$(LOCALLIBS),$(SYSLIBS))

LintTarget()

InstallMultiple($(INCS),$(FWF_INSTALL_INCDIR))

GatherDescription(Dir.txt,../../README.INDEX);

objects: first objs archive last

first: $(INCS)
	@rm -f dirent.h
	@rm -f $(FWF_INCDIR)/dirent.h
	@(if [ ! -f /usr/include/dirent.h ];			\
	    then echo "Patching because no dirent.h";		\
	         echo "#ifndef _BRIDIRENT_H_" > dirent.h;	\
	         echo "#define _BRIDIRENT_H_" >> dirent.h;	\
	         echo "#define dirent direct" >> dirent.h;	\
	         echo "#include <sys/dir.h>" >> dirent.h;	\
	         echo "#endif" >> dirent.h;			\
	         cp dirent.h $(FWF_INCDIR)/dirent.h;		\
	    else echo "";					\
	    fi; exit 0)
	@rm -f regexp.h
	@rm -f $(FWF_INCDIR)/regexp.h
	@(if [ ! -f /usr/include/regexp.h ];			\
	    then echo "Patching because no regexp.h";		\
	         echo "#ifndef _BRIREGEXP_H_" > regexp.h;	\
	         echo "#define _BRIREGEXP_H_" >> regexp.h;	\
	         echo "#define NO_REGEXP 1" >> regexp.h;	\
	         echo "#endif" >> regexp.h;			\
	         cp regexp.h $(FWF_INCDIR)/regexp.h;		\
	    else echo "";					\
	    fi; exit 0)

objs: $(LIB_OBJS)

last: $(MANS)

execs: $(PROGRAMS)
