mkmi.m4 4.91 KB
Newer Older
1
dnl $Id: mkmi.m4,v 1.4 1994/03/06 22:04:41 ceder Exp $
Per Cederqvist's avatar
Per Cederqvist committed
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dnl Create Makefile.in from Makefile.src
dnl
changequote([,])dnl
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
17
define([LK_descend], [[.PHONY: $1
Per Cederqvist's avatar
Per Cederqvist committed
18
$1: $2
19
$3	@for i in DuMmY $(SUBDIRS); do \
Per Cederqvist's avatar
Per Cederqvist committed
20
		if test -f $$i/Makefile ; then \
21
22
			echo making $1 in directory $$i; \
			if (cd ./$$i; $(MAKE) $1); \
Per Cederqvist's avatar
Per Cederqvist committed
23
24
25
26
27
			then true; else exit 1; fi ; \
		else true; fi; \
	done
]])dnl
dnl
28
define([LK_cmd],[[	$1
Per Cederqvist's avatar
Per Cederqvist committed
29
30
31
32
33
]])dnl
define([domostlyclean],[LK_cmd([$(RM) $(GENERIC-MOSTLYCLEAN)])])dnl
define([doclean],)dnl
define([dodistclean],[LK_cmd([$(RM) $(GENERIC-DISTCLEAN)])])dnl
define([dorealclean],)dnl
34
define([dopure],[LK_cmd([$(RM) $(GENERIC-PURE)])])dnl
Per Cederqvist's avatar
Per Cederqvist committed
35
36
define([LK_CLEAN],[dnl
[# Output from LK_CLEAN
37
38
GENERIC-MOSTLYCLEAN = *.o lib*.a core Makefile.in2
GENERIC-PURE = Makefile.in configure
Per Cederqvist's avatar
Per Cederqvist committed
39
GENERIC-DISTCLEAN = *~ .\#* TAGS dependencies Makefile]
40
41
42
43
44
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
45
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
define([LK_ALL_C_DEPEND],[define([dodepend],dnl
62
[LK_cmd([$(CC) $(DEPENDFLAG) $(ALL_CFLAGS) $(srcdir)/*.c $(C_SPECIALS) \
Per Cederqvist's avatar
Per Cederqvist committed
63
64
65
66
67
68
		>dependencies])])dnl
define([predepend],[[$(C_SPECIALS)]])])dnl
dnl
define([LK_DEPEND],[[dependencies:
	touch dependencies]

69
LK_descend([depend],predepend,dodepend)])dnl end LK_DEPEND
Per Cederqvist's avatar
Per Cederqvist committed
70
71
dnl
define([LK_INSTALL_HDRS],
72
73
[[INSTALL-HDRS = $1
HDRS-DIR =$(INCLUDEDIR)$2]
Per Cederqvist's avatar
Per Cederqvist committed
74
75
76
77
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\
78
             true; else\
Per Cederqvist's avatar
Per Cederqvist committed
79
		$(RM) $(HDRS-DIR)/$$i;\
80
81
82
83
		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
84
85
])dnl end of LK_INSTALL_HDRS
dnl
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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
109
define([LK_STD_LIB],
110
111
[[LIBNAME = $1
LIBOBJS = $2
Per Cederqvist's avatar
Per Cederqvist committed
112

113
114
115
$(LIBNAME): $(LIBOBJS)
	$(AR) $(ARFLAGS) $]][[@ $]][[?
	$(RANLIB) $]][[@]
Per Cederqvist's avatar
Per Cederqvist committed
116
117
118
define([dolibraries],
[[	$(RM) $(LIBDIR)/$(LIBNAME)
	cp $(LIBNAME) $(LIBDIR)/$(LIBNAME)
119
120
	$(TOUCHLIB) $(LIBDIR)/$(LIBNAME)
]])dnl end of dolibraries
Per Cederqvist's avatar
Per Cederqvist committed
121
122
define([prelibraries],[[$(LIBNAME)]])dnl end of prelibraries
])dnl end of LK_STD_LIB
123
124
dnl
define([prebinaries],)dnl
Per Cederqvist's avatar
Per Cederqvist committed
125
define([dobinaries],)dnl
126
127
define([preinstall],)dnl
define([doinstall],)dnl
Per Cederqvist's avatar
Per Cederqvist committed
128
define([LK_DESCEND],dnl
129
130
[LK_descend([includes],preincludes,doincludes)
LK_descend([libraries],prelibraries,dolibraries)
Per Cederqvist's avatar
Per Cederqvist committed
131
LK_descend([binaries],prebinaries,dobinaries)
132
LK_descend([install],preinstall,doinstall)
Per Cederqvist's avatar
Per Cederqvist committed
133
134
135
LK_DEPEND
LK_CLEAN])dnl end of LK_DESCEND
dnl
Per Cederqvist's avatar
Per Cederqvist committed
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
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
151
dnl
152
153
154
dnl LK_STD(alldep)
dnl	alldep defaults to libraries
dnl
Per Cederqvist's avatar
Per Cederqvist committed
155
define([LK_STD],[[# Begin LK_STD
156
157
srcdir = @srcdir@
VPATH = @srcdir@
Per Cederqvist's avatar
Per Cederqvist committed
158
159
SHELL = /bin/sh

160
161
all: $1]ifelse($#,0,[[libraries]])[

Per Cederqvist's avatar
Per Cederqvist committed
162
163
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
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) $<
196
# END section from LK_STD
Per Cederqvist's avatar
Per Cederqvist committed
197
]])dnl LK_STD