#
# Makefile for xterm-wrapper
#
# Copyright (C) 1992,1993 David Beckett, University of Kent at Canterbury
#

# Installation
PREFIX=/usr/research
INSTALLDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/man/manl
AUXDIR=$(PREFIX)/lib/xterm-wrapper

# Version should match that in version.h
VERSION=4.0

# Name for xwrap program
WRAP_NAME=xwrap

# Where the libraries live
LIBDJBDIR= ../libdjb

# GCC/ANSI C Choices
CC= gcc
# General GCC flags - get all the warnings
#CCFLAGS =  -ansi -Wall -Wshadow -Wformat -Wpointer-arith -Wconversion  -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings
CCFLAGS =  -ansi -Wall
INCLUDEDIRS = -I$(LIBDJBDIR)
# At UKC we have ANSI headers here
#INCLUDEDIRS = -I$(LIBDJBDIR) -I/usr/local/lib/ansi-include
# Flags for CPP & makedepend
CPFLAGS= -D__STDC__ $(INCLUDEDIRS) -I/usr/local/lib/gcc-lib/sparc-sun-sunos4.1/2.6.0/include

# CC/ K&R C Choices
# CC= cc
# CCFLAGS =
# INCLUDEDIRS = -I$(LIBDJBDIR)
# CPFLAGS= $(INCLUDEDIRS)

# Optimize or debug
# OPTIMIZE = -g -O
OPTIMIZE = -g
# OPTIMIZE = -O

# Define ...
#
# DEFINES = 
# DEFINES= -DDEBUG -DWRAP_NAME=\"$(WRAP_NAME)\"
DEFINES= -DWRAP_NAME=\"$(WRAP_NAME)\"

# END OF CONFIGURATION


LDFLAGS = -L$(LIBDJBDIR)
LIBS= -ldjb
CFLAGS = $(DEFINES) $(OPTIMIZE) $(INCLUDEDIRS) $(CCFLAGS)

XTERMWRAPPEROBJS=xterm-wrapper.o mach.o cmd.o dispmap.o
APPWRAPPEROBJS=app.o
OBJS= $(XTERMWRAPPEROBJS) $(APPWRAPPEROBJS)
XTERMWRAPPERSRCS=xterm-wrapper.c mach.c cmd.c dispmap.c
APPWRAPPERSRCS=app.c
SRCS= $(XTERMWRAPPERSRCS) $(APPWRAPPERSRCS)
HDRS=cmd.h dispmap.h mach.h paths.h version.h
MAPS=disp.map mach.map xterm-wrapper.defaults
DEFS=xterm-wrapper.defaults
HELPS=ncd.help vt220.help vt100.help sun.help ncd-vt220.help sun.help\
	vt100.help vt220.help
AUXS=Makefile NOTE README fix-ncd fix-vt220-ss5 fix-vt220-sun5\
	xterm-wrapper.manl
DISTFILES=$(SRCS) $(HDRS) $(MAPS) $(HELPS) $(AUXS)

all:	xterm-wrapper app-wrapper

xterm-wrapper:	$(XTERMWRAPPEROBJS)
	$(CC) $(LDFLAGS) -o xterm-wrapper $(XTERMWRAPPEROBJS) $(LIBS)

app-wrapper: $(APPWRAPPEROBJS)
	$(CC) $(LDFLAGS) -o app-wrapper $(APPWRAPPEROBJS) $(LIBS)

install: $(AUXDIR)/xterm-wrapper $(AUXDIR)/app-wrapper\
	 $(AUXDIR)/mach.map $(AUXDIR)/disp.map\
	 $(AUXDIR)/xterm-wrapper.defaults\
	 $(INSTALLDIR)/$(WRAP_NAME) $(MANDIR)/xwrap.l helps fixes

$(AUXDIR)/xterm-wrapper: xterm-wrapper
	install -s -m 711 xterm-wrapper $(AUXDIR)/xterm-wrapper

$(MANDIR)/xwrap.l: xterm-wrapper.manl
	install -c -m 644 xterm-wrapper.manl $(MANDIR)/xwrap.l
	for manual in xcops.l xfe.l xfue.l xirun.l xiserver.l xode.l xops.l xorigami.l xtrun.l; do\
	  rm -f $(MANDIR)/$$manual;\
	  ln -s $(MANDIR)/xwrap.l $(MANDIR)/$$manual;\
	done

$(INSTALLDIR)/$(WRAP_NAME):
	rm -f $(INSTALLDIR)/$(WRAP_NAME)
	ln -s $(AUXDIR)/xterm-wrapper $(INSTALLDIR)/$(WRAP_NAME)

$(AUXDIR)/app-wrapper: app-wrapper
	install -s -m 711 app-wrapper $(AUXDIR)/app-wrapper

$(AUXDIR)/mach.map: mach.map
	install -c -m 644 mach.map $(AUXDIR)/mach.map

$(AUXDIR)/disp.map: disp.map
	install -c -m 644 disp.map $(AUXDIR)/disp.map

$(AUXDIR)/xterm-wrapper.defaults: xterm-wrapper.defaults
	install -c -m 644 xterm-wrapper.defaults $(AUXDIR)/xterm-wrapper.defaults

helps: $(HELPS)
	install -c -m 644 $(HELPS) $(AUXDIR)

fixes:
	install -c -m 755 fix-* $(AUXDIR)

clean:
	$(RM) xterm-wrapper app-wrapper $(OBJS) TAGS xterm-wrapper*tar*

depend:
	makedepend $(CPFLAGS) $(INCLUDEDIRS) $(SRCS)

dist: xterm-wrapper-$(VERSION).tar.gz xterm-wrapper-$(VERSION).tar.Z

xterm-wrapper-$(VERSION).tar.Z: xterm-wrapper-$(VERSION).tar
	compress < xterm-wrapper-$(VERSION).tar > xterm-wrapper-$(VERSION).tar.Z

xterm-wrapper-$(VERSION).tar.gz: xterm-wrapper-$(VERSION).tar
	gzip < xterm-wrapper-$(VERSION).tar > xterm-wrapper-$(VERSION).tar.gz

xterm-wrapper-$(VERSION).tar: $(DISTFILES)
	rm -rf xterm-wrapper-$(VERSION)
	mkdir xterm-wrapper-$(VERSION)
	tar cf - $(DISTFILES) | (cd xterm-wrapper-$(VERSION); tar xf - )
	tar cf xterm-wrapper-$(VERSION).tar `ls -1 xterm-wrapper-$(VERSION)/*`
	rm -rf xterm-wrapper-$(VERSION)

xterm-wrapper.o: ../libdjb/libdjb.h mach.h dispmap.h version.h cmd.h
mach.o: ../libdjb/libdjb.h mach.h dispmap.h
cmd.o: ../libdjb/libdjb.h mach.h dispmap.h cmd.h paths.h site.h
dispmap.o: ../libdjb/libdjb.h dispmap.h paths.h
app.o: ../libdjb/libdjb.h paths.h
