darwin90-debug-harder-20071009
[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 <ppc_darwin_80 x86_darwin_80>
41 KOPTS_DBUG=-g
42 <ppc_darwin_90 x86_darwin_90>
43 KOPTS_DBUG=-ggdb
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)
54 else
55 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch ppc
56 KOPTS=$(KOPTS_ppc)
57 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
58 endif
59 else
60 ifeq ($(ARCH_x86),yes)
61 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch i386
62 KOPTS=$(KOPTS_x86)
63 else
64 _ARCH=$(shell arch)
65 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib -arch $(_ARCH)
66 KOPTS=$(KOPTS_$(shell echo $(_ARCH) | sed 's/i386/x86/'))
67 endif
68 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
69 endif
70 <all -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90>
71 MODLD=$(LD)
72 CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
73 <ppc_darwin_70>
74 KOPTS=-static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
75 <ppc_darwin_60>
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 
79 <all>
80 KINCLUDES=-I${KROOT}/System/Library/Frameworks/Kernel.framework/Headers
81
82
83 # Name of directory to hold object files and libraries.
84 KOBJ = MODLOAD
85
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
90
91 include Makefile.common
92
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
97 .c.o:
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 $@
101 CRULE_NOOPT= \
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 $@
105 CRULE_OPT= \
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 $@
109 endif
110 endif
111 <all>
112
113 setup:
114         -mkdir $(KOBJ)
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
119         -$(RM) -f  h rpc
120         -ln -fs $(KROOT)/System/Library/Frameworks/Kernel.framework/Headers/sys h
121         -ln -fs /usr/include/rpc rpc
122
123
124 # Below this line are targets when in the COMMON directory:
125 LIBAFS = libafs.o
126 LIBAFSNONFS = libafs.nonfs.o
127
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
132
133
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
141
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
148
149
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}
154 <all>
155
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}
160 <all>