mkmi.m4 4.95 KB
Newer Older
Per Cederqvist's avatar
Per Cederqvist committed
1
dnl $Id: mkmi.m4,v 1.5 1994/03/08 22:54:37 ceder Exp $
Per Cederqvist's avatar
Per Cederqvist committed
2
3
4
dnl Create Makefile.in from Makefile.src
dnl
changequote([,])dnl
Per Cederqvist's avatar
Per Cederqvist committed
5
define([LK_QUOTE],[[[$1]]])dnl
Per Cederqvist's avatar
Per Cederqvist committed
6
7
8
9
10
11
12
13
14
15
16
17
dnl
dnl LK_descend(cmd, deps, localcmd) expands to
dnl
dnl	.PHONY: cmd
dnl	cmd: deps
dnl	localcmd
dnl		[code to perform cmd in $SUBDIRS]
dnl
dnl localcmd should typically be empty or contain commands to perform
dnl cmd in the current directory.  All lines in localcmd should begin
dnl with a tab.
dnl
18
define([LK_descend], [[.PHONY: $1
Per Cederqvist's avatar
Per Cederqvist committed
19
$1: $2
20
$3	@for i in DuMmY $(SUBDIRS); do \
Per Cederqvist's avatar
Per Cederqvist committed
21
		if test -f $$i/Makefile ; then \
22
23
			echo making $1 in directory $$i; \
			if (cd ./$$i; $(MAKE) $1); \
Per Cederqvist's avatar
Per Cederqvist committed
24
25
26
27
28
			then true; else exit 1; fi ; \
		else true; fi; \
	done
]])dnl
dnl
29
define([LK_cmd],[[	$1
Per Cederqvist's avatar
Per Cederqvist committed
30
31
32
33
34
]])dnl
define([domostlyclean],[LK_cmd([$(RM) $(GENERIC-MOSTLYCLEAN)])])dnl
define([doclean],)dnl
define([dodistclean],[LK_cmd([$(RM) $(GENERIC-DISTCLEAN)])])dnl
define([dorealclean],)dnl
35
define([dopure],[LK_cmd([$(RM) $(GENERIC-PURE)])])dnl
Per Cederqvist's avatar
Per Cederqvist committed
36
37
define([LK_CLEAN],[dnl
[# Output from LK_CLEAN
38
39
GENERIC-MOSTLYCLEAN = *.o lib*.a core Makefile.in2
GENERIC-PURE = Makefile.in configure
Per Cederqvist's avatar
Per Cederqvist committed
40
GENERIC-DISTCLEAN = *~ .\#* TAGS dependencies Makefile]
41
42
43
44
45
LK_descend([mostlyclean],[domostlyclean])
LK_descend([clean],[doclean])
LK_descend([distclean],[dodistclean])
LK_descend([realclean],[dorealclean])
LK_descend([pure],[dopure])
Per Cederqvist's avatar
Per Cederqvist committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
[dopure: dorealclean]
dopure
[dorealclean: dodistclean]
dorealclean
[dodistclean: doclean]
dodistclean
[doclean: domostlyclean]
doclean
[domostlyclean:]
domostlyclean
[# End output from LK_CLEAN]]
)dnl End of LK_CLEAN
dnl
define([dodepend],)dnl
define([predepend],)dnl
dnl
Per Cederqvist's avatar
Per Cederqvist committed
62
63
64
define([LK_ALL_C_DEPEND],
[define([dodepend],
    [LK_cmd([$(CC) $(DEPENDFLAG) $(ALL_CFLAGS) $(srcdir)/*.c $(C_SPECIALS) \
Per Cederqvist's avatar
Per Cederqvist committed
65
66
67
68
69
70
		>dependencies])])dnl
define([predepend],[[$(C_SPECIALS)]])])dnl
dnl
define([LK_DEPEND],[[dependencies:
	touch dependencies]

71
LK_descend([depend],predepend,dodepend)])dnl end LK_DEPEND
Per Cederqvist's avatar
Per Cederqvist committed
72
73
dnl
define([LK_INSTALL_HDRS],
74
75
[[INSTALL-HDRS = $1
HDRS-DIR =$(INCLUDEDIR)$2]
Per Cederqvist's avatar
Per Cederqvist committed
76
77
78
79
define([doincludes],
[[	test -d $(HDRS-DIR) || $(MKDIR) $(HDRS-DIR)
	for i in $(INSTALL-HDRS) ; \
	do if ( cmp $(srcdir)/$$i $(HDRS-DIR)/$$i 2>/dev/null ) ; then\
80
             true; else\
Per Cederqvist's avatar
Per Cederqvist committed
81
		$(RM) $(HDRS-DIR)/$$i;\
82
83
84
85
		if $(INSTALL_DATA) $(srcdir)/$$i $(HDRS-DIR)/$$i;\
		then true ; else exit 1; fi; fi;\
	done
]])dnl end of doincludes
Per Cederqvist's avatar
Per Cederqvist committed
86
87
])dnl end of LK_INSTALL_HDRS
dnl
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
define([preincludes],)dnl
define([LK_INSTALL_BUILT_HDRS],
[[INSTALL-HDRS = $1
HDRS-DIR =$(INCLUDEDIR)$2]
define([preincludes],[[$(INSTALL-HDRS)]])dnl
define([doincludes],
[[	test -d $(HDRS-DIR) || $(MKDIR) $(HDRS-DIR)
	for i in $(INSTALL-HDRS) ; \
	do if ( cmp $$i $(HDRS-DIR)/$$i 2>/dev/null ) ; then\
             true; else\
		$(RM) $(HDRS-DIR)/$$i;\
		if $(INSTALL_DATA) $$i $(HDRS-DIR)/$$i;\
		then true ; else exit 1; fi; fi;\
	done
]])dnl end of doincludes
])dnl end of LK_INSTALL_BUILT_HDRS
dnl
define([doincludes],)dnl
define([dolibraries],)dnl
define([prelibraries],)dnl
define([LK_STD_LIBS],
	[errprint(__file__:__line__:[ Use LK_STD_LIB, not LK_STD_LIB])
	m4exit(1)])dnl
Per Cederqvist's avatar
Per Cederqvist committed
111
define([LK_STD_LIB],
112
113
[[LIBNAME = $1
LIBOBJS = $2
Per Cederqvist's avatar
Per Cederqvist committed
114

115
116
117
$(LIBNAME): $(LIBOBJS)
	$(AR) $(ARFLAGS) $]][[@ $]][[?
	$(RANLIB) $]][[@]
Per Cederqvist's avatar
Per Cederqvist committed
118
119
120
define([dolibraries],
[[	$(RM) $(LIBDIR)/$(LIBNAME)
	cp $(LIBNAME) $(LIBDIR)/$(LIBNAME)
121
122
	$(TOUCHLIB) $(LIBDIR)/$(LIBNAME)
]])dnl end of dolibraries
Per Cederqvist's avatar
Per Cederqvist committed
123
124
define([prelibraries],[[$(LIBNAME)]])dnl end of prelibraries
])dnl end of LK_STD_LIB
125
126
dnl
define([prebinaries],)dnl
Per Cederqvist's avatar
Per Cederqvist committed
127
define([dobinaries],)dnl
128
129
define([preinstall],)dnl
define([doinstall],)dnl
Per Cederqvist's avatar
Per Cederqvist committed
130
define([LK_DESCEND],dnl
131
132
[LK_descend([includes],preincludes,doincludes)
LK_descend([libraries],prelibraries,dolibraries)
Per Cederqvist's avatar
Per Cederqvist committed
133
LK_descend([binaries],prebinaries,dobinaries)
134
LK_descend([install],preinstall,doinstall)
Per Cederqvist's avatar
Per Cederqvist committed
135
136
137
LK_DEPEND
LK_CLEAN])dnl end of LK_DESCEND
dnl
Per Cederqvist's avatar
Per Cederqvist committed
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
define([LK_SCRIPTS],
[[SCRIPTS = $1
]define([dobinaries],
[[	for i in $(SCRIPTS); do \
	    sed -e s+@ETCDIR@+$(etcdir)+ -e s+@BINDIR@+$(bindir)+ \
		$(srcdir)/$$i.sh > $$i;\
	    chmod +x $$i;\
	done
]])dnl end dobinaries
define([doinstall],
[[	for i in $(SCRIPTS); do \
	    $(INSTALL_PROGRAM) $$i $(bindir); \
	done
]])dnl end doinstall
])dnl end LK_SCRIPTS
Per Cederqvist's avatar
Per Cederqvist committed
153
dnl
154
155
156
dnl LK_STD(alldep)
dnl	alldep defaults to libraries
dnl
Per Cederqvist's avatar
Per Cederqvist committed
157
define([LK_STD],[[# Begin LK_STD
158
159
srcdir = @srcdir@
VPATH = @srcdir@
Per Cederqvist's avatar
Per Cederqvist committed
160
161
SHELL = /bin/sh

162
163
all: $1]ifelse($#,0,[[libraries]])[

Per Cederqvist's avatar
Per Cederqvist committed
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
AWK = @AWK@
CC = @CC@
CFLAGS = @CFLAGS@
ALL_CFLAGS = @INCLUDE_CURRENT@ -I@srcdir@ -I@BUILDTOPDIR@/include \
	-I@BUILDTOPDIR@/include/server $(DEFS) $(CFLAGS)

DEPENDFLAG = @DEPENDFLAG@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
LEX = @LEX@
MKDIR = mkdir
RANLIB = @RANLIB@
RM = rm -f
SED = @SED@
SYMLINK = @LN_S@
TOUCHLIB = @RANLIB@
YACC = @YACC@

INCLUDEDIR = @BUILDTOPDIR@/include
LIBDIR = @BUILDTOPDIR@/lib
prefix = /usr/lyskom
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
dbdir = $(exec_prefix)/db
etcdir = $(exec_prefix)/etc
coredir = $(exec_prefix)/cores

DEFS = @DEFS@
LDFLAGS = @LDFLAGS@
SCRIPTDIR = @SRCTOPDIR@/scripts

.c.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
198
# END section from LK_STD
Per Cederqvist's avatar
Per Cederqvist committed
199
]])dnl LK_STD