default: all

#++ make module local start, do NOT touch this line. ++
# Installation dependent make variables for ericv on HERMES 

# full path of the ESPRIT environment
ESPRITDIR = /home1/forfun

#  BDIR     : bin directory
BDIR = $(ESPRITDIR)/binA

#  IDIR     : include directory
IDIR = $(ESPRITDIR)/include

#  LDIR     : library directory
LDIR = $(ESPRITDIR)/libA


NFULLDS = $(ESPRITDIR)/ds/nfullgl.ds
NKERNDS = $(ESPRITDIR)/ds/nkerngl.ds

#  HOSTNAME : name of installation machine.
HOSTNAME=hermes

# SYS     : name of operating system or machine type
#     BSD	For generic BSD systems
#     AVIION	For generic DG_UX systems
#     HPUX	For all HP-UX systems
#     SUN	For all SUN systems
#     APOLLO	For all Apollo systems
SYS = AVIION

# CLIBLOC : required C libraries
CLIBLOC =

LINTLIBLOC =

PASLIBLOC =

# CBADADR : address that will cause a core-dump if read or written.
CBADADR = 0

SYSLINTFLAGS = -hpac
SYSCFLAGS = 
SYSCPROFFLAGS =
SYSCDBUGFLAGS =
SYSPFLAGS =
OFLAG= -O
# Collection of host dependent make rules.

### libinstall ###
# MODULE	- module to install
libinstall:
	cp $(MODULE) $(LDIR)/$(MODULE)

### includeinstall ###
# MODULE	- module to install
includeinstall:
	cp $(MODULE) $(IDIR)/$(MODULE)

### maninstall ###
# MAN		- manual page to install
maninstall:
	cp $(MAN) /usr/man/manl

### bininstall ###
# MODULE	- module to install
bininstall:
	cp $(MODULE) $(BDIR)/$(MODULE)
	strip $(BDIR)/$(MODULE)

### arlibinstall ###
# MODULE	- module to install
arlibinstall:
	cp $(MODULE) $(LDIR)/$(MODULE)

LINK.c=$(CC) 
#++ make module local end, do NOT touch this line. ++

VERSION = 1

TERMINAL = vt100

TMFILES = glue.ds menuds.ht parsmenu.ct gluespecs.t

MENU    = glass-menu.dat asa.dat

SRCS	= fscnum.c fscchar.c glue.c prnum.c prchar.c\
          handlemenu.c stackprocs.c checkglue.c\
          performact.c tp.c tools.c dprocs.c handleparms.c\
          tc.c parset.g pglue glass-wacht.c testpglue pglue

INCS	= fscnum.h fscchar.h prnum.h prchar.h\
          handlemenu.h errnum.h\
          stackprocs.h checkglue.h\
          actionds.h performact.h globalvars.h\
          boxdefs.h dprocs.h gconst.h tools.h\
          handleparms.h tc.h tctypes.h keystrings.h


# objects used by all programs
OBJS	= parsmenu.o fscchar.o fscnum.o prnum.o prchar.o\
          handleparms.o handlemenu.o stackprocs.o\
          checkglue.o performact.o tools.o dprocs.o\
          tc.o

# objects specific for glue
OBJS1	= glue.o

# objects specific for tp
OBJS2	= tp.o

# all objects
OBJSALL = $(OBJS) $(OBJS1) $(OBJS2)

DOC	= glass-glue.report COPYING CHANGES glass-glue.keys user8.gl c3.gl

LIBS = $(LDIR)/libtmc.a  -lcurses  -ltermcap

LINK = $(CC)

PROGS   = glue tp parset

SKELFILES = make.local

MAKEFILE = Makefile

JUNK = core 

GENFILES = parsmenu.c parsmenu.h envir.h 

DISTFILES = $(TMFILES) $(MENU) $(SRCS) $(INCS) $(DOC) $(MAKEFILE)

CFLAGS = -I$(IDIR) $(SYSCFLAGS)

help :
	@echo " Possible make targets:"
	@echo "all		Create local running programs."
	@echo "clean		Free disk space."
	@echo "distfiles	List distribution files."
	@echo "install		Install relevant files."
	@echo "setup		Adapt sources to local situation."
	@echo "test		Run tests."

all	: ${PROGS}

# Add rules for the programs themselves here.

test : $(PROGS)
	@echo 'I will run the following file to test pglue:'
	@echo '============================================'
	@cat testpglue
	@echo '============================================'
	@testpglue
	@echo '  '
	@echo 'I will now run glue.'
	glue

install: glue parset
	make 'MODULE=glue' bininstall
	cp pglue $(BDIR)/pglue
	cp glass-menu.dat glass-glue.keys glass-glue.report $(LDIR)
	make 'MODULE=parset' bininstall

clean:
	rm -f $(PROGS) $(GENFILES) ${JUNK} ${OBJSALL}

distfiles:
	@echo $(DISTFILES) | tr ' ' '\012'

setup:
	modmake local ../make.local ${MAKEFILE}

.c.o:
	$(CC) -c $(CFLAGS) $*.c

# lint: envir.h
#	lint $(CFLAGS) $(SRCS)

# Non-standard make rules

checkglue.o: menuds.h tools.h globalvars.h

fscchar.o: $(IDIR)/tmc.h

fscnum.o: $(IDIR)/tmc.h

glue.o: glue.c $(IDIR)/tmc.h menuds.h handlemenu.h dprocs.h checkglue.h\
        globalvars.h tctypes.h tc.h gconst.h envir.h
	$(CC) -c glue.c $(CFLAGS) -DLIBDIR=\"$(LDIR)\"

handlemenu.o: $(IDIR)/tmc.h dprocs.h menuds.h checkglue.h\
              gconst.h performact.h actionds.h errnum.h tools.h\
              globalvars.h handleparms.h tctypes.h stackprocs.h envir.h

handleparms.o: $(IDIR)/tmc.h menuds.h dprocs.h\
               gconst.h checkglue.h tctypes.h envir.h

envir.h: 
	echo '#define MAINDIR "$(ESPRITDIR)"' >envir.h
	echo '#define TERMINAL "$(TERMINAL)"' >>envir.h

menuds.h: glue.ds menuds.ht gluespecs.t
	tm glue.ds menuds.ht >menuds.h

parsmenu.c: glue.ds parsmenu.ct gluespecs.t
	tm glue.ds parsmenu.ct >parsmenu.c

parsmenu.o: $(IDIR)/tmc.h menuds.h fscchar.h fscnum.h prnum.h prchar.h envir.h

performact.o: $(IDIR)/tmc.h gconst.h dprocs.h menuds.h\
              actionds.h handleparms.h globalvars.h envir.h

prchar.o: $(IDIR)/tmc.h

prnum.o: $(IDIR)/tmc.h

tc.o: tctypes.h keystrings.h

tools.o: $(IDIR)/tmc.h menuds.h

tp.o: $(IDIR)/tmc.h menuds.h dprocs.h handlemenu.h gconst.h\
      handleparms.h envir.h

dprocs.o: gconst.h errnum.h boxdefs.h tctypes.h envir.h

# Main programs

parset: parset.g
	glammar parset

glue: $(OBJS1) $(OBJS)
	$(LINK) -o glue $(OBJS1) $(OBJS) $(LIBS)

tp: $(OBJS2) $(OBJS)
	$(LINK) -o tp     $(OBJS2) $(OBJS) $(LIBS)

glass-wacht: glass-wacht.c
	cc -o glass-wacht glass-wacht.c


lint:
	lint -I$(IDIR) $(SYSCFLAGS) handleparms.c tp.c parsmenu.c fscchar.c fscnum.c prnum.c prchar.c  stackprocs.c checkglue.c tools.c dprocs.c  -lcurses -ltermcap
# niet  /esprit/main/lib/libtmc.a

tp2:
	cc -o tp tp.o parsmenu.o fscchar.o fscnum.o prnum.o prchar.o handleparms.o stackprocs.o checkglue.o tools.o dprocs.o /esprit/main/lib/libtmc.a -lcurses -ltermcap

###
