1 # Copyright 2000, International Business Machines Corporation and others.
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
9 # MakefileProto for Digital Unix systems
12 include @TOP_OBJDIR@/src/config/Makefile.config
14 INSTALL_DATA = @INSTALL_DATA@
15 INSTALL_PROGRAM = @INSTALL_PROGRAM@
16 INSTALL_SCRIPT = @INSTALL_SCRIPT@
19 # OS specific object files:
31 #AFS_OS_NFSOBJS = osi_vfsops_nfs.o
33 AFS_OS_NONFSOBJS = osi_vfsops.o
36 # System specific build commands and flags
39 DEFINES= -D_KERNEL -DKERNEL -DKERNEL_PRIVATE -DDIAGNOSTIC -DUSE_SELECT -DMACH_USER_API -DMACH_KERNEL
40 <ppc_darwin_80 x86_darwin_80>
42 <ppc_darwin_90 x86_darwin_90>
44 <ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90>
45 KOPTS_ppc=-static -nostdinc -nostdlib -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
46 KOPTS_x86=-static -nostdinc -nostdlib -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch i386 -Di386 -DI386 -D__I386__ -DPAGE_SIZE_FIXED -march=i686 -mpreferred-stack-boundary=2 -falign-functions=4
47 ARCH_ppc=$(shell echo "${ARCHFLAGS}" | grep -q -w ppc && echo yes)
48 ARCH_x86=$(shell echo "${ARCHFLAGS}" | grep -q -w i386 && echo yes)
49 ifeq ($(ARCH_ppc),yes)
50 ifeq ($(ARCH_x86),yes)
51 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch ppc -arch i386
52 CFLAGS_ppc=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_ppc) $(KOPTS_DBUG)
53 CFLAGS_x86=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_x86) $(KOPTS_DBUG)
55 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch ppc
57 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
60 ifeq ($(ARCH_x86),yes)
61 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch i386
65 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch $(_ARCH)
66 KOPTS=$(KOPTS_$(shell echo $(_ARCH) | sed 's/i386/x86/'))
68 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
70 <all -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90>
72 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
74 KOPTS=-static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch
76 KOPTS=-no-cpp-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch
77 <ppc_darwin_14 ppc_darwin_13 ppc_darwin_12>
78 KOPTS=-no-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch
80 KINCLUDES=-I${KROOT}/System/Library/Frameworks/Kernel.framework/Headers
83 # Name of directory to hold object files and libraries.
86 # This tells Makefile.common to use it's single directory build target.
87 COMPDIRS = single_compdir
88 INSTDIRS = single_instdir
89 DESTDIRS = single_destdir
91 include Makefile.common
93 <ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90>
94 ifeq ($(ARCH_ppc),yes)
95 ifeq ($(ARCH_x86),yes)
96 # override suffix rule; unfortunately, this causes a warning message
98 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.ppc.o,$@) -c $<
99 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.x86.o,$@) -c $<
100 lipo -create $(patsubst %.o,%.ppc.o,$@) $(patsubst %.o,%.x86.o,$@) -output $@
102 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.ppc.o,$@) -c $? && \
103 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.x86.o,$@) -c $? && \
104 lipo -create $(patsubst %.o,%.ppc.o,$@) $(patsubst %.o,%.x86.o,$@) -output $@
106 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.ppc.o,$@) -c $? && \
107 $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.x86.o,$@) -c $? && \
108 lipo -create $(patsubst %.o,%.ppc.o,$@) $(patsubst %.o,%.x86.o,$@) -output $@
115 -$(RM) $(KOBJ)/Makefile $(KOBJ)/Makefile.common $(KOBJ)/config
116 ln -fs ../Makefile $(KOBJ)/Makefile
117 ln -fs ../Makefile.common $(KOBJ)/Makefile.common
118 ln -fs ../config $(KOBJ)/config
120 -ln -fs $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/sys h
121 -ln -fs /usr/include/rpc rpc
124 # Below this line are targets when in the COMMON directory:
126 LIBAFSNONFS = libafs.nonfs.o
128 INST_LIBAFS = ${DESTDIR}${afskerneldir}/afs-nfs.kext
129 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/afs.kext
130 DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/afs-nfs.kext
131 DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/afs.kext
134 libafs: $(LIBAFSNONFS) ;
135 install_libafs: $(LIBAFSNONFS) ;
136 -mkdir -p ${INST_LIBAFSNONFS}
137 -mkdir -p ${INST_LIBAFSNONFS}/Contents
138 $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${INST_LIBAFSNONFS}/Contents/Info.plist
139 -mkdir -p ${INST_LIBAFSNONFS}/Contents/MacOS
140 $(INSTALL) -m 644 ${LIBAFSNONFS} ${INST_LIBAFSNONFS}/Contents/MacOS/afs
142 dest_libafs: $(LIBAFSNONFS) ;
143 -mkdir -p ${DEST_LIBAFSNONFS}
144 -mkdir -p ${DEST_LIBAFSNONFS}/Contents
145 $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${DEST_LIBAFSNONFS}/Contents/Info.plist
146 -mkdir -p ${DEST_LIBAFSNONFS}/Contents/MacOS
147 $(INSTALL) -m 644 ${LIBAFSNONFS} ${DEST_LIBAFSNONFS}/Contents/MacOS/afs
150 ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
151 $(MODLD) -r -o ${LIBAFS} ${AFSAOBJS} ${AFSNFSOBJS} -lcc_kext
152 <ppc_darwin_90 x86_darwin_90>
153 dsymutil -o ${LIBAFS}.dSYM ${LIBAFS}
156 ${LIBAFSNONFS}: $(AFSAOBJS) $(AFSNONFSOBJS)
157 $(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext
158 <ppc_darwin_90 x86_darwin_90>
159 dsymutil -o ${LIBAFSNONFS}.dSYM ${LIBAFSNONFS}