mkmi.m4 4.44 KB
Newer Older
1
dnl $Id: mkmi.m4,v 1.2 1994/03/05 17:19:28 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
125
126
dnl
define([prebinaries],)dnl
define([preinstall],)dnl
define([doinstall],)dnl
Per Cederqvist's avatar
Per Cederqvist committed
127
define([LK_DESCEND],dnl
128
129
130
131
[LK_descend([includes],preincludes,doincludes)
LK_descend([libraries],prelibraries,dolibraries)
LK_descend([binaries],prebinaries)
LK_descend([install],preinstall,doinstall)
Per Cederqvist's avatar
Per Cederqvist committed
132
133
134
135
136
LK_DEPEND
LK_CLEAN])dnl end of LK_DESCEND
dnl
dnl
define([LK_STD],[[# Begin LK_STD
137
138
srcdir = @srcdir@
VPATH = @srcdir@
Per Cederqvist's avatar
Per Cederqvist committed
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
SHELL = /bin/sh

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) $<
175
# END section from LK_STD
Per Cederqvist's avatar
Per Cederqvist committed
176
]])dnl LK_STD