Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / libafs / MakefileProto.DARWIN.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 # $Header$
8 #
9 # MakefileProto for Digital Unix systems
10 #
11 srcdir=@srcdir@
12 include @TOP_OBJDIR@/src/config/Makefile.config
13 INSTALL = @INSTALL@
14 INSTALL_DATA = @INSTALL_DATA@
15 INSTALL_PROGRAM = @INSTALL_PROGRAM@
16 INSTALL_SCRIPT = @INSTALL_SCRIPT@
17
18
19 # OS specific object files:
20 AFS_OS_OBJS = \
21 osi_crypto.o \
22 osi_misc.o \
23 osi_file.o \
24 osi_inode.o \
25 osi_gcpags.o \
26 osi_groups.o \
27 osi_sleep.o \
28 osi_vcache.o \
29 osi_vm.o \
30 osi_vnodeops.o \
31 osi_module.o
32
33
34 #AFS_OS_NFSOBJS = osi_vfsops_nfs.o
35
36 AFS_OS_NONFSOBJS = osi_vfsops.o
37
38
39 # System specific build commands and flags
40 KDEFS=
41 DBUG =
42 DEFINES= -D_KERNEL -DKERNEL -DKERNEL_PRIVATE -DDIAGNOSTIC -DUSE_SELECT -DMACH_USER_API -DMACH_KERNEL
43 KINCLUDES=-I${KROOT}/System/Library/Frameworks/Kernel.framework/Headers
44
45 <ppc_darwin_70 ppc_darwin_80 x86_darwin_80>
46 KOPTS_DBUG=-g
47 <ppc_darwin_90 x86_darwin_90>
48 KOPTS_DBUG=-ggdb
49 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90>
50 KOPTS_DBUG=-gdwarf-2
51 <all -ppc_darwin_70>
52 KOPTS_ppc=-static -nostdinc -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch ppc -Dppc -DPPC -D__PPC__ -DPAGE_SIZE_FIXED -mcpu=750 -mmultiple -fschedule-insns -force_cpusubtype_ALL
53 KOPTS_x86=-static -nostdinc -fmessage-length=0 -pipe -nostdinc -fno-builtin -Wno-trigraphs -force_cpusubtype_ALL -msoft-float -O0 -fno-common -mkernel -finline -fno-keep-inline-functions -fasm-blocks -arch i386 -Di386 -DI386 -D__I386__ -DPAGE_SIZE_FIXED
54 KOPTS_amd64=-static -nostdinc -fno-builtin -finline -fno-keep-inline-functions -msoft-float -fsigned-bitfields -arch x86_64 -Damd64 -DAMD64 -D__AMD64__ -DPAGE_SIZE_FIXED -march=x86-64 -falign-functions=4 -m64 -mkernel -mno-red-zone
55 ARCH_ppc=$(shell echo "${ARCHFLAGS}" | grep -q -w ppc && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w ppc && echo yes)
56 ARCH_x86=$(shell echo "${ARCHFLAGS}" | grep -q -w i386 && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w i386 && echo yes)
57 ARCH_amd64=$(shell echo "${ARCHFLAGS}" | grep -q -w x86_64 && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w x86_64 && echo yes)
58 OBJ_ppc=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "$@.ppc")
59 OBJ_x86=$(shell echo "${ARCH_x86}" | grep -q -w yes && echo "$@.x86")
60 OBJ_amd64=$(shell echo "${ARCH_amd64}" | grep -q -w yes && echo "$@.amd64")
61
62 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90 -x86_darwin_160 -x86_darwin_170 -x86_darwin_180>
63 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS) -Xlinker -kext
64 <ppc_darwin_70 ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_160 x86_darwin_170 x86_darwin_180>
65 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS)
66 <all>
67
68 CFLAGS_ppc=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_ppc) $(KOPTS_DBUG)
69 CFLAGS_x86=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_x86) $(KOPTS_DBUG)
70 CFLAGS_amd64=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_amd64) $(KOPTS_DBUG)
71
72 <all>
73 # Name of directory to hold object files and libraries.
74 KOBJ = MODLOAD
75
76 # This tells Makefile.common to use it's single directory build target.
77 COMPDIRS = single_compdir
78 INSTDIRS = single_instdir
79 DESTDIRS = single_destdir
80
81 include Makefile.common
82
83 <all -ppc_darwin_70>
84 # override suffix rule; unfortunately, this causes a warning message
85 .c.o:
86 if [ "$(ARCH_ppc)" = "yes" ]; then \
87 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $< || exit(1) \
88 fi \
89 if [ "$(ARCH_x86)" = "yes" ]; then \
90 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $< || exit(1) \
91 fi
92 if [ "$(ARCH_amd64)" = "yes" ]; then \
93 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $< || exit(1) \
94 fi \
95 lipo -create ${OBJ_ppc} ${OBJ_x86} ${OBJ_amd64} -output $@;
96
97 CRULE_NOOPT_ppc=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $?
98 CRULE_NOOPT_x86=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $?
99 CRULE_NOOPT_amd64=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $?
100 CRULE_NOOPT=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "${CRULE_NOOPT_ppc} && "; echo "${ARCH_x86}" | grep -q -w yes && echo "${CRULE_NOOPT_x86} && "; echo "${ARCH_amd64}" | grep -q -w yes && echo "${CRULE_NOOPT_amd64} && "; echo " lipo -create ${OBJ_ppc} ${OBJ_x86} ${OBJ_amd64} -output $@ && true")
101
102 CRULE_OPT_ppc=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $?
103 CRULE_OPT_x86=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $?
104 CRULE_OPT_amd64=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $?
105 CRULE_OPT=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "${CRULE_OPT_ppc} && "; echo "${ARCH_x86}" | grep -q -w yes && echo "${CRULE_OPT_x86} && "; echo "${ARCH_amd64}" | grep -q -w yes && echo "${CRULE_OPT_amd64} && ";echo "lipo -create ${OBJ_ppc} ${OBJ_x86} ${OBJ_amd64} -output $@ && true")
106
107 <ppc_darwin_70>
108 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
109 KOPTS=-static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch
110
111 <all>
112 setup:
113 -mkdir $(KOBJ)
114 -$(RM) $(KOBJ)/Makefile $(KOBJ)/Makefile.common $(KOBJ)/config
115 ln -fs ../Makefile $(KOBJ)/Makefile
116 ln -fs ../Makefile.common $(KOBJ)/Makefile.common
117 ln -fs ../config $(KOBJ)/config
118 -$(RM) -f h rpc
119 -ln -fs $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/sys h
120 -ln -fs /usr/include/rpc rpc
121
122
123 # Below this line are targets when in the COMMON directory:
124 LIBAFS = libafs.o
125 LIBAFSNONFS = libafs.nonfs.o
126
127 INST_LIBAFS = ${DESTDIR}${afskerneldir}/afs-nfs.kext
128 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/afs.kext
129 DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/afs-nfs.kext
130 DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/afs.kext
131 <ppc_darwin_70 ppc_darwin_80 x86_darwin_80>
132 LIBAFSDSYM =
133 LIBAFSNONFSDSYM =
134 INST_LIBAFSDSYM =
135 INST_LIBAFSNONFSDSYM =
136 DEST_LIBAFSDSYM =
137 DEST_LIBAFSNONFSDSYM =
138 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
139 LIBAFSDSYM = libafs.o.dSYM
140 LIBAFSNONFSDSYM = libafs.nonfs.o.dSYM
141 INST_LIBAFSDSYM = ${DESTDIR}${afskerneldir}/afs-nfs.kext.dSYM
142 INST_LIBAFSNONFSDSYM = ${DESTDIR}${afskerneldir}/afs.kext.dSYM
143 DEST_LIBAFSDSYM = ${DEST}/root.client/usr/vice/etc/afs-nfs.kext.dSYM
144 DEST_LIBAFSNONFSDSYM = ${DEST}/root.client/usr/vice/etc/afs.kext.dSYM
145 <all>
146
147 libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
148 install_libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
149 -mkdir -p ${INST_LIBAFSNONFS}
150 -mkdir -p ${INST_LIBAFSNONFS}/Contents
151 $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${INST_LIBAFSNONFS}/Contents/Info.plist
152 -mkdir -p ${INST_LIBAFSNONFS}/Contents/MacOS
153 $(INSTALL) -m 644 ${LIBAFSNONFS} ${INST_LIBAFSNONFS}/Contents/MacOS/afs
154 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
155 -mkdir -p ${INST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
156 $(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Info.plist ${INST_LIBAFSNONFSDSYM}/Contents
157 $(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Resources/DWARF/${LIBAFSNONFS} ${INST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
158 <all>
159
160 dest_libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
161 -mkdir -p ${DEST_LIBAFSNONFS}
162 -mkdir -p ${DEST_LIBAFSNONFS}/Contents
163 $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${DEST_LIBAFSNONFS}/Contents/Info.plist
164 -mkdir -p ${DEST_LIBAFSNONFS}/Contents/MacOS
165 $(INSTALL) -m 644 ${LIBAFSNONFS} ${DEST_LIBAFSNONFS}/Contents/MacOS/afs
166 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
167 -mkdir -p ${DEST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
168 $(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Info.plist ${DEST_LIBAFSNONFSDSYM}/Contents
169 $(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Resources/DWARF/${LIBAFSNONFS} ${DEST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
170 <all>
171
172 ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
173 $(MODLD) -r -o ${LIBAFS} ${AFSAOBJS} ${AFSNFSOBJS} -lcc_kext
174
175 <all -x86_darwin_160 -x86_darwin_170 -x86_darwin_180>
176 ${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
177 $(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext
178 <x86_darwin_160 x86_darwin_170 x86_darwin_180>
179 ${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
180 $(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext -Xlinker -kext
181
182 <all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
183 $(LIBAFSDSYM): ${LIBAFS}
184 dsymutil -o ${LIBAFS}.dSYM ${LIBAFS}
185 ${LIBAFSNONFSDSYM}: ${LIBAFSNONFS}
186 dsymutil -o ${LIBAFSNONFS}.dSYM ${LIBAFSNONFS}
187 <all>