macos 10.6 amd64 kmod build fix
[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_misc.o \
22         osi_file.o \
23         osi_inode.o \
24         osi_groups.o \
25         osi_sleep.o \
26         osi_vm.o \
27         osi_vnodeops.o \
28         osi_module.o
29
30
31 #AFS_OS_NFSOBJS = osi_vfsops_nfs.o
32
33 AFS_OS_NONFSOBJS = osi_vfsops.o
34
35
36 # System specific build commands and flags
37 KDEFS=
38 DBUG = 
39 DEFINES= -D_KERNEL -DKERNEL -DKERNEL_PRIVATE -DDIAGNOSTIC -DUSE_SELECT -DMACH_USER_API -DMACH_KERNEL
40 KINCLUDES=-I${KROOT}/System/Library/Frameworks/Kernel.framework/Headers
41
42 <ppc_darwin_80 x86_darwin_80>
43 KOPTS_DBUG=-g
44 <ppc_darwin_90 x86_darwin_90 x86_darwin_100>
45 KOPTS_DBUG=-ggdb
46 <ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_100>
47 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
48 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
49 KOPTS_amd64=-static -nostdinc -nostdlib -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch x86_64 -Damd64 -DAMD64 -D__AMD64__ -DPAGE_SIZE_FIXED -march=x86-64 -mpreferred-stack-boundary=4 -falign-functions=4
50 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)
51 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)
52 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)
53 OBJ_ppc=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "$@.ppc")
54 OBJ_x86=$(shell echo "${ARCH_x86}" | grep -q -w yes && echo "$@.x86")
55 OBJ_amd64=$(shell echo "${ARCH_amd64}" | grep -q -w yes && echo "$@.amd64")
56 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS)
57
58 CFLAGS_ppc=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_ppc) $(KOPTS_DBUG)
59 CFLAGS_x86=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_x86) $(KOPTS_DBUG)
60 CFLAGS_amd64=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS_amd64) $(KOPTS_DBUG)
61
62 <all>
63 # Name of directory to hold object files and libraries.
64 KOBJ = MODLOAD
65
66 # This tells Makefile.common to use it's single directory build target.
67 COMPDIRS = single_compdir
68 INSTDIRS = single_instdir
69 DESTDIRS = single_destdir
70
71 include Makefile.common
72
73 <ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_100>
74 # override suffix rule; unfortunately, this causes a warning message
75 .c.o:
76 ifeq ($(ARCH_ppc),yes)
77         $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $<
78 endif
79 ifeq ($(ARCH_x86),yes)
80         $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $<
81 endif
82 ifeq ($(ARCH_amd64),yes)
83         $(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $<
84 endif
85         lipo -create ${OBJ_ppc} ${OBJ_x86} ${OBJ_amd64} -output $@;
86
87 CRULE_NOOPT_ppc=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $?
88 CRULE_NOOPT_x86=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $?
89 CRULE_NOOPT_amd64=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $?
90 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 $@")
91
92 CRULE_OPT_ppc=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_ppc) $(CFLAGS-$@) -o $(patsubst %.o,%.o.ppc,$@) -c $? 
93 CRULE_OPT_x86=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_x86) $(CFLAGS-$@) -o $(patsubst %.o,%.o.x86,$@) -c $? 
94 CRULE_OPT_amd64=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $? 
95 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 $@")
96
97 <all -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90 -x86_darwin_100>
98 MODLD=$(LD)
99 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
100 <ppc_darwin_70>
101 KOPTS=-static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
102 <ppc_darwin_60>
103 KOPTS=-no-cpp-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
104 <ppc_darwin_14 ppc_darwin_13 ppc_darwin_12>
105 KOPTS=-no-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
106
107 <all>
108 setup:
109         -mkdir $(KOBJ)
110         -$(RM) $(KOBJ)/Makefile $(KOBJ)/Makefile.common $(KOBJ)/config
111         ln -fs ../Makefile $(KOBJ)/Makefile
112         ln -fs ../Makefile.common $(KOBJ)/Makefile.common
113         ln -fs ../config $(KOBJ)/config
114         -$(RM) -f  h rpc
115         -ln -fs $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/sys h
116         -ln -fs /usr/include/rpc rpc
117
118
119 # Below this line are targets when in the COMMON directory:
120 LIBAFS = libafs.o
121 LIBAFSNONFS = libafs.nonfs.o
122
123 INST_LIBAFS = ${DESTDIR}${afskerneldir}/afs-nfs.kext
124 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/afs.kext
125 DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/afs-nfs.kext
126 DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/afs.kext
127
128
129 libafs: $(LIBAFSNONFS) ;
130 install_libafs: $(LIBAFSNONFS) ;
131         -mkdir -p ${INST_LIBAFSNONFS}
132         -mkdir -p ${INST_LIBAFSNONFS}/Contents
133         $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${INST_LIBAFSNONFS}/Contents/Info.plist
134         -mkdir -p ${INST_LIBAFSNONFS}/Contents/MacOS
135         $(INSTALL) -m 644 ${LIBAFSNONFS} ${INST_LIBAFSNONFS}/Contents/MacOS/afs
136
137 dest_libafs: $(LIBAFSNONFS) ;
138         -mkdir -p ${DEST_LIBAFSNONFS}
139         -mkdir -p ${DEST_LIBAFSNONFS}/Contents
140         $(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${DEST_LIBAFSNONFS}/Contents/Info.plist
141         -mkdir -p ${DEST_LIBAFSNONFS}/Contents/MacOS
142         $(INSTALL) -m 644 ${LIBAFSNONFS} ${DEST_LIBAFSNONFS}/Contents/MacOS/afs
143
144
145 ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
146         $(MODLD) -r -o ${LIBAFS} ${AFSAOBJS} ${AFSNFSOBJS} -lcc_kext
147 <ppc_darwin_90 x86_darwin_90 x86_darwin_100>
148         dsymutil -o ${LIBAFS}.dSYM ${LIBAFS}
149 <all>
150
151 ${LIBAFSNONFS}:  $(AFSAOBJS) $(AFSNONFSOBJS)
152         $(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext
153 <ppc_darwin_90 x86_darwin_90 x86_darwin_100>
154         dsymutil -o ${LIBAFSNONFS}.dSYM ${LIBAFSNONFS}
155 <all>