#include <psf_pre.imake>
#include <env_variables.imake>
#include <psf_prototype.imake>
#include <psf_exits.imake>
#include <psf_fopen.imake>
#include <psf_malloc.imake>
#include <psf_stdarg.imake>
#include <psf_standards.imake>
#include <installmanpage.imake>

DEFINES = -DDEFPSFBINDIR=\"$(PSFBINDIR)/\" $(PSF_INC_DEFINES)

#ifndef LinuxArchitecture
LDLIBS = -ll
#else
XCOMM make flex lex compatible
LFLAGS = -l $(LFLAGS)
#endif

# for linking without X11
CCENVSETUP=
LDPRELIBS=

BUGDIR = /usr/titools/psf/doc/bugs/unsolved

OBJ = main.o args.o auxfunc.o check.o imports.o all_itil.o itil.o \
	libs.o all_mtil.o mtil.o set.o split.o til.o tsort.o process.o \
	graphformat.o psfDOT.o psfGP.o psfdaV.o interface.o parcompiler.o
INC = defaults.h version.h prototypes.h scan.h

OBJS = $(OBJ) scan.o $(PSF_INC_OBJ)

HDR = $(OBJ:.o=.h)
SRC = $(OBJ:.o=.c)
SRCS = $(OBJS:.o=.c)
SOURCE = $(SRC) scan.l

depend:: scan.c

TBPSFLIB = $(DESTINATION)/lib/tbpsf

PERLADAPTERS = mtil-adapter.perl itil-adapter.perl
PERLADAPTERTMPLS = psfctrl-adapter.perl.tmpl
PERLTOOLS = parcompiler-tool.perl
PERLSRC = $(PERLADAPTERS) $(PERLADAPTERTMPLS) $(PERLTOOLS)
LIBTOOLS = $(PERLADAPTERS) $(PERLADAPTERTMPLS:.tmpl=) $(PERLTOOLS)

TBSCRIPTS = tbpsf_script.tb tbparpsf_script.tb

AllTarget(tbpsf psfctrl-adapter.perl tbparpsf)

tbpsf: tbpsf.tmpl
	sed -e s+@PSF_LIB@+$(TBPSFLIB)+g \
	-e s+@PROG_PERL@+$(PROG_PERL)+g \
		< $@.tmpl > $@
	chmod +x $@

tbparpsf: tbparpsf.tmpl
	sed -e s+@PSF_LIB@+$(TBPSFLIB)+g \
	-e s+@PROG_PERL@+$(PROG_PERL)+g \
		< $@.tmpl > $@
	chmod +x $@

psfctrl-adapter.perl: psfctrl-adapter.perl.tmpl
	sed -e s+@PROG_MKNOD@+$(PROG_MKNOD)+g < $@.tmpl > $@

InstallProgram(tbpsf, $(BINDIR))
InstallProgram(tbparpsf, $(BINDIR))

MakeDirectories(install, $(TBPSFLIB))
InstallMultiple($(TBSCRIPTS), $(TBPSFLIB))
InstallMultiple($(LIBTOOLS), $(TBPSFLIB))

AllTarget(psfctrl)
NormalProgramTarget(psfctrl,$(OBJS),$(DEPLIBS),$(LOCALLIBS),$(SYSLIBS))
InstallProgram(psfctrl, $(TBPSFLIB))

AllTarget(tbpsf.man tbparpsf.man)
PSFInstallManPage(tbpsf,1)
PSFInstallManPage(tbparpsf,1)

tbpsf.man: tbpsf.man.tmpl
	sed -e s+@DEFPSFBINDIR@+$(BINDIR)+g				  \
	    	< tbpsf.man.tmpl > tbpsf.man

tbparpsf.man: tbparpsf.man.tmpl
	sed -e s+@DEFPSFBINDIR@+$(BINDIR)+g				  \
	    	< tbparpsf.man.tmpl > tbparpsf.man

scan.c: scan.l
		$(LEX) -t scan.l >scan.c

clean::
	$(RM) tbpsf tbparpsf psfctrl-adapter.perl scan.c tbpsf.man tbparpsf.man

ARCHIVE = Imakefile $(INC) $(HDR) $(SOURCE) $(PERLSRC) $(TBSCRIPTS) tbpsf.tmpl tbparpsf.tmpl tbpsf.man.tmpl tbparpsf.man.tmpl

rcsdiff:
	rcsdiff -c $(ARCHIVE) > src.diffs

rcsci:
	ci -f -m"." -t/dev/null $(ARCHIVE)

rcsco:
	co -l $(ARCHIVE)

#include <psf_post.imake>
