1# makefile for gkermit - works with make or gmake.
2#
3# Author:
4#   Frank da Cruz
5#   The Kermit Project, Columbia University
6#   http://www.columbia.edu/kermit/
7#   kermit@columbia.edu
8#   December 1999
9#
10# Main build targets:
11#   posix:     Build for any POSIX-based platform (default).
12#   sysv:      Build for any AT&T UNIX System V based platform.
13#   bsd:       Build for any UNIX V7 or 4.3 (or earlier) BSD based platform.
14#
15# Special build targets:
16#   sysvx      Like sysv but uses getchar()/putchar().
17#   stty       Uses system("stty blah") instead of API calls.
18#   bsd211     For 2.11BSD on the PDP-11 - no nested makes.
19#
20# Other targets:
21#   clean:     Remove object files
22#   install:   Install gkermit
23#   uninstall: Uninstall gkermit
24#
25# Default compiler is cc.  To force gcc use:
26#   make "CC=gcc" [ <target> ]
27#
28# See README and COPYING for further information.
29
30# Sample installation values - change or override as needed.
31
32BINDIR = /usr/local/bin
33MANDIR = /usr/man/manl
34TEXTDIR = /usr/local/doc
35INFODIR = /usr/local/info
36MANEXT = l
37
38# Default compiler and flags
39
40#CC=cc
41#CFLAGS= -DPOSIX -O $(KFLAGS)
42DEFS=-DPOSIX
43CFLAGS+=	$(DEFS)
44
45# Object files
46
47OBJECTS= gproto.o gkermit.o gunixio.o gcmdline.o
48
49# Targets and dependencies
50
51all:		gwart gkermit
52
53gwart.o:	gwart.c
54		$(CC) $(CFLAGS) -c gwart.c
55
56gwart:		gwart.o
57		$(CC) -o gwart gwart.o
58
59.c.o:
60		$(CC) $(CFLAGS) -c $<
61
62gproto.c:	gproto.w gkermit.h
63		./gwart gproto.w gproto.c
64
65gkermit.o:	gkermit.c gkermit.h
66
67gunixio.o:	gunixio.c gkermit.h
68
69gcmdline.o:	gcmdline.c gkermit.h
70
71gkermit:	gproto.o gkermit.o gunixio.o gcmdline.o
72		$(CC) -o gkermit $(OBJECTS)
73
74bsd:		gwart
75		$(MAKE) "CC=$(CC)" "DEFS=-DBSD $(KFLAGS)" gkermit
76
77sysv:		gwart
78		$(MAKE) "CC=$(CC)" "DEFS=-DSYSV $(KFLAGS)" gkermit
79
80posix:		gwart
81		$(MAKE) "CC=$(CC)" "DEFS=-DPOSIX $(KFLAGS)" gkermit
82
83sysvx:		gwart
84		$(MAKE) "CC=$(CC)" \
85		"CFLAGS=-DSYSV -DUSE_GETCHAR -O $(KFLAGS)" gkermit
86
87stty:		gwart
88		$(MAKE) "CC=$(CC)" "CFLAGS=$(KFLAGS)" gkermit
89
90bsd211:		gwart
91		./gwart gproto.w gproto.c
92		cc -DBSD $(KFLAGS) -c gkermit.c
93		cc -DBSD $(KFLAGS) -c gproto.c
94		cc -DBSD $(KFLAGS) -c gcmdline.c
95		cc -DBSD $(KFLAGS) -c gunixio.c
96		cc -o gkermit $(OBJECTS)
97
98clean:
99		rm -f $(OBJECTS) gproto.o gproto.c gwart.o gwart
100
101install:
102		@if test -f ./gkermit; then \
103		    echo "Installing gkermit..." ; \
104		else \
105		    echo "Please build the gkermit binary first." ; \
106		    exit ; \
107		fi
108		@echo Copying gkermit to $(BINDIR)...
109		@cp gkermit $(BINDIR)/gkermit
110		@chmod 755 $(BINDIR)/gkermit
111		@ls -lg $(BINDIR)/gkermit
112		@if test -d $(TEXTDIR); then \
113		    echo "$(TEXTDIR) exists..." ; \
114		else \
115		    echo "Creating $(TEXTDIR)/..." ; \
116		    mkdir $(TEXTDIR) ; \
117		    chmod 755 $(TEXTDIR) ; \
118		fi
119		@echo Copying README to $(TEXTDIR)/gkermit.txt...
120		@cp README $(TEXTDIR)/gkermit.txt
121		@chmod 644 $(TEXTDIR)/gkermit.txt
122		@ls -lg $(TEXTDIR)/gkermit.txt
123		@echo Installing man page in $(MANDIR)/gkermit.$(MANEXT)...
124		@cp gkermit.nr $(MANDIR)/gkermit.$(MANEXT)
125		@chmod 644 $(MANDIR)/gkermit.$(MANEXT)
126		@ls -lg $(MANDIR)/gkermit.$(MANEXT)
127
128uninstall:
129		@echo Uninstalling gkermit...
130		rm -f $(BINDIR)/gkermit \
131		$(TEXTDIR)/gkermit.txt \
132		$(MANDIR)gkermit.$(MANEXT)
133
134.PHONY:		clean install uninstall
135
136# (end)
137