summaryrefslogtreecommitdiff
path: root/zwgc/Imakefile
blob: 47b2e226fc439a3dfdca499daeb4cdca549128a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/**/#	Copyright 1988, 1993 Massachusetts Institute of Technology.
/**/#
/**/#	For copying and distribution information, see the file
/**/#	"mit-copyright.h". 
/**/#
/**/#	$Id$

#ifdef _AIX
TERMCAP = -lcurses
#else
TERMCAP = -ltermcap
#endif

#ifdef macII
LIBS2= -lc -lPW
#endif
#ifdef SOLARIS
LIBS2 = -lgen
#endif

#ifdef __NetBSD__
OSDEFS=-DPOSIX_REGEXP
#endif

LIBS = $(ZLIB) $(LIB_X) $(TERMCAP) $(LIBS2) $(OSLIBS)

SRCS = port_dictionary.c pointer_dictionary.c ulong_dictionary.c \
	  parser.y lexer.c node.c exec.c buffer.c main.c zephyr.c X_driver.c\
          substitute.c port.c xshow.c \
          mux.c eval.c subscriptions.c notice.c xcut.c regexp.c\
	  character_class.c text_operations.c file.c error.c variables.c\
	  formatter.c X_fonts.c X_gram.c tty_filter.c standard_ports.c\
	  xselect.c xmark.c xrevstack.c xerror.c

OBJS = parser.o lexer.o node.o exec.o buffer.o main.o zephyr.o X_driver.o\
          substitute.o port_dictionary.o port.o xshow.o pointer_dictionary.o\
          mux.o eval.o subscriptions.o notice.o xcut.o regexp.o\
	  character_class.o text_operations.o file.o error.o variables.o\
	  formatter.o X_fonts.o X_gram.o tty_filter.o standard_ports.o\
	  xselect.o xmark.o xrevstack.o xerror.o ulong_dictionary.o \
	  $(LIBRARIES)

LIBRARIES = ./String/new_string.o\
	    ./Dictionary/string_dictionary.o\
            ./Dictionary/string_dictionary_aux.o\
	    ./Dictionary/int_dictionary.o\
	    ./Memory/new_memory.o

GENSRCS= port_dictionary.c pointer_dictionary.c ulong_dictionary.c

GENERATED= $(GENSRCS) \
	port_dictionary.h pointer_dictionary.h ulong_dictionary.h \
	char_stack.h string_stack.h xmode_stack.h \
	y.tab.h
	
XDEFS =	-I./Memory -I./String -I./Dictionary -DREVSTACK \
	-DDEFDESC=\"$(ZLIBDIR)/zwgc.desc\" \
	-DAPPDEFDATABASE=\"$(ZLIBDIR)/zwgc_resources\" \
	-DZWGCPATH=\"$(ATHBINDIR)/zwgc\" \
	-DSGI_DESKS $(OSDEFS)

SUBDIRS = Memory String Dictionary

do_subdirs_imakefile($(SUBDIRS))
foreach_subdirs(clean,$(SUBDIRS))
foreach_subdirs(all,$(SUBDIRS))
foreach_subdirs(depend,$(SUBDIRS))

zprogram(zwgc,$(LIBS))
install_man(zwgc.1,zwgc.1)

#ifdef ATHENA_COMPAT
/**/# On Athena, zwgc has been in /usr/etc on VAXes and RTs and some people
/**/# run in with a full pathname.  For compatbility, make a link.
install::
	$(RM) $(DESTDIR)/usr/etc/zwgc
	ln $(DESTDIR)$(CLIENTDIR)/zwgc $(DESTDIR)/usr/etc/zwgc || ln -s $(CLIENTDIR)/zwgc $(DESTDIR)/usr/etc/zwgc 
#endif

install_file(zwgc.desc,$(ZLIBDIR))
install_file(zwgc_resources,$(ZLIBDIR))
install_file(zephyr.vars,$(ATHCONFDIR))

YFLAGS=-d

/**/# use implicit yacc rule for the following:
parser.o: parser.y
y.tab.h: parser.o

/**/# How to generate a port dictionary:
port_dictionary.c port_dictionary.h: Dictionary/dictionary.c Dictionary/dictionary.h
	./generate_instance ./Dictionary dictionary port port.h

/**/# How to generate a pointer dictionary:
pointer_dictionary.c pointer_dictionary.h: Dictionary/dictionary.c Dictionary/dictionary.h
	./generate_instance ./Dictionary dictionary pointer pointer.h

/**/# How to generate a ulong dictionary:
ulong_dictionary.c ulong_dictionary.h: Dictionary/dictionary.c Dictionary/dictionary.h
	./generate_instance ./Dictionary dictionary ulong ulong.h

/**/# How to generate a char stack:
char_stack.h: stack.h
	./generate_instance . stack char

/**/# How to generate a string stack:
string_stack.h: stack.h
	./generate_instance . stack string

/**/# How to generate a xmode stack:
xmode_stack.h: stack.h
	./generate_instance . stack xmode

clean::
	$(RM) $(GENERATED)

eval.c eval.o: port.h string_stack.h
exec.c exec.o: port.h string_stack.h
lexer.c: y.tab.h
main.c main.o: port.h string_stack.h
port.c port.o: port_dictionary.h
standard_ports.c standard_ports.o: port.h string_stack.h 
text_operations.c text_operations.o: char_stack.h
xshow.c xshow.o: pointer_dictionary.h xmode_stack.h
X_driver.c X_driver.o: ulong_dictionary.h