config: parallel-safe param.h makefile rule
[openafs.git] / src / config / Makefile.in
1 # Copyright 2000, International Business Machines Corporation and others.
2 # All Rights Reserved.
3
4 # This software has been released under the terms of the IBM Public
5 # License.  For details, see the LICENSE file in the top-level source
6 # directory or online at http://www.openafs.org/dl/license10.html
7
8 srcdir=@srcdir@
9 include @TOP_OBJDIR@/src/config/Makefile.config
10 include @TOP_OBJDIR@/src/config/Makefile.lwp
11
12
13 INST=$(RM) -f $@; $(CP) $? $@
14
15 all: config mkvers \
16         ${TOP_INCDIR}/afs/param.h \
17         ${TOP_INCDIR}/afs/stds.h \
18         ${TOP_INCDIR}/afs/afs_sysnames.h \
19         ${TOP_INCDIR}/afs/afs_args.h \
20         ${TOP_INCDIR}/afs/icl.h \
21         ${TOP_INCDIR}/afs/venus.h \
22         ${TOP_INCDIR}/afs/vioc.h
23
24 generated_clean:
25         ${RM} -f ${TOP_INCDIR}/afs/param.h
26
27 buildtools: \
28         config \
29         mkvers \
30         ${TOP_INCDIR}/afs/param.h \
31         ${TOP_INCDIR}/afs/afs_sysnames.h \
32         ${TOP_INCDIR}/afs/stds.h
33
34 Makefile.version: Makefile.version-CML Makefile.version-NOCML
35         $(RM) -f Makefile.version
36         if      [ -r @TOP_SRCDIR@/CML/state ] ; \
37         then    $(CP) Makefile.version-CML Makefile.version ; \
38         else    $(CP) Makefile.version-NOCML Makefile.version ; \
39         fi
40
41 #
42 # AFS component version string file generation targets
43 #
44 AFS_component_version_number.c: Makefile.version
45         $(MAKE) -f Makefile.version AFS_component_version_number.c
46
47 #
48 # App build/install targets
49 #
50 config: config.o mc.o
51         $(AFS_LDRULE) config.o mc.o
52
53 mkvers: mkvers.c
54         $(CC) $(AFS_CPPFLAGS) $(AFS_CFLAGS) $(AFS_LDFLAGS) \
55                 -o mkvers ${srcdir}/mkvers.c
56
57 config.o: config.c AFS_component_version_number.c
58
59 #
60 # Include installation targets
61 #
62
63 param.h.new: ${srcdir}/param.${SYS_NAME}.h ${AFS_PARAM_COMMON}
64         if [ "X${AFS_PARAM_COMMON}" != "X" ] ; then \
65                 cat ${srcdir}/${AFS_PARAM_COMMON} ${srcdir}/param.${SYS_NAME}.h > param.h.new ; \
66         else \
67                 cat ${srcdir}/param.${SYS_NAME}.h > param.h.new ; \
68         fi
69
70 ${DEST}/include/afs/param.h ${DESTDIR}${includedir}/afs/param.h ${TOP_INCDIR}/afs/param.h: param.h.new
71         $(INST)
72
73 ${DEST}/include/afs/afs_sysnames.h ${DESTDIR}${includedir}/afs/afs_sysnames.h ${TOP_INCDIR}/afs/afs_sysnames.h: ${srcdir}/afs_sysnames.h
74         $(INST)
75
76 ${DEST}/include/afs/stds.h ${DESTDIR}${includedir}/afs/stds.h ${TOP_INCDIR}/afs/stds.h: ${srcdir}/stds.h
77         $(INST)
78
79 ${DEST}/include/afs/icl.h ${DESTDIR}${includedir}/afs/icl.h ${TOP_INCDIR}/afs/icl.h: ${srcdir}/icl.h 
80         $(INST)
81
82 ${DEST}/include/afs/afs_args.h ${DESTDIR}${includedir}/afs/afs_args.h ${TOP_INCDIR}/afs/afs_args.h: ${srcdir}/afs_args.h 
83         $(INST)
84
85 ${DEST}/include/afs/venus.h ${DESTDIR}${includedir}/afs/venus.h ${TOP_INCDIR}/afs/venus.h: ${srcdir}/venus.h 
86         $(INST)
87
88 ${DEST}/include/afs/vioc.h ${DESTDIR}${includedir}/afs/vioc.h ${TOP_INCDIR}/afs/vioc.h: ${srcdir}/vioc.h 
89         $(INST)
90
91 # these are needed to compile the kernel.  Config is necessary to
92 # convert the MakefileProto in libafs and the kernel links provide the
93 # kernel include environment.  param.h is, well, param.h.  The afs_sysnames.h
94 # file is needed by param.h to create unique identifiers for each SYS_TYPE.
95
96 install: ${DESTDIR}${includedir}/afs/param.h \
97         ${DESTDIR}${includedir}/afs/stds.h \
98         ${DESTDIR}${includedir}/afs/afs_sysnames.h \
99         ${DESTDIR}${includedir}/afs/afs_args.h \
100         ${DESTDIR}${includedir}/afs/icl.h \
101         ${DESTDIR}${includedir}/afs/venus.h \
102         ${DESTDIR}${includedir}/afs/vioc.h
103
104 clean:
105         $(RM) -f *.o config mkvers core xprt AFS_component_version_number.c param.h.new Makefile.version.in
106
107 dest: ${DEST}/include/afs/param.h \
108         ${DEST}/include/afs/stds.h \
109         ${DEST}/include/afs/afs_sysnames.h \
110         ${DEST}/include/afs/afs_args.h \
111         ${DEST}/include/afs/icl.h \
112         ${DEST}/include/afs/venus.h \
113         ${DEST}/include/afs/vioc.h
114